zoukankan      html  css  js  c++  java
  • .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()方法配置应用程序的请求处理管道;

     

      

      

  • 相关阅读:
    解决-webkit-box-orient: vertical;(文本溢出)属性在webpack打包后无法编译的问题
    消息框尖尖
    表单提交
    昨天看了一个大神的fix类,清晰了然
    使用cross-env解决跨平台设置NODE_ENV的问题
    axios 在Vue全局引入的方法
    vue自定义指令
    AMD/CMD/CommonJs到底是什么?它们有什么区别?
    artDialog.js的使用
    delegate-使用笔记
  • 原文地址:https://www.cnblogs.com/chedahui/p/15043722.html
Copyright © 2011-2022 走看看