什么是Asp.Net Core?
ASP.NET Core 是.NET Framework的下一代版本,是一个新的开源和跨平台的框架,用于构建如 Web
应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。 ASP.NET Core 应用可运行于 .NET Core
和完整的 .NET Framework 之上。 构建它的目的是为那些部署在云端或者内部运行的应用提供一个优化的开发框架。
ASP.NET Core有何新特点?
- 一个统一的方式用于构建 web UI 和 web APIs
- 集成 现代的客户端开发框架 和开发流程
- 一个适用于云的,基于环境的 配置系统
- 内置的 依赖注入
- 新型的轻量级的、模块化 HTTP 请求管道
- 运行于 IIS 或者自宿主(self-host)于你自己的进程的能力
- 基于支持真正的 side-by-side 应用程序版本化的 .NET Core 构建
- 完全以 NuGet 包的形式发布
- 新的用于简化现代 web 开发的工具
- 可以在 Windows 、Mac 和 Linux 上构建和运行跨平台的 ASP.NET 应用
- 开源并且重视社区
.Net Core基本文件分析
program.cs文件:
using System;
using Microsoft.AspNetCore.Hosting;
namespace aspnetcore
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
ASP.NET Core 应用在 Main 方法中创建一个 web 服务器。
WebHostBuilder是web服务器的构造器,它包含用于定义 web 服务器 (如 Kestrel)和 startup 类型( 如 Startup)的方法。
Build 和 Run 方法构建了应用于宿主应用程序的 IWebHost 然后启动它来监听传入的 HTTP 请求。
Startup.cs文件:
Startup 类是应用程序的入口,用来定义请求处理管道和配置应用需要的服务,startup文件最少要包含以下2个方法:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseIdentity();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
ConfigureServices 定义了应用所使用的服务(Service)(例如 ASP.NET MVC Core framework、Entity Framework Core、Identity 等)
Configure 定义了请求管道中的 中间件(middleware)
服务(Service) 通过依赖注入获取并使用。 ASP.NET Core 内置了一个简单的IoC容器,它默认支持构造器注入,并且可以替换成自己需要的 IoC 容器。通过依赖注入(DI) 使服务在整个应用中都可以使用。
使用 中间件(middleware)构建请求处理管道。Configure中定义了静态文件(Static files)、路由(Routing)、身份验证(Authentication)、错误处理等中间件。
Web根目录(wwwroot)
wwwroot用于保存公共的、静态的资源,如 css、js 和 图片文件的目录。
参考资源
ASP.Net core 介绍中文文档:
http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-0-intro.html
ASP.Net core Introduce原文:
https://docs.microsoft.com/zh-cn/aspnet/core/