原文:Dynamic controller routing in ASP.NET Core 3.0
作者:Filip W
译文:https://www.cnblogs.com/lwqlun/p/11461657.html
译者:Lamond Lu
译者注
今天在网上看到了这篇关于ASP.NET Core动态路由的文章,感觉蛮有意思的,给大家翻译一下,虽然文中的例子不一定会在日常编码中出现,但是也给我们提供了一定的思路。
原文:Dynamic controller routing in ASP.NET Core 3.0
作者:Filip W
译文:https://www.cnblogs.com/lwqlun/p/11461657.html
译者:Lamond Lu
今天在网上看到了这篇关于ASP.NET Core动态路由的文章,感觉蛮有意思的,给大家翻译一下,虽然文中的例子不一定会在日常编码中出现,但是也给我们提供了一定的思路。
上一篇中,我们针对运行时启用/禁用组件做了一些尝试,最终我们发现借助IActionDescriptorChangeProvider可以帮助我们实现所需的功能。本篇呢,我们就来继续研究如何完成插件的安装,毕竟之前的组件都是我们预先放到主程序中的,这样并不是一种很好的安装插件方式。
在上一篇写完之后,我突然想到了一个问题,如果像前两篇所设计那个来构建一个插件式系统,会有一个很严重的问题,即
当你添加一个插件之后,整个程序不能立刻启用该插件,只有当重启整个ASP.NET Core应用之后,才能正确的加载插件。因为所有插件的加载都是在程序启动时
ConfigureService方法中配置的。
这种方式的插件系统会很难用,我们期望的效果是在运行时动态启用和禁用插件,那么有没有什么解决方案呢?答案是肯定的。下面呢,我将一步一步说明一下自己的思路、编码中遇到的问题,以及这些问题的解决方案。
为了完成这个功能,我走了许多弯路,当前这个方案可能不是最好的,但是确实是一个可行的方案,如果大家有更好的方案,我们可以一起讨论一下。
在上一篇中,我们介绍了通过一个最简单了例子,给大家演示了一下,如何在ASP.NET Core Mvc中借助ApplicationPart来开发一个插件。在文章的最后,我们也提出了一些待解决的问题。
首先呢,第一个要解决问题是,每次我们创建一个新的插件,每次都要重新创建项目,添加类库引用,以及手动修改 csproj 文件,非常的繁琐。那么有没有一种方式可以减少这部分操作的?
回想一下,当我们每次使用 Visual Studio创建项目的时候,我们都可以选择一个项目模板,Visual Studio不仅可以根据我们选择的模板创建出项目,而且我们所需的程序集引用都会预先配置好,不需要我们重复配置了。那么我们是否可以自己创建一些模板呢?答案是肯定的。
本文中,我就来给大家演示一下,在如何为.NET Core项目创建项目模板,简化操作流程。
如果你使用过CMS的话,肯定会用过一些CMS的插件化功能,用户可以通过上传插件包的方式动态启用一些功能,那么在ASP.NET Core MVC中如何实现插件化开发呢,下面我们来探究一下。
本系列只是笔者的一些尝试,并不表示一定正确,只是为了分享一些思路,大家可以一起讨论一下,后续会不断更新。
在ASP.NET Core中进行插件话开发,就不得不说ApplicationPart。 ApplicationPart是ASP.NET Core一个重要组件,它是应用程序资源的一种抽象,通过它可以发现程序集中包含的控制器、视图组件、TagHelper和预编译Razor视图等MVC功能。
大家好,我是陆楠,来自北京盛安德青岛分公司,今年非常有幸作为讲师参加了微软Insider Dev Tour烟台站的活动,我主讲了如何使用最新的微软开发工具开发调试NodeJS项目。
与大多数同龄人相比,我接触计算机要早一些,1994年我就已经开始使用计算机了,当时使用的电脑是一台486/80, 内存4MB, 硬盘258MB, 预装系统是DOS 6.22+Windows 3.2,第一次使用微软的Windows系统,真的是感觉相当酷炫,其体验不亚于第一次看《阿凡达》,直接颠覆了我对科技的认识。我第一次真正了解微软公司是通过1996年的创刊的《少年电脑世界》,其中有一期讲述了比尔盖茨和保罗艾伦的为8008 CPU编写basic解释程序赚到第一桶金,并收购交通数据公司,改名微软的故事,感觉非常的崇拜,从那以后我对编程产生了兴趣,走了上微软技术栈路线。
原文:How to Debug LINQ queries in C#
作者:Michael Shpilt
译文:如何在C#中调试LINQ查询
译者:Lamond Lu
在C#中我最喜欢的特性就是LINQ。使用LINQ, 我们可以获得一种易于编写和理解的简洁语法,而不是单调的foreach循环,它可以让你的代码更加美观。
但是LINQ也有不好的地方,就是调试起来非常难。我们无法知道查询中到底发生了什么。我们可以看到输入值和输出值,但是仅此而已。当代码出现问题的时候,我们只能盯着代码看吗?答案是否定的,这里有几种可以使用的LINQ的调试方法。
原文:https://www.jerriepelser.com/blog/restore-sql-database-localdb/
原文作者: Jerrie Pelser
译文:如何将Azure SQL Database还原到本地数据库中
译文作者: Lamond Lu
在本篇博文中,我将带你备份一个Azure SQL数据库,并使用SqlPackage工具将其还原到本地SQL Server实例中。
SqlPackage工具在我们开始之间,你需要在本地安装SqlPackage工具。在我的演示实例中, 这个工具已经作为Visual Studio 2019的一个部件被安装了 ,所以我可以在C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150里面找到sqlpackage.exe工具。当然这可能和你本地环境不同,不过可以在相似的文件夹中找到它。
如果你找不到这个工具文件,你可以根据这篇文章下载并安装。
最近在徒手造轮子,编写一个ASP.NET Core的日志监控器,其中用到了自定义中间件读取Request.Body和Response.Body的内容,但是编写过程,并不想想象中的一帆风顺,ASP.NET Core针对Request.Body和Response.Body的几个特殊设计,导致了完成以上功能需要绕一些弯路。
为了读取Request.Body和Response.Body的内容,我的实现思路如下:
InvokeAsync方法中,我们可以分别使用StreamReader读取Request.Body和Response.Body的内容。Update your browser to view this website correctly. Update my browser now