Conversation
========================= | ||
|
||
The .NET binary format is based on the Windows [PE file](http://en.wikipedia.org/wiki/Portable_Executable) format. In fact, .NET class libraries are conformant Windows PEs, and appear on first glance to be Windows dynamic link libraries (DLLs). This is a very useful characteristic on Windows, where they can masquerade as native DLLs and get some of the same treatment (e.g. OS load, PE tools). | ||
CPU-agnostic and OS-agnostic. It is also fully specified and standardized. As a result, you can use class libraries within any application using any .NET implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"CPU-agnostic and OS-agnostic." <- actual sentence missing here
I made a first pass through the doc and left some comments. Looks like a great summary of what makes .NET an awesome dev platform, thanks 👍 |
Glad you like the primer, at least in concept. Lots of writing left to do. I suspect it will take a while to get all the key features adequately documented. I wrote the initial version on a plane in a text editor, which explains the spelling mistakes and the bad C# syntax. Thanks for noticing all of that. |
60ab41f
to
13f811d
Compare
- Add .NET Primer Intro (WIP) - Add Class libraries doc (WIP) - Add Garbage Collection doc (WIP) - Add Assembly format doc (WIP)
13f811d
to
9c8274a
Compare
|
||
You choose a platform configuration when you create a portable library. These are the set of platforms that you need to support (e.g. .NET Framework 4.5+, Windows Phone 8.0+). The more platforms you opt to support, the fewer APIs and fewer platform assumptions you can make, the lowest common denominator. This characteristic can be confusing at first, since people often think "more is better", but find that more supported platforms results in fewer available APIs. | ||
|
||
Many library developers have switched from producing multiple platform-specific libraries from one source (using conditional compilation directives) to portable libraries. There are several techniques for accessing platform-specific functionality within portable libraries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd recommend listing or linking to descriptions of the techniques to access platform specific functionality from a PCL. A good overview of the techniques is here. Over the past year, the bait and switch approach has gained popularity and seems to be the most widely accepted technique for reusable libraries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great suggestion. Fixed.
028977c
to
30612dc
Compare
32116f2
to
9f6b193
Compare
Moving to https://github.com/dotnet/core-docs. Please keep the dotnet-primer branch alive until we've completed the move. |
I've started a ".NET Primer". It's intended as an approachable entry into learning about .NET, generally and about specific features. It's a nice complement to "Book of the Runtime", which is intended as a deep-dive for CoreCLR developers. The Primer is for any .NET developer.
This PR adds an initial set of (WIP) documents. I need your help in bringing the docs to quality and to add a bunch more. My intention is to make this document set expansive. It won't be MSDN, but will cover the key features of .NET. The docs should be conceptual in nature, contains lots of code samples, as appropriate, but not listing of APIs.
Please:
I have a set of .NET conceptual documents in markdown already (from another project). If you want to add a Primer chapter on, say, value types, please tell me. I may have a document for you to start with (not that you have to use any of it, but it's good to check it out first). I will be proactively adding these documents as I can. The GC chapter is one such document.
I intend to work in the dotnet-primer branch until the documents have hit a minimum quality level. They are not there yet! I'll merge the documents into master at that time, and we'll keep on rinse-repeating. Please help.