我确实有使用Ruby on Rails的经验,并且目前在ASP.NET中编写项目。因此,找到ASP.NET MVC对我来说非常棒,因为它似乎是许多方面的Ruby on Rails的逐字副本。但是,存在差异,我必须重新学习一些东西。
其中一个问题是处理附加(库)功能的方式。我想添加一个加密实用程序功能,在Rails中,我只需要在/ lib目录中添加一个类,并知道它可以在我的控制器中使用。我如何在ASP.NET MVC中执行此操作?
我考虑为此创建一个模型类,但我不确定这是否是正确的方法。我真正想要的是一个加密(普通)和一个解密(加密)函数,它返回一个字符串,我将使用.NET加密库进行实际的加密和解密,但希望通过易于使用的方式封装和代理它们的功能。使用多个控制器可用的功能。
有什么建议吗?
答案 0 :(得分:7)
最好的办法是创建一个只是一个类库的第二个项目。然后在MVC应用程序中引用此类库。
答案 1 :(得分:3)
在您的项目中,您可以添加一个名为lib的文件夹,或者其他任何内容,并将代码放在那里。
答案 2 :(得分:3)
Asp.net MVC仍有引用,因此请将您的库添加到您选择的文件夹中,并通过添加引用选项引用该库。
我喜欢以下开发树结构。
/docs
/lib
/src
/tools
lib文件夹用于第三方库,src是我的mvc的源代码,工具用于nunit等工具。
为您自己的库添加一个新项目,就像在普通的asp.net中一样。 我还想为我的模型,bll和dal添加一个新项目。
答案 3 :(得分:0)
这可能不是您问题的直接答案,但我对使用asp.net mvc开发的opensoure项目有以下结构。
* Gol.Core.Session (contains session manager both real and fake)
* Gol.Core.Caching (contains caching including velocity, enterprise lib. provider)
* Gol.Core.Logging (contains logging components and providers)
* Gol.Core.Instrumentation (contains instrumentation related items)
* Gol.Core.UI (UI helpers, and other things related to UI)
* Gol.Core.Security (security,authentication related things)
* Gol.Core.Utilities (common utility functions like encryption, helper methods, etc).
* Gol.Core.Metadata (metadata manager).
*
Gol.Web.Controllers (all controllers goes here).
*
Gol.Cms.Contracts (contains the service contracts)
* Gol.Cms.Model (contains the service model)
*
Gol.Cms.Services (contains the service implementation).
*
Gol.Web (the web project that contains the views)
* Gol.Test (or Gol.Specification)
有关于此问题的相关问题 Project structure recommendation for asp.net mvc