CHƯƠNG 1: CƠ SỞ LÝ THUYẾT TỔNG QUAN VỀ ASP.NET MVC FRAMEWORK 1. Giới thiệu về mô hình MVC [1] Mô hình MVC là một chuẩn mô hình và đóng vai trò quan trọng trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay một ứng dụng – phần mềm. Nó tạo ra một mô hình 3 lớp Model – View – Controller tách biệt và tương tác nhau, giúp các chuyên gia có thể dễ dàng dựa vào mô hình để trao đổi và xử lý những nghiệp vụ một cách nhanh chóng. Đây là một mô hình đã xuất hiện từ những năm 70 của thế kỷ 20 tại phòng thí nghiệm Xerox PARC ở Palo Alto, nó không phụ thuộc vào môi trường, nền tảng xây dựng hay ngôn ngữ phát triển.
Chúng ta có thể áp dụng mô hình MVC vào các dự án trong môi trường Windows, Linux… và sử dụng bất kỳ ngôn ngữ nào như PHP, ASP, JSP… 1. Các thành phần trong MVC Hình 1. 1: Các thành phần trong mô hình MVC Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, ms sql.); nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu… 3 do an View: là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh… nó đảm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống. Controller: là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View 1.
Hoạt động của mô hình MVC trong dự án Website Hình 1. 2: Hoạt động của mô hình MVC Mô hình MVC trong các dự án website và sẽ hoạt động theo quy trình sau: - Người dùng sử dụng một BROWSER trình duyệt web bất kỳ (Firefox, Chrome, IE…) để có thể gửi những yêu cầu (HTTP Request) có thể kèm theo những dữ liệu nhập tới những CONTROLLER xử lý tương ứng. Việc xác định Controller xử lý sẽ dựa vào một bộ Routing điều hướng. 4 do an - Khi CONTROLLER nhận được yêu cầu gửi tới, nó sẽ chịu trách nhiệm kiểm tra yêu cầu đó có cần dữ liệu từ MODEL hay không? Nếu có, nó sẽ sử dụng các class/function cần thiết trong MODEL và nó sẽ trả ra kết quả (Resulting Arrays), khi đó CONTROLLER sẽ xử lý giá trị đó và trả ra VIEW để hiển thị.
CONTROLLER sẽ xác định các VIEW tương ứng để hiển thị đúng với yêu cầu. - Khi nhận được dữ liệu từ CONTROLLER, VIEW sẽ chịu trách nhiệm xây dựng các thành phẩn hiển thị như hình ảnh, thông tin dữ liệu… và trả về GUI Content để CONTROLLER đưa ra kết quả lên màn hình BROWSER. - BROWSER sẽ nhận giá trị trả về (HTTP Response) và sẽ hiển thị với người dùng. Kết thúc một quy trình hoạt động.
Ưu, nhược điểm của mô hình MVC Ưu điểm: - Hệ thống phân ra từng phần độc lập nên dễ dàng phát triển - Chia thành nhiều module nhỏ nên nhiều người có thể làm chung dự án - Dễ dàng xây dựng – phát triển – quản lý – vận hành và bảo trì một dự án, tạo sự rõ ràng, trong sáng trong quá trình phát triển dự án, kiểm soát được các luồng xử lý và tạo ra các thành phần xử lý nghiệp vụ chuyên biệt hóa - Dễ dàng debug trong quá trình xây dựng Nhược điểm: - Yêu cầu về chuyên môn khá cao, có kiến thức vững về các mô hình chuẩn - Khó triển khai với những dự án yêu cầu phức tạp hơn 1. Khái niệm về ASP.NET MVC5 [2] ASP.NET MVC là mô hình lập trình web chiến lược của Microsoft. MVC là cụm từ viết tắt của Model-View-Controller, nó phân chia pattern của ứng dụng thành 3 phần – model, controller và view. - Model: giúp lưu trữ dữ liệu của ứng dụng và trạng thái của một cơ sở dữ liệu.
- View: là một giao diện người dùng được sử dụng bởi khách truy cập trang web của bạn để nhìn thấy các dữ liệu. 5 do an - Controller: chịu trách nhiệm xử lý các tương tác của người dùng với trang web. Nó xác định loại view nào cần phải được hiển thị. Controller cũng được sử dụng cho mục đích giao tiếp với model.NET MVC5 được phát hành vào tháng 10 năm 2013 trên nền tảng bộ .1 trên phiên bản Visual Studio 2013.
Tới nay đã có một số update về phiên bản: Hình 1. 3: Các phiên bản ASP. Những ưu, nhược điểm của ASP.NET Ưu điểm: - Cho phép lựa chọn một trong các ngôn ngữ để lập trình: Visual Basic.Net, J#, C#… Trang ASP.Net được biên dịch trước thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả - Hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của .Net Framework, làm việc với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.Net… - ASPX và ASP có thể cùng hoạt động trong một ứng dụng - Sử dụng phong cách lập trình mới: Code behide Tách code riêng, giao diện riêng do vậy dễ đọc, dễ quản lý và bảo trì - Kiến trúc lập trình giống ứng dụng trên Windows - Hỗ trợ quản lý trạng thái của các control - Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser - Triển khai cài đặt + Không cần lock, không cần đăng ký DLL + Cho phép nhiều hình thức cấu hình ứng dụng 6 do an - Hỗ trợ quản lý ứng dụng ở mức toàn cục + Global.aspx có nhiều sự kiện hơn + Quản lý session trên nhiều Server, không cần Cookies Nhược điểm: - Không thể chạy được trên linux - Không có Visual Studio thì khó có thể viết code cho Asp.net - Biên dịch chậm làm tốc độ website chậm hơn 1. TỔNG QUAN VỀ ENTITY FRAMEWORK 1.
Giới thiệu về Entity Framework [3] The Microsoft® ADO.NET Entity Framework là một bộ ánh xạ đối tượng – quan hệ (Object/Relational Mapping – ORM) mà cho phép người lập trình làm việc trên các dữ liệu quan hệ như các đối tượng cụ thể, loại bỏ sự cần thiết của hầu hết các mã plumbing mà người lập trình phải viết. Sử dụng Entity Framework, người lập trình truy vấn bằng LINQ, sau đó lấy và thao tác với dữ liệu như các đối tượng được khai báo lúc biên dịch chương trình. Các thành phần ORM của Entity Framework cung cấp các dịch vụ như change tracking, identity resolution, lazy loading, and query translation để các lập trình viên tập trung vào việc phát triển ứng dụng kinh doanh logic hơn là nguyên tắc truy cập dữ liệu cơ bản. 7 do an Hình 1.
4: Giới thiệu về Entity Framework 1. Các tính năng nổi trội của Entity Framework - Làm việc được với nhiều máy chủ cơ sở dữ liệu (bao gồm Microsoft SQL Server, Oracle và DB2). - Bao gồm công cụ ánh xạ mạnh mẽ cho phép có thể xử lý trên sơ đồ cơ sở dữ liệu thực tế và làm việc tốt với các thủ tục lưu trữ. - Cung cấp các công cụ Visual Studio tích hợp trực quan để tạo các mô hình thực thể và tự động tạo mô hình từ một cơ sở dữ liệu có sẵn.
Một cơ sở dữ liệu mới có thể được triển khai từ một mô hình, mà có thể toàn quyền hiệu chỉnh. - Cung cấp Code First để tạo ra mô hình thực thể bằng mã. Code First có thể ánh xạ một cơ sở dữ liệu có sẵn hay tạo một cơ sở dữ liệu từ mô hình. - Tương thích tốt với các mô hình lập trình ứng dụng .NET bao gồm: ASP.NET, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) và WCF Data Services (trước kia là ADO.NET Data Services).
Lợi ích của Entity Framework 8 do an Entity Framework được xây dụng trên mô hình dịch vụ ADO.NET, với dịch vụ có sẵn được cập nhật thêm để hỗ trợ cho các tính năng mới của Entity Framework. Bởi vì điều này, các ứng dụng hiện tại được xây dựng trên ADO.NET có thể được chuyển sang Entity Framework dễ dàng với một mô hình lập trình quen thuộc với các lập trình viên ADO. Sử dụng Entity Framework để viết các ứng dụng theo hướng dữ liệu có các lợi ích: - Giảm thời gian phát triển; framework cung cấp khả năng truy cập dữ liệu lõi để người lập trình có thể tập trung vào ứng dụng logic. - Người lập trình có thể làm việc với sự hỗ trợ của một mô hình đối tượng hướng trung tâm hơn, bao gồm các loại kế thừa (inheritance), thành viên phức hợp (complex members), và các mối quan hệ.NET Framework 4, Entity Framework cũng hỗ trợ Persistence Ignorance thông qua các thực thể Plain Old CLR Objects (POCO).
- Các ứng dụng được giải thoát khỏi hard-code phụ thuộc vào công cụ dữ liệu cụ thể hay lược đồ lưu trữ bằng cách hỗ trợ một mô hình ý niệm độc lập với mô hình lưu trữ/vật lý. - Sự ánh xạ giữa mô hình đối tượng và lược đồ lưu trữ cụ thể có thể thay đổi mà không cần thay đổi code ứng dụng. - Ngôn ngữ tích hợp truy vấn (LINQ to Entity) cung cấp IntelliSense (nhắc lệnh) và thời gian biên dịch xác nhận cú pháp để viết các truy vấn với một mô hình ý niệm. Các thành phần của Entity Framework Entity Framework sử dụng Entity Data Model (EDM) để mô tả đối tượng ứng dụng cụ thể hoặc mô hình ý niệm mà chương trình phát triển.
EDM xây dựng trên mô hình liên kết thực (Entity Relationship model) được biết đến rộng rãi để tăng độ trừu tượng trên lược đồ cơ sở dữ liệu logic. EDM được phát triển với mục liêu cơ bản trở thành mô hình dữ liệu chung cho bộ công nghệ phát triển và máy chủ của Microsoft. Do đó, EDM được tạo ra sử dụng với Entity Framework cũng có thể được thừa hưởng với WCF Data Services (formerly ADO.NET Data Services), Windows Azure Table Storage, SharePoint 2010, SQL Server Reporting Services, and SQL Server PowerPivot for Excel, và hơn nữa trong tương lai. Các thành phần của Entity Framework trong EDM: 9 do an - Entity Framework dựa trên các tập tin XML để thực hiện các công việc của mình.
Những tập tin đó thực hiện 3 nhiệm vụ: xác định mô hình ý niệm, xác định mô hình lưu trữ và tạo ra ánh xạ (mapping) giữa mô hình với cơ sở dữ liệu vật lý. 5 Các thành phần của Entity Framework trong EDM Conceptual schema definition language (CSDL) CSDL là một ngôn ngữ dựa trên XML mô tả các thực thể, các mối quan hệ, và các hàm tạo nên một mô hình ý niệm của ứng dụng hướng dữ liệu (data-driven application).