关于多少个文件、代码行、职责等,什么被认为是 .asmx 或 wcf 服务类的适当开发?大多数人是否为每个类的不同 CRUD 方法发布单独的 .asmx 服务文件?
一般来说,一个服务应该封装一组通用的操作。无论您使用 ASMX 还是 WCF,您都不应该为每一项操作创建一个“服务”。面向服务的架构 (SOA) 背后的总体思想是对现实世界的业务行为进行建模。给你一个愚蠢但希望有效的例子……想想一家餐馆的女服务员。服务员为顾客提供的服务包括接单、上菜、续杯、提供调味品、最后处理付款。女服务员提供的服务不是单一操作,而是相关操作的聚合。
然而,它并不止于此。 SOA 的真正本质是任何给定的服务都可能依赖于其他服务。女服务员的工作离不开厨师的服务、提供膳食、服务柜台的人员(她可以在柜台上获取调味品和饮料)以及餐厅大楼本身提供的服务。女服务员提供的服务和厨师提供的服务之间也存在一些根本区别。简而言之,Waitress 是一项任务服务,而 Cook 是一项实体(或 CRUD)服务。女服务员处理为客户提供有用功能的较高级别操作,而厨师则处理仅向餐厅其他员工提供细粒度和复杂功能的较低级别操作。
对于您的问题,我确实无法给出具体答案,只能说按照逻辑上合适的方式组织您的服务。每个服务只有一个操作可能不是一个好习惯...但是,服务只有一个操作并非闻所未闻。任务服务通常只有一项操作。实体服务通常有许多操作,通常是基于 CRUD 的,但有时还有附加服务。还有一些公用事业服务提供最低级别的基础设施操作(回到餐厅,公用事业服务就像炉灶、烤架、收银机等)。如果您根据实际业务概念对服务进行建模,那么它们公开的操作及其彼此之间的依赖最终应该变得清晰。
有关 SOA 的一些重要信息,请查看 Thomas Erl(Prentice Hall)编写的 SOA 系列,因为它们是实现面向服务的企业的权威资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)