首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.net中开发模块化服务器组件的良好技术?

在.net中开发模块化服务器组件的良好技术?
EN

Software Engineering用户
提问于 2012-10-08 14:20:13
回答 2查看 158关注 0票数 2

我正在使用WPF,棱镜和统一来开发.net应用程序的用户界面。UI将从PC上运行,但我还需要开发一个单独的复杂服务器组件,该组件将通过WCF向PC组件提供服务。

棱镜和统一已经证明在创建一个模块化的应用程序中有很大的价值,至少就用户界面而言是如此。我也想使服务器组件模块化,但我在任何地方都找不到适合的技术、模式和技术。我考虑过:

  • 统一或其他DI容器之一
  • 棱镜的选定部分,如模块和事件

这些是否适合于开发模块化的服务器组件?还是这些UI技术是唯一的,我应该看到完全不同的东西吗?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2012-10-08 14:34:15

为了确保服务器端组件的模块化,有几个很好的指导原则需要遵循,在设计程序集时要记住一个好的经验法则,它们的责任边界可以使客户端的客户端请求更容易地满足。这将帮助您设计服务器端组件,使其能够在多个场景中更干净地完成其任务。

我建议读一读这个:http://apparch.codeplex.com/releases/view/19801

尽管如此,我的一般性建议如下:

  • 迪,是的。无论您如何做,都可以使用它来抽象服务的层。
  • 在不引用服务端的类库中,设计并实现服务器端部件的关键。
  • 认识到它是一个“服务”仅仅是它的托管过程的一个结果,而不应该是业务逻辑本身的一个内置的部分。
  • 至少,水平分段应该在服务托管和逻辑组件之间创建一个边界,这可能是模块化的,您需要更多的水平边界。
  • 使您的托管层以下的一切,完全不了解其他服务尽可能多。您希望外部依赖关系尽可能地挂起您的图形到堆栈的顶部。
票数 1
EN

Software Engineering用户

发布于 2012-10-08 17:41:07

WCF服务和MVVM足以提供您以松散耦合、模块化和可伸缩方式描述的功能。

我怀疑您的困惑可能来自于将模型和WCF服务看作只是检索数据的一种手段。但是,一个服务可以不仅仅是数据提要堆栈中的另一个层。服务可用于触发临时操作、计算或应用程序可能需要的任何其他内容。因此,模型和服务都可以由对一个或多个其他服务的调用组成。

在抽象的层次上,服务仅仅是一个可调用的函数,它可以实现一个契约。它不在乎契约行为是面向数据的还是面向服务器的。

如果只需要调用特定的服务而不交换身份验证令牌以外的任何数据,那么您的模型可能就没有什么好处了,即使是这样。在某些场景中,这是完全可以的,这取决于服务正在做什么。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/167962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档