在较早的MVC4 / 5应用程序中,我们能够创建局部视图并在应用程序的不同网页上共享它。但是,我们在实际问题上无法做到的是将此视图放在一个单独的程序集(例如DLL)中,并在其他Web应用程序项目中共享它。
现在可以使用VS2017和.Net Core在项目间共享组件吗?
例如,假设有多个网站从不同的客户端组收集数据。我想构建一个收集地址信息的共享组件,然后将该代码放入程序集中,然后引用每个单独网站中的程序集,无论它们是使用Angular,Vue.js,React还是其他框架。
答案 0 :(得分:0)
您可以构建组件库。更多信息请访问:https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e
答案 1 :(得分:0)
好吧,在项目之间共享工件作为组件的问题不仅限于DLL的
在ASP.NET MVC
之前很久,在ASP.net WebForms
中,我们会按照您的意愿在程序集中创建组件并共享它们(即ServerControls
)。
对于ASP.net MVC
,正如您所说,我们有PartialViews
可以在应用程序页面之间共享。
当需要创建UI组件时,要与其他项目共享,常见的方法是创建Custom HtmlHelpers
。但也可以通过nuget包分发PartialViews。
现在,对于JS框架的UI组件,就像您在示例中提到的那些(角度等),程序集将不起作用(程序集用于服务器端代码)。
因此,在创建前端组件后,创建npm
,bower
或nuget packages
(我建议使用npm,因为这是前端[不仅]组件通常分布的方式)包含组件并在要使用它们的项目中安装包。
通过这种方式,您将重用UI组件的代码,甚至可以对它们进行版本化。