我已经用Winforms编写客户机/服务器应用程序六年了,但我还没有冒险进入网络空间(既不是ASP.NET也不是Web服务)。鉴于就业市场走向一段时间的方向和我基本好奇的事实,我想参与编写Web服务,但我不知道从哪里开始。WinForms开发者的Web服务入门?
我读过的各种选项(XML/SOAP与JSON,REST VS ......好吧,其实我不知道它叫什么,等等),但我不知道什么样的标准在决定使用其中一个时发挥作用。显然,我希望利用我拥有的工具(Visual Studio,.NET框架等),而不用将自己束缚于只针对特定的受众(即编写服务的方式使其难以消费例如来自Windows Mobile/Android/iPhone客户端)。
为了记录在案,我的计划 - 现在 - 是使用WCF为我的Web服务的发展,但我愿意用其他.NET方法,如果这是不可取的。
我意识到这个问题是相当开放式的,因此可能会关闭,但这里有一些事情我想知道:
- 什么是有些事情在选择网络服务的类型时,需要考虑( REST等)我打算写?是否有可能(并且如果可行的话)从一种方法转移到另一种方法?
- Web服务可以以事件驱动的方式编写吗?正如我所说我是Winforms开发人员,所以我习惯于提高事件对象来响应。例如,如果我有两个客户端连接到我的服务,那么我是否有办法通过另一个客户的操作将信息“推”到其中一个客户端?如果这个是可能,这是可取的,还是我只是没有正确思考它?
- 什么认证机制似乎最适合面向公众的服务?如果我打算让不同类型的操作系统和客户端连接到该服务,怎么样?是否有一个普遍接受的平台不可知的方法?
- 在认证的线,这是一些我应该做我自己(认证的管理会话等),或者这个东西应该在框架层面来处理,我只是准确定义应该是如何工作的?如果是这样的话,我该如何分辨请求者是谁认证的?
我开始了我的服务内,以书面的认证机制(存储在数据库中简单的用户名/密码组合和一个GUID键对应的会话表),只是要求关键,与每一个操作传递(除记录等当然),但我想确保我不会在这里重新发明轮子。但是,我也不想用大量的机器用户帐户混淆服务器,只是使用基本身份验证。我也觉得Digest(当然还有Windows)认证需要一台机器(或AD)用户帐户。
如果你把它分解成单独的问题,你可能会得到更多的运气...... – 2010-06-08 08:53:13