2012-01-22 92 views
2

有沒有對這個問題有什麼好的書籍或網站,涵蓋的科目,如:指導有關遷移.NET Windows窗體應用程序的Web應用程序

  • 不同的遷移方案的(大爆炸,模塊,模塊,功能功能)利弊
  • 做的連接不要的
  • 工具
  • 處理客戶的期望

我們有一個相當大的基於winforms的產品,我們想遷移到網絡上。在「大爆炸」的情況下遷移可能至少需要兩年時間。我們正在尋找替代方案。 我特別想找到處理inhere情景的方法,您有什麼選擇讓客戶滿意。

  • 讓他們同時使用windows應用程序作爲新網頁 應用程序?
  • 讓windows應用程序通過服務接口使用web 應用程序中的新功能?
  • 接受一段時間的雙重維護成本讓客戶滿意嗎?
+0

其實不遷移,但你從一個到另一個程序邏輯得到一個新的項目。一個程序上的每個對話框必須是另一個的網頁。但是在這裏,網絡並沒有像程序一樣保持參數,所以必須考慮並重新設計UI。 (對於您多年來建立的大型產品,這兩年非常樂觀)。更好地認爲是一種新產品,並從基本開始。 – Aristos

+0

完全取決於表單應用程序的寫法。無論哪種方式,不是一個編碼問題,更適合於'程序員'我認爲 –

回答

3

根據我們自己的從桌面應用遷移到網絡體驗:carefuly檢查你的WinForms應用程序的架構和如果可能 - 嘗試在服務或持續級別提供一個Web界面,使您的Windows應用程序使用Web服務而不是直接與數據庫交談。然後,您可以讓用戶使用clickonce從應用程序服務器啓動桌面模塊。

這種方式讓我們迅速轉向網絡,用戶獲得了相同的GUI和訪問應用程序的新方法。事實上,重新設計現有的應用程序需要3到4個月的時間,以便他們使用Web服務。

然後,我們逐個更換模塊,將它們作爲Web應用程序實施,並在短時間內同時維護(clickonce和web),以便用戶能夠習慣新模塊。

將連續模塊從clickonce遷移到Web的優先級顯而易見 - 我們從大多數用戶使用的模塊開始。事實上,系統的最初版本只有一個網頁表單模塊已準備就緒,剩餘的模塊現在已經被替換2年多了。

+0

wiktor- +1。但是,根據我的經驗,您必須非常小心地實現web服務層(即身份驗證/持久性),因爲您可以創建一個巨大的瓶頸來檢查每個請求的有效性。仔細檢查你認爲'公共'API與認證API - 這種方法和回報是非常不同的 –

+1

絕對同意。由於可能的性能和安全問題,必須小心地將第三層添加到Windows窗體應用程序。但是,最有可能的是它比從零開始全面重寫整個東西的速度還要快。時間就是金錢。 –

5

你很可能正在做一個完整的重寫。因爲Web在概念上與Windows窗體不同,所以會有很多變化。

你最好的選擇是停止Windows窗體應用程序的新發展。開始爲新功能編寫新應用程序。然後開始一次將一個獨立的功能移到網上。

你的UI

  1. 的WebForms兩種選擇 - 使用Windows窗體模型非常匹配。如果你是 使用devexpress等任何第三方控件,你可以在webforms中找到 等價物。

  2. MVC - 它更像是重新架構整個表示層。 如果你的UI層已經從業務層分離,然後將其 將是一個不錯的選擇下井MVC的路徑。然而, 發展經驗是從做窗戶 形式完全不同。

國家

  • 維護應用程序的狀態是在Windows 形式比較簡單。在webforms中,您有查看狀態可以爲您做到這一點。但是當你遇到viewstate的限制時,你會遇到粗暴的衝擊,特別是當它變得太大時。
  • 在MVC中,你是爲維護國家完全負責。

新技能

你需要新的技能,以模仿狀態完整場景

JavaScript中,阿賈克斯,至少一個JavaScript的 像jQuery框架的
  • 深刻理解。第三方商業工具包可以緩解這些痛苦的一些 。
  • 根據複雜程度,你可能需要將Web應用框架 像Backbone.js的/淘汰賽

預期

這將是達到同樣的反應作爲Windows應用程序非常昂貴的,因爲你會搞亂了多種技術。可能你的用戶最初會討厭新的應用程序。對員工有熟練的網頁設計師是非常重要的

+0

我同意重寫應用程序的一大部分可能是必需的。我正在尋找一種彌合時間的方式。 –

+1

您還需要考慮一下,如果轉換項目被放棄在中間會怎麼樣?按照'讓我們在第一階段在網絡上提供這許多功能'的思路來考慮這個項目是一個實用的方法。 – chandmk

相關問題