我们正在构建一个企业应用程序,我们将在其中整合多个用户界面平台(即ASP.net webapp,Windows应用程序,有朝一日,移动应用程序)和多个后端数据库平台(即SQL Server,XML,甲骨文)。另一个必要条件是,这些后端数据库要么集中存储,要么通过Web访问,要么本地化在客户端计算机上,偶尔也会同步到中央服务器。

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

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

有帮助吗?

解决方案

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

你问题的另一半似乎是你更大的焦点,但我会在这里要求澄清,因为我可以看出两个不同的基本问题。

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

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

  2. 本地缓存数据以提高某些平台性能的问题是针对这些平台的,我建议您研究智能客户端和MS P& P团队的缓存框架/指导。在过去的几年里,我一直专注于网络工作,但是在05/06年它非常好,同时他们在Smart Client上做了很多工作。

其他提示

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

我首先看一下Microsoft数据应用程序块中提供的示例和详细信息,我认为它将帮助您了解其中的一部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top