多层架构是仅仅是一种架构,他是相对c/s两层架构而言的.你所说的有windows应用程序,那其实是在早几年所提的胖客户端概念,与之配套的理论有microsoft dna等,那些都是相对与局域网系统而言.实际上即使你作web application,如果不是那种前端界面直接与数据打交道的,那就是多层结构.
也就是说如果你加了你的商业逻辑层,那就是已经构成了多层结构:
数据层+业务层+界面层
也就是说如果你加了你的商业逻辑层,那就是已经构成了多层结构:
数据层+业务层+界面层
如果数据库和服务器端都在同一部机器上,
那么 Web Service 我也认为没有什么必要。数据库+Web应该程序,我倾向你的观点,
那不应该算多层。如果非要给什么是多层定立一个标准的话,
Duwamish7 是个很好的参考。
》用ASP.NET开发Web应用程序。请你的主管看看VS.NET带的例子Duwawish7.微软借用asp.net,和ado.net的优势把系统的层次划分的清晰,有序,在这种项目组中工作,会让你感到一种艺术的魅力。我个人认为多层应用是OO思想的一种延伸,一种最好的实践。如果系统的划分不是OO的,系统的层次划分的越细,可能麻烦就越多。用OO的思想划分层次,哪怕是开发简单的桌面级应用,甚至是不设计数据库的应用,你多可以理直气壮的说,我的系统的多层的。
也就是说如果你加了你的商业逻辑层,那就是已经构成了多层结构:
数据层+业务层+界面层
Web应用程序加数据库也有可能是多层应用。
例如,ASP + COM+ + SQL server
多层应用的好处是使各个应用层次隔离,性能和调试等方面都有其优点。
特别是一些做中间件的软件公司可以专门针对某一层次开发组件,提高二次开发的效率。
然而并不是任何项目都应当采用多层结构的,应当观察项目的规模和成本,技术难度等。
至于Web service,我想不需要在这里做更多的说明,IBM和MS等不会对没有价值的技术投入巨大的人力、物力和财力来推行这项技术,难道他们仅仅是为了争夺市场?
你的主管如果仅仅是针对某一具体的项目而言,这可以理解。但是如果是针对公司的整个开发策略,那么你的公司的前途就危险了,一个缺乏长远目光的公司,它的命运可想而知。
推荐几篇文章,希望对你有帮助:
http://www.microsoft.com/china/msdn/library/dndotnet/html/DesignNetApp.asp(中文)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/DesignNetApp.asp(原英文)
上面的文章可谓是经典,看看评价就知道了http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/buildntierapp.asp?frame=true(英文)
操作,因此有必要开发多层结构的网络服务程序他还认为:如果应用程序服务器和数据库服务器都在一个机器上就没有这种必要。 这种说法查不多是对的,从安全角度出发,如果在同一个服务器上,就没有必要开发什么多层了,但是如果在这个基础上开发多层,可想而知我们可以自己做加密,包括数据库用户和密码的管理都可以更方便。还有 数据库+WEB应用程序,算不算是多层结构的?我个人认为不是,但我们的技术主管认为是。
可以算是多层结构,也可以算是准多层
class Note
{
//此处声明所有用到的属性. pubilc Note(){} //构造函数 pubilc bool AddWords()
{
//竟当前信息添加到数据库中,实现添加留言功能
} pubilc Note[] GetCurpage(int iCurPage,int iPageSize)
{
//根据参数得到当前数据库中,特定范围的记录,实现得到特定页的留言记录,返回值,我更多的是使用DATAVIEW,此处使用了Note数组,看个人喜好而定
} //其他直接和数据库的操作...
}上面的结构,朋友们应该可以看出来,就是我们通常说说的数据层(我一般把数据曾写成类,供业务曾调用)2.完成了上面的类代码,下面开始写业务曾,其实,在ASP.NET下,我一般是在CODEBEHIDE中完成,在CODEBEHIDE中,调用上面的类,完成实际的发言,查看留言的等3.就是表现层了,也就是一般的ASPX代码,这部分中基本全是HTML代码,几乎不包含任何程序代码.使用三层结构的好处,是程序的维护和升级的非常容易,如果数据库变了,我们只需要简单修改一下我们的类文件,只要调用的接口没有变,那么我们可以很容易的扩充我们的程序.而如果是想变换程序的样式,那么更简单了,只要让美工修改一下我们的ASPX页面,其他的可以几乎不动就成了新的版本.....
系统的分层是相对的,:)
你的note类应该属于中间层,其中的关于数据库的操作应该再抽象出来成为数据层,你所说的codebehind文件中的代码和aspx页面文件同属于表现层,否则将代码分开的aspx文件中只有静态标记,根本不能算做为一“层”。