2009-10-12 54 views
1

我目前正在开发大型应用程序。 目前,我有一个解决方案(这可能会在充满时间的变化)与许多项目。中型/大型解决方案 - Visual Studio构建过程 - 需要咨询

我已经设置了目录结构:

\ LIB \(包含共享第三方组件) 构建\ 构建\ BIN(输出目录) 构建\ wwwroot文件(用于Web应用程序的输出目录) 配置\) 的src \(包含以下项目中的文件夹)

在各项目中,我已经设置了生成位置(输出目录)“.. \编译\ BIN \”这一点,因为如上所示,使项目在src目录之上构建到\ bin目录中。 在

Company.Entities 参考Company.Common 这有所有业务对象(客户,订单,产品)等....

Company.Common 包含的类格式字符串,日期,文件访问等。 不包含对公司任何其他公司的引用。库。

Company.Data 参考第三方LIB(温莎城堡例如) 这包含像IRepository,ICustomerRepository,IOrderRepository等.... 接口拥有RepositoryFactory类 - 这有一个调用的方法“获得( )“,它使用Ioc(Castle Windsor)返回,还包含用于解析这些存储库的当前实现的IoC。 Castle.config位于\ config \目录中 - 并在此项目中包含“作为链接”。我已经将它设置为始终复制到输出目录

Company.Data.LinqToSql 参考Company.Data 这是当前数据访问库。 它是由国际奥委会

Company.Logic实例 引用Company.Data 业务逻辑层 - 有一个像GetProductById(字符串ID)方法 - 这反过来调用Repository.Get()GetById(ID)。 - 例如

Company.Tests 自我解释...将在未来更多地使用它。

Company.Web 参考Company.Logic,Company.Entities,Company.Common 的Web UI层 - 这是主要的网站。

好的,希望能给你一点背景,介绍我当前的项目架构等。

目前,我正在构建一切到build/bin目录,除了Company.Web,它构建到build/wwwroot(这增加了一个bin目录) 然后我有一个后生成事件,复制aspx页面,样式表,图像,js文件等....从src/Company.Web位置构建/ wwwroot 我已经配置了Visual Studio以使用IIS进行调试,并设置了iis虚拟目录以指向我的生成/ wwwroot文件夹。

但是...... 某些必要的文件不会被内置到wwwroot文件/ bin目录 如 - Company.Data.LinqToSql - 因为这不是由proejcts引用,但使用的IoC

实例化哪有我改进了构建过程/项目结构以帮助我开发? 我会“大拇指”提出所有明智的建议。

回答

1

跳出来的一件事是将输出文件复制到build/bin。发布和调试版本是否有单独的子文件夹?我曾参与过一个大型项目,该项目使用了与您相似的设置,我们经常遇到有人从一个构建切换到另一个构建的问题,但并非所有文件都必须重建(出于某种原因)。目录通常包含来自两个版本的文件的混合。

至于构建后事件,我尽量避免它们,因为以后需要修改它们时,它们往往难以定位。当你需要开发者机器与构建服务器的不同行为时,它们也会令人讨厌。相反,我通常会创建一个.bat文件或MSBuild脚本来处理文件复制,压缩等。

否则,这听起来像您有一个像样的结构和过程。在整个项目过程中,您可能会遇到问题,困惑等。请务必将这些记录作为潜在项目进行更改或考虑未来项目。

相关问题