zoukankan      html  css  js  c++  java
  • ASP.NET Core 2.0 Preview 1 中贴心的新特性

    西雅图时间5月10日,微软在 Build 2017 大会上发布了 ASP.NET Core 2.0 Preview 1 ( 详见 Announcing ASP.NET 2.0.0-Preview1 and Updates for .NET Web Developers )。

    以下是我关注的、并且经过自己实际验证的贴心的新特性:

    1)Microsoft.AspNetCore.All —— 1包携10包,省力又省心

    使用 ASP.NET Core 2.0 只需要安装一个 NuGet 组合包 —— Microsoft.AspNetCore.All,发布时会自动排除没有用到的包。

    2)WebHost.CreateDefaultBuilder() —— 1行替10行,配置更简洁

    ASP.NET Core 2.0 中的 Prgram.cs :

    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }
    
        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }

    上面的 1 行 WebHost.CreateDefaultBuilder(args) 取代了 ASP.NET Core 1.x 中的 10+ 行代码(Program.cs + Startup.cs)。

    ASP.NET Core 1.x 中的 Program.cs :

    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
    
            host.Run();
        }
    }

    ASP.NET Core 1.x 中的 Startup.cs:

    public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }
    
        public IConfigurationRoot Configuration { get; }
    
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();            
        }
    }

    对应的 ASP.NET Core 2.0 中的 Startup.cs :

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        public IConfiguration Configuration { get; }
    
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
        }
    }

    3)LoggerFactory.AddFilter(IDictionary<string, LogLevel> filter) 

    ASP.NET Core 2.0 中通过代码配置日志过滤(Program.cs):

    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }
    
        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureLogging(factory =>
                {
                    factory.UseConfiguration(null);
                    factory.AddFilter(
                        new Dictionary<string, LogLevel>
                        {
                            { "Micrsoft",  LogLevel.Debug }
                        });
                    factory.AddConsole();
                })
                .UseStartup<Startup>()
                .Build();
    }

    或者

    public static class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .ConfigureLogging(factory =>
                {
                    factory.AddConsole();
                    factory.AddFilter("Console", level => level >= LogLevel.Information);
                })
                //...
        }
    }

    ASP.NET Core 1.x 中(Startup.cs):

    loggerFactory.WithFilter(new FilterLoggerSettings
    {
        { "Microsoft", LogLevel.Debug }
    });

    4)appsettings.json 中日志配置的变化

    ASP.NET Core 2.0 中的日志配置如下,可直接在配置文件中根据 logging provider 配置对应的日志级别:

    {
      "Logging": {
        "IncludeScopes": false,
        "Debug": {
          "LogLevel": {
            "Default": "Warning"
          }
        },
        "Console": {
          "LogLevel": {
            "Default": "Warning"
          }
        }
      }
    }

    ASP.NET Core 1.x 中除了在配置文件中进行配置,还需要在代码中进行配置。

    appsettings.json

    {
      "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
          "Default": "Warning"
        }
      }
    }

    Startup.cs

    loggerFactory.AddConsole(Configuration.GetSection("Logging"));

    5)Razor Pages

    通过 Razor Pages ,只需 View,无需 Controller ,就可以直接访问 。

    比如下面的Index.cshtml,直接就可以通过 http://localhost:5000/index 访问

  • 相关阅读:
    python爬虫中遇到的问题以及解决方法
    python爬虫中涉及json数据的处理
    python——selenium库的使用
    python数据可视化(一)——绘制随机漫步图
    Python练习题——用列表的方法输出杨辉三角
    python——使用xlwing库进行Excel操作
    DesignPattern_Java:Factory Method Pattern
    eclipse导出可执行的jar包
    DesignPattern_Java:SingletonPattern
    DesignPattern_Java:设计模式分类和设计原则
  • 原文地址:https://www.cnblogs.com/dudu/p/6842180.html
Copyright © 2011-2022 走看看