0

我目前正在开发一个 ASP.NET MVC 3 项目,并且正在 VS2010 上设置解决方案文件。

我不确定标准方法是什么。我正在使用以下方法

  1. Company.Dept.Data(包含 dbml 文件 - 数据模型)
  2. Company.Dept.Business(业务逻辑)
  3. Company.Dept.Web(包含 ASP.NET MVC3 网络应用程序)

前两个是类库,最后一个是 MVC3 Web 应用程序。还有什么推荐吗?

4

2 回答 2

1

没有单一的“标准”方法。这完全取决于您的项目以及您尝试使用该软件解决的问题。您提出的拥有 2 个类库和 1 个 Web 项目的结构是肯定的一种方法。

如果您打算使用控制反转容器进行任何类型的依赖注入,您可能还需要考虑为接口创建一个“API”项目,为实现接口契约的具体类创建一个“Impl(ementation)”项目。

于 2012-04-09T20:11:50.233 回答
0

呼应danludwig,确实没有标准。我更喜欢根据功能分解库和命名空间。Company.Db 是我用于与数据库交互的库,Company.Mail 是我围绕 Postmark 邮件服务的包装器,等等。

然后我倾向于将类似的库分组到单个存储库中。所以源代码控制中的“存储”存储库包含 Company.Db、Company.Caching、Company.FileStorage 等。我有另一个存储库“消息”包含 Company.Mail 和 Company.SMS(用于与 Twilio 交互以发送文本消息) . 当我使用新的应用程序或新服务(可能是移动客户端的 WCF 端点)进行分支时,我可以只下载“消息”存储库,并且我拥有所有用于与用户通信的类库。

一个应用程序看起来像

Company.Application.Webite 
     \Libraries\Messaging
          \Libraries\Messaging\Company.Mail
     \Libraries\Storage
          \Libraries\Messaging\Company.Db
          \Libraries\Messaging\Company.Caching
     \Libraries\Web
     ...
Company.Application.Wcf
     \Libraries\Messaging
     \Libraries\Storage
          \Libraries\Messaging\Company.Db
          \Libraries\Messaging\Company.Caching
     ...

这样,无论是通过网站还是通过移动应用程序注册,Company.Mail.MailServices.SendWelcomeEmail() 都会发送完全相同的欢迎电子邮件,并且没有代码重复。

这是否适合您,甚至是否有意义,谁知道呢。我也改变了这个方案一百次,试图找到一个适合我的开发风格/工作流程的布局。我不会担心或压力太大,因为无论你选择什么,你都会找到你喜欢它的东西,你会找到你讨厌它的东西。我有时会陷入花更多时间试图让一切“完美”的陷阱,而不是仅仅编码和改变我不喜欢的东西。

于 2012-04-09T20:25:26.107 回答