使用asp.net MVC開發也一陣子了,一直想要寫一些跟asp.net MVC的文章,
就先來寫篇初步介紹好了,後續我會繼續寫一些相關文章來說明。 ![]() 由上方示意圖我們可以知道,MVC就是Model View Controller的簡稱, 在程式設計裡有許多種的Design Pattern(設計模式), MVC算是在蠻多應用領域上受重視的Design Pattern其中一種。 當然,不止Asp.net有MVC,還有許多程式語言也都有MVC可使用, 不過本文主要目的在於介紹Asp.Net MVC,其他的就不提囉, 另,因為Raz主要是寫Web,所以Raz將以此角度的觀點來說明。 一般在寫Web程式時,收到系統需求、流程分析書之後, 當我們準備開始寫程式之前,會寫好各個業務模型的class以供未來使用, 然後才是資料層、邏輯層、表現層...等等。 (雖然也有Programer是跳過這一步, 直接就寫邏輯了) 要寫MVC的話,就等於業務模型的部份是必需定義的,因為在各個地方都會用到它。 Raz本身是覺得這種方式非常直覺,並且未來若有人接手你的Project, 或是專案必需分工合作時,MVC就是一種絕佳的開發模式, 可以把Model交給資料庫專家,把View交給視覺設計師, 再把Controller交給程式設計師去撰寫邏輯部份。(當然,這只是理想狀況) MVC與WebForm:
上面也有提到,MVC算是另外一種的設計模式, 它沒有像WebForm那樣類似WinForm的開發方式,例如PostBack及事件。 所以較特殊的功能需要你自已寫JavaScript來達成. 微軟在 ASP.NET MVC Overview 中也提到, The MVC framework does not replace the Web Forms model. You must consider carefully whether to implement a Web application by using either the ASP.NET MVC framework or the ASP.NET Web Forms model. 所以習慣寫WebForm的也不必認為MVC是必學的,只是多了一種選擇。 MVC的親切感: 不過對於曾寫過asp、php的programer,MVC倒會讓你很有親切感, 因為在View裡面,是Code in Line的寫法,我們來看一段PHP Code..
<?
$MainSQL = "SELECT * FROM `productclass` WHERE Length(SN)=4";
$SearchSQL = "$MainSQL Order By DateTimeCreate Desc, SN ASC Limit 0 , 100 ";
$DataReader = $objConn->query($SearchSQL);
if(!$DataReader) { ?><div>資料讀取錯誤, 請連絡系統管理員</div><? }
else if($DataReader->num_rows <= 0) { ?><div>目前尚無產品資料</div><? }
else
{
$DataVirtualID = ($Page * $PageDataSize) + 1;
while ($Record = $DataReader->fetch_array())
{
$ThisLevel = strlen(trim($Record["SN"])) / 4;
?>
<Div>
<? if ( substr($HTTP_GET_VARS["Class"] , 0 , 4 ) == $Record["SN"]){ ?>
<b><?=$Record["Name$Lang"]?></b>
<? } else { ?>
<a href="<?=$PHP_SELF?>?Class=<?=$Record["SN"]?>">
<?=$Record["Name$Lang"]?>
</a>
<? } ?>
</Div>
<?
$DataVirtualID++;
}
}
?>
然後我們再看一段C#寫的MVC Code..
<%
if( Model == null ) { %><div class="Error">目前檢視尚無文章</div><% }
else
{
foreach(MNote Note in Model.PagedList)
{
String Link = Url.Action("MyAction", new{ NoteID = Note.ID });
%>
<div class="NoteShortGroup">
<div class="NoteInfo">
<div class="Calendar">
<div class="YM"><%=Note.DateTimeCreate.ToString("yyyy-MM")%></div>
<div class="D"><%=Note.DateTimeCreate.ToString("dd")%></div>
</div>
<div class="PostTitle">
<a href="<%=Link%>" title="<%= Note.Title %>"><%= Note.Title %></a>
</div>
<div>
<input type="button" class="IcoTime" />
<%=Note.DateTimeCreate.ToString("HH:mm:ss")%>
</div>
</div>
<div class="NoteShort">
<%= Note.BodyShort %>
</div>
</div>
<%
}
}
%>
有沒有覺得很熟悉?是的......大師兄回來了...二師兄也... 不好意思,離題了 不過Raz是覺得這種寫法並沒有什麼不好,見人見智囉:) 總結:
因為只是初步的介紹,就大概說明到這邊吧, Raz特別將MVC獨立成一個單元,希望自已能多寫一些MVC相關的東西, 實際上能寫的東西還真的不少,因為要寫MVC有許許多多要注意的地方, 只是因為有點多,一時還真不知從哪寫起,若各位有什麼意見也請告訴我囉:)
2009-08-10 14:15:00 By RazgrizHsu
573 Visits
|
文章分類 Category關於站長 About
大家來噗浪 Plurk武林高手連結 Links免責聲明 Disclaimer
|