zoukankan      html  css  js  c++  java
  • asp.net core开发注意事项

    1.类库的创建尽量选择.net standard.

      如果选择.net core 则.net framework不能调用该类库, .net core和.net framework都可以调用.net standar。

    2. Controllers的创建,需在每个Controllers类中添加区域特性并注明区域名称[Area("Name")], 和之前的版本不一致。

      .net framework中创建区域文件夹时,会自动创建区域注册类。同一区域文件夹中的类,可以不用加区域特性。

    3. .net core web/webapi中没有web.config配置文件,所以读取配置文件不能使用configurationManager类。

      配置文件使用json文件,读取json配置文件如下:

                var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .AddJsonFile("configs/buildConfig.json", optional: true, reloadOnChange: true)
                    .AddInMemoryCollection(conf)
                    .AddEnvironmentVariables();

     4. oracle对asp.net core 的支持还不够充分,目录仅有一个预览版:Oracle.ManagedDataAccess.Core

         它对entity framework core还不支持,估计18年第三季度会发布预览版本。

    5. 文件上传接口也有变化:

      .net core: public IActionResult Upload(IFormCollection form)

      .net framework: public ActionResult Upload(HttpPostedFileBase fileUseless)

    6. asp.net core默认使用Kestrel作为Http请求的监听器,而不是使用原来庞大的Https.sys。不再依赖IIS,为跨平台提供平台基础。

        Kestrel不仅仅是微软下一代的跨平台Http请求监听器,同时还提供了比Https.sys更轻量级以及更快速的Http请求处理

    7. Asp.net core与原来的Web设计另一个最大的区别在于Asp.net core(及.net core)完全抛弃了原来的使用管道模式来接收以及处理HttpRequest。在Asp.net core中允许处理中间件(Middleware)来对所有的HttpRequest来进行请求,当请求被接收到时,Asp.net core会调用注册的中间件(按照注册的顺序)对HttpRequest进行处理。这样做相比与原来使用HttpApplication的管道方式而言,其优势在于完全由开发人员决定HttpRequest需要执行怎么样的处理,没有多余的其他步骤。而原来的方式既使开发人员不希望对一个HttpRequest进行任何处理,但HttpApplication仍然会按照管道的设置依次创建HttpModel -> 激活HttpHandler -> 处理Session等。据.net core团队给出来的性能测试数据来看,Asp.net core(.net core)相比与原来的Web(.net framework 4.6)程序性能提升了2300%

    8. 对依赖注入的内置支持。在.NET Core中DI的核心分为两个组件:IServiceCollection和 IServiceProvider

    public void ConfigureServices(IServiceCollection services)
    {
    services.AddSingleton<IOperationSingleton, Operation>();
    // 自定义传入Guid空值
    services.AddSingleton<IOperationSingleton>(
      new Operation(Guid.Empty));
    // 自定义传入一个New的Guid
    services.AddSingleton <IOperationSingleton>(
      new Operation(Guid.NewGuid()));
    
    )
     

      

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/hankuikui/p/9552927.html
Copyright © 2011-2022 走看看