zoukankan      html  css  js  c++  java
  • 第一章 开发体验

    第一章 开发体验

    一、Asp.Net Core应用程序

    1. 使用CLI创建控制台应用程序

      dot new console -n helloworld
      
    2. 编辑项目文件

      <ItemGroup>
      	<FrameworkReference include = "Microsoft.AspNetCore.App"></FrameworkReference>
      </ItemGroup>
      
    3. 创建Host主机并配置

      在Main方法中,调用静态类Host的CreateDefaultBuilder方法,创建一个IHostBuilder对象,并调用Builder方法构建服务宿主的IHost对象,再调用IHost对象的扩展方法Run,AspNetCore应用程序就被启动了。

      var builder = Host.CreateDefaultBuilder();
      IHost host = builder.Build();
      host.Run();
      
    4. 配置请求管道

      在调用Builder方法之前,调用ConfigureWebHost扩展方法,参数是Action委托,构建请求管道。

      var builder = Host.CreateDefaultBuilder();
      builder.ConfigureWebHost(options =>
      {
            options.UseKestrel().Configure(app =>
            {
                app.Run(context => context.Response.WriteAsync("HelloWord"));
            });
      });
      IHost host = builder.Build();
      host.Run();
      
    5. launchSetting.json配置文件

      修改项目配置文件,并重新加载,这时你会发现 控制台应用程序 变成了 web应用程序。

      <Project Sdk="Microsoft.NET.Sdk.Web">
        <PropertyGroup>
          <TargetFramework>netcoreapp3.1</TargetFramework>
        </PropertyGroup>
      </Project>
      

      CLI启动,并指定Kestrel服务器

      dotnet run --launch-profile helloworld
      

    二、Asp.Net Core Mvc应用程序

    1. 注册服务与中间件

      AspNetCore Mvc就是建立在用来实现路由的EndpointRoutingMiddleware中间件和EndpointMiddleware中间件上的。所以我们开始改造。

      内置的依赖注入框架以后会深入了解,现在拿来直接用。

       var builder = Host.CreateDefaultBuilder();
       builder.ConfigureWebHostDefaults(options =>
       {
           options.ConfigureServices(configureServices =>
              {
                   //注册服务
                   configureServices.AddRouting();
                  configureServices.AddControllersWithViews();
              }).Configure(app =>
              {
                   //使用服务
                   app.UseRouting();
                  app.UseEndpoints(endpoint =>
                  {
                      endpoint.MapControllers();
                  });
              });
       });
       IHost host = builder.Build();
       host.Run();
      
      
    2. 添加控制和视图

      添加一个类HelloController,然后继承controller。

      public class HelloController : Controller
      {
          [HttpGet("/hello/{name}")]
          public IActionResult SayHello(string name)
          {
              ViewData["Name"] = name;
              return View();
          }
      }
      
      
      @{
          ViewData["Title"] = "SayHello";
      }
      
      <h1>@ViewData["Name"]</h1>
      
    3. 注册Startup类型

      以上可以直接跑起来,现在开始注册Startup类,约定大于配置嘛,所以我们把注册服务配置中间件的过程提取出来,单独放在一个类中,这样就方便以后维护了。

      修改Main方法

      private static void Main(string[] args)
      {
          Host.CreateDefaultBuilder()
              .ConfigureWebHostDefaults(configure =>
                 configure.UseStartup<Startup>()
              ).Build().Run();
      }
      
      

      Startup类

      public class Startup
      {
          public void ConfigureServices(IServiceCollection services) => services.AddRouting().AddControllersWithViews();
      
          public void Configure(IApplicationBuilder app) =>
              app.UseRouting().UseEndpoints(point => point.MapControllers());
      }
      
      

  • 相关阅读:
    Scala--基础
    maven
    Storm 运行例子
    Storm 安装部署
    Storm
    Kafka 集群部署
    Redis Twemproxy
    Redis Sentinel
    获取URL中参数的值
    浏览器滚动条样式
  • 原文地址:https://www.cnblogs.com/Lueng/p/13937947.html
Copyright © 2011-2022 走看看