2011-08-30 32 views
4

我幾乎與經典ASP的工作,因爲它幾乎被釋放..但我無法適應ASP.NET平臺。是一個經典ASP傢伙學習MVC容易

我被許多人提議遷移到PHP,因爲它是意大利麪代碼(我喜歡SPAGHETTI代碼),它就像經典的ASP ..但學習Apache服務器和保護他們,我聽說是另一個大項目,學習你自己..因爲我知道更多關於MS服務器,我寧願留在MS。

但是,我真的想學習另一個平臺,我在看MVC框架,而MVC 1,2或3就像意大利麪代碼?也許我錯了。我認爲MVC3現在是最好的?

無論如何,從經典的ASP,這將是最簡單和最難以掌握的想法? ASP.NET與所有的編譯和使用Visual Studio,讓我想起當我用Visual Basic編寫應用程序時,但我真的很喜歡意大利麪代碼,而不是編譯東西。

如果有人做過這個開關從經典的asp之前,你做了什麼以及爲什麼,抓住新平臺有多容易? (最好是MVC)

回答

7

那麼,MVC更像是經典的asp比webforms。但是,它使用結構和框架來減少意大利麪代碼並使其更易於維護。你必須應用許多新的概念才能不打架。

例如,視圖,模型和控制器的強烈分離。這不是你在傳統的asp或者通用的php中可以做的事情(你可以在php中做mvc,但是它需要更多的紀律和使用框架)。底線是,從長遠來看,意大利麪條總是會咬你的。

Asp.net支持一種模式,您不必編譯任何東西,只需編輯服務器上的文件,並在運行時自動編譯它們。這就是所謂的「網站」模式。但是,MVC不會這樣工作,並且需要編譯的「Web應用程序」模型(儘管您只需編譯代碼,而不是標記)。

+0

我似乎總是使用特殊的html標籤來處理服務器代碼,這是如何所有的MVC的? – Wilkins

+0

@Jeremy - MVC不使用特殊的html標籤,與webforms不一樣.. html5是非常特殊的屬性,而且這與服務器端無關。 MVC使用代碼塊(如傳統的asp)插入渲染爲常規html的值。 –

0

什麼是你容易?你覺得哪個部分很難?閱讀HTTP的無狀態特性,並找到Web表單和MVC之間的比較 - 這應該清楚幾件事情。

做一些關於一般MVC模式的閱讀。 MVC是30多年前首次出現的通用術語。 .NET 4中的MVC是這種模式的變體,但我們都習慣於將其稱爲MVC。確保您的面向對象的知識掌握在基礎設計模式中,主要是SoC(關注點分離)和SRP(單一責任原則)。

1

如果你喜歡用微軟提供的麪條,嘗試任何Windows版本支持IIS7。 PHP完美工作,並且使用Web Platform Installer進行設置非常簡單。

考慮到這一點,沒有真正的理由你應該選擇任何一種網絡技術。即使在單個應用程序中,您也可以根據需要進行混搭。

如果你想進入MVC,忘記1和2並直接進入3.MVC比ASP.NET WebForms更接近金屬。有了你在傳統ASP中的背景,一旦你掌握了它,你可能會喜歡它。

更新: 如果你是認真學習MVC,PHP,Ruby或任何你喜歡的網絡平臺。得到一本好書。坐下來,閱讀並遵循示例代碼。我通常根據亞馬遜的評論決定購買哪本書。 然後,如果您需要關於特定主題的更多信息,請閱讀有關該主題的授權博客。對於ASP.NET MVC,您可能需要查看Brad WilsonsPhil Haack的博客。

+0

我正在考慮IIS和PHP,但我對此有着複雜的感受..我認爲PHP是最好的Apache,對吧? 你是說MVC3是最接近經典的ASP? – Wilkins

+0

@Jeremy - 爲什麼PHP在apache上最好? Apache沒有具體說明它。它是服務器不可知論者。實際上,IIS對於perl和php等系統有特殊的「快速」接口。 –

+0

我看着PHP和theres方式太多的配置..這將需要我永遠學習所有的! – Wilkins

3

我目前在我的第一個大型ASP.NET MVC項目中,在經過多年的傳統ASP編程之後(並且仍然)進行了大量工作。我也在ColdFusion中進行了編程,並且我嘗試過將Python作爲ASP.NET MVC的替代品。

如果你想堅持微軟技術MVC是最接近你的經典ASP。 Webforms的確是微軟公司使網絡應用程序與應用程序開發類似的方式。微軟試圖抽象出Web是無狀態媒體的事實。但是,這會導致相當醜陋的事情,比如viewstate(一個隱藏的表單字段,它試圖保持所有表單字段的狀態)以及生成HTML的控件,而這些控件完全無法控制。
MVC給你更多的控制權,讓你像傳統的ASP一樣處理無狀態。

我仍然發現雖然有一個陡峭的學習曲線,你將要學習很多新的東西,如果你做過的一切程序的VBScript/ASP:

  • C#或VB.Net語法
  • 對象一般(繼承面向對象編程,動態與靜態,等。)
  • 等概念lambda表達式,代表等
  • MVC模式
  • 最有可能也是一種數據訪問技術,如LINQ或實體框架

我仍然在努力處理其中的一些問題,但我到了那裏。儘管如此,它仍然需要大量的工作,並且堅持不懈。並非一切都比傳統的ASP更好或更容易。特別是對於我來說,因爲我一直使用WSC的經典ASP多年,它使經典的ASP中的n層應用程序,並完全消除意大利麪代碼。

正如我所提到的,我也將Python視爲一種替代方案;儘管在我工作的公司我們現在轉向使用ASP.NET MVC,但實際上我發現向Python的過渡要容易得多。我們使用MVC的唯一原因是,在使用C#/ MVC時,獲得新開發人員似乎更容易。 (回想起來,這其實並不真實,我們正在尋找一個合適的C#程序員,我們正在尋找一個合適的C#程序員,我們所在的位置)

請注意,在Python中,您仍然必須學習基本的面向對象編程,但實現比.NET更簡單,Python語言(IMHO)比VB.NET更像vbscript。
另外我喜歡這個事實,我不必定義每個變量/函數/參數的類型。這有時會讓我在C#中瘋狂;如果一個函數的類型改變了,它可能會影響很多其他函數和變量,這些函數和變量都必須改變。此外,語法更容易拾取,因爲語言很簡單,並且沒有一百種方法可以做同樣的事情。
您可以選擇不同的框架,MVC或非MVC,還可以在很多其他領域(應用程序編程,腳本 - 例如XBMC)中使用Python。
還有類似於Entity Framework for .NET的ORM解決方案,我發現我看到的一個(SQLalchemy)功能強大得多,而且比EF更容易拾取。

所以在工作中,我目前正在學習ASP.NET MVC,在家裏我正在慢慢地學習Python。我建議你用不同的技術嘗試一個非常簡單的項目,然後選擇一個你覺得最簡單的項目。

希望這會有所幫助。

1

我開始使用經典ASP在天回,但然後轉移到現在的WebForms使用/學習MVC 4

這裏是我的想法。

對我來說,經典的ASP很有趣,容易學習,因爲它很簡單,沒有很大的學習曲線,數據CRUDS也不難,它以相當有效但雜亂的方式完成了工作。

WebForms需要更高的學習曲線,但通過拖放控件提供了許多「管道」代碼,但這些代碼有時很難修改和自定義。

使用MVC我發現它需要比其他兩個更大的學習曲線,這主要是由於它受到HTML5和Knockout等客戶端框架的驅動。爲了獲得良好的理解,還需要學習OO模式,實體框架,LINQ,WebApi和最初這些我沒有發現簡單的消化。