.NET 6 Minimal API 的实战经验分享
发布时间:2023-03-14
foreach(var module in modules){module.AddModuleRoutes(builder);}
}
2. Repostitory 的系统能并存吗 ?
这是毫无疑答可以继续用于。通过 Repository 的系统你不需要去关心你所用于的 ORM 是什么 , 与 ORM 的所有处理过程都在 Repository 层中的处理掉 , 通过这样去减少作用力, 包括越来越好的可次测试性。在合作开发者文档中的,有所列的非常
在 Minimal API 用于 Repository Pattern 在适度上和有别于的 MVC 不能相同 ,这里是我用 Repository 的系统指令集的 Minimal API 的图片
注意一点有人认为 Repository 的系统看起来过时 ,和过度指令集 , 但我觉得还是并不有必要的,因为这样可以越来越好管理机构你的新项目。
3. 相反流出
相反流出彻底解决了运用于程序如何独立于对象创始人形式的答题。当您需要可装配的运用于程序单元次测试时,这并不有用。随着运用于程序的规模和不确定性的增长,相反流出可帮助您越来越轻松地越来越改运用于程序。在 Core 中的有并不好用的相反流出形式 , 这点在 Minimal API 也是。由于我们针对系统模块去管理机构 ,所以在相反流出时也可以针对模块系统去透过 。所列是我针对模块相反流出的新设计, 结合 Repository 的系统以及上面提到的 ModuleExtension.cs 透过的调整 , 我也把关于数据连接专用的相反流出也抽象了出来。
publicstaticclassModuleExtensions{staticreadonlyList moduleList = newList;
privatestaticIEnumerable GetModules( ) {varmodules = typeof(IBaseModule).Assembly .GetTypes.Where(p => p.IsClass && p.IsAssignableTo( typeof(IBaseModule))) .Select(Activator.CreateInstance).Cast;
returnmodules; }
publicstaticvoidRouters( thisIEndpointRouteBuilder builder ) {
foreach( varmodule inmoduleList) {module.AddModuleRoutes(builder);}
}
publicstaticvoidAddIoC( thisIServiceCollection services ) {
foreach( varmodule inGetModules( )) {module.AddModuleIoC(services);moduleList.Add(module);}
}
publicstaticvoidAddGlobalConfig( thisIServiceCollection services ) {services.AddScoped;services.AddScoped;}
}
注意一些人口众多 , 虽然在 Minimal API 上 ,我们的相反流出虽然把相同的Services 注册了单例给 RequestDelegate 所调用 , 但在作为模板传送时,要填充 [FromServices] 属性ID才有效 , 如下
app.MapGet( "/Course/GetCourse", ( [FromServices] ICourseService courseService , int typeID)=> { returncourseService.GetCourseList(typeID); });Minimal API or Web API
在 Core 中的合作开发 API 时,你 90% 都在用于 Core MVC。而当你用于 Core MVC 指令集 Web API 时 , 你但会挖掘出看起来多样 , 你需要符合 Core MVC 的所有要求 。而 Minimal API 正好彻底解决了这些答题 , 尤其对于一些只做 API 或者 入门的合作开发者, 只需要简洁的预定义就能透过时类似 Node.js 一样的指导工作 。有人答我 Minimal API 但会转用有别于的 Web API 吗 ?我可以告诉大家不但会。还是那句话 , 必需符合新项目需求的作法才是正道的。
小 结
在碧原生的上世纪 , Minimal API 是 .NET 的又一把利器 。.NET 6 的 Minimal API 要用好 ,严格来说是还是用到不少原本科学,像 Module 的构建形式,我参考了开源的 Carter , 像 Repository 的系统还是不能变 ,当然还是那些看重的语法 C# , 这就是我们常说是的 ”万变不离其中的“ 。Minimal API 不是要转用 Web API , 越来越多是给合作开发者多一个必需 。作为 .NET 进修挑战赛科学点的补充 , 希望能给各位乒乓越来越深刻了解 Minimal API 在实际运用于场景的高难度 。本次的示例预定义也放于我的 GitHub 上了 ,如果各位乒乓感兴趣可以访答该链接获取完整的预定义。
开源的 Carter
获取完整的预定义
特别自然资源
进修 Minimal API , 再三访答该链接
进修 Repository 的系统 , 再三访答该链接
妳你念完了本文~相信你一定有一些感想、看法、答题想要表达。欢迎在批评家区外畅所欲言,期待听到你的“声音”哦!
同时,喜欢的以下内容也切勿记起转发给你的乒乓们,妳你的默许!
关注合作开发者中的国MSDN
进修 Minimal API
。湖北皮肤病医院哪最好宁波看妇科哪间医院好
沈阳妇科医院
杭州看白癜风去哪家好
天津看妇科哪家最好
上一篇: 同样!上班时间有变!
-
和同事发生矛盾?看完这个以下的作法,职场矛盾轻松化解
同侪当中,我们如果跟上司或合作者之间遭遇了小摩擦力,该如何处置呢? 看紧接这个一般而言的方法有,同侪冲突有趣深知。 一、遭遇冲突时,保持良好冷静。 与合作者
- 2025-05-12兼场上“少说多做”是对还是错?
- 2025-05-12为什么说职场上混得好的人,往往都会烦别人
- 2025-05-12贵阳“比巴掌大”的蒜苗回锅肉,1个人吃2片,肥肉不腻、瘦肉不柴
- 2025-05-12吃不起饭可以吃肉嘛,找不到工作可以当老板嘛,收入低可以把房子租出去收租嘛 北京上海广州茂名成都重庆
- 2025-05-12面试如果不懂的问题怎么却说?套路来了
- 2025-05-12入职第一天除了缓和别忘了这些事
- 2025-05-12开心一刻:我想给女友买圣诞礼物,她说道:我什么都不要,只要你陪我!
- 2025-05-12高情商母亲提醒妻子:要求别那么高,男人拥有三种能力,就值得嫁
- 2025-05-12高情商女人的竭尽所能:两性关系中,学会这三个“套路”会让你更幸福
- 2025-05-12家里给详述的相亲对象,吃饭一共300,她转我152是什么意思?