可以将MVC5应用程序的元素编译为DLL吗?

时间:2015-03-12 15:19:34

标签: vb.net dll asp.net-mvc-5

VS2013,MVC5,VB,EF6

我从来没有真正创建过DLL,但很快就会开始学习'ins and outs'(没有双关语)。但是如果没有这个背景,我就不熟悉DLL和MVC5的确切内容。

在MVC5中工作时可以编译成DLL吗?

控制器:似乎控制器可以变成DLL,以便在其他MVC5应用程序中使用;那是这样吗?或者这样做有根本问题吗?

观看次数:视图本身并不是真正的方法,对吧?服务器使用视图文件来创建用于传输的页面,但我不知道如何将它们编译成DLL。

模型:除了View Models之外,它们实际上是我们的数据库。它们显然是代码的一部分,就像控制器中的方法一样,它们驱动EF根据需要创建数据库。但我不确定我是否理解模型如何成为DLL。

感谢您对此有任何了解。

也许还有其他更好的方法可以重用在MVC5应用程序的特定部分上完成的工作。无论那些是什么,请指出我正确的方向。

1 个答案:

答案 0 :(得分:1)

DLL只是编译.NET项目的结果。你不应该把事情放在DLL中,就像你应该如何构建你的解决方案(要添加什么项目,什么类型和多少)一样。

对于可重用组件,您应该创建一个类库项目。在这里,你可以放置任何东西,包括控制器,实体,视图模型等。默认情况下,视图很复杂,因为它们没有被编译。但是,您可以使用Razor Generator之类的东西,这是一个允许您编译视图并在MVC项目中使用预编译视图的Nuget包。

然后,一旦设置了类库,只需将项目引用添加到需要它的解决方案中的任何其他项目。构建时,编译器将为类库创建一个DLL,并将其放入另一个项目的bin文件夹中,但同样,您不需要真正关心它。

如果您需要与不在同一解决方案中的其他项目共享代码,那么您实际应该create a Nuget package使用您的类库项目。如果您的代码适用于整个世界,您可以在nuget.org上公开发布,但您也可以发布到private repository。这很棒,因为它允许您在内部项目之间轻松共享代码。