• Conceptual Overview (.NET 5概念描述)


                                                                           Conceptual Overview

     Introduction to ASP.NET 5(ASP.NET 5的简述)

           ASP.NET 5是明显是ASP.NET的重新设计。标题介绍了ASP.NET 5的新概念并解释他如果帮助您开发现在Web应用程序。

    What is ASP.NET 5?(什么是ASP.NET 5)

           ASP.NET 5是新的开源和跨平台的框架,用它可以是构建现代基于云的Web应用程序。我们创建它完全为部署在云上或者本地运行的应用程序提供优化开发框架。它由最小开销的模块化组件组成,所以在您构建解决方案时,保留了灵活性。您可以开发并跨平台在Windows,Linux和MAC上运行ASP.NET 5应用程序。ASP.NET 5在GitHub是完全开源的。

    Why build ASP.NET 5?(为什么要创建ASP.NET 5)

          ASP.NET 1.0的第一个预览版差不多15年前就出来了。从那时起,上百万的开发人员使用它来构建和运行Web应用程序,多年来,我们添加和改进了它的很多功能。

          使用ASP.NET 5,我们正做大量的架构变化,使核心Web框架更加精简,更具有模块化。ASP.NET 5不再基于System.Web.dll,而是基于一套比较良好的NuGet包,允许您优化您的应用程序达到您需要的样子。您可以减少应用程序的对外交互,提高安全性,减少服务器负载来提升你真正需要用到开销模型的性能。

             ASP.NET 5的产生是符合现代Web应用程序的需求,并统一了构建WebUI和以现代客户端框架与开发工作流为一体的API,同时,ASP.NET 5通过引入相关环境配置和提供内置依赖注入支持而建立成cloud-ready。

               为了吸引更多的开发商,ASP.NET 5支持跨平台开发,可以在windows,Mac和Linun上开发,ASP.NET 5是开源的,并鼓励社区的完善和参与。在Visual Studio中,ASP.NET 5提供了一个新的敏捷项目系统,同时提供了一个完整的命令符接口,这样就可以用自己选择的工具去开发了。

              总之,ASP.NET 5做了以下基础改进:

               1.新的轻量级和HTTP模块化请求管道

               2.能宿主在IIS中或在自己的进程中。

               3.可以在.NET Core上建立多个应用版本。

               4.装载NuGet包

               5.集成支持创建和使用NuGet包

               6.将Web UI和Web APIs整合在Web堆栈中

               7.基于Cloud-ready环境的设置

               8.支持内置依赖注入

               9.简化现代Web开发的新工具

               10.可以创建和运行在Windows,Mac和Linux的跨平台Asp.NET应用程序

                11.开源和社区聚焦

    Application anatomy(应用分析)

             ASP.NET 5创建和运行在新的.NET执行环境(DNX),每个ASP.NET 5项目都是DNX项目,ASP.NET 5是通过ASP.NET Application Hosting包集成在DNX上。

             ASP.NET 5定义了一个公共的Startup类:

            

    public class Startup
    {
    public void ConfigureServices(IServiceCollection services)
    {

    }
    public void Configure(IApplicationBuilder app)
    {

    }
    public static void Main(string[] args) => WebApplication.Run<Startup>(args); }

         ConfigureServices方法定义了应用程序中使用的服务,Configure方法定义了组成请求管道的中间件。更多的详情请看 Understanding ASP.NET 5 Web Apps。

     Services(服务)

             服务在应用程序中能满足通用需求的组件。服务通过依赖注入来使用,ASP.NET 5包含支持创建默认构造函数注入的简单IOC,但是很容易用您选择的IOC来代替。更多详情请看 Dependency Injection。

             ASP.NET 5中的服务有3种类型,单例,生命周期范围和瞬态。瞬态服务是由每次从容器中请求来创建的。生命周期范围服务仅仅在当前生命周期范围内不存在是创建。对于Web应用程序来说,每个请求创建一个容器的生命周期,所以您可以认为生命周期服务是每次请求创建一个,单例服务是仅仅创建一次。

    Middleware(中间组件)

            在ASP.NET 5中,您用中间组件组成每次请求。ASP.NET 5中间组件在HttpContext中执行异步逻辑,并且可以按顺序选择下一个中间件或者直接终止。通常使用用中间组件通过Configure方法中相应的IApplicationBuilder来调用相应的扩展方法。

            ASP.NET提供了一组中间件:

             1.静态文件

             2.路由

             3.日志的相关功能(诊断错误)

             4.权限

            您也可以写自己的中间件。

            你在ASP.NET 5中使用任何基于OWIN的中间件,详情请看OWIN。

    Servers(服务)

           ASP.NET应用程序托管模型并没有直接监听请求,而是依赖于一组功能接口的HTTP服务实现应用程序的表面请求,这些功能接口能组成一个HttpContext.

           ASP.NET 5的服务可以运行在IIS上或运行在自己主机的进程中。在Windows中,可以使用基于HTTP.sys的WebListener服务将应用程序宿主在IIS之外,也可以通过跨平台Kestrel Web服务将应用程序宿主在非Windows环境中。

    Web root(Web 根目录)

           Web root位于项目的跟位置,处理HTTP请求(例如:处理静态文件请求)。ASP.NET 5应用程序是在Project.json文件中的"webroot"属性中配置Web根目录。

    Configuration(配置)

          ASP.NET 5用新的配置模型来处理简单的键值对,而不是在 System.Configuration或者web.config中处理。新的配置模型从一组有序的配置提供程序拉取信息。内置的配置提供程序支持多种文件格式(XML,JSON,INI)和环境相关的环境变量。也可以写自己定义的配置提供程序,开发和生产环境在ASP.NET 5中是一流的概念,而且可以使用环境变量设置。

    var builder = new ConfigurationBuilder() 
    AddJsonFile("appsettings.json") 
    AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
    
    if (env.IsDevelopment()) 
     { 
         // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709 
    builder.AddUserSecrets(); } builder.AddEnvironmentVariables(); Configuration = builder.Build();

         关于新配置系统的更多详情请看 Configuration ,关于在ASP.NET 5环境中如何工作的更多信息请看Working with Multiple Environments (后面章节)。

    注:翻译过程中有不对的地方请及时和我联系,我会尽快改正,方便更多的人学习

  • 相关阅读:
    【转载】设计模式_单例模式(学习)
    【转载】设计模式_抽象工厂模式(学习)
    【转载】设计模式_工厂方法(学习)
    【转载】设计模式_六大原则(学习)
    【转载】设计模式_简单工厂模式(学习)
    java有用的启动参数
    linux freetds操作mssql
    ansible 控制windows
    nginx 版本介绍
    tar 压缩去除目录
  • 原文地址:https://www.cnblogs.com/wmj01/p/5221033.html
Copyright © 2020-2023  润新知