我工作的公司开发了一个C ++应用程序来管理服务业务(调度,GPS跟踪,CRM等)。问题是系统有点太局限了。作为一家规模相对较小的公司,我们希望拓宽视野,并为各种其他应用程序(如Outlook)添加更多现代功能,例如Web界面和插件,以使它们能够与我们应用程序中的数据进行交互。
目前,我正在ASP.NET MVC中开发一个Web界面,并且已经过去两个月了。但是,这种实现受到了与C ++应用程序相同的限制,所以我想更进一步。只是我不确定这是一个明智的决定,或者我应该如何说服管理层,大大增加的开发时间将意味着未来更大的可能性。
我想要做的是使用WCF实现某种大规模API,允许通过Web和桌面应用程序进行访问。我的Web界面可能只是......并使用Qooxdoo或ExtJS等框架与此API接口。但是可以添加其他界面,例如iPhone应用程序,Adobe AIR应用程序,iGoogle Widget,Outlook插件等。
这就是事情,但是......此刻,我只是谈了很多。我非常了解C#和.NET技术,如WPF,WinForms,ASP.NET MVC等。但是,我从未在生活中使用过WCF。我很确定我可以接受它,但当我的雇主希望看到快速结果时,是否有可能掌握像WCF那样广泛的东西?
我认为可以显示结果的一种方法是逐步发布API。例如,第一个“社区技术预览”将包括简单的调度功能,下一个CTP将包括销售和营销功能,等等。我并不认为客户会很快接受它,但它可以让我们在内部开发应用程序,如网络界面和插件。
我看到的一个问题是花费大量时间开发API,实际使用API的应用程序的开发将非常缓慢。我的意思是,我可以向我的老板显示一个URL,该URL返回JSON格式的客户列表,但如果客户无法对其进行任何操作,那么这对我们有什么用呢?
我想我想要问的是:在几乎完成的有限Web应用程序上放弃开发并开始使用基于WCF的API为未来的项目提供支持是多么可行?
答案 0 :(得分:2)
我已经构建了许多WCF应用程序并且进入并不是非常困难(有令人恼火的陷阱,但这是试验和错误!)
那就是说,鉴于你在那里所概述的内容,如果你有一些接近完成的东西,你会推荐反对它,你的老板是在快速结果之后。如果有可能,为什么不完成你正在处理的应用程序,然后在你已经拥有的Web应用程序的基础上写一个关于你可以用WCF API完成什么的文档并将其发送给你的老板/经理?
这不是一个很好的解决方案,因为你当前的网络应用程序不会对它运行,但似乎更好(对我而言)先得到一些东西,因为设置一个好的API的开始不是我的东西个人喜欢关闭最后期限和期望值。
答案 1 :(得分:0)
那么,为什么不兼得呢?您可以完成基于Web的项目,然后开发WCF部分,公开服务端点,以便您可以让不同的应用程序远程连接到它。
然后,如果您真的想要,您可以重构基于Web的应用程序来调用WCF端点(或者,如果可能的话,调用它们后面的实现,因为您实际上不需要添加该网络延迟)。
答案 2 :(得分:0)
你觉得你的网页开发必须完全刷新才能生成你的WPF内容。根据你的发展方式,情况确实如此吗?
在开始你的项目之前,我认为你需要在WCF上做很多功课,并且首先要在其中编写更小,更简单的应用程序。在您的客户端加入版本1.0 API设计之前,请先删除它,否则它将真正成为您所有房屋的瘟疫!
还有一件事......这是开始真正为您的API做TDD的好时机。与想要与您的应用程序进行交互并了解其用例并相应地推动您的API设计的人员合作。在没有消费者的情况下编写单面界面可能不是IMO的最佳选择。
答案 3 :(得分:0)
如果您已经非常熟悉C#,我相信您可以在几天内获取WCF并实施简单的概念验证WCF服务。只需从书店挑选一本好的WCF书籍并学习基础知识。您还可以尝试使用Microsoft的Web Service Software Factory按照最佳做法快速构建WCF服务。
如果您想要更简单,更快速的东西,ASMX Web服务甚至比WCF服务更容易创建。只需确保您的API使用可序列化对象,在您的类上打一个[WebService]属性,在您的方法上打[WebMethod]属性,创建一个ASMX文件,瞧,您有一个Web服务!这真的很容易。