.NET Core详解(1)——基础了解

一:.NET Core 的有点和特性

  1.跨平台

     ASP.NET 4.x 应用程序只能在 IIS 上托管,而 ASP.NET Core 应用程序可以托管在 IIS,Apache,Docker 甚至自己把自己托管在进程中(俗称:自托管)。 从开发方式上来看,您可以使用 Visual Studio 或 Visual Studio Code 来构建.NET Core 应用程序。您也可以使用 Sublime 等第三方编辑器。

  2.MVC与Web API统一的编程模型

  3.依赖注入

  4.可测试性

  5.开源

  6.模块化

二:创建项目

  创建一个 “ASP.NET Core Web 应用程序”,并选择空模板;

  1.项目文件    

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
  </ItemGroup>
</Project>

  TargetFramework:此元素用于指定应用程序的目标框架,即开发者希望为应用程序提供的API程序集;

  AspNetCoreHostingModel:此元素指定应如何托管 Asp.Net Core 应用程序。它表示程序应该托管 InProcess(进程内)还是 OutOfProcess(进程外)。 InProcess 的值指定我们想要使用进程内托管模型,即在 IIS 工作进程(w3wp.exe)中托管我们的 asp.net core 应用程序。 OutOfProcess 的值指定我们要使用进程外托管模型,将 Web 请求转发到运行 Kestrel 服务器的后端 ASP.NET Core 应用程序;

  PackageReference:顾名思义,此元素用于包含对为您的应用程序安装的所有 NuGet 包的引用;

  实际上,用VS2019创建ASP.NET Core Web 应用程序的项目文件:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

  2.项目中的Main方法

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

   ASP.NET Core 应用程序最初作为控制台应用程序启动,而Program.cs文件中的Main()方法就是入口。   

  3.启动类Startup 

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

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}

    启动类只有两个重要方法:

      ConfigureServices()方法配置应用程序所需的服务;

      Configure()方法配置应用程序的请求处理管道;

 

 

  

  

posted @ 2021-07-22 13:51  答辉  阅读(766)  评论(0编辑  收藏  举报