2009-07-09 88 views
2

我們正在開發/維護一個企業應用程序,由於歷史原因和開發加速,它已被定位爲WinForms。在WinForms上開發思考未來Web開發的技巧

現在我們正在考慮遲早(早於或晚於)應用程序需要基於Web。

關於「到Web」運動的思考。哪些是我們必須考慮的最重要的事情?類似於MVP遊戲(或其他)的事情,現在確定你將要使用的平臺/框架類型,...

任何有關從winforms遷移到web的經驗?任何建議要小心?

Aclaration:在我們的場景中,應用程序會很好,現在是基於Web的,但我們是真實的。我同意並非所有的應用程序都必須基於Web(這是我們使用WinForms開發的主要原因!)。但有時需求會發生變化,在我們的情景中,我們想要將該應用程序提供爲SaaS

回答

4

最重要的是將用戶界面完全分開。一旦你完成了,你將不會重寫應用程序來移植它 - 你只需要在上面創建一個Web UI。

1

NESBAWA(並非所有應該都是Web應用程序)。

+2

SIGTMWA(有時是遷移到Web應用程序的一件好事)。 – FerranB 2009-07-09 15:50:14

0

約翰是對的。 但是,您是否聽說過「空客戶」方法?這是開發.NET WinForms應用程序的一種相當新的方法,它也可以在普通瀏覽器上作爲Web應用程序運行。這種方法可以讓你開發你的WInForms應用程序,並且在你不需要額外的開發或調整的情況下,將它放到網絡上。 這樣做的一個框架是Visual WebGui

1

我曾爲一家公司處理類似的情況,他們的單片WinForms應用程序。根據這個經驗,有兩件事需要考慮:

1]從現有的WinForms UI中解耦所有的數據訪問邏輯(DAL)。您可以在任何Web開發開始之前啓動此過程。

我們在一系列每週6次衝刺中完成了這個重構。應用程序的某些部分很容易更改 - 其他部分由完全地獄般的意大利麪代碼組成,它們在WinForm後面的代碼中交織DAL,內聯SQL和UI代碼。

一旦你完成了這個分離,支持兩個不同的UI就更容易了。

2]忽略ASP.Net MVC和目標WebForms。 WebForms旨在使編寫Web應用程序接近編寫傳統WinForms UI代碼(事件驅動,基於組件)的體驗。

您需要了解頁面生命週期,並且圍繞動態生成的控件存在一些概念性陷阱,這些概念陷入了很多新手 - 但除此之外,它是讓一組WinForms開發人員完成網絡工作的最無痛的方式。 MVC現在在網絡圈子中可能非常流行,它提供了一個更好的問題分離(儘管如果努力和強大的設計領導能力,您可以使用WebForms獲得類似的結果),但它需要更高的知識水平。使用MVC,您正在接近HTTP請求/響應週期的金屬。 WebForms爲你抽象了很多。

祝你好運!