Connect () on November 12, 2014, announced at the developer event. NET stack is open source based on the MIT protocol and offers open source assurance hosted on GitHub. The version at that time was far from the final goal, but one thing was certain that it was a completely different framework than the. NET Framework 4.x.
This has aroused many doubts and controversies in the community. The reason for drastic changes is obvious: the. NET Framework 4.x has not been able to take full advantage of the latest technology, and is not fully satisfied with the development of cross-platform, cloud-based large-scale application requirements, and a new framework can let. NET developers to develop Web services and applications in a much simpler and more straightforward way. However, there was general concern. This is the biggest nightmare for developers if you upgrade your third-party software code base to the latest version and then cause problems that are not backwards compatible. The migration issue seems daunting, and even impossible, for the GitHub community to move on, and the Microsoft Dotnet team, based on the unified. NET three platforms, makes our migrations easier and allows us to fully enjoy the benefits of. NET Core.
The evolution of the Web--the era of the great front
In recent years, the web has undergone a dramatic evolution, represented by Nodejs, and we know that JavaScript originally developed the language when the goal was only to write simple client script, but over time, its role has undergone a great transformation. Now, we can use the API provided by HTML5 to process audio and video files, communicate with full-duplex channels and external services, transfer and process chunks of raw data, and so on. We have come to the big front-end era, the big front-end era is the era of web unification, using HTML5 or 6 or even 7, not only can develop the traditional website, do cool Web page dynamic effect, can adopt BS architecture application, develop mobile-side web application, mobile-end native application, Smart devices (such as wearable smart watches, wearable smart clothes), etc.
As the Web Services development Framework on the. NET core platform, the ASP. asp. ASP., built on a fully open-source web platform with a modular, embedded dependency injection and integrated with any front-end framework, is also designed to meet the big front-end era. Programming model for API/SIGNALR.
If the. NET Framework 4.x/mono platform adapts to the large front-end era, internal implementations can become quite complex. Because the framework has begun to be designed in a way that is not based on such an era. Think of our cumbersome WebForm framework is the product of the Vb/dephi popular heavy-client era, Microsoft hard to move him to the web, so that ASP. NET core already does not support the Web Form,asp.net The MVC platform is a development platform redesigned by Microsoft to adapt to the web era, evolving from ASP. 1.0 to ASP. 6.0, which is the evolutionary process of the web, where there are three platforms for different scenarios of the Web Mvc,web APIs and SIGNALR. We've come to the big front-end era, so the ASP is considering re-engineering the platform.
Cloud computing era
In recent years, we have entered the era of cloud computing, on the cloud platform pass and Sass has also undergone a significant evolution, with Docker as the representative. Microsoft's Azure platform, Google's Gae, and so the major cloud computing vendors have provided the pass platform, our application to migrate to such a platform needs to be rewritten. Docker, a revolution in cloud computing, can be thought of as a container for the Internet, with the flexibility to encapsulate software and make it more rapid to spread. This is a big deal for the modern internet, because the software runs on hundreds of thousands of machines. Docker can change the way we develop our software, making it easy for everyone to take advantage of a lot of computing power. Docker allows developers to focus on developing software without having to think about where to run their software, which is where cloud computing is headed. It is sufficient for developers to consider the application itself.
. NET is difficult to access Docker-represented cloud development platforms, especially Windows does not support Docker, because that is entirely the cornerstone of Internet services--linux system has the technology, Microsoft in order to adapt to such a cloud trend, in Windows Server 2016/ Docker is supported on Windows 10 and the application run platform for cross-platform. NET Core is being re-developed. NET is actually a series of frameworks, each for a specific platform, and owned by different Microsoft teams, inevitably creating differences in API and implementation.. NET core is a new branch of the. NET Framework, Designed to provide a common foundation for platform-specific extensions. Each extension provides APIs that can be used only for a specific application model, for example, targeting. NET Native Application WINRT Interop extensions or MVC for ASP. This common layer is called the Unified base Class library (BCL), which is located in a contained. NET Runtime. Another interesting change that comes with the. NET core is the use of NuGet as a basic delivery system.. NET core will be delivered as a collection of fine-grained packages, one assembly per package. At the same time, Microsoft will provide a. NET core bundle. Essentially, it's just Microsoft-tested, specific. NET version of all packages, for those scenarios that do not require additional freedom to mix and match nuget packages. The use of NuGet and the transition to a more modular design make it possible for the. NET core platform to turn into an application-local framework. "In this way, each application will only need to deploy the parts of the framework that it needs. The main benefit of this is that when an application needs to upgrade. NET core, it will not break compatibility with other existing applications, and the. NET Framework, which is shared by the entire machine, will be upgraded.
Lessons learned from the. NET Framework 4.x/mono
The framework has to be re-implemented to keep up with the trend, but one thing we must remember: we are not from scratch, we have the experience learned from the. NET Framework 4.x/mono Framework. Since 2009, it's not just web evolution, we're building more and more complex applications. Today, cloud-based applications are no longer a novelty, but more like standard for all business Web applications.
With the. NET Framework 4.x/mono, we can already build efficient, large-scale cloud applications. However, in a large number of cases, we have found that it has serious flaws, especially in China, a large number of internet companies are constantly from. NET platform to the Java platform, the big cloud platform vendors also do not support the. NET Framework platform, only poor Windows Azure support. In order to meet these new needs, Microsoft. NET team draws a lot of experience from the community and begins to design with new ideas, we should see the new features provided by. NET Core, as well as the development of the. NET Framework 4.x, especially the Mono project, and then think about it, In the past few years, those have troubled us. NET developer's problem has been solved.
A unified programming model
We have 4 Web programming models on. NET framework/mono, ASP. WebForm, ASP, ASP, and SignalR. Different scenarios for Web development require different programming models, so that we can learn at a high cost, leading to a lot of developers in these 4 programming models that are only part of it, especially signalr many people don't know. Microsoft has also been pushing the one ASP. NET strategy, take a look at this picture:
My applications are often mixed, including not only Web Form,mvc but also signalr and Web APIs, our applications are complex, and ASP. NET core redesign, ASP. NET MVC, ASP. The integration of API and SIGNALR programming model, the direct abolition of outdated webforms, let us only need to use a unified model for Web development. At the same time for our large front-end era features, so that we can easily integrate any front-end framework.
Dependency Injection
In the field of object-oriented, dependency injection is one of the five object-oriented principles, and there is a large framework of the inversion of Control (IOC) mechanism in the community of. NET Framework/mono. Dependency injection can bring many benefits, such as testability, better code structure and modularity, and more clarity. Although a MEF has been brought within the. NET Framework/mono framework and is not our mandatory option, in. NET core we can say that a new IOC template Defined under Microsoft.Extensions.DependencyInjection. Provides a standard set of interfaces. and provides the default implementation. and a wide range of uses, everywhere embodies the IOC design ideas.
Open source and cross-platform
On GitHub, there are more than 100 code libraries related to. NET Core, distributed across multiple accounts. A large number of developers from all over the world, including China, are involved in the development process of. NET Core: The development team will follow up with the community on a weekly basis, discuss plans, answer questions from other developers online, and incorporate other developer-contributed code. I am also fortunate to witness this process, and actually participate in the contribution of several of these projects.
The need for cross-platform is real: we use Windows or MacOS for development work, and we use Linux as a server environment, we develop a set of software products running on the server, we hope to leave the choice of server platform free to the customer ... As a result, cross-platform is also an essential element for modern, lightweight development technology stacks. The typical lightweight development platform is based on dynamic language, such as PHP, Python or node. js, which is due to the "dynamic language" characteristics, in some cases appear too flexible, difficult to control, in the construction of quality and development efficiency balance is not easy.
For. NET Core, the goal of cross-platform is not much of a historical burden, and the. NET Framework can only run on Windows platforms, and the Mono project is an open source community project that runs for years. In the process of developing. NET Core itself, the development team has long used the practice of continuous integration to ensure that the code is compatible with multiple platforms. During the development process, the team maintains several sample projects synchronously, such as the classic Musicstore, to return to core features and ensure stability in time. Since two years ago, the alpha, beta, and RC versions have been released, allowing developers to experience the new runtime in advance, as well as to receive early monitoring and help from the community with the GitHub open source platform. With these series of measures, the ability of the. NET Core cross-platform is fully protected by fact
High productivity Platform
The newly built. NET Core has some key features that are attractive. For example, no coupling with a specific operating system, can be compiled into native platform code, the operation is very efficient, fully modular, built-in Package manager for management of dependencies, provide a complete and standardized command-line toolset, and new technologies such as Docker seamlessly integrated. Although it is a new development platform, but directly using the latest version of star static language such as C # as the development language, the full use of the more than 10 years of the design concept of the. NET platform, the past decades of various programming languages and development model of the essence of the last few years to develop into a new platform for the next generation of development work.
A set of ecosystem tools for non-Windows environments has been released over the same period, including the cross-platform editor Visual Studio Code, the high performance Web server Kestrel and the Continuous integration compiler tool Cake, etc., Visual Studio 2017 Currently in the preview phase, will soon usher in RC, to our Windows development tools to improve the support.
Abroad, many developers are already actively responding to the. NET Core roadmap, publishing a. NET core-based runtime class library, providing compatible. NET Core SDKs, and more. Popular class libraries and tools such as common Xunit.net, Moq, AUTOFAC, MongoDB, and RavenDB have already provided support for. NET Core, or are actively developing new versions. The exchange of the domestic. NET Core in the community is also being rolled out steadily. Many developers have begun to work on document translation, source learning, and practice sharing, as well as a number of open source projects. There have been many articles on. NET core on the blog site, and in the public number "DotNET cross-platform" I run, we have been giving priority to the articles and information of. NET Core.
Original address: http://www.cnblogs.com/shanyou/p/6049630.html
Quickly get started with. NET Core