考虑到这可能因项目而异,我正在寻找“最佳实践”方法来构建VS(Visual Studio)解决方案。
请随意编辑此内容,指出您认为可能不正确的内容,提供替代方案等。我希望看到这个社区百科全书成为初学者入门VS Solutions的重要资源。
以下是当前项目中适用于我的结构(Web应用程序,MVC 2),但我知道确实有一些放错了位置。
请发表您对最终解决方案结构的想法,以便我们了解“最佳方式”/“最佳实践”的概念。
例如:
您如何分离DAL(数据访问层)/ BLL(业务逻辑层)?
您是否将存储库层和服务层放在BLL内部?
如果您使用MVC(模型-视图-控制器),您是否将控制器保留在UI中而非核心代码中?
您是否将大量内容放在Utility/Miscellaneous文件夹中,还是进一步拆分?
等等...
- MySolution
- MySolution.Core
- Authentication
- 这里我有一个POCO和将poco序列化到auth cookie的方法
- Base
- 这里是我保存BaseController和BaseGlobal的位置
- Controllers
- 所有的控制器(显然)
- Domain
- 数据库模型(Database Models)
- 包含我的L2S .dbml文件
- Json模型(Json Models)
- 用于向视图传递JSON对象的模型
- Repositories(仓库)
- Services(服务)
- ViewModels(视图模型)
- Extensions(扩展)
- 所有的扩展方法都在这里
- Filters(过滤器)
- Action Filters(操作过滤器)
- Utilities(实用工具)
- Api(应用程序接口)
- 所有第三方API代码都放在这里
- Badges(徽章)
- 徽章计算放在这里
- MailClient(邮件客户端)
- 使用此处的类发送纯文本或HTML邮件
- RoutingHelpers(路由助手)
- 包含一个启用小写路由的类
- 还包括我不知道放在哪里的东西...即:HTMLSanitizer,自定义HtmlHelpers,UserInfo helper(IP地址,浏览器等),DataConverter等
- MySolution.UI
- App_Browsers(应用程序浏览器)
- Assets(资源)
- Css(层叠样式表)
- 图片
- 脚本
- 视图
- Global.asax - 继承自BaseGlobal
- Web.config
屏幕截图
请随意提出评论,或者更好的是,在下面发布您自己的版本(答案)。我知道我所拥有的不是最好的方式。