.net - WPF/分层架构问题 -

标签 .net wpf wcf architecture

我正在思考 WPF 应用程序的高级架构。

通常我会考虑这个

  • 数据库服务器
  • 位于自己服务器上的数据访问层
  • 位于自己服务器上的业务逻辑层
  • 业务层的 WCF 包装器
  • 用于客户端的 UI 层。

例如一个瘦客户端,所有的魔力都发生在远程服务器上。

但团队中有人质疑业务逻辑层是否需要位于远程服务器上。为什么不将其也滚动到客户端上,使其不再是瘦客户端,而更像是胖客户端服务器应用程序。

我们目前不需要 WCF,并且假设我们仍然构建业务逻辑,因此它位于单独的层上,这对我来说在简化基础设施方面具有一定意义。

我的问题是...当不需要 Web 服务时,是否有任何好的架构理由不将业务逻辑层与 UI 层一起部署到客户端计算机?

我可以想到drwabacks,但这些看起来都没有那么大

  • 客户端更新的需求减少(但 clickonce 肯定会缓解这种情况)
  • 客户端计算机负载增加。
  • 需要确保数据库服务器足够大并且与其连接足够大

最佳答案

我通常会将业务逻辑与 UI 分开。为什么 ?因为您的 UI 可能只是该服务的一个客户端

目前,您的客户是该服务的唯一使用者,但在稍后阶段,您可能希望有其他客户(包括其他服务)使用该服务。通过分离业务逻辑,您可以将其提供给其他消费者。

我通常会将业务逻辑作为一个组件,然后我可以选择如何部署它(在客户端或服务器中)。然而,在很多情况下我无法做到这一点。例如如果客户端和服务器使用不同的技术实现(C#/Java 是常见的组合)。

关于.net - WPF/分层架构问题 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734713/

相关文章:

.net - C++/CLI:从泛型方法返回Nullable <T>对象

c# - 根据日期选择器中的开始和结束日期选择记录

wpf - WPF MVVM Threadsafe从ViewModel获取List <Object>的方法

c# - 如何将流中的图像解码为现有图像

c# - 在 WCF 请求中存储数据的位置

wcf - 在WCF服务中接收POST数据

c# - 如何播放放置在 Resources 文件夹中的 SWF 文件

c# - Icecast 2 : protocol description, 使用 C# 流式传输到它

.net - 如何加快 WCF 客户端的启动性能

c# - 在 react 性管道中执行TPL代码并通过测试计划程序控制执行