我目前正在寻找一个包含5个项目的解决方案。如下所示:BusinessLogic,BusinessObjects,DataAccess和ActualProject Name。我想知道每个人究竟会做些什么?
Businesslogic:其中有一个名为business manager的文件夹。这里有一些方法看起来可能会检查业务规则吗?
BusinessObjects:有两个类,它们都只有一堆公共变量{get;在他们之后,在那些类别中没有别的东西。
DataAccess:包含3个类。 1位于名为DataManagers的文件夹下,1位于名为QueryManagers的文件夹下。
ActualProject:看起来它只包含实际的应用程序逻辑和app.config文件。
任何有关这些的见解都将受到赞赏!!!
由于
答案 0 :(得分:5)
听起来很正常。
<强> BusinessLogic 强> 与域有关的业务逻辑。例如:“确保订单以价格提交”等。维护业务逻辑的中心位置,非常常见(和推荐)。
Business Objects 简单,POCO(普通的旧CLR对象)来表示域模型。没有逻辑,只有轻量级存储。
数据访问 处理域对象对基础数据存储(即SQL Server,Oracle,XML)的持久性。对行为域对象没有任何假设,只是它的工作是检索/持久化它们。
<强> ActualProject 强> UI - 通常是Web应用程序,控制台,WPF等。用于其他项目的表示层。
这遵循Microsoft最佳实践(分离关注点):业务,数据,演示文稿
通常涉及其他层,但这些是核心三层。
答案 1 :(得分:2)
您似乎正在寻找原则上允许您解耦演示/业务逻辑/数据库(即三层应用程序架构)的解决方案。
如果是这样,您需要应用程序服务器来帮助您轻松地解耦,开发和维护您的业务逻辑。这取决于你的平台发展。
对于Java平台,有许多开源服务器,如glassfish或tomcat(google)。您可以创建代表自定义业务逻辑的Web服务,也可以使用持久性。
对于基于.NET(C#,VB.NET等)的解决方案,您需要TNAPS .NET Application Server之类的东西(检查http://technovation.ru/tnaps)它提供了您需要的所有概念 - 业务对象,数据访问,用户管理,安全。
Ruby / JavaScript世界中也有很多东西(node.js / rails等)。一切都取决于您的解决方案的需求。如果它是面向企业的业务解决方案 - 比标准的.NET方法更好。此外,您可以随时将此逻辑公开到Web(saas)中。
最后,碰巧注意到您正在使用c#作为问题标签,因此请查看TNAPS或其他c#应用程序服务器(尽管那里没有很多)。
答案 2 :(得分:0)