• ASP.NET Core 入门笔记 1,项目概览


    (1)新建项目选择ASP.NET Core Web应用程序

    (2)程序会自动安装相应的包组件,此时依赖项会有感叹号,等待安装完毕感叹号消失

    (3)在项目的文件夹下建立其他文件,都会在项目资源视图中显示出来

    (4)打开项目配置文件以及介绍:资源视图下对项目右键-编辑xxx.csproj。其中<TargetFramwork>表示支持的.net版本,这里可以编辑为支持多个版本。<Folder Include="wwwroot">是个文件夹,在资源视图下可以看到,该目录下的都可以被看到,如果要看到其他的目录,需要设定,采用白名单策略。<PacagetReference Include="Microsoft.AspNetCore.App"/>是被引用的包。

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <Folder Include="wwwroot" />
      </ItemGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" />
        <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
      </ItemGroup>
    
    </Project>

    (5)ASP.Net Core启动和配置:

    Program类

    在应用启动的时候,会执行CreateWebHostBuilder方法,在这个方法中通过类Startup创建了默认了HostBuilder

    Startup类

        public class Startup
        {
            // This method gets called by the runtime. Use this method to add services to the container.
            // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
            public void ConfigureServices(IServiceCollection services)
            {
            }
    
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.Run(async (context) =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            }
        }

    web项目模板默认在项目启动的时候调用IApplicationBuilder.run方法,在当前HTTP上下文(HttpContext)中输出了Hello World!

    (6)依赖注入,IoC容器

             生命周期

             -Transient:每次被请求都会创建新的实例

             -Scoped:每次Web请求会创建一次实例

             -Singleton:一旦被创建实例,就会一直使用这个实例,直到应用停止

    (7)依赖注入 的好处:

             -不用去管声明周期

             -类型之间没有 依赖

             例如在startup类下

             public void ConfigureServices(IServiceCollection services)

            {

                //这句是添加的代码,意思是如果有其他程序请求ICinemaService的时候,都会返回一个CinemaMemoryService实例

                services.AddSingleton<ICinemaService, CinemaMemoryService>();

            }

    (8)Startup下Configure(IApplicationBuilder app,IHostingEnvironment env):用于配置Http请求的管道,专门处理用户的请求,这个类下放置的东西就叫做中间件,比如授权MVC等

     

     

    IIS是外部服务器也称反向代理服务器,根据平台的不同而不同,比如阿帕奇等,Kestre是应用服务器,跨平台,就是程序中执行Main方法的程序。运行时也可以直接跳过IIS直接访问应用服务器

     

    (9)管道生命周期:这里需要选择程序运行才能看到控制台日志输出,注意这里的logger是新加的注入参数

    (10)运行选项配置:这里是VS的使用配置,这里配置IIS运行还是直接应用程序运行。第一种方法,对项目右键-属性-调试-配置文件;第二种,直接在界面上绿色运行按钮选择;第三种方法,propertie->launchSettings.json配置,代码中的env.IsDevelopment()便是用来判断当前的运行环境,根据环境执行过程。

  • 相关阅读:
    hdu 5965 扫雷
    51nod 1441 士兵的数字游戏 (素数处理
    51nod 1453抽彩球
    51nod 1255 字典序最小的子序列
    codeforces 948A
    Splay 伸展树 bzoj3224 bzoj3223
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest C(gym/101142 C)
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest F(gym/101142 F)
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest G(gym/101142 G)
    Educational Codeforces Round 32 E 巨型背包
  • 原文地址:https://www.cnblogs.com/xiaoahui/p/11717482.html
Copyright © 2020-2023  润新知