我正在研究开发一款Windows Phone 7应用程序,该应用程序需要从Exchange Server(只读)访问电子邮件/日历信息。
我认为有两个选项EWS或ActiveSync。
WP7只支持基本身份验证。
默认情况下,在Exchange服务器安装EWS虚拟目录已禁用基本身份验证,这意味着Exchange服务器的配置更改以允许使用EWS。
ActiveSync协议看起来需要一些时间来理解并开发一个实现。
问题是1. 为EWS启用基本身份验证的情况有多普遍?这是大多数企业可能不想做的事情吗?
- 学习和使用ActiveSync协议有多难?是几天、几周还是几个月就能完成的事情?
1)为了了解EWS服务器的常见配置,我与一些系统管理员交谈并询问他们。试试https://serverfault.com/
1)学习的难度很大程度上取决于学习者的技能和经验以及可用的教学资源。这是一个重要的协议,所以我不希望花几天的时间来学习它。实现exchangeactivesync还需要支付许可成本,我怀疑这会使它成为一个昂贵的选择。
选项3:创建您自己的web服务,作为EWS的代理并为您进行身份验证。虽然有点难看,但如果你的应用架构良好,一旦WP7支持更好的身份验证,切换到直接命中EWS应该非常简单。
ActiveSync是痛苦的,不支持EWS支持的所有东西。如果你有选择的话,我建议你走EWS路线。
如果你打算使用ActiveSync,请再考虑一下…它使用wbxml,您需要创建自己的API来进行调用-这意味着创建标记化的blob,它必须100%完美,并且考虑到您要反对的任何类型的消息传递项的所有方面,否则将冒创建不良项甚至有毒项的风险。不良EAS呼叫造成的偏差可能远远超过你的客户群…所以,你需要非常小心。此外,虽然规格是公开的,但它需要一个非常昂贵的许可证。如果你使用授权,你就需要获得一份包含特定时间表的支持合同,以便获得开发者的支持。对于一个开发团队来说,可能需要3-5年左右的时间来完成一个完整的客户端实现并解决大部分错误。所以,就电子邮件开发的技能而言,你和你的其他开发人员需要相当硬核。可能会有第三方api封装EAS调用…但是,您应该确保它们是经过许可的,并且该许可将涵盖您的开发-因此,您需要自己研究它们。
EWS有更多的功能,更容易使用,这是建议的…此外,没有特殊的许可等
使用代理web服务+Exchange托管api,这样WP7可以在不编写大量代码的情况下对抗Exchange:http://www.telerik.com/products/windows-phone/getting-started/exchange-client.aspx…也可以用这种方法来使用NTLM。
在考虑EAS之前…http://blogs.msdn.com/b/webdav_101/archive/2011/09/29/new-to-exchange-activesync-development.aspx