1 / 11

無痛資料庫應用開發 Entity Framework 實戰技巧

無痛資料庫應用開發 Entity Framework 實戰技巧. 多 奇數位創意 有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落 格: http://blog.miniasp.com/. 1. 對 DBA 的 6 個疑問?. 系統改版是否允許大幅改動 資料庫結構? 有多少人會參與應用程式的資料庫規劃? 有多少人會 參與資料庫效能調校? 有 多少人身兼 DBA 與 Developer ? 資料庫管理:基礎架構、日常維運 資料庫開發:結構設計、效能調校 有 多少開發人員會 撰寫預儲程序 ?

Download Presentation

無痛資料庫應用開發 Entity Framework 實戰技巧

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 無痛資料庫應用開發 Entity Framework 實戰技巧 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/ 1

  2. 對 DBA 的 6 個疑問? • 系統改版是否允許大幅改動資料庫結構? • 有多少人會參與應用程式的資料庫規劃? • 有多少人會參與資料庫效能調校? • 有多少人身兼 DBA 與 Developer? • 資料庫管理:基礎架構、日常維運 • 資料庫開發:結構設計、效能調校 • 有多少開發人員會撰寫預儲程序? • 你覺得 DBA 重要還是 Developer 重要?

  3. DBA 的兩種類型 • 強勢的 DBA • DBA 深受老闆寵愛 • 以資料庫為中心思考,掌控全局 • 主宰一切資料表、關連、索引、預儲程序、觸發程序、效能調校、… • 要改Schema?Come on! No way! • 弱勢的 DBA • 在公司裡開發人員說話比較大聲 • 只能確保資料庫正常運作、定時備份、… • 要改 Schema?沒問題,改壞你負責!

  4. 何謂 ORM (Object-relational mapping) ? • ORM 做什麼事? • 將結構化的關連資料對映成物件導向模型 • 將物件資料對應成關連資料 • 市面上有哪些 ORM 技術? • Typed DataSet • LINQ to SQL • Entity Framework • DevartLinqConnect • NHibernate • SubSonic … and much more …

  5. 採用 ORM / Entity Framework 有什麼好處 • 對 DBA 來說 • 更專注於自身的 DBA 生涯磨練 • 對開發人員來說 • 更專注於增強開發技巧 • 不再侷限於現有資料庫架構 • 以前: 對開發人員來說 DBA 越強勢越痛苦 (太沒結構) • 現在: 透過 ORM 技術開發不再受侷限 • 可以再開發時期快樂的且安全的重構 • Entity Framework 想達到的目的:專業分工 • 開發人員可以不懂 T-SQL / Stored Procedure • DBA 可以不懂 OOP、.NET、Entity Framework

  6. Entity Framework 的開發方式 • Entity Framework 支援三種開發導向 • Database First Development • DBA is the king! • Model FirstDevelopment • DBA is helping. • Code First Development • DBA is nothing…… It’s a joke!

  7. 如何設計資料庫才能幫助開發人員? • 一定要有 Primary Key • 資料型別要定義完整 (想清楚) • 欄位型態 • 允許 NULL • 預設值 • 表格之間要建立適當的關連(Foreign Keys) • 依據作業需求設計合適的檢視表(Views) • 為複雜的查詢或資料操作撰寫預儲程序 • 有一致的命名規則 (可多用中文命名)

  8. 導入 Entity Framework 之後 DBA 能做的事 • 原本的資料庫維運工作不能少 • 協助開發人員對資料庫進行分析與效能調校 • 索引與查詢效能 • 分析交易與鎖定 • T-SQL 語法調校? • 執行計畫與查詢計畫?

  9. Entity Framework 如何進行效能調校 • 非常有限度的調整 T-SQL 語法 • context.News.Include(“Category”) • context.ExecuteStoreCommand • context.ExecuteStoreQuery<T>(String, Object[]) • 善用預儲程序(Stored Procedure)優化查詢 • Insert • Update • Delete • Select

  10. 聯絡資訊 • The Will Will Web記載著 Will 在網路世界的學習心得與技術分享 • http://blog.miniasp.com/ • ★ ★ ★ Will 保哥的噗浪 ★ ★ ★ • http://www.plurk.com/willh/invite • Will 保哥的技術交流中心 (臉書粉絲專頁) • http://www.facebook.com/will.fans

  11. 感謝各位

More Related