WCF -主“路由器”
本文关键字:路由器 WCF | 更新日期: 2023-09-27 18:05:56
我的任务是为移动设备(如iphone/android/BB/等)创建一个应用程序,这个应用程序的目的是告诉用户网站上有新的东西,然后显示一个列表(在应用程序内)显示最新的更新。
公司坚持让我用ASP。. net/c#/Visual Studio和使用SOAP协议。
我已经开始使用c#,然后使用所谓的WCF。
我已经有一些东西工作了。(就像从Android应用程序中"消费"WCF并获得返回的数据一样)。
我的问题是,对于移动应用程序开发来说,什么是最好的"架构"。我在考虑只有一个WCF,然后调用一个通用函数,如Do()(或其他一些名称:)),然后添加一个soap头,你可以定义你想要的服务做什么。比如从数据库中获取记录,或者ping,或者其他东西,公司将来可能需要的任何东西:)
工作原理:
客户端(移动应用程序)将调用WCF,并在soap报头中声明,假设它想用设备ID注册电话。WCF将接收Soap请求,提取报头并使用某种开关来决定它需要做什么。一旦它知道要做什么,WCF就会,例如,访问一些本地类来插入/检索数据库数据或做其他事情,当它完成时,它将简单地返回所需的东西。(就像一个OK的标志或数据或其他东西…:)) .
这是一个正确的方法吗?因为在我看来,这使得在后端进行更改变得非常容易,而无需更新应用程序。
抱歉,如果这是一个迟钝的问题,但我是新的WCF和移动应用程序开发,我正试图在我的实习结束时交付一个伟大的产品。我只是想知道你们建议我用什么样的"架构"来完成这种作业。
编辑
我已经告诉他们SOAP对于移动开发来说太重了,并且给他们看了一些图表。但他们坚持使用他们已经知道的技术。
在做了一些研究之后,我确实认为基于合同的方法是更好的方法。你能回答几个问题吗?
-我可以像一个WCF文件得到"消费",其中包含所有不同的操作?
-我可以在WCF开始时验证客户端(使用所需的Soap头),然后调用所需的操作吗?
对于移动开发来说,SOAP通常被认为有点太重了。由于用户可能会产生数据费用,并且通常带宽较低,因此最好采用REST/JSON方法。您仍然可以在服务器端使用WCF来完成此操作。
你可以使用一个通用的操作(MessageAction="*"),但是你需要自己处理消息的序列化/反序列化。然而,除非你有迫切的理由这样做,否则我建议合理结构的操作是更好的方法。它们更易于维护。只要消息契约没有改变,您仍然可以在服务器上更改实现,而不会影响客户端。现实情况是,如果您想更改消息或操作契约,无论如何都必须对客户端进行更改。考虑到这一点,基于"合同"的方法只有优点,没有真正的缺点。