翻譯:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 設計和開發網站 – 1

來源:互聯網
上載者:User

原文地址:http://ddmvc4.codeplex.com/

原文名稱:Design and Develop a website using ASP.NET MVC 4, EF, Knockoutjs and Bootstrap

另一種 MVC 應用程式: 簡介

網站總是快速成長,一旦開始成長,網站就變得很難開發,組織和維護。所以在我們增加功能或者開發項目的時候,缺乏設計的大型網站會變得失去控制。這裡要說的是網站的架構設計必須簡單,容易被任何設計者理解 ( 從初級開發人員到中級開發人員 ),以及搜尋引擎。在這篇文章中,我會試著設計一個網站,支援線上維護連絡人資訊。未來,這個應用可能被用在全球的大型社區網站中,帶有增加的功能和模組。所以,網站的設計必須能夠輕鬆地適配未來成長的商務邏輯。

在文章的第一部分,我會使用這種想法來討論建立和設計使用者介面 UI, UI 將會與商務邏輯進行分離,可以被建立但是不依賴任何設計者/開發人員。在這一部分,我們將會使用 ASP.NET MVC, knockout Jquery 和 Bootstrap。 在文章的後面,我們將會討論資料庫的設計,以及使用分層的結構來實現商務邏輯,使用的技術包括  SQl Server 2008, Entity Framework, 和 Castle Windsor 以支援依賴注入。

分離關注點: 主要目標

關鍵是要分離出大部分或者所有的商務邏輯。邏輯不應該與頁面綁定在一起。要是在另外一個頁面重新使用邏輯怎麼辦呢?這樣,我們將可以複製和粘貼。如果我們做到的話,項目將會變得可維護了。另外一個要點是從商務邏輯分離資料訪問,由於我們計劃使用 Entiy Framework,這就不是一個問題,因為 EF 已經這樣做了。我們可以容易地將我們的 EF 檔案從一個項目轉移到另外一個項目,簡單地添加一些必須的引用就可以,下面是設計圖。

最終的解決方案在 Visual Studio 中如下所示:

解決方案中有 7 個項目,有必要嗎?

看你怎麼想...... 這個設計會帶來許多優點,包括:

  • 關注點的分離:清晰地分層,意味著應用可以分隔為獨立的領域,沒有重疊的功能。比如 UI 的設計人員可以專註工作,而不需要被商務邏輯影響 ( Application.Web )。代碼的開發人員只需要處理主要的商務邏輯 ( Application.DTO 或者 Application.Manager ).
  • 生產力:對現有的軟體可以容易地增加功能,因為軟體的結構已經到位,新的功能代碼可以按部就班,任何複雜的問題可以輕鬆識別和分離,並實現軟體工程要求的品質要素:魯棒性,可適配,可維護,以及可重用。
  • 可維護:容易維護的應用,清晰定義的結構便於理解,很容易發現 Bug 和異常問題,修改的風險也降至最低。
  • 適應性:新的技術,例如不同的前端技術,或者增加商務邏輯的引擎也很容易做到,你的應用架構有著清晰的關注點分離。
  • 重用性:對於任何應用的設計來說,可重用性都是一個重要的關注點,因為可以降低總體擁有成本 TCO,我們的設計考慮了重用 Web 應用程式和不同的層,在文章的後面,我們將會詳細討論每個層中的功能。
工具和技術

為了達到最終的目標,我們需要下面的工具:

  • Visual Studio 2012
  • ASP.NET MVC 4 with Razor View Engine
  • Entity Framework 5.0
  • Castle Windsor for DI
  • SQL Server 2008/2012
  • Knockout.js & JQuery
  • Castle Windsor for DI
  • Bootstrap CSS

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.