由于我们的域模型和流程,我们正在考虑在客户端和服务器之间共享模型。我们的客户端是非常厚重的客户端。 有关此类架构、优缺点的信息吗?
由于我们的域模型和流程,我们正在考虑在客户端和服务器之间共享模型。我们的客户端是非常厚重的客户端。 有关此类架构、优缺点的信息吗?
也许您需要的是来自领域驱动设计的Bounded Context的概念-相同的类名,但在客户端上下文和服务器上下文中略有不同的类。
DDD和现代开发实践鼓励将领域逻辑保留在客户端外。当前大多数客户端代码都用于利用客户端平台的GUI美观性。
将领域逻辑保留在客户端外的两个好处是安全性和可维护性。
为了安全起见,服务器应该控制客户端可以执行什么操作。客户端可能被黑客攻击,但如果所有的领域逻辑和安全性都在服务器上,则无论客户端经历多少次黑客攻击,也不能规避或破坏系统。
为了方便维护,如果您的所有领域逻辑都在服务器上,那么它们就在一个地方。如果所有的代码都在一个地方(最好是一个清晰定义的模块或命名空间中),那么团队中的任何人都可以更容易地维护代码。