2010-02-24 36 views
2

迄今爲止用C#的WinForms應用程序,並與它的成功....我的下一個項目將是一個基於Web的一個在asp.net工作...依託,以基於Web的開發從窗口移動

,因爲我一個我想知道的新手

  • 將基於Web的開發移植到基於Web的開發所涉及的挑戰?

  • 我需要注意哪些因素?

+2

重複在這裏:http://stackoverflow.com/questions/876440/ – 2010-02-24 09:44:06

回答

4

的大事情,使Web開發的前Windows開發人員不同的體驗將可能是這兩個:

  • 狀態管理:與Web應用程序,你的代碼只生活在服務器上的一個非常實際用戶請求期間的一小段時間。然後它終止。在Windows開發中,你習慣於讓你的對象在整個時間內存活,而你的狀態只是「是」。例如,如果您將數據加載到對象中,那個對象就在那裏。當用戶單擊過濾數據的按鈕時,所有代碼都會修改現有對象並完成。但是,在Web應用程序中,對象只存在一會兒。所以當用戶點擊那個按鈕時,你必須重建對象,然後過濾它,然後再將結果發送到客戶端。 Web應用程序的這種無狀態設計是一個真正的挑戰,並且會在您的代碼中隨處可見。當然有辦法進行國家管理,但並不總是自動的。僅憑這一點,編程Web應用程序就與Windows應用程序有很大不同。

  • 客戶端是HTML/Javascript:瀏覽器確實暴露了表示頁面的對象模型,並且您可以使用JavaScript與該對象模型進行交互;但它是人類發明的最複雜和最差的對象模型之一。處理各種物體,他們做什麼,以及他們的許多怪癖可能需要很長時間。除此之外,你可以用這個API「做大量的事情」,而不是「應該」做的事情(無論是來自約定還是來自所謂的標準)都使得這件事變得更加有趣。然後添加到這一事實,向您提供標準的UI功能是非常有限的相對於Windows UI和你結束了太多的無奈......

至於事情需要提防.. 。 哇!這是一個大名單!

我想最重要的是要確保您在多個瀏覽器中測試您的頁面。太少開發人員只是「假設」它將在所有這些工作中起作用。我還建議你不要使用IE做最初的開發。我發現如果你使用Chrome或Firefox並確保它首先在那裏工作,那麼它也更有可能在IE中工作......但事實並非如此。 IE仍然有很多向後兼容性,允許它渲染在其他地方不起作用的東西。

2

要進入網絡編程,最簡單的開關你將開始使用Web表單。

但是,由於Web表單隱藏了很多互聯網如何使其看起來像桌面編程,因此您無法獲得完整的體驗。

構建網站的更「本地」方式是遵循MVC模式。哪個不是更困難,但它是不同的。

ASP.NET MVC可能是您最好的選擇,因爲您已經使用C#和Visual Studio。但是一旦採用MVC思路,如果需要的話,您可以輕鬆切換到Django,Symfony或Ruby on Rails。

2

除非你有一個團隊與您,歡迎的奇妙世界:

  • 託管(IIS等)
  • 網頁設計
  • CSS/HTML
  • 的Javascript
  • 頁生命週期(何時做什麼)
  • 暫停
  • 安全
  • 表單處理

雖然業務邏輯/流程,無論是開發平臺的同時,也有許多方面的內容過渡到Web開發時考慮到。我實際上開始進行基於Web的應用程序編程,並且我很有機會製作一個快速的Winforms應用程序。

基於Web的東西需要考慮更多的設計/可用性。再一次,因爲我沒有做過很多winform,我不確定具體情況,但是網上有更多的華麗(可能是祝福或分心),而且這一切都需要知識。

希望有所幫助。