ASP. NET core Official program route and some framework technologies to be abolished

Source: Internet
Author: User
Tags app service sql client

Overview

Here is the timeline and roadmap for ASP. Note that dates and attributes are subject to change.

As a project as big as. NET core, it is difficult to predict accurately whether or not every plan has changed.

Even so, we plan to implement it openly and transparently so that our users can have the right expectations,

And for our users themselves in the implementation of the technology has better plans and arrangements

Publish Schedule
Release Publish Log
1.1 Q4 2016/q1 2017
1.2 Q1 2017/Q2 2017
Release version features 1.1
    • URL Rewriting middleware
    • Response Cache Middleware
    • Implementation of third-party di support
    • Weblistener Server (Windows only)
    • MVC Filters Middleware
    • Tag Helpers
    • View Pre-compilation
    • Cookie-based TempData provider
    • Improve Azure
      • APP Service Startup time Improvements
      • APP Service Log Provider
      • Azure Key Vault Provider
1.2
    • WebSockets
    • SignalR brother, I've been waiting for two years! (Linux does not support WebSocket mode)
    • Razor Pages (views not including MVC controllers)
    • Web API Security
Repeal Technology Overview

Although there is part of the existing. NET applications, especially ASP-based applications, will be able to migrate to. NET Core, but the other part is relatively simple. NET application may encounter some problems during the migration process. Some of the issues are obvious, such as migrating from WinForms or WPF applications to Universal Windows applications (UWP), while others are more subtle, which is related to the lower-level implementation of the. NET Framework core functionality.

Reflection

The reflection API has changed a lot in. NET Core. As in WINRT, the reflection function is divided into a lightweight version and a much more expensive version. Immo Landwerth, from Microsoft, wrote:

When we launched. NET Native, we leveraged a technology that allowed us to statically link applications to frameworks and third-party dependencies. To make this link function feasible, it must be able to find out which part of the framework functionality is not used in your app. For other technologies, such as C + +, the process is not complicated because the system does not have the dynamic ability to reflect. Of course, reflection is still supported in. NET native, but we want to make the platform as inexpensive as possible, meaning you don't have to add overhead to the features you don't need. This is particularly noticeable for reflection, because it imposes great limitations on the runtime and what the compiler can do based on static information.

Therefore, ideally, reflection should be an optional component in. NET core, and you can choose to completely discard it in your own application. The trouble is that System.Object is dependent on reflection when it is doing the object.gettype () operation. To break this dependency, we decided to let System.Type no longer show the entire reflection type information, but only the name of the type. This also means that System.Type in. NET core no longer includes APIs such as GetMembers (), but still exposes APIs such as name.

By means of an extension method called GetTypeInfo, you can get the information that can be obtained from the type object under normal circumstances. The TypeInfo class contains less information than it used to be, but Microsoft recently decided to reintroduce part of the reflection API in. NET core, a change that was outside the original plan.

To make the code easier to port, the. NET 4.5 and later versions provide some kind of support for TypeInfo, similar to the version used in. NET Core.

App Domain

APP domain was implemented in CORECLR, but not in. NET native. Since the implementation of app domain requires a lot of runtime feature support, there is currently no support plan for it. "For code isolation, we recommend implementing it through a process or container. For dynamic loading of assemblies, we recommend the use of the new Assemblyloadcontext class. ”

Remoting

Nowadays, few developers can remember the existence of the remoting library, let's not say how to use it. Even if they are still in use, they have been complaining about its performance, its high complexity, and the fragility of its overall performance.

Today, multiple. NET applications on the same machine are basically replaced by WCF, which provides better performance and can be used in pipelines or memory-mapped files. For cross-machine communication, Microsoft recommends "using a low-overhead plain text protocol, such as HTTP." As a result, Microsoft does not support the remoting plan in. NET core.

Serialization of

. NET core will support most serializers, such as data Contract serialization, XML serialization, and JSON. NET and protobuf-net. An important role to be excluded is binary serialization.

Through this decade of experience, we have finally learned that serialization is a very complex task, and the types that support serialization face a heavy burden in terms of compatibility. Therefore, we have decided to make serialization a protocol that will be implemented on the basis of the available public APIs. However, the implementation of binary serialization requires an in-depth understanding of the type itself, as it can serialize the entire object graph, even including private state information.

Sand Box

In theory, a sandbox is an excellent idea that allows partial trust code to execute in a secure manner. In practice, however, it is very difficult to apply it correctly, even if it is a tiny bit of error, which can lead to security vulnerabilities. Immo Landwerth also said that it "makes implementation more difficult and often negatively affects the performance of applications that do not use sandboxes." ”

The recommended alternative is to use a separate process to run these processes with a user account with limited permissions. In this way, the runtime does not have to repeat some expensive permissions checks because the operating system has done this for you.

Other Components

Microsoft is considering opening up the components listed in the table below and porting them to. NET Core.

    • System.Data. While its underlying layer functionality, the provider model and SQL client, has become part of. NET core, some features are still not available, such as support for schema, DataTable, and DataSet.

    • System.DirectoryServices. NET Core does not currently support communicating with LDAP or Active Directory through this component.

    • System.Drawing. Although it should be strictly a client-side API, there are a number of developers on the server that use the drawing API to generate thumbnails or watermarks. We currently do not support the use of these APIs in. NET Core.

    • System.Transactions. Although ADO supports transactions, it does not include support for distributed transactions, which includes the concept of atmosphere transactions (ambient transaction) and resource solicitation (enlistment).

    • System.Xml.Xsl and System.Xml.Schema. NET Core Support XmlDocument and XDocument, including XPath, introduced by LINQ. However, XSD (xmlschema) and XSLT (XslTransform) are not supported at this time.

    • System.Net.Mail. e-mail delivery via these APIs in. NET core is not currently supported.

    • System.IO.Ports. NET Core does not currently support communication with a serialized port.

    • System.workflow. Windows Workflow Foundation (WF) is not yet available in. NET Core.

    • System.Xaml. When developing a UWP app, developers will use the WINRT XAML API. Therefore,. NET core does not currently support the managed XAML framework, which includes parsing XAML and instantiating the functionality that describes the object graph.

Are you interested in helping us to transplant a component? Some of the source code implemented by the. NET Framework has been open source through the MIT license as part of reference source. We are trying to get the community to support our transplant efforts. If you would like to participate in this project, please send an email to [email protected].

Detail Description: Discontinued technology in. NET Core

ASP. NET core Official program route and some framework technologies to be abolished

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.