|
1 |
| -.. include:: /stub-topic.txt |
| 1 | +Overview of .NET implementations |
| 2 | +================================ |
| 3 | + |
| 4 | +.NET Platform is, at its very core, a set of standards that can be implemented. There are |
| 5 | +various implementations, some coming from Microsoft, some coming from other companies and |
| 6 | +groups. |
| 7 | + |
| 8 | +.NET Core |
| 9 | +--------- |
| 10 | +.NET Core is a cloud-optimized, cross-platform implementation of the .NET Platform. It currently |
| 11 | +supports three main operating systems: Linux, Windows and OS X. |
| 12 | + |
| 13 | +There are several characteristics of .NET Core: |
| 14 | + |
| 15 | +**Cross-platform support** is the first important feature. For applications, it |
| 16 | +is important to use those platforms that will provide the best environment for |
| 17 | +their execution. Thus, having an application platform that can enable the app |
| 18 | +to be ran on different operating systems with minimal or no changes provides a |
| 19 | +significant boon. |
| 20 | + |
| 21 | +**Open Source** because it is proven to be a great way to enable a larger set of |
| 22 | +platforms, supported by community contribution. |
| 23 | + |
| 24 | +**Better packaging story** - the framework is distributed as a set of packages |
| 25 | +that developers can pick and choose from, rather than a single, |
| 26 | +monolithic platform. .NET Core is the first implementation of .NET Platform that is |
| 27 | +distributed via `NuGet <http://www.nuget.org/>`_ package manager. |
| 28 | + |
| 29 | +**Better application isolation** as one of the scenarios for .NET Core is to |
| 30 | +enable applications to "take" the needed runtime for their execution and deploy |
| 31 | +it with the application, not depending on shared components on the targeted |
| 32 | +machine. This plays well with the current trends of developing software |
| 33 | +and using container technologies like Docker for consolidation. |
| 34 | + |
| 35 | +.NET Framework |
| 36 | +-------------- |
| 37 | + |
| 38 | +The .NET Framework is the premier implementation of the .NET Platform available for |
| 39 | +Windows server and client developers. It is a very powerful, very mature framework, with |
| 40 | +a huge class library (known as the **Framework Class Libraries**) that supports |
| 41 | +a wide variety of applications and solutions on Windows. |
| 42 | + |
| 43 | +There are additional stacks built on top the .NET Framework that allow developers |
| 44 | +to build applications ranging from console applications, across rich client (WPF) |
| 45 | +applications to scalable web applications. |
| 46 | + |
| 47 | +`Windows Forms <https://msdn.microsoft.com/en-us/library/dd30h2yb(v=vs.110).aspx>`_ |
| 48 | +and `Windows Presentation Foundation (WPF) <https://msdn.microsoft.com/en-us/library/ms754130(v=vs.110).aspx>`_ |
| 49 | +are User Interface (UI) stacks that enable you to build desktop applications for Windows. |
| 50 | +Windows Forms' strength is in its rich support for common databinding scenarios as well as |
| 51 | +access to Windows' native user interface controls. WPF, on the other hand, allows you to exercise |
| 52 | +much more control over the look and feel of your application. Both of them allow for building very |
| 53 | +rich desktop applications that run on Windows, and you should pick the one that is suited for your |
| 54 | +use case. |
| 55 | + |
| 56 | +`Windows Communication Foundation (WCF) <https://msdn.microsoft.com/en-us/library/ms731082(v=vs.110).aspx>`_ |
| 57 | +is a set of libraries that comprise the middleware services stack on .NET Framework. |
| 58 | +It allows you to create services that can communicate through various supported |
| 59 | +protocols using various data formats, and that can be hosted in any process |
| 60 | +you choose. This leads to one of the major features of WCF: your services are |
| 61 | +not tied to any particular hosting strategy or approach. |
| 62 | + |
| 63 | +`ASP.NET <http://www.asp.net/>`_ is a web framework. Being a very rich framework, |
| 64 | +it has several distinct pieces which are used to produce modern and high-performance |
| 65 | +web applications. `ASP.NET Web Forms <http://www.asp.net/web-forms>`_ is a set |
| 66 | +of tools geared primarily towards developer productivity, allowing quick |
| 67 | +turnaround on web applications with a drag-and-drop surface |
| 68 | +reusing web controls for everything from loging in to data binding. |
| 69 | +`ASP.NET MVC <http://www.asp.net/mvc>`_ allows for a different approach, one that gives you greater |
| 70 | +control over the entire pipeline, from the HTTP layer to the user interface. |
| 71 | +`ASP.NET WebAPI <http://www.asp.net/web-api>`_ is a convention-based framework for creating REST |
| 72 | +services. It allows you to set-up a REST endpoint extremely fast. Finally, |
| 73 | +`SignalR <http://www.asp.net/signalr>`_ allows you to provide push-based communication to your web |
| 74 | +applications using `WebSocket <https://en.wikipedia.org/wiki/WebSocket>`_ protocol. |
| 75 | +Finally, `ASP.NET v5 <http://www.asp.net/vnext/>`_ is a new version of MVC and |
| 76 | +WebAPI frameworks that is built to run on top of .NET Core. |
| 77 | + |
| 78 | +.NET Native |
| 79 | +----------- |
| 80 | + |
| 81 | +.NET Native is not so much an "edition" of the .NET platform as it is a set of tools that |
| 82 | +allow developers to have different build outputs. The normal .NET source compilation process takes |
| 83 | +the source code written in one of the .NET languages (such as C#, Visual Basic, F# etc.) and |
| 84 | +produces something called "Intermediate Language". IL is then picked up by the runtime, |
| 85 | +and Just-In-Time compiled at run-time to machine code. |
| 86 | + |
| 87 | +.NET Native NET Native is an Ahead-of-Time (AOT) toolchain that compiles IL |
| 88 | +byte code to native machine code, so that when the code is executed, there is |
| 89 | +only "native" code running. This means that the resulting binary is what the OS executes; |
| 90 | +there is no JIT-ing, no runtime compilation. This leads to better performance, as well as |
| 91 | +some security benefits. |
| 92 | + |
| 93 | +.NET Native is the set of tools used to build .NET **Universal Windows Platform (UWP)** |
| 94 | +applications. |
| 95 | + |
| 96 | +Supported operating systems |
| 97 | +--------------------------- |
| 98 | + |
| 99 | +.NET Core is supported on Windows, Linux and OS X. |
| 100 | + |
| 101 | +.NET Framework is supported on Windows operating system. .NET Native is, |
| 102 | +at this time, supported on Windows. |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
2 | 107 |
|
3 |
| -|stub-icon| Overview of different editions of .NET |
4 |
| -================================================== |
5 | 108 |
|
6 |
| -.. include:: /stub-notice.txt |
|
0 commit comments