.NET Core 中的命名问题:Startup 中的 ConfigureServices 与 Configure

一直不喜欢 Startup 中这两个可读性很比较差的糟糕命名 ConfigureServicesConfigureConfigureServices 用于配置依赖注入以在运行时根据依赖关系创建对象,Configure 用于配置中间件(middleware)以构建请求处理流水线。

今天写代码写累后散步时思考了这两个命名问题,突然想到一个成语排兵布阵ConfigureServices排兵Configure布阵。如果对应公司运营,ConfigureServices 就是给工作岗位安排人员,Configure 是制定工作流程。

根据排兵布阵,想到的英文命名是 ArrangeOrganize ,使用这2个命名改造后的 Starup 变成了这样:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        Arrange(services);
    }

    public void Arrange(IServiceCollection services)
    {
        services.AddControllersWithViews();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        Organize(app, env);
    }

    public void Organize(IApplicationBuilder app, IWebHostEnvironment env)
    {
        var builder = env.IsDevelopment() ? app.UseDeveloperExceptionPage() :
            app.UseExceptionHandler("/Home/Error");            

        app.UseStaticFiles();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapDefaultControllerRoute();
        });
    }
}

原文地址:https://www.cnblogs.com/dudu/p/11827652.html

时间: 2024-10-12 12:57:33

.NET Core 中的命名问题:Startup 中的 ConfigureServices 与 Configure的相关文章

【ASP.NET Core】如何隐藏响应头中的 “Kestrel”

全宇宙人民都知道,ASP.NET Core 应用是不依赖服务器组件的,因此它可以独立运行,一般是使用支持跨平台的 Kestrel 服务器(当然,在 Windows 上还可以考虑用 HttpSys,但要以管理员身份运行). 尽管 SDK 文档中推荐我们用服务器组件来“反向”代理,但独立运行也是允许的.当 Web 应用独立运行的时候,客户端发出请求后,在响应的 HTTP 消息中,会附上一个 Server 头,其值就是 Kestrel.如下面的高清无码无水印截图所示. 看到了吧,Server = Ke

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼. css这个东西只要不是新的离谱都会写,但是每个人的命名风格,方法,都不同 有人喜欢驼峰,有人觉得-不错,有的人觉得_很方便,最后有的英文命名,有的干脆拼音....囧 http://www.cnblogs.com/LoveOrHate/category/682181.html 然后没有统一的格式,造成的结果...我爆炸了... 当然经常和团队合作的也就不用看了 这些文章我是专门找啊找,找

软件开发中的命名规则

对于一个成功的软件项目来说,大到解决方案小到一个属性的命名,不管是对软件的开发,还是对于后期的维护来说都是非常重要的.经过多年的摸索,我发现自己有一点命名恐惧症.为了方便以后的工作的顺利进行,特别对项目开发中的命名进行了一次总结,尽管有些地方不是很完整或者不周,但以后还会进行不断的补充与完善! 1. 解决方案命名:    对于解决方案来说,它的命名一般相对比较固定,多是系统英文全名的简写,如:SPMS,RMG,FinCap等: 2. 项目命名:    项目的命名要体现项目的功能,一般分为2/3/

iOS开发(OC)中的命名规范

开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结构也算清晰,因为我一直以来都是代码看的多写的多,但是总结的比较少,知识经常不成体系.以后多花点时间把自己的经验和学习知识加以总结一下吧,这样有利于去指导新人,也更有利于加深自己的知识认知.今天就从代码规范入手总结一下iOS开发中好的编码规范吧.我们在开发中看别人的代码的时候经常会去抱怨至少内心里骂娘

C#中使用命名管道进行进程通信的实例

原文:C#中使用命名管道进行进程通信的实例 1 新建解决方案NamedPipeExample 在解决方案下面新建两个项目:Client和Server,两者的输出类型均为"Windows 应用程序".整个程序的结构如下图所示. 2 实现项目Client Client仅包含一个名为"客户端"的窗体,如下图所示. 编写窗体后端代码,如下所示. using System; using System.IO; using System.IO.Pipes; using Syste

程序设计中的命名

[程序设计中的命名] 在设计过程中好的命名不一定但更大可能会带来好的设计,但是如果坏的命名那一定不会给你带来好的设计.在设计过程,如果你发现你很难命名某一个模块,某个方法时,可能你真正遇到的问题不是难命名的问题,而是这个设计是否真的合理,你或许应该花更多的时间来重新设计一下你的模块. 1.名字应该尽量采用名词 Bad:           Happy Good:          Happiness 2.不要使用类似名字空间的前缀 Bad:           SystemOnlineMessa

CAD.NET中获取命名字典中的数据方法

语句如下: dicts.GetAt(Position).GetXrecord("年薪").First().Value 其中 DBDictionary dicts=(DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead); trans: using (Transaction trans=db.TransactionManager.StartTransaction()) CAD.NET中获取命名

.NET Core类库项目中如何读取appsettings.json中的配置

这是一位朋友问我的问题,写篇随笔回答一下.有2种方法,一种叫丑陋的方法 —— IConfiguration ,一种叫优雅的方法 —— IOptions . 1)先看丑陋的方法 比如在 RedisClient 中需要读取 appsettings.json 中的 redis 连接字符串: { "redis": { "ConnectionString": "xxx" } } 需要在 RedisClient 的构造函数参数中添加 IConfigurati

NET Core Web 应用部署到 Docker 中运行

NET Core Web 应用部署到 Docker 中运行 环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get upgrade 对系统进行更新,然后打开https://www.microsoft.com/net/core#ubuntu 这个网址,在ubuntu系统中安装 .net core 运行环境.直接复制/粘贴给出的命令就可以了. 安装 Docker