Quickly get started with. NET Core

Source: Internet
Author: User

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 cloud computing era, in the cloud platform pass and Sass also has undergone a large 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:


Oneaspnet


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.


Quickly get started with. NET Core

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.