ASP.NET Core 运行原理剖析 (转载)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ASP.NET Core 运行原理剖析 (转载),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3129字,纯文字阅读大概需要5分钟。
内容图文
1.1. 概述
在ASP.NET Core之前,ASP.NET Framework应用程序由IIS加载。Web应用程序的入口点由InetMgr.exe创建并调用托管。以初始化过程中触发HttpApplication.Application_Start()事件。开发人员第一次执行代码的机会是处理Application_StartGlobal.asax中的事件。在ASP.NET Core中,Global.asax文件不再可用,已被新的初始化过程替代。
ASP.NET Core 应用程序是在.NET Core 控制台程序下调用特定的库,这是ASP.NET Core应用程序开发的根本变化。所有的ASP.NET托管库都是从Program开始执行,而不是由IIS托管。也就是说.NET工具链可以同时用于.NET Core控制台应用程序和ASP.NET Core应用程序。
namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() //指定宿主程序为Kestrel .UseStartup<Startup>()// 调用Startup.cs类下的Configure 和 ConfigureServices .Build(); host.Run(); } } }
以上是Program类中Main方法的示例代码,Main方法负责初始化Web主机,调用Startup和执行应用程序。主机将调用Startup类下面的Configure和ConfigureServices方法。
1.2. 文件配置
1.2.1. Starup文件配置
对于一个ASP.NET Core 程序而言,Startup 类是必须的。ASP.NET Core在程序启动时会从Program类中开始执行,然后再找到UseStartup<Startup>中找到配置的Startup的类,如果不指定Startup类会导致启动失败。
在Startup
中必须定义Configure
方法,而ConfigureServices
方法则是可选的,方法会在程序第一次启动时被调用,类似传统的ASP.NET MVC的路由和应用程序状态均可在Startup
中配置,也可以在此初始化所需中间件。
Configure
在ASP.NET Core 应用程序中Configure方法用于指定中间件以什么样的形式响应HTTP请求。
namespace aspnetcoreapp { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }
ASP.NET Core是通过对IApplicationBuilder进行扩展来构建中间件的, 上面代码中每个use扩展方法都是将中间件添加到请求管道。也可以给Configure方法附加服务(如:IHostingEnvironment)这些服务在ConfigureServices方法中被初始化。
用ASP.NET Core项目模板添加的应用程序,默认添加的几个中间件:
- UseStaticFiles 允许应用程序提供静态资源。
- UseMvc 将MVC添加到管道并允许配置路由。
ConfigureServices
ConfigureServices方法是应用程序运行时将服务添加到容器中,其实就是注册ASP.NET Core的中间件中需要的依赖注入,用ASP.NET Core项目模板的时候默认会将MVC的服务添加到容器中:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); }
接下来举一个例子,在实际应用中ConfigureServices方法和Configure方法配合使用,在ASP.NET Core中有一个UI开发框架Telerik UI for ASP.NET Core,它有60多个UI组件,不仅支持ASP.NET Core的跨平台布署模式,而且还支持前端自适应渲染。
当在项目中应用Telerik UI的时候,首先在项目中引用相关的包,然后再在ConfigureServices方法中将Kendo UI服务添加到容器中:
public void ConfigureServices(IServiceCollection services){ services.AddKendo(); }
接下来,在Configure中设置Kendo UI
public void Configure(IApplicationBuilder app, IHostingEnvironment env){ //... app.UseKendo(env); }
内容总结
以上是互联网集市为您收集整理的ASP.NET Core 运行原理剖析 (转载)全部内容,希望文章能够帮你解决ASP.NET Core 运行原理剖析 (转载)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。