探求asp.net(c#)开发模式+三层结构,新手问路!

lemoha 2004-09-23 04:57:44
请问大家平时要开发一个b/s架构的asp.net(c#)应用程序,又想分三层结构(webUI/BLL/DA)或只是简单的把表示层和数据访问层分开,或者还想保护自己写的业务逻辑代码(处理成.dll文件),大家一般怎么创建一个解决方案啊——具体步骤?创建哪些工程?设置怎样的一种代码结构??

比如希望最终代码结构大概如下:

>解决方案根目录
----------\bin 存放.dll
----------\images 存放图片
----------\WebUI(表示层) 只有.aspx和.css等文件,没有.aspx.cs,.aspx.resx文件(那我该怎么处理,放哪好呢,这正是我最疑惑的地方!!!)
----------\DA(数据访问层)存放.cs文件

我该怎么实现?请高手指教!
...全文
411 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemoha 2004-09-24
  • 打赏
  • 举报
回复
总结一下,个人认为MS也推荐以下企业应用开发模式(总体分三层):
Web 层(WebUI)---->由 ASP.NET Web窗体(.aspx)和代码隐藏文件(.aspx.cs)组成,为客户端提供对应用程序的访问,服务器发送给客户端的只有aspx页内的html代码,所有调用数据或者业务逻辑层dll都在aspx.cs内并不发送客户端,aspx.resx内基本上就是XML的Schema,一般用\control存放.resx文件,用\bin存放业务逻辑层和数据访问层各自生成的.dll(保护作者核心代码)文件,让表示层调,该层作为解决方案文件中的WebUI项目实现;
业务逻辑层(BLL)---->存放.cs/.src文件,它包含各种业务规则和逻辑的实现,build直接输出到WebUI\bin中生成.dll文件给.aspx.cs文件用using调用,该层作为解决方案文件中的BusinessRules 项目实现;
数据访问层(DA)----->存放.cs文件,为业务逻辑层提供数据服务。这一层是作为解决方案文件中的 DataAccess 项目实现的。


leefire119 2004-09-23
  • 打赏
  • 举报
回复
服务器发送给客户端的只有aspx页内的html代码,所有调用数据或者业务逻辑层dll都在aspx.cs内并不发送客户端,aspx.resx内基本上就是XML的Schema

只要在项目内的任何非aspx都是隐藏的,调用dll只要在cs页里写"using 项目名.文件夹名.文件名;"就ok了
其实大家不要想的太复杂了,三层,有必要分那么清楚吗?高效率才是公司最看重的东西.
要分三层那就这么理解
表现层---客户端---->HTML 页面
事件处理或调用层---服务器端---->aspx.cs 调用
数据层----数据库或web service---->mdb dll 业务逻辑或数据

这么理解可能是错的,但是我觉得现在我很清楚这些关系,不管怎么样不会让这些打扰我工作的进度....
lijianlee 2004-09-23
  • 打赏
  • 举报
回复
什么叫Web层代码隐藏文件?用户只能看到客户端的代码,服务器端的不到呀,代码分离呀,你说的Web层代码隐藏文件说的是隐藏域吗?我有点糊涂了:(
echo123321 2004-09-23
  • 打赏
  • 举报
回复
可我想在Web 层 里没有代码隐藏文件,拿该怎么处理它啊?
.ascx文件是干吗的,在这能帮助处理这问题吗?
安全问题不用考虑了,微软已经做的很好了。呵呵。.ascx是usercontrol我的理解就是一个嵌套文件。还是比较好的。看起来层次清晰
lijianlee 2004-09-23
  • 打赏
  • 举报
回复
是这样的 .net是前后台分离的,也就是说也页面分2部分,客户端和服务器端的,客户端是aspx文件,服务器端是cs文件。aspx里一般是html vbscritp javascript写的 cs一般是c# vb写的他们是分开的aspx和cs是文件后缀,也就是说他们前边的名字还是一样的,比如叫lee那就有2页一个叫lee.aspx另外的叫lee.cs
terry2003 2004-09-23
  • 打赏
  • 举报
回复
我是这样想的:
为表示层建一个Web项目,中间层和数据层各建一个类库项目,生成dll让表示层调,
表示层文件夹结构,用controls文件夹存user control ,分几个模块就用几个文件夹来存,比如用户管理模块用user等,后台可以单独建一个WEB项目,也可以在前台建一个文件夹也行,这样可以用权限来实现
其它的,我也是入门,命名空间的结构也要考虑到
lemoha 2004-09-23
  • 打赏
  • 举报
回复
那平常大家都是这样做项目(稍微正规些的那种)的吗?
那你们是把整个解决方案建成虚拟目录,还只是把web做成虚拟目录?
要不事先把解决方案做成虚拟目录的话,到创建web层时,系统默认创建到c:\inetpub\wwwroot下去了,怎么在创建的时候就更该路径到解决方案下呢?
lemoha 2004-09-23
  • 打赏
  • 举报
回复
我也是刚从jsp转到asp.net,刚开始,很晕啊!
谢谢二楼,我正是要这种分层,没想到我的电脑里就有实例.....
可我想在Web 层 里没有代码隐藏文件,拿该怎么处理它啊?
.ascx文件是干吗的,在这能帮助处理这问题吗?

还有着几层之间的依赖关系怎么处理,我在Web 层怎么调用业务逻辑和数据访问层的类,
.dll文件该怎么引用?

拜谢各位热心人!!
coolbug2000 2004-09-23
  • 打赏
  • 举报
回复
up
jijl2001 2004-09-23
  • 打赏
  • 举报
回复
注意
du9232 2004-09-23
  • 打赏
  • 举报
回复
很清楚啊,Duwamish就是个很好的例子
lijianlee 2004-09-23
  • 打赏
  • 举报
回复
mvc似乎在jsp里很清晰,我用.net也用的很糊涂,3层没分的那么清楚呀。
roapzone 2004-09-23
  • 打赏
  • 举报
回复
参考:在你的计算机(C:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 CS)
Duwamish 7.0 结构分为四个逻辑层:

Web 层
Web 层为客户端提供对应用程序的访问。这一层是作为 Duwamish.sln 解决方案文件中的 Web 项目实现的。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。

业务外观层
业务外观层为 Web 层提供处理帐户、类别浏览和购书的界面。这一层是作为 Duwamish.sln 解决方案文件中的 BusinessFacade 项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。

业务规则层
业务规则层是作为 Duwamish.sln 解决方案文件中的 BusinessRules 项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如客户帐户和书籍订单的验证这样的任务。

数据访问层
数据访问层为业务规则层提供数据服务。这一层是作为 Duwamish.sln 解决方案文件中的 DataAccess 项目实现的。

注意 有关更多信息,请参见解决方案文件和环境设置。
除了上述四个逻辑层外,Duwamish 7.0 还包含封装在 Duwamish.sln 解决方案文件中的 Common 项目内的共享函数。“通用”(Common) 层包含用于在各层间传递信息的数据集。Common 项目还包含 Duwamish.sln 解决方案文件中的 SystemFramework 项目内的应用程序配置和跟踪类。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧