2008-12-20 36 views
0

我正在尋找將我公司的內部業務應用程序從VB.NET移動到PHP。一些人擔心丟失可以在.NET中找到的GUI功能。我的印象是,使用正確的JavaScript框架,可以複製.NET GUI中的任何內容。Javascript RIA vs .NET GUI

雖然我仍在研究這一點,但我想問一下.NET GUI中的表單功能是否可以用javascript進行復制,更重要的是,要花費更長時間才能獲得相同的結果嗎?

回答

5

首先:回答你的問題。

樹控件很難在Web環境中模擬。可行但很難(以Yahoos YUI爲例)。

  • 狀態:你得到它在WinForms中,而不是在網絡上。這與人們如何使用應用程序有關。
  • Interaction:在WinForms上比Web更容易。再次,它是可行的,但涉及更多的層次。
  • 數據大小:顯示的數據量是多少?您看不到在網絡上有成千上萬條記錄的網格,這在WinForms中可能很常見。這可能會影響網頁加載時間比WinForms更大。
  • 測試:有多少瀏覽器需要測試。瀏覽器之間的JavaScript/CSS差異會使生活變得困難。呃,IE6會讓你的生活困難,如果你必須爲此而開發。
  • 開發時間:這對於在這兩種環境中都有經驗的開發人員大致相同。

但是,還有一些其他問題會在您的初始聲明中彈出。

爲什麼從WinForms VB.Net到PHP?相反,使用VB.Net轉到ASP.Net。可以讓你完全重新發明輪子。此外,那麼你不必學習如何在框架之間進行轉換。

+0

感謝您的回答。關於瀏覽器類型,我們可以決定只使用一種。 關於轉移到PHP的原因,這將是業務/資源相關。 – Jonathan 2008-12-20 23:41:09

0

我想說它取決於正在複製的UI功能。難以衡量未知:)

2

我會說是的,任何「CAN」都可以被複制,但是做這件事的時間可能是一個很大的瓶頸。

我打算假設您的當前應用程序是一個ASP.NET應用程序,並且您不是從WinForms移動。 (如果你的答案仍然幾乎相同......但我可能會添加一些額外的評論)。

開箱即用,通過UI角度的拖放功能,您擁有數據驗證功能以及許多其他常規盒裝項目,儘管它們在客戶端完成,但您不必編寫一行JavaScript代碼讓他們工作。這是一個巨大的成本節約,但它可以複製到其他地方,是的,但它需要時間。

其次,您可以輕鬆使用ASP.NET AJAX功能與AJAX Control Toolkit結合使用。這些再次允許你使用.NET邏輯將東西放在一起,但它們可以被複制嗎?是的,jQuery和許多其他AJAX框架包含許多項目類似的項目。

我必須要做的最大的一點是,如果你已經有了一些東西,並且熟悉背後的語言和技術,爲什麼要放棄它,沒有按時完成的風險,並進入一個陌生的新語言世界。我猜這只是我的0.02美元。

1

通常,使用Microsoft技術進行任何操作都需要較少的時間,無論是Web應用程序,桌面應用程序還是最近的Silverlight應用程序。有幾個原因:

  1. 微軟提供了一切的嚮導。
  2. 微軟提高了抽象級別,直到有時候它被認爲會「打倒」開發人員,儘管這是有爭議的。更多關於#5的內容。
  3. 豐富的第三方小部件,控件等
  4. 與IDE緊密集成,如智能感知,源代碼管理,IE,Excel,SQL服務器等開箱即用。
  5. 沿着與#2相同的路線,MS在其IDE中提供了拖放,點擊並單擊。微軟也喜歡數據綁定的概念,因此,最終可能會有一個表格或數據網格,並且可能只有很少的幾行代碼。
  6. 調試是無縫的,開箱即用的大部分時間。

我會說,如果你的應用程序比較簡單,那麼你可以使用微軟框架更快完成。在Intranet環境中,您可以控制瀏覽器(對於Web應用程序),用戶必須使用或安裝哪個框架(.NET框架和/或Silverlight插件),並且開發時間非常關鍵,然後執行微軟的方式可能是要走的路。

有缺點(我不得不說與StackOverflow上的異常,並正在使用ASP.NET內置了幾個網站,這是真正出色地完成了如下):

  1. 您的應用程序往往是臃腫。一個簡單的桌面應用程序仍然需要完全安裝.NET框架。
  2. 有時候做一件容易的事情會讓你最終做出各種令人費解的事情,因爲微軟的API並不總是最乾淨的。
  3. 對於使用ASP.NET的Web應用程序,您最終可能會看到包含非常難看的JavaScript代碼的應用程序。儘管與這一點沒有直接關係,但有一個實例在Ajaxian.com上討論,後來有人發現了SharePoint內部的一些非常難看的JavaScript代碼。就文化而言,大多數ASP.NET開發人員不關心,不需要,或者根本不瞭解JavaScript。這是因爲框架鼓勵這樣做(儘管jQuery集成將來可能會改變)。
  4. 您的Web應用程序往往不會運行在除IE之外的其他任何應用程序中,這可能在您的情況下可以接受。如果是這樣,那可能是偶然的,而不是通過設計。
  5. 微軟每隔幾年就會更換一次自己的技術,並提供非常小的後向兼容性。它們迫使開發人員每隔幾年左右重新學習一次,並可能在任何特定的過渡階段混淆,我們試圖將其解決。舉個例子。這是目前與ASP MVC和Silverlight發生的事情。但這可能是一件好事,而不是缺點。