摘要:初學ASP.NET MVC學習筆記(一)
這是我的第一篇學習筆記。
今天其實算是一個很特別的日子,對於自己有很多的新的第一次...
第一次以程式設計師應徵上工作、第一次寫學習心得、第一次看完一篇超長的英文文件(花了三個鐘頭,還抄了一堆單字!!)
不過對於自己熱愛的東西,不管花多少心力以及時間都是快樂的吧。
廢話太多,現在開始來寫我看完 "Create a Movie Database Application in 15 Minutes with ASP.NET MVC (C#)"
之後的學習心得。
承襲微軟一貫的作風,推廣新技術一定要給User簡單好用的感覺。這篇教學也不例外,
整篇文章貫穿全文的重點就是利用VS2008做一個MVC架構的網站就是這麼的輕鬆,只要15分鐘。
但是相信有寫過網站的人應該都知道,如果要做出上述文章所擁有的功能,用Web Form大概只要三分鐘吧!!
那到底為什麼要用MVC架構?MVC架構到底是什麼東東呢?
MVC其實就是一種設計模式,早在1974年就已經被提出。所以不用擔心MVC是不是新的語言,或是新的概念。
他的意義就是將程式的 模型Model(M)-檢視View(V)-控制Controller(C)三種介面分開,讓程式可以各司其職
也讓開發人員可以分工合作,以達到一個較好的開發效率。
依我學習一個星期的想法來解釋的話,就是經由Controller去抓取或利用Model內的資料,然後展示在View上面。
那有什麼好處呢?
- 以前在上課時,老師都說要儘量寫三層式的架構或是N層式的架構,這樣程式才好維護。但是,寫過Web Form的
人都曉得,常常我們在一個按鈕上註冊了一個事件,就開開心心的利用ADO.NET抓資料庫內的資料,或是在類別中
自己寫了一些方法,在事件中去呼叫。以至於分層雖然有分,但是分的很不明確。
但是MVC架構會強制你將介面、邏輯跟控制分離(雖然說硬要寫在一起還是可以啦..),所以用MVC架構寫出來的程式
基本上會比較好維護,分層也比較明確。
- 不知道大家有沒有覺得GridView雖然強大,排序編輯樣樣幫你做到好,但是有時候要他沒有資料時顯現出表頭,或是想
要固定寬度或是套用CSS時,要一個一個去點屬性有點麻煩。但是在MVC的世界裡,只要你的HTML跟CSS夠強,想要
View怎麼呈現,就可以自由自在的表現出來。
這是我寫MVC一個星期以來對MVC的優點的看法,當然還有其他好處,等我有心得的時候再來一一的報告。
回歸文章內容,這篇文章雖說是快速上手,但是有幾樣東西不得不提。
- 要使用MVC架構開發,首先要灌Visual Studio 2008 並升級為SP1,然後再安裝ASP.NET MVC framework
- 範例中使用了實體資料模型(ADO.NET Entity Data Model),對於我來說算是一個陌生的東西。
現在的資料庫主流還是關聯式資料庫,雖然簡單易懂,但對熟悉物件導向程式設計的程式設計師來說,還是有些不合
用。因此實體資料模型就是將資料庫中的資料表轉化為類別,資料行變為類別屬性等,要手動寫Code也是可以,但微
軟很佛心的讓我們只要跟著精靈的設定,就將資料庫轉為實體類別。
- 用慣了T-SQL語法的人,對於下面這段Code可能會覺得似曾相似,又有看沒有懂。1 var movieToEdit = (from m in _db.MovieSet
2
3 where m.Id == id
4
5 select m).First();
6
上面這段是LINQ的運算式。非常好用!!下面開始說明:
首先,var是C#3.0 的新語法,代表為隱式型別。聽起來很難,但是其實很單純,就是當一個變數不知道型別時,用var
這個關鍵字,他就會自動判斷變數型別,譬如說我突然傻了,不知道5的型別是int,這時候寫 var 變數名稱=5;
就會自動的判別等號右方的型別是int,那var就代表int。比較需要注意的是,var的型別必須在初始的時候就確定,並且
不能再改變他。
例如: var 變數名稱; <=這樣寫是錯的。
例如:var 變數名稱=5; 變數名稱="變為string"; <=這樣寫也是錯的。
等號右邊的from m,from是LINQ運算式的開頭,m是範圍變數,可以隨便命名。in之後接的是所要查詢的資料來源
這邊的_db指的是資料模型的實體化物件,MovieSet是資料表,where m.Id == id應該不用說明了吧,就是要搜尋該資
料表內Id欄位等於傳進來的變數id的資料,LINQ運算式的最後,就是要select 我們當初所設定的變數m。
我把LINQ運算式轉為用T-SQL描述讓第一次看的人比較好了解,如下(當然T-SQL是不能這樣寫的啦!!)
select top 1 * from _db.MovieSet as m where m.Id=id
LINQ語法也是千變萬化,但是了解之後,我覺得還滿好用的。
基本上第一篇文件,只要稍微了解上面的三點,在閱讀上應該就不會有太大的困難。其中,還有一些屬性,或是View中的
Model是什麼東西,就留著之後的學習中,再慢慢的報告囉。
這是我的第一篇學習筆記,在編排或是敘述上可能還是有很大的進步空間。也歡迎大家的指正以及評論。
我們都是鑑往知來,踏著前人留下的知識及累積來做學習。
所以希望能藉由這樣的學習筆記,跟大家分享我這個初學者的學習心得,
也提供想學習的人用一種比較初學者的角度去研究Code。
雖然都是坐在電腦前面獨自奮鬥,但是Coding之路永遠都不孤獨。