Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF-主要“主要”;路由器“;_C#_Wcf_Mobile_Backend_Router - Fatal编程技术网

C# WCF-主要“主要”;路由器“;

C# WCF-主要“主要”;路由器“;,c#,wcf,mobile,backend,router,C#,Wcf,Mobile,Backend,Router,我的任务是为移动设备(如iphone/android/BB/等)创建一个应用程序,该应用程序的目的是告诉用户网站上有新内容,然后显示一个列表(在应用程序内)显示最新更新 该公司坚持我使用ASP.NET/C#/Visual Studio并使用SOAP协议 我开始使用C#,然后使用所谓的WCF 我已经有些东西在用了。(比如从Android应用程序“消费”WCF并将数据发回) 我的问题是,在移动应用程序开发中,什么是最好的“架构”。我在考虑只使用1个WCF,然后调用一个常规函数,如Do()(或其他名称

我的任务是为移动设备(如iphone/android/BB/等)创建一个应用程序,该应用程序的目的是告诉用户网站上有新内容,然后显示一个列表(在应用程序内)显示最新更新

该公司坚持我使用ASP.NET/C#/Visual Studio并使用SOAP协议

我开始使用C#,然后使用所谓的WCF

我已经有些东西在用了。(比如从Android应用程序“消费”WCF并将数据发回)

我的问题是,在移动应用程序开发中,什么是最好的“架构”。我在考虑只使用1个WCF,然后调用一个常规函数,如Do()(或其他名称:),然后添加一个soap头,在其中可以定义您希望服务执行的操作。比如从数据库中获取一条记录,或者ping,呃,其他什么,无论公司将来需要什么:)

这将如何工作:

客户端(移动应用程序)将呼叫WCF,在soap报头中是状态,比如说,它想用设备ID注册手机。WCF将接收soap请求,提取报头,并使用某种开关来决定它需要做什么。例如,一旦它知道要执行WCF,它将访问一些本地类以插入/检索数据库数据或执行其他操作,当它完成时,它将简单地返回所需的内容。(如OK符号、数据或其他东西……))

这是一种正确的方法吗?因为在我看来,它使后端的更改非常容易,而无需更新应用程序

抱歉,如果这是一个迟钝的问题,但我是WCF和移动应用开发的新手,我正在尝试在实习结束时交付一个很棒的产品。我只是想知道你们建议我用什么样的“架构”来完成这类任务


编辑

我已经告诉他们SOAP对于移动开发来说太重了,并向他们展示了一些图表。但他们坚持使用他们已经知道的技术

在做了一些研究之后,我确实认为基于合同的方法是更好的方法。但是你能回答一些关于它的问题吗

-我可以有一个WCF文件,其中包含所有不同的操作吗


-我能否在WCF开始时以及调用所需操作之后对客户端进行身份验证(需要使用Soap头)?

Soap通常被认为对于移动开发来说有点太重了。由于用户可能会产生数据费用,并且通常带宽较低,因此最好采用REST/JSON方法。您仍然可以使用WCF在服务器上执行此操作


您可以使用通用操作(MessageAction=“*”),但随后需要自己处理消息的序列化/反序列化。然而,除非你有迫切的理由这样做,否则我建议结构合理的运营是更好的方式。它们更易于维护。只要消息约定不改变,您仍然可以在服务器上进行实现更改,而不会影响客户机。现实情况是,如果您想要更改消息或操作合同,您无论如何都必须对客户机进行更改。考虑到这一点,基于“合同”的方法只有好处,没有真正的坏处。

这可能有点主观,你可能会去掉问候和感谢以及其他一些琐事