用vs2010建立空白解决方案
用 VS2010 建立空白解决方案三层结构,会有多个项目。为了让各项目之间的关系反映在目录结构上所以要建立一个解决方案。1.建立解决方案: 文件>新建项目>其它项目类型>Visual Studio 解决方案>空白解决方案。2.在解决方案里添加第一个项目 建立空白解决方案后,在 vs2010 右边的解决方案资源管理器中,可以看到刚建立的解决方案,单击选中它,然后右键选择“添加”>新建项目 >Visual C# >ASP.NET Web 应用程序 ,把名称命为:Web,点击确定后就在解决方案里建立了一个 Web 项目。3.在解决方案里添加第二个项目 在解决方案里加入第一个项目后,再加入第二个项目,第二个项目和添加与第一个项目的添加有一点差别,添加第二个项目的步骤是:文件>新建项目>Visual C# >类库。选择“类库”以后,把名称命名为:BLL,在最下面的“解决方案”里选择“添入解决方案”,意思就是把新建的这个 BLL 项目,添入到建立的 KaiBo 解决方案里。刚才建立的两个项目就在解决方案里很好的组织起来了。4.在解决方案里添加其它的项目 添加两个项目后,为解决方案添加更多的项目就只需选中解决方案,右键“添加”>新建项目>Visual C#>类库。再自已命名项目名称就可以了。1、WEB表示层 2、BLL业务逻辑层 3、IDAL数据访问层接口定义 4、Model业务实体 5、DALFactory数据层的抽象工厂(创建反射) 6、SQLServerDALSQLServer 数据访问层 / OracleDALOracle 数据访问层 7、DBUtility 数据库访问组件基础类 多了一个 WebControls 项目,那是我写的一些自定义控件。如果需要,还可以往解决方案里加入更多的项目。到此为止解决方案就建立完成了。但是各项目之间还是各自独立的 ,要想相互调用就要建立项目间的引用关系。在 vs2010 里面把解决方案中的各个项目都建立好之后,就要实现各项目之关的引用了.在前面,我们建立了 7 个项目.它们分别是:WEB:表示层 BLL:业务逻辑层 IDAL:数据访问层接口定义 Model:业务实体 DALFactory:数据层的抽象工厂(创建反射) SQLServerDAL:SQLServer 数据访问层 DBUtility :数据库访问组件基础类 各项目之间的引用关系可用下图表示:Web 引用 BLL,SQLServerDAL BLL 引用 IDAL,Model,DALFactory(使用 DALFactory 创建实例) DAL 引用 Model Model 无引用 DALFactory 引用 IDAL,通过读取 web.config 里设置的程序集,加载类的实例,返回给 BLL 使用 SQLServerDAL 引用 Model 和 IDAL,DBUtility.被 DALFactory 加载的程序集,实现接口里的方法 在解决方案里建立项目间的引用步骤为:选中需要添加引用的项目右键选择"添加引用""项目",然后选中要引用的项目的名称.点确定完成项目的引 用.把各项目之间的引用关系建立好以后,一个完整的解决方案就算是拾建好基石了.接下来,就是写代码实现各项目的作用了.另外参考:在 VS.NET 中,如何将一个 asp.net 项目的多个模块编译成不同的DLL?问:概况:有一个基于 ASP.NET 的系统,系统由一个基础框架和多个业务模块组成,各业务模块之间的耦合性不强但每个业务模块对基础框架高度依赖。需求:希望能够将基础框架和各业务模块单独编译成不同的 DLL,部署时可灵活的根据客户需求增删业务模块。_答 1:建立一个新的解决方案,在解决方案上点击右键在其中建立新建项目每个新的项目就是你的业务模块,他们会编译成单独的 DLL在要引用不同的项目的 dll 时,可以使用点击 引用->项目->选择所要引用的项目_答 2:在一个解决方案下面建立多个项目,每个项目对应你的模块,每个项目输出类型都是类库_答 3:在新建的项目为:其它项目-企业级模版项目-c#或 vb 分布式应用程序。项目自动创建四层结构的项目。之后自己在每一层创建每个 dll 项目。如果 a 模块使用 b 模块,就在 a 模块的项目上添加引用,选择项目-b 项目。以上就是简单的多模块引用。_答 4:将基础框架及各相对独立的业务模块分到不同的项目里。如果有多个层次,可以使用企业级模板项目来分级,没有多个层次的,把所有的项目都直接放在解决方案下好了。_答 5:在添加新项目时,添加类库项目,该项目编译生成的就是你要的 DLL 文件。在其他项目中引用生成的 DDL 就可以了。_答 6:不知道你有没有逻辑程,你可以单独编译 cs 文件,然后共享在每个模块._答 7:不在 VS.NET 中倒是可以._答 8:首先感谢大家的热情答复!祝大家新年快乐!如上面各位的回答,将模块分布到项目里面,那我需要在各个业务模块中共享基础框架中的状态信息,如获取系统的运行状态(保存在 application 中)、获取用户的登录信息(保存在用户 session 中)等,采取这种“引用项目生成的 DLL”的方式,能够实现吗?首先申明:我是.net 新手。就 我的理解(还没来得及试验):每个 asp.net 项目都是一个 web 应用,如在vs.net 中新建一个 c#的 asp.net 项目,就会有自己的 AssemblyInfo.cs, web.config, Global.asax 等文件,这样的话,要在各个项目与同一个基础框架(也是一个 asp.net 的项目)之间共享应用的运行状态,应该是行不通的!不知道我的理解对不对?_答 9:ding_答 10:当然能满足你的要求._答 11:模块编译后基本上就可以脱离项目了_答 12:to Hanks(Hank) 你的理解是对的,Session 不能在项目间传递的,建项目时,每个项目都会生成自己的web.config, global.asax, 但你可以把你的业务模块编成不同的项目后,生成相应的.dll, 然后再在你的项目中引用这些.dll, 就可以引用相应的项目了:)Happy Spring Festival to every one!_答 13:建立的项目为“类库”用来放你的逻辑层,再在 WEB 项目中引用,但项目之间不能互相引用,那就用某个项目去直接引用另外个项目生成后的 DLL_答 14:举个例子,比如:某系统 A 由 5 个基础模块和 10 个业务模块组成,其中假设有一个业务模块 Xxx,该模块物理上由两个 dll 和一些页面(包括aspx, html, js 等)组成。两个 dll 分别是:一个封装业务逻辑的 dll,假设为 XxxModel.dll一个用于封装 aspx 页面 behind code 的 dll,假设为 XxxView.dll这个模块需要与基础模块通讯,访问基础模块中的系统状态。象这样怎么做?_答 15:UP_答 16:TO就 我的理解(还没来得及试验):每个 asp.net 项目都是一个 web 应用,如在vs.net 中新建一个 c#的 asp.net 项目,就会有自己的 AssemblyInfo.cs, web.config, Global.asax 等文件,这样的话,要在各个项目与同一个基础框架(也是一个 asp.net 的项目)之间共享应用的运行状态,应该是行不通的!可行的办法: