.net核心Web应用程序中可重用性的最佳实践

时间:2018-02-02 23:34:53

标签: angular visual-studio-2017 components asp.net-core-2.0 code-reuse

在较早的MVC4 / 5应用程序中,我们能够创建局部视图并在应用程序的不同网页上共享它。但是,我们在实际问题上无法做到的是将此视图放在一个单独的程序集(例如DLL)中,并在其他Web应用程序项目中共享它。

现在可以使用VS2017和.Net Core在项目间共享组件吗?

例如,假设有多个网站从不同的客户端组收集数据。我想构建一个收集地址信息的共享组件,然后将该代码放入程序集中,然后引用每个单独网站中的程序集,无论它们是使用Angular,Vue.js,React还是其他框架。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

好吧,在项目之间共享工件作为组件的问题不仅限于DLL的

ASP.NET MVC之前很久,在ASP.net WebForms中,我们会按照您的意愿在程序集中创建组件并共享它们(即ServerControls)。

对于ASP.net MVC,正如您所说,我们有PartialViews可以在应用程序页面之间共享。

当需要创建UI组件时,要与其他项目共享,常见的方法是创建Custom HtmlHelpers。但也可以通过nuget包分发PartialViews。

现在,对于JS框架的UI组件,就像您在示例中提到的那些(角度等),程序集将不起作用(程序集用于服务器端代码)。

因此,在创建前端组件后,创建npmbowernuget packages(我建议使用npm,因为这是前端[不仅]组件通常分布的方式)包含组件并在要使用它们的项目中安装包。

通过这种方式,您将重用UI组件的代码,甚至可以对它们进行版本化。