2010-11-06 99 views
0

我目前正在寻找一个解决方案,其中有5个项目。如下所示:BusinessLogic,BusinessObjects,DataAccess和ActualProject Name。我想知道这些都会做什么?C#业务逻辑,业务对象,数据访问,项目

Businesslogic:在其中有一个名为业务经理的文件夹。这里有一些可能看起来像检查业务规则的方法吗?

BusinessObjects:有2个类,它们都只是有一堆的公共变量{get;设置;}在他们之后,在这些类别中没有别的。

DataAccess:有3个类。 1位于名为DataManagers的文件夹下,1位于名为QueryManagers的文件夹下。

ActualProject:这看起来像只包含实际的应用程序逻辑和app.config文件。

任何洞察任何这些将不胜感激!

谢谢

回答

5

听起来很正常。

BusinessLogic 有关域的业务逻辑。诸如:“确保订单已提交价格”等。保持业务逻辑的中心位置,非常常见(并推荐)。

业务对象 简单的POCO(Plain Old CLR Objects)来表示域模型。没有逻辑,只是轻量级的存储。

数据访问 处理针对底层数据存储(即SQL Server,Oracle,XML)的域对象的持久性。不对行为域对象做任何假设,只是它的工作是检索/保留它们。

ActualProject 的UI - 通常的网络应用程序,控制台,WPF等。介绍层为其他项目。

这是继微软最佳实践(关注点分离 - ):商务数据介绍

通常其他层都参与,但这些都是核心的三人。

0

业务规则,业务实体,存储和演示。

您可能还想看看this文章和this one

2

看来你正在寻找的解决方案,将本机允许你解耦表示/业务逻辑/数据库,即三层应用程序体系结构。

如果是这样,您需要应用程序服务器来帮助您轻松解耦,开发和维护您的业务逻辑。这取决于你的发展平台。

对于Java平台,有许多开源服务器,如glassfish或tomcat(谷歌他们)。您可以创建代表您的自定义业务逻辑并使用持久性的Web服务。对于基于.NET(C#,VB.NET等)的解决方案,您将需要TNAPS .NET应用服务器之类的东西(检查http://technovation.ru/tnaps)它提供了您需要的所有概念 - 业务对象,数据访问,用户管理,安全。

Ruby/JavaScript世界里还有很多东西(node.js/rails等)。一切都取决于您的解决方案的需求。如果它是面向企业的业务解决方案 - 比标准的.NET方法更好。此外,您可以随时将此逻辑暴露于Web(saas)中。

最后,碰巧注意到您正在使用c#作为问题的标签,因此请查看TNAPS或其他c#应用程序服务器(尽管那里并不多)。