2

我们正在构建一个企业应用程序,我们将在其中整合用户界面(即ASP.net webapp,Windows应用程序和某天移动应用程序)的多个平台以及多个平台后端数据库(即SQL Server,XML,Oracle)。还有一个额外的问题是,这些后端数据库要么通过Web集中访问,要么本地化在客户端计算机上,偶尔会同步到中央服务器。摘要企业应用程序中的数据连接层和表示层

任何人都可以提供关于如何抽象数据层的用户界面层&的建议,以便我们可以更简单地创建各种UI和DB的各种选择之间的即插即用适应性?例如:在一种情况下,我们可能通过互联网在中央服务器上运行Web应用程序,并且我们可能有远程机器通过Windows应用程序运行本地化副本。按照预定的时间间隔,我们希望所有机器都进行同步,以便它们都可以拥有接近实时的数据。

我们还需要有关处理涉及的各种连接字符串的建议,以便在任何一个应用程序上需要更改的唯一设置将是“本地”或“远程”,然后确定必要的连接字符串。

回答

5

一旦你掌握了n层体系结构,抽象表示层是一个相当简单的概念。只关注区分“领域逻辑”和“应用逻辑”。域逻辑在您的不同平台上很常见,并且应用程序逻辑是特定于平台的。例如,数据验证是域逻辑(虽然在前端可以做到这一点很好,这使得事情变得更加复杂,但在这里与我一起工作......)并决定在应用程序执行某些操作后重定向到的URL逻辑。确保您将域逻辑置于任何平台可用的级别,并确保不要在您的域层中放置任何应用程序逻辑。

你的问题的另一半看起来像你的重点,但我会在这里要求澄清,因为我可以辨别出两个不同的基本问题。

  1. 我希望你不要去争取数据库独立性的“圣杯”。在设计阶段,这总是一个崇高的目标,几乎总是,几乎每次都是不需要的。

    如果这不是你要做的,那么我建议你应该知道哪些对象存储在哪个持久性媒介中,并且你应该避免灵活性的复杂性,并且直接编码你的垂直路径尽可能地前进。 IE不会将额外的东西编入某些将其数据存储在Oracle中的业务类中,以使您能够在“将来某个时间点”将其放入SQL Server中。 (我是循环回数据库独立性,不是吗?)

  2. 本地缓存数据以提高某些平台性能的问题是特定于这些平台的,我建议您查看智能客户端和缓存框架/指导MS P & P团队拥有。在过去的几年中,我一直在网上做些工作,但在05/06这段时间内,这很不错,同时他们在Smart Client上做了很多工作。

1

我会看看使用提供者模型在应用程序中建立数据库连接。

我首先看一下Microsoft数据应用程序块中提供的示例和详细信息,我认为它会帮助您找到那里的一部分。

相关问题