我搜索过谷歌,找到.net中3层和n层架构的主要区别,但我没有找到它。一些网站表示两者的性质相同,有些网站表示它们之间存在差异。
我想知道主要的差异,哪一个在性能优化方面更好?
答案 0 :(得分:10)
表示层(客户端浏览器)
应用程序或业务逻辑层
数据层
主要区别在于n层拱门增加了2层。关于数据层的示例开发人员的一部分是SQL开发人员,他们在数据库服务器上工作(制作数据库结构,编写存储过程等等),以及.Net开发人员,他们的工作是使用存储过程并进行抽象(实现存储库模式)。
希望这对你有所帮助。
答案 1 :(得分:3)
我知道这个问题很老,但真正简单且最终正确的答案是:
3层是 N层,其中N = 3。
答案 2 :(得分:2)
N层应用程序是一个具有3个或更多物理层的应用程序。我的意思是“Presentation / Client Tier”,“Application / Business Server Tier”和“Data Tier”(大多数情况下是数据库服务器),现在我们使用Web服务(甚至更好的WCF服务)在表示层和应用程序服务器层之间进行通信。在这里你看到一个简单的&关于N层架构的典型图片:
另一个问题是我们可能将我们的应用程序设计为N层应用程序,我的意思是,我们实现了不同的逻辑任务。例如,我们可以拥有DAL层(数据访问层),BLL层(业务逻辑层),BFLL层(业务外观逻辑层),WCF服务层和几个表示层,这取决于我们使用的模式,如MVC(模型 - View-Controller),MVP(Model-View-Presenter)等。此外,在N层架构中,您可以猜测实体框架适合作为DAL层(数据访问类)以及使用EF实体作为我们的断开的实体通过所有层,好吗?
BTW,并非所有N层应用都应该是N层应用,但所有N层应用必须在内部设计为N层。我的意思是,在许多情况下,您的物理分割模型越少,性能越好(更多层有利于可扩展性,但由于延迟而不适用于纯性能)。请记住,N-Layer是关于逻辑层的。好的!所以如果我们回到N层体系结构(物理层),就像我说的那样,我们需要远程机制来将客户端层与应用服务器层(例如,WCF服务)进行通信,因此当我们从应用服务器层查询数据库,以获取数据(如订单),我们将其保留为EF实体,然后我们将其与EF上下文断开(分离),WCF将其序列化并将该断开连接的实体发送到演示文稿层(客户端应用程序和机器)。
答案 3 :(得分:0)
N -Tier
和3 Tier
之间的区别如下。
在3 Tier
应用程序中,存在三个层,如表示层,应用程序层和数据层。在这里,应用程序层也包含业务逻辑。
另一方面,在N Tier
中,应用层分为2个层,即应用层和业务逻辑层。根据来自表示层的数据(不同的操作系统,不同的平台等),您最多可以添加N
个应用层。