Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ASP.NET MVC Model 的設計與使用
Kevin Tseng
http://kevintsengtw.blogspot.tw
http://mvc.tw
2013 微軟最有價值專家(ASP.NET)
twMVC 聯合創辦人之一
部落格:mrkt 的程式學習筆記
http://kevintsengtw.blogspot.tw
2
講者簡介
http://mvc.tw
MVC 的三個組成部分
Model
可用什麼來做為 Model
ADO.NET
Enterprise Library –
Data Access Application Block
ADO.NET Ent...
MVC 的三個組成部分
Model, View, Controller
http://mvc.tw
 「資料模型」用於封裝與應用程序的業務邏輯相關的數據以
及對數據的處理方法
 有關「資料處理」的範圍都可屬於Model,包含:
 資料庫的存取操作(讀取、寫入)
 資料結構的定義
 資料格式的驗證
5
Mo...
http://mvc.tw
 在頁面上顯示或是經由頁面傳回後端都是View所負責
 輸出:把資料輸出並顯示到使用者介面上
 輸入:把使用者所輸入的資料傳回到伺服器端
 有關View的技術還包含:
 HTML / CSS
 Javas...
http://mvc.tw
 控制整個系統的業務流程
 依據制定好的規則進行對資料處理以及 View 的使用
 控制器接受外部傳入的資料並與 Model 進行資料處理,最
後再由 View 回應外部的傳入並做顯示
7
Controller
http://mvc.tw 8
MVC – 三者之間的關係
http://mvc.tw 9
MVC – 三者之間的關係
本圖取自《ASP.NET MVC4 網站開發美學》
Model
http://mvc.tw
 在ASP.NET MVC中Model負責所有與「資料」有關的任務
 不處理所有與資料處理無關的事
 不直接處理來自瀏覽器的輸入,也不向瀏覽器產生 HTML 輸
出。
 ASP.NET MVC 架構對可以建置...
http://mvc.tw
 ADO.NET Entity Framework
 NHibernate, SubSonic, LLBLGen Pro … etc
以上都是 ORM Solution
也可以用「非 ORM Solution」,...
http://mvc.tw
 NHibernate是 Hibernate(Java) 的.NET版。
 目前可以支援使用的Database有:
 MS SQL Server
 Oracle
 MySQL
 DB2
 Sybase
...
http://mvc.tw
 使用傳統的 ADO.NET 資料存取方式
 示範操作
14
Model – ADO.NET
http://mvc.tw
 Enterprise Library –
Data Access Application Block
 Enterprise Library 6 – Released 2013/4/26
 .NET 4.5 ...
http://mvc.tw
 對資料庫的存取操作使用 ADO.NET Entity Framework
 Database First
 示範操作
16
Model – ADO.NET Entity Framework
http://mvc.tw 17
ASP.NET MVC 專案的 Model – 同專案中
http://mvc.tw 18
ASP.NET MVC 專案的 Model – 不同專案
http://mvc.tw
 專案分層架構
 ADO.NET, EntLib DAAB, EF 三合一
 示範操作
19
Model – 分層
http://mvc.tw
 使用介面
「程式的內容是針對介面而寫,而不是針對實作而寫」
 使用 IoC/DI
 IoC/DI Solution:Simple Injector
20
Model – 切換不同的資料存取方式
http://mvc.tw
 DI:Dependency Injection 依賴注入.
 IoC:Inversion of Control 控制反轉.
 控制反轉又稱為依賴注入,在物件導向設計中,一個用來降低物
件之間耦合性的設計原則....
http://mvc.tw
 資料庫在 MS SQL Server 與 Oracle 切換
 ADO.NET Entity Framework, ADO.NET, EntLib DAAB
 介面與 IoC/DI
 示範操作
22
Mod...
聯絡資訊
Blog: http://kevintsengtw.blogspot.tw
G+: http://gplus.to/mrkt_note
twMVC: http://mvc.tw
FB: http://fb.me/twmvc
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。
• 本投影片使用的圖片皆從網路搜尋。
• 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。
h t t p ...
Upcoming SlideShare
Loading in …5
×

ASP.NET MVC Model 的設計與使用 twMVC#10

1,749 views

Published on

ASP.NET MVC 的 Model 並不等同於 Entity Framework,這一次將說明如何使用 ADO.NET 來做為 MVC 的 Model,並且介紹 Enterprise Library Data Access Application Block以及實作分層讓 Model 讓 Web Forms 專案可以共用。

Published in: Technology
  • Be the first to comment

ASP.NET MVC Model 的設計與使用 twMVC#10

  1. 1. ASP.NET MVC Model 的設計與使用 Kevin Tseng http://kevintsengtw.blogspot.tw
  2. 2. http://mvc.tw 2013 微軟最有價值專家(ASP.NET) twMVC 聯合創辦人之一 部落格:mrkt 的程式學習筆記 http://kevintsengtw.blogspot.tw 2 講者簡介
  3. 3. http://mvc.tw MVC 的三個組成部分 Model 可用什麼來做為 Model ADO.NET Enterprise Library – Data Access Application Block ADO.NET Entity Framework 分層、IoC/DI 3 Agenda
  4. 4. MVC 的三個組成部分 Model, View, Controller
  5. 5. http://mvc.tw  「資料模型」用於封裝與應用程序的業務邏輯相關的數據以 及對數據的處理方法  有關「資料處理」的範圍都可屬於Model,包含:  資料庫的存取操作(讀取、寫入)  資料結構的定義  資料格式的驗證 5 Model
  6. 6. http://mvc.tw  在頁面上顯示或是經由頁面傳回後端都是View所負責  輸出:把資料輸出並顯示到使用者介面上  輸入:把使用者所輸入的資料傳回到伺服器端  有關View的技術還包含:  HTML / CSS  Javascript(jQuery, MoonTool, ExtJS …etc)  JSON / XML  AJAX  RIA(Rich Interactive Application, ex:Flash,Silverlight) 6 View
  7. 7. http://mvc.tw  控制整個系統的業務流程  依據制定好的規則進行對資料處理以及 View 的使用  控制器接受外部傳入的資料並與 Model 進行資料處理,最 後再由 View 回應外部的傳入並做顯示 7 Controller
  8. 8. http://mvc.tw 8 MVC – 三者之間的關係
  9. 9. http://mvc.tw 9 MVC – 三者之間的關係 本圖取自《ASP.NET MVC4 網站開發美學》
  10. 10. Model
  11. 11. http://mvc.tw  在ASP.NET MVC中Model負責所有與「資料」有關的任務  不處理所有與資料處理無關的事  不直接處理來自瀏覽器的輸入,也不向瀏覽器產生 HTML 輸 出。  ASP.NET MVC 架構對可以建置的各種模型物件沒有任何限 制。 11 Model
  12. 12. http://mvc.tw  ADO.NET Entity Framework  NHibernate, SubSonic, LLBLGen Pro … etc 以上都是 ORM Solution 也可以用「非 ORM Solution」,但是會非常累… ADO.NET Enterprise Library Data Access Application Block 12 可用哪些來做為 Model
  13. 13. http://mvc.tw  NHibernate是 Hibernate(Java) 的.NET版。  目前可以支援使用的Database有:  MS SQL Server  Oracle  MySQL  DB2  Sybase  SQLite … etc 13 可用哪些來做為 Model
  14. 14. http://mvc.tw  使用傳統的 ADO.NET 資料存取方式  示範操作 14 Model – ADO.NET
  15. 15. http://mvc.tw  Enterprise Library – Data Access Application Block  Enterprise Library 6 – Released 2013/4/26  .NET 4.5 使用 Enterprise Library 6 .NET 4.0 (3.5) 使用 Enterprise Library 5  示範操作 15 ADO.NET – EntLib DAAB
  16. 16. http://mvc.tw  對資料庫的存取操作使用 ADO.NET Entity Framework  Database First  示範操作 16 Model – ADO.NET Entity Framework
  17. 17. http://mvc.tw 17 ASP.NET MVC 專案的 Model – 同專案中
  18. 18. http://mvc.tw 18 ASP.NET MVC 專案的 Model – 不同專案
  19. 19. http://mvc.tw  專案分層架構  ADO.NET, EntLib DAAB, EF 三合一  示範操作 19 Model – 分層
  20. 20. http://mvc.tw  使用介面 「程式的內容是針對介面而寫,而不是針對實作而寫」  使用 IoC/DI  IoC/DI Solution:Simple Injector 20 Model – 切換不同的資料存取方式
  21. 21. http://mvc.tw  DI:Dependency Injection 依賴注入.  IoC:Inversion of Control 控制反轉.  控制反轉又稱為依賴注入,在物件導向設計中,一個用來降低物 件之間耦合性的設計原則.  常見的 IoC/DI Solution: EntLib Unity, Autofac, Simple Injector, Castle Windsor, StructureMap, Ninject, Spring.NET,  IoC Container Benchmark - Performance comparison 21 IoC/DI
  22. 22. http://mvc.tw  資料庫在 MS SQL Server 與 Oracle 切換  ADO.NET Entity Framework, ADO.NET, EntLib DAAB  介面與 IoC/DI  示範操作 22 Model – 切換資料庫與資料存取方式
  23. 23. 聯絡資訊 Blog: http://kevintsengtw.blogspot.tw G+: http://gplus.to/mrkt_note twMVC: http://mvc.tw FB: http://fb.me/twmvc
  24. 24. 謝謝各位 • 本投影片所包含的商標與文字皆屬原著作者所有。 • 本投影片使用的圖片皆從網路搜尋。 • 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。 h t t p : / / m v c . t w

×