2009-02-05 13 views
2

我工作的公司開發了一個C++應用程序來管理服務業務(調度,GPS跟蹤,CRM等)。問題在於系統有點太有限。作爲一家規模相對較小的公司,我們希望拓寬視野,併爲其他各種應用程序(如Outlook)增加一些更現代的功能,例如Web界面和插件,以使它們能夠與我們應用程序中的數據進行交互。在新項目中使用WCF ...是否可行?

目前,我正在ASP.NET MVC中開發一個Web界面,並且已經在過去兩個月了。然而,這種實現正受到C++應用程序所具有的同樣限制,所以我想進一步推進。只是我不確定這是一個明智的決定,或者我應該如何讓管理層相信,大幅增加的開發時間將意味着未來有更大的可能性。

我想要做的是實現某種使用WCF的大量API,這將允許通過Web和桌面應用程序進行訪問。然後,我的Web界面就可以做到這一點......並使用諸如Qooxdoo或ExtJS之類的框架與此API進行接口。但是可以添加其他界面,例如iPhone應用程序,Adobe AIR應用程序,iGoogle Widget,Outlook插件等。

雖然......此刻,我只是很多的談話。我對WPF,WinForms,ASP.NET MVC等C#和.NET技術有很好的瞭解。但是,我從未在我的生活中使用過WCF。我很確定自己能夠接受,但是當我的僱主想要看到快速結果時,是否有可能掌握像WCF這樣廣泛的內容?

我相信我可以顯示結果的一種方式是逐步發佈API。例如,第一個「社區技術預覽」將包括簡單的調度功能,他接下來的CTP將包括銷售和營銷功能等等。我真的不認爲客戶會很快接受它,但它可以讓我們在內部開發諸如網絡界面和插件之類的應用程序。

我發現的一個問題是花費了太多的時間來開發API,以至於實際使用API​​的應用程序的開發將會非常緩慢。我的意思是,我可以向我的老闆顯示一個URL,以JSON格式返回客戶列表,但如果客戶無法對其執行任何操作,那麼對我們來說真的可以做些什麼?

我想我想問的是:它有多大的可行性,將開發放在一個幾乎已完成的有限Web應用程序上,並開始基於WCF的API來支持未來的項目?

+0

您的客戶有多高科技含量?他們是其他開發者嗎?他們是否使用.NET或其他技術?一般來說,開發人員可以拿起你扔到他們的任何東西。 – davogones 2009-02-05 07:48:37

+0

我們很少有客戶是開發人員。 API主要用於內部目的(其他應用程序的後端),但如果第三方開發人員想要構建它,則可用。 – 2009-02-05 20:05:07

回答

2

嗯,我已經建立了一些WCF應用程序,它是不是非常難進入(有刺激性的缺陷,但是這就是試錯的!)

也就是說,鑑於你已經列出有哪些,如果你有一些接近完成的東西,並且你的老闆在快速結果之後,我會建議不要這樣做。如果可能的話,爲什麼不完成您正在開發的應用程序,然後編寫一份文檔,說明您可以使用WCF API在您已有的Web應用程序的基礎上完成什麼,然後將其發送給您的老闆/經理?

這不是一個好的解決方案,因爲你目前的網絡應用程序不會對它運行,但對我來說首先得到一些東西似乎更好,因爲設置好API的開始不是什麼我個人喜歡在最後期限結束和高期望做..

0

那麼,爲什麼不都有?您可以完成基於Web的項目,然後開發WCF部分,公開服務端點,以便您可以讓不同的應用程序遠程連接到它。

然後,如果您真的想要,您可以重構基於Web的應用程序以調用WCF端點(或者,如果可能的話,請執行它們後面的實現,因爲您並不需要添加該網絡潛伏)。

0

你聽起來像你的網頁開發將不得不被完全刷新以生成你的WPF的東西。取決於你如何開發它,這是真的嗎?

在開始你的項目之前,我認爲你需要在WCF上做很多功課,並且首先讓它更小,更簡單的編寫應用程序。在你的客戶使用你的1.0版本的API設計之前加以修改,否則它將成爲你所有房屋的瘟疫!

還有一件事......這是真的開始真正爲您的API執行TDD的真正好時機。與想要與應用程序交互並學習其用例並相應地推動您的API設計的人員合作。在沒有消費者的情況下寫一個單面界面可能不是IMO的最佳想法。

0

如果您已經非常熟悉C#,我相信您可以在幾天內拿起WCF並實現一個簡單的概念證明WCF服務。只需從書店挑選一本WCF書籍,並瞭解基礎知識。您還可以嘗試使用微軟的Web Service Software Factory來按照最佳實踐快速構建WCF服務。

如果您想要更簡單快捷的事情,ASMX Web服務甚至比WCF服務更容易創建。只要確保你的API使用可序列化的對象,爲你的類打上一個[WebService]屬性,在你的方法上使用[WebMethod]屬性,創建一個ASMX文件,並且你有一個web服務!它真的很容易。

相關問題