• 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()));
    
    )
     

      

  • 相关阅读:
    缓存IO读写的方式
    mapboxgl 纠偏百度地图
    GIS常用算法
    DevExpress VCL TdxBar工具栏上的按钮等居右对齐无效的问题
    dxRichEditControl、Invalid operation in GDI+ (Code: 2)
    Indy+POP/SMTP收发邮件
    VUE父组件给子组件传对象
    Linux下进程间通信
    Linux下守护进程
    Linux下进程控制相关
  • 原文地址:https://www.cnblogs.com/hankuikui/p/9552927.html
Copyright © 2020-2023  润新知