【翻譯】Building a Simple Blog Engine with ASP.NET MVC and LINQ – Part 1

來源:互聯網
上載者:User

摘要

微軟發布了ASP.NET 3.5 Extensions的第一個CTP版本,它包含ASP.NET 3.5的一個重要的extensions:ASP.NET MVC Framework。本系列文章擬使用ASP.NET MVC和LINQ建立一個簡單的Blog系統,在第一部分,Keyvan介紹了MVC模式、ASP.NET MVC Framework以及簡單Blog系統的基本原理。
原文地址:Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 1

內容

  • 簡介
  • 什麼是MVC?
  • 什麼是ASP.NET MVC Framework?
  • KBlog基礎
  • 建立項目
  • 開始
  • 進一步閱讀
  • 小結

簡介

幾周前發布了ASP.NET 3.5 Extensions的第一個CTP版本,它包含了ASP.NET MVC Framework的第一個公用版本。網路上已經有了很多教程、博文和Web Cast,它們都是學習這個MVC Framework的優秀資源。

我打算寫幾篇關於ASP.NET MVC Framework的文章,使用MVC和LINQ來建立一個簡單的Blog系統。我將為您呈現所有步驟的細節,並對一些深層次的話題展開討論。我現在還沒有完成該系統,我將在撰文的同時編寫代碼。

這個簡單的應用程式套件含在ASP.NET MVC Toolkit中,但還沒有詳細的描述。為什麼在已經有了相似教程的情況下,我還要寫這個系列呢?在我看來,學習MVC Framework的曲線必須遵循幾個步驟,建立一個簡單Bolg系統並且描述其過程,將是學習ASP.NET MVC Framework的一個非常好的例子。

本文是該系列文章(我將在幾周內完成這個系列)的第一篇,主要介紹一些基本資料。

什麼是MVC?

是啊,什麼是MVC呢?其他人已經更好的闡述了這個概念,但我想用自己的語言來複述。

MVC是一個方法論,它基於將實現劃分為Model、View和Controller三種角色的理念來構建應用。

讓我們再來看看上面的句子。我們認為MVC是一個方法而非技術,因此在微軟將它用於ASP.NET前已經有了許多應用。我強調這一點是因為曾經看到一些傢伙認為MVC是一種專為ASP.NET設計的技術。

我仍然需要簡單的介紹一下這三個角色:

  • Model:維持狀態的角色。通常是描述資料庫中資料的類。
  • View:通過使用者介面向終端使用者呈現資料的角色。它可能是一組使用者介面元素,如文字框、編輯器或按鈕。
  • Controller:負責接收使用者輸入並進行處理的角色。事實上,Controller實現當前邏輯以處理使用者請求。

要設計依賴於資料互動的應用,使用MVC是一個非常好的方法。MVC最大的優點是可以輕鬆的實現單元測試。通過Controller可以很方便的對MVC應用進行單元測試以及實現測試驅動的流程(Red-Green-Refactor)。

圖1展示了MVC模式的結構,Model獨立於Controller和View,這使得Model的測試更加容易。另一方面,Model、View和Controller的分離可以使開發人員輕鬆的測試MVC應用。實際上,將作為使用者介面元素的View和Controller、Model分離是非常重要的,它簡化了測試過程。

圖1 MVC結構

 


對於MVC我不再進行過多的討論,你可以參考Scott Guthrie's post和Wikipedia,這些足夠你入門了。

什麼是ASP.NET MVC Framework?

ASP.NET MVC Framework是微軟將MVC在ASP.NET中的應用,在ASP.NET 3.5中,提供了建立基於MVC的Web應用所必須的特性。

ASP.NET MVC Framework目前仍在構建中,並且作為ASP.NET 3.5 Extensions CTP的一部分,只有一個公用版本可供下載。

當你下載並安裝了這個組件,你就可以感受到來自ASP.NET Extensions方方面面的優點,它還在Visual Studio 2008上自動安裝了一些項目模板。

與這個下載組件一起的,還有一個MVC toolkit package,它提供了開發MVC時一些有用的工具。在本系列文章中我也將使用它們。

KBlog基礎

在本系列文章中,我將建立一個簡單的Bolg工具,我稱之為KBlog。

該Bolg系統支援Blog發布、評論和分類。一篇Blog只能有一個種類,但可以有任意多的評論。該系統只面向單一使用者,並且包含一些URL模式以處理公用和私人頁面。所有這些都包括自己的ID。簡便起見,KBlog不支援將name作為URL的一部分。

作為第一步,我將使用SQL Express作為資料庫。我手工填入一些資料,在完成公用頁面的討論之後,我將介紹管理頁面,使用者可以通過管理頁面輸入資料。

建立項目

顯然,第一步是在Visual Studio中建立一個項目。如果成功安裝了ASP.NET 3.5 Extensions CTP,在Web類別下,可以看到"ASP.NET MVC Web Application"項目。我將該系統命名為KBlog(圖2)。

圖2 建立一個ASP.NET MVC Web Application項目

 


之後,Visual Studio將按照預定義的模板和結構產生項目。

開始

Visual Studio產生了一個結構簡單的ASP.NET Web Application項目。

圖3 ASP.NET MVC解決方案結構

 


該項目包含一些引用,最重要的一個是System.Web.Extensions裝配件。另外還包括四個檔案夾,Content、Controllers、Models和Views。

  • Content檔案夾僅儲存一個預設的CSS樣式檔案。
  • Controllers檔案夾儲存Controller類。
  • Models檔案夾儲存Model類。
  • View儲存視圖檔案,並且包含一些含有aspx和master檔案的檔案夾。

正如你所見,Controllers、Models和Views對我們來說更重要一些,因為它們是用來儲存Controller、Model和View的。這樣的命名並不是定死的,你可以用自己的結構來替代。

除此之外,還有一些眾所周知的ASP.NET檔案夾,它們的額外定義稍後會介紹。

需要說明的一點是檔案Default.aspx,正如它的內容所描述的那樣,為了使IIS在使用者訪問到該頁時為應用程式啟用MVC,你不能刪除該檔案。

本文介紹到這裡已經差不多了。循序漸進地,我將在接下來的文章中為該項目添加一些實現。

進一步閱讀

下面的列出了一些非常優秀的Blog資源,你可以閱讀以進一步瞭解ASP.NET MVC Framework,它們已經包含了有關ASP.NET MVC的極好的資料。這項技術對於ASP.NET來說是全新的,因此目前的資源並不是很多,但幸運的是,MVC在開發中已經十分流行,在這短短几周中,我們已經看到了業內的強烈反響。

  • Scott Guthrie
  • Scott Hanselman
  • Phil Haack
  • Rob Conery
  • Brad Abrams

小結

在該ASP.NET MVC Framework系列文章的第一篇中,我想您介紹了MVC模式、MVC的基本原理、ASP.NET MVC Framework以及將在該系列文章中編寫的簡單Blog系統的基本資料。我還在ASP.NET MVC中保留了MVC解決方案的結構。

在接下來的部分中,我將逐步建立這個Blog系統,並介紹有關ASP.NET MVC Framework的原則和技術。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.