我目前正在开发一个ASP.NET MVC 3项目,我正在VS2010上设置解决方案文件。
我不确定标准方法是什么。我使用以下方法
前两个是类库,最后一个是MVC3 Web应用程序。 还有其他建议吗?
答案 0 :(得分:1)
没有单一的“标准”方法。这一切都取决于您的项目以及您尝试使用该软件解决的问题。您提出的具有2个类库和1个Web项目的结构是一种可行的方法。
如果您要使用Inversion of Control容器进行任何类型的依赖注入,您可能还需要考虑为接口创建一个“API”项目,并为具体类提供“Impl(ementation)”项目。接口合同。
答案 1 :(得分:0)
回应danludwig,确实没有标准。我更喜欢根据功能分解库和命名空间。 Company.Db是我与数据库交互的库,Company.Mail是我对Postmark邮件服务等的包装。
然后,我倾向于将类似库分组到单个存储库中。因此,源代码管理中的“存储”存储库包含Company.Db,Company.Caching,Company.FileStorage等。我有另一个存储库'messaging',它包含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()都会发送完全相同的欢迎电子邮件,并且没有代码重复。
这对你有用,甚至是否有意义,谁知道。我也改变了这个方案一百次,试图找到一个适合我的开发风格/工作流程的布局。我不会担心或过分强调它,因为无论你选择什么,你都会找到你喜欢的东西,你会找到你讨厌它的东西。我有时会陷入花费更多时间试图让一切变得“完美”的陷阱,而不仅仅是编码和改变我不喜欢的东西。