admin管理员组

文章数量:1532473

2024年5月14日发(作者:)

用VS2010建立空白解决方案

三层结构,会有多个项目。为了让各项目之间的关系反映在目录结构上所以要建

立一个解决方案。

1.建立解决方案:

文件->新建项目->其它项目类型->Visual Studio解决方案->空白解决方案。

2.在解决方案里添加第一个项目

建立空白解决方案后,在vs2010右边的解决方案资源管理器中,可以看到刚建

立的解决方案,单击选中它,然后右键选择“添加”->新建项目 ->Visual C#

- > Web应用程序 ,把名称命为:Web,点击确定后就在解决方案里建

立了一个Web项目。

3.在解决方案里添加第二个项目

在解决方案里加入第一个项目后,再加入第二个项目,第二个项目和添加与第一

个项目的添加有一点差别,添加第二个项目的步骤是:文件->新建项目

->Visual C# ->类库。

选择“类库”以后,把名称命名为:BLL,在最下面的“解决方案”里选择“添

入解决方案”,意思就是把新建的这个BLL项目,添入到建立的KaiBo解决方案

里。

刚才建立的两个项目就在解决方案里很好的组织起来了。

4.在解决方案里添加其它的项目

添加两个项目后,为解决方案添加更多的项目就只需选中解决方案,右键“添加”

->新建项目->Visual C#->类库。再自已命名项目名称就可以了。

1、WEB=表示层 2、BLL=业务逻辑层 3、IDAL=数据访问层接口定义 4、Model

=业务实体 5、DALFactory=数据层的抽象工厂(创建反射)

6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层 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,通过读取里设置的程序集,加载类的实例,

返回给BLL使用

SQLServerDAL 引用 Model和IDAL,DBUtility.被DALFactory加载的程序集,

实现接口里的方法

在解决方案里建立项目间的引用步骤为:选中需要添加引用的项目→右键选择"

添加引用"→"项目",然后选中要引用的项目的名称.点确定完成项目的引 用.

把各项目之间的引用关系建立好以后,一个完整的解决方案就算是拾建好基石了.

接下来,就是写代码实现各项目的作用了.

另外参考:在中,如何将一个项目的多个模块编译成不同的

DLL?

问:

概况:

有一个基于的系统,系统由一个基础框架和多个业务模块组成,各业务

模块之间的耦合性不强——但每个业务模块对基础框架高度依赖。

需求:

希望能够将基础框架和各业务模块单独编译成不同的DLL,部署时可灵活的根据

客户需求增删业务模块。

_____________________________________________________________________

_________________________

答1:

建立一个新的解决方案,在解决方案上点击右键

在其中建立新建项目

每个新的项目就是你的业务模块,他们会编译成单独的DLL

在要引用不同的项目的dll时,可以使用点击 引用->项目->选择所要引用的项

_____________________________________________________________________

_________________________

答2:

在一个解决方案下面建立多个项目,每个项目对应你的模块,每个项目输出类型

都是类库

_____________________________________________________________________

_________________________

答3:

在新建的项目为:其它项目--〉企业级模版项目--〉c#或vb分布式应用程序。

项目自动创建四层结构的项目。之后自己在每一层创建每个dll项目。

如果a模块使用b模块,就在a模块的项目上添加引用,选择项目-〉b项目。

以上就是简单的多模块引用。

_____________________________________________________________________

_________________________

答4:

将基础框架及各相对独立的业务模块分到不同的项目里。

如果有多个层次,可以使用企业级模板项目来分级,没有多个层次的,把所有的

项目都直接放在解决方案下好了。

_____________________________________________________________________

_________________________

答5:

在添加新项目时,添加类库项目,该项目编译生成的就是你要的DLL文件。

在其他项目中引用生成的DDL就可以了。。

_____________________________________________________________________

_________________________

答6:

不知道你有没有逻辑程,

你可以单独编译cs文件,

然后共享在每个模块.

_____________________________________________________________________

_________________________

答7:

不在中倒是可以.

_____________________________________________________________________

_________________________

答8:

首先感谢大家的热情答复!祝大家新年快乐!

如上面各位的回答,将模块分布到项目里面,那我需要在各个业务模块中共享基

础框架中的状态信息,如获取系统的运行状态(保存在application中)、获取

用户的登录信息(保存在用户session中)等,采取这种“引用项目生成的DLL”

的方式,能够实现吗?

首先申明:我是.net新手。

就 我的理解(还没来得及试验):每个项目都是一个web应用,如在

中新建一个c#的项目,就会有自己的 ,

, 等文件,这样的话,要在各个项目与同一个基础框架

(也是一个的项目)之间共享应用的运行状态,应该是行不通的!

不知道我的理解对不对?

_____________________________________________________________________

_________________________

答9:

ding

_____________________________________________________________________

_________________________

答10:

当然能满足你的要求.

_____________________________________________________________________

_________________________

答11:

模块编译后基本上就可以脱离项目了

_____________________________________________________________________

_________________________

答12:

to Hanks(Hank)

你的理解是对的,

Session 不能在项目间传递的,建项目时,每个项目都会生成自己的,

, 但你可以把你的业务模块编成不同的项目后,生成相应的.dll,

然后再在你的项目中引用这些.dll, 就可以引用相应的项目了:)

Happy Spring Festival to every one!

_____________________________________________________________________

_________________________

答13:

建立的项目为“类库”用来放你的逻辑层,再在WEB项目中引用,但项目之间不

能互相引用,那就用某个项目去直接引用另外个项目生成后的DLL

_____________________________________________________________________

_________________________

答14:

举个例子,比如:

某系统A由5个基础模块和10个业务模块组成,

其中假设有一个业务模块Xxx,该模块物理上由两个dll和一些页面(包括aspx,

html, js等)组成。两个dll分别是:

一个封装业务逻辑的dll,假设为

一个用于封装aspx页面behind code的dll,假设为

这个模块需要与基础模块通讯,访问基础模块中的系统状态。

象这样怎么做?

_____________________________________________________________________

_________________________

答15:

UP

_____________________________________________________________________

_________________________

答16:

TO

就 我的理解(还没来得及试验):每个项目都是一个web应用,如在

中新建一个c#的项目,就会有自己的 ,

, 等文件,这样的话,要在各个项目与同一个基础框架

(也是一个的项目)之间共享应用的运行状态,应该是行不通的!

〉〉可行的办法::

本文标签: 项目模块解决方案