GH-15: Add FAQ, moved GH templates, and updated PR template (#67)

* Add FAQ, moved GH templates, and updated PR template

* Update PULL_REQUEST_TEMPLATE.md

* Update README.md
This commit is contained in:
James Montemagno 2018-03-14 13:37:03 -07:00 коммит произвёл Jonathan Dick
Родитель e0ee532241
Коммит 12e2bbcc0b
3 изменённых файлов: 17 добавлений и 3 удалений

Просмотреть файл

Просмотреть файл

@ -1,10 +1,12 @@
### Description of Change ###
Describe your changes here.
Describe your changes here.
### Bugs Fixed ###
- Provide links to bugs here
- Related to issue #
Provide links to issues here. Ensure that a GitHub issue was created for your feature or bug fix before sending PR.
### API Changes ###
@ -29,4 +31,4 @@ Describe any non-bug related behavioral changes that may change how users app be
- [ ] Has samples (if omitted, state reason in description)
- [ ] Rebased on top of master at time of PR
- [ ] Changes adhere to coding standard
- [ ] Consolidate commits as makes sense
- [ ] Updated documentation ([see walkthrough](https://github.com/xamarin/Caboodle/wiki/Documenting-your-code-with-mdoc))

Просмотреть файл

@ -54,5 +54,17 @@ If building on Visual Studio 2017 simply open the solution and build the project
If using Visual Studio for Mac the project can be built at the command line with MSBuild. To change the project type that you are working with simply edit Caboodle.csproj and modify the TargetFrameworks for only the project type you want to use.
## FAQ
Here are some frequently asked questions about Caboodle.
### Where are the interfaces?
Some developers prefer an interface based programming model for dependency injection and testing of code. Caboodle does not offer any interfaces and delivers straight API access via direct classes and static properties/methods. There are many reasons that Caboodle is architected this way that include performance, simplicity, and ease of use. We also consider Caboodle a core API of the platform just like System classes, HttpClient, and our platform bindings.
Additionally, we found most developers create their own interfaces even when using a library that have interfaces. They do this so they have control over the APIs they actually use, which may be a very small percentage of the overall APIs in the library. Creating your own `ICaboodle` and exposing only the methods and properties you would like to use gives you more flexibility as Caboodle grows and adds additional APIs. Using this type of architecture will enable you to both have dependency injection and work with unit testing.
### Does Caboodle replace plugins?
Plugins offer a wide variety of cross-platform APIs for developers to use in their applications. Plugins will still continue to grow and flourish as they can offer a wider range of APIs and handle unique scenarios that Cabooble may not offer including additional platform support or add features unique to a single platform.
## License
Please see the [License](LICENSE).