Understanding. NET 2015 and. net2015
After building last year, I sent an article Exciting Times. and since then, I have been honored to be able to communicate.. NET team, including runtime, framework, language, and compiler. Although my focus has been moved more to the internal Community last year, I have spent some time helping, just like helping with internal O & M meetings for my peers. NET Foundation has made some progress and learned a lot about the open source community and learned all about us.. NET Foundation project. Well, I'm happy that I got married, which is a turning point in my life. I became a "pioneer" or a "bridge" from a community "missionary ". I really like Alex Hillman's motto: Tummler.
Since we are entering the BUILD process, I am even more excited about the progress we have made, especially about the. NET platform itself, as well as the open-source team approach. Now we have a lot of information about. NET trend search, so I think I have written an advanced "disruptive" blog to help people understand the components and how to participate in these projects (during development ). In other words, this will be a good place to start learning. NET 2015. At least this is what I want to see!
. NET 2015-10,000 foot views
On a very advanced level, this is the main component outline that falls under the. NET 2015 umbrella.
Importantly, we need to note that there are three major. NET core investment targets, which are enough to influence the development of major components.
. NET Innovation (. NET Innovation)-brings about platform promotion and Innovation ). We will make each layer more modern (more scientific, practical, and popular), including languages, compilers, base class libraries, application models, runtime, and tools.
Open Source (Open Source)-introduce engineering processes into an Open environment, develop and reproduce a vibrant ecosystem with the help of the community.
Cross platform (Cross-platform)-expands. NET to Linux and Mac platforms, as our consumers gradually work in a variety of environments.
Main Parts of. NET 2015
Frameworks and Runtimes (Framework and runtime)
The. NET Framework is a managed executable environment that provides many services for applications to run. It has two main parts: the Common Language Runtime (CLR), which is the executable engine used to process running applications; the other is. NET Framework class library, which provides a tested and reusable code for developers to call in their own software.
. NET Framework 4.6 is built on top of 4.5.2 and added new APIs, which improves event tracking and fixes multiple bugs. This is the latest complete. NET Framework that we know so far .. NET Framework 4.6 is directly included in Windows 10 and pushed to Windows Update of earlier versions (Vista and later). See. NET Framework 2015 Preview.
. NET Core 5 is a comprehensive goal. The modular framework can be used by a wide range of application models and platforms. It is also open-source and can be modularized and locally deployed at the same time, in addition, Microsoft will support Windows, Linux, and Mac OS X systems. There is such a set of refactoring sets that contain the base class library (corefx) and the runtime (coreclr). CORECLR contains a brand new JIT Compiler ("RyuJIT "),. NET garbage collector, local interaction and many other.. NET runtime component. Today,. NET Core is created and running on Windows. In the next few months, we will be adding components with platform features to Linux and Mac implementation. Check: Introducing. NET Core and CoreCLR is now Open Source.
If you only read one external link in this article, please be sure to read this Introducing. NET Core. Immo will explain a lot in detail why we need it and how to adapt.
Compilers (compiler)
The. NET Compiler Platform (. NET Platform Compiler) ("Roslyn") opens C # source code and a Visual Basic Compiler rich in many analytical API code. In this way, you can build code analysis tools by using APIs similar to those used by !). Roslyn will generate an independent intermediate language (IL) for the platform and. NET 2015 is used, including Framework and Core. in the released version, the entire. the NET Framework will be compiled using Roslyn. Key languages such as VB and C # are no exception. Look: Roslyn on GitHub. F # language and compiler are equally innovative. See F # on GitHub.
"RyuJIT" is a new default (JIT) compiler on x64. NET. During runtime, the JIT compiler uses the IL language to first compile for a specific Architecture Machine. For desktop and server scenarios, RyuJIT greatly modifies the 64-bit JIT compiler to reduce the startup time. It also supports SIMD (single command and multi-data), which allows parallel mathematical operations on the values in the set. This can greatly improve the computing speed for some dependent vector operations (for example, software such as MATLAB relies on vectorized programming ). View: The next-generation JIT compiler for. NET
. NET Native (Native) Compiling C # into the form of machine code will make its performance comparable to C ++, so developers will benefit from. NET Framework brings about powerful productivity, affinity, and performance of local code. For example, apps are developed Based on. NET and compiled into an intermediate language (IL ). At runtime, the (JIT) compiler converts it into a machine code. In contrast,. NET Native is a pre-compiler used to directly compile an app into machine code and only spend a small amount of CLR running time. After compilation on. NET Native, the app on the popular Microsoft app Store starts up 60% faster and uses 15-20% less memory. General Microsoft apps will run in. NET Native (ARM, x86, x64). See: Compiling Apps with. NET Native.
App Models (Application Model)
The application model extends the Public Libraries of. NET Framework 4.6 and. NET core 5. Windows Forms, WPF, ASP. NET Web Forms, MVC 5, and other well-known application models will become. some new features of NET Framework 4.6 will be available to you, thanks to language innovations, including the Roslyn compiler and RyuJIT. There will be many changes in. NET 4.6 as a whole. View: ASP. NET Overview-What about Web Forms ?, The Roadmap for WPF and. NET Framework 2015 Preview
According to a slight disclosure, there will be a new application model specifically designed to carry on the optimized. NET core 5.
ASP. NET 5 is another. NET application model dedicated to building modern web applications. This model is re-established to provide an optimized development framework to support applications that can be deployed on the cloud or for internal transactions. It is composed of many components with minimal overhead, so it can be more flexible when building a solution. ASP. NET 5 can be run on. NET Framework 4.6 or. NET Core 5. Currently, ASP. NET 5 runs on Linux and Mac through Mono. One day. NET Core supports Linux and Mac, so ASP. NET 5 will easily run on. NET Core of those platforms. View: ASP. NET 5 Overview and Introducing ASP. NET 5
Universal Windows apps (a unified Microsoft Application) is an application model that allows you to share code (8.1 +) between Windows Phone and Windows app (8.1 +) and deploy it in Microsoft stores. Universal Windows apps will run on. NET Native. View: Building universal Windows apps for all Windows devices and Getting Started with. NET Native
So what is. NET Core?
. NET Core 5 is a comprehensive goal. The modular framework can be used by a wide range of application models and platforms, because it has such a set that contains the base class library (corefx) and the runtime (coreclr). The APIs used by the. NET Core base library (BCL) is the same for different application models. APIs does not look the same-they share the same implementation. The main APIs/programs are divided into modules in large quantities and are platform independent.
App-local (or at the same time) deployment is also a key feature of. NET Core. You can choose a package related to your app to deploy the app. The modular packages can be obtained through NuGet. This means that your program will be isolated and not affected by the full version of many. NET frameworks on the machine. Your APP can be deployed as brilliantly as the x-copy command, without interrupting your mind.
At the same time,. NET Core will support Windows, Linux and Mac OS X systems with the help of Microsoft. Today,. NET Core is built and running on Windows, but we will be adding some platform-specific components to Linux and Mac implementations. And all are open-source. Among them, it is very important to guarantee the foundation to win cross-platform platforms and build a more powerful ecosystem.
Image
From programming to running programs-. NET Core development
I think it is always beneficial to learn how to make a mental model/process. The following describes how to develop. NET Core-based applications, from coding, generation, and debugging loops to Application Deployment and execution .. The deployment and execution of different application models are different.
When writing code, you need to reference a considerable number of modules you need in the BCL and application models. Roslyn is such a compiler that can process your code and generate an independent intermediate language (IL) for the platform ). At the end of the compilation pipeline, we provide a rich set of APIS for you to thoroughly analyze your code. If you are using Visual Studio, there will be tons of new IDE features waiting for you to better use these APIs to meet your programming production journey.
If you build a universal Windows application, the. NET Native tool chain will be responsible for the rest. The reference will be locally deployed to the local image along with the creation of your app in the shortest run time. If you are creating an ASP. NET 5 application, the reference and CoreCLR will be deployed to the server along with the app localization. JIT compilation occurs when RyuJIT is used.
In addition, ASP. NET 5 allows you to make some changes in the Code and save the changes, refresh the browser, without explicitly recreating the project. Visual Studio uses Roslyn to support dynamic compilation. You can still have all the structs and compiled frameworks, but the development experience is just like interpreting (very urgent ).
Note: If you are developing for the complete. NET Framework 4.6, you will still be able to enjoy language innovation and the Roslyn compiler. Application deployment has not changed from the current working method. It still relies on the complete version of the framework installed on the machine, but JIT compilation uses the optimized JIT compiler-RyuJIT.
What is open now?
Many. NET 2015 components are open-source and guided by the. NET Foundation. in these projects, we are actively working on opening up the community.
You can see repos and activity for all projects supported by the. NET Foundation --- GitHub: http://dotnet.github.io/
This is a good place to start. View the detailed Readme and contribution wizard.
ASP. NET 5: https://github.com/aspnet/Home
. NET Core CLR: https://github.com/dotnet/coreclr
. NET Core Framework: https://github.com/dotnet/corefx
Roslyn: https://github.com/dotnet/roslyn
It is worth noting that the complete. NET Framework is "Open Source ". That is to say, we have not contributed anything, and we have not completely released it under the protection of the License recognized by OSI. However, you can explore the source code here (it's so tiring to talk to foreigners ...): http://referencesource.microsoft.com/
Open Engineering
OSS (open-source software) is not a novelty for Microsoft, but it is a brand new concept for. NET runtime and libraries. This is a very big project. It took 15 years, so many people have been working internally for so long, not only by porting code, but also by open channels. This is time consuming. This is why the team started from a small part of the base class library. At the same time, more and more things have been released along the way, and of course many things have been learned. Those learning and the best implementation have already moved across the entire team. In the contribution list, we have to learn to be modest: overwhelming support and contributions so far.
You may think, "Today I don't have enough time to build my own APP, let alone the CLR code !" Well, I thought of it with you! You can select the method you want to participate in the process. You do not need to write code to become a contributor. (But You Can) raise a question, evaluate a proposal, and answer a question. Or just take a look at it.
You may also think, "I don't want to lose the conciseness, high quality, and support that I used in the past." Don't worry! We are still dedicated to the same level of quality and service. Let's just think about it. All we do is to open up the project. (However) What we have done internally to build high-quality software is still carried out in the same place and environment, but now we are making public.
I am really excited about the new culture of my team and the future of. NET.
Enjoy it!
[Update 2/26/2015]-I have noticed that dotNetConf 2015 is coming, so you can learn more here. This is a free virtual meeting sponsored by speakers from the community and product team. You can watch streaming media on September 19 and September 19 ).
Address: http://blogs.msdn.com/ B /bethmassi/archive/2015/02/25/understanding-net-2015.aspx