Dùng ADO .NET Entity Framework là một nền tảng được sử dụng để làm việc với cơ sở dữ liệu thông qua các cơ chế ánh xạ.. Khi chạy ứng dụng LinQ to SQL sẽ dịch từ các đối tượng đó các c
Trang 1LỜI CÁM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp, em đã nhận được sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình từ thầy cô, gia đình và bạn bè Em xin bày tỏ lòng cảm ơn chân thành về sự giúp đỡ đó
Em xin gửi lời cảm ơn chân thành đến ThS Nguyễn Hồng Tân, giảng viên trường đại học Công Nghệ Thông Tin Và Truyền Thông, anh Đặng Văn Nam trưởng phòng giải pháp Công Ty Cổ Phần Công Nghệ HINET Việt Nam đã hướng dẫn chỉ bảo em trong suốt quá trình làm đồ án tốt nghiệp
Em xin chân thành cảm ơn các thầy cô giáo trường đại học Công Nghệ Thông Tin Và Truyền Thông nói chung và các thầy cô giáo bên bộ môn Công Nghệ Phần Mềm nói riêng đã dậy cho em kiến thức các môn đại cương cũng như các môn chuyên ngành, giúp em nắm vững được cơ sở lý thuyết và tạo điều kiện giúp em trong suốt quá trình học tâp
Cuối cùng, em xin kính chúc các thầy cô trong trường đại học Công Nghệ Thông Tin Và Truyền Thông sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp là truyền đạt lại những kiến thức bổ ích cho thế hệ sau này
Em xin chân thành cám ơn!
SINH VIÊN THỰC HIỆN
Trang 2LỜI CAM ĐOAN
Em xin cam đoan Đồ Án Tốt Nghiệp là kết quả nghiên cứu của cá nhân em Các số liệu, ví dụ và trích dẫn trong Đồ Án Tốt Nghiệp đảm bảo chính xác, tin cậy
và trung thực Sản phẩm của Đồ Án Tốt Nghiệp là do bản thân em nghiên cứu và xây dựng nên
Em xin chịu hoàn toàn trách nhiệm trước nhà trường về sự cam đoan này
NGƯỜI CAM ĐOAN
Trang 4DANH MỤC HÌNH ẢNH
Hình 1.1 Tổng quan về mô hình MVC 10
Hình 1.2 Sự tương tác trong một ứng dụng MVC 4 15
Hình 2.1 Biểu đồ Use – Case cho người dùng 39
Hình 2.2 Biểu đồ Use – Case cho khách vãng lai 39
Hình 2.3 Biểu đồ Use – Case cho quản trị viên 40
Hình 2.4 Biểu đồ Use – Case cho quản lý tin tức 40
Hình 2.5 Biểu đồ Use – Case cho quản lý tài khoản người dùng 41
Hình 2.6 Biểu đồ trình tự đăng kí thành viên 46
Hình 2.7 Biểu đồ trình tự đăng nhập 46
Hình 2.8 Biểu đồ trình tự cập nhật thông tin tài khoản.47
Hình 2.9 Biểu đồ trình tự xem tin tức 47
Hình 2.10 Biểu đồ trình tự tìm kiếm tin tức 48
Hình 2.11 Biểu đồ trình tự thêm tin tức 48
Hình 2.12 Biểu đồ trình tự xóa tin tức 49
Hình 2.13 Biểu đồ trình tự cập nhật tin tức 49
Hình 3.1 Giao diện trang chủ website 55
Hình 3.2 Giao diện đăng nhập website 56
Hình 3.3 Giao diện đăng kí website 56
Hình 3.4 Giao diện danh mục tin tức website 57
Hình 3.5 Giao diện danh mục tin tức website 58
Trang 5DANH MỤC BẢNG
Bảng 1.1 Lịch sử phát triển của ASP NET MVC 14
Bảng 1.2 Bảng so sánh ASP NET WebForm với ASP NET MVC 20
Bảng 2.1 Bảng mô tả dữ liệu 50
Bảng 2.2 Bảng mô tả dữ liệu tin tức 50
Bảng 2.3 Bảng mô tả dữ liệu người dùng 51
Bảng 2.4 Bảng mô tả dữ liệu quản trị viên 51
Bảng 2.5 Bảng mô tả dữ liệu bình luận 51
Bảng 2.6 Bảng mô tả dữ liệu danh mục tin 52
Bảng 2.7 Bảng mô tả dữ liệu thông tin 52
Bảng 2.8 Bảng mô tả dữ liệu liên kết nhanh 52
Bảng 2.9 Bảng mô tả dữ liệu liên kết website 53
Trang 6MỞ ĐẦU
Giới thiệu về website tin tức công nghệ
Chúng ta đang sống trong một thế giới có nền khoa học phát triển rất hiện đại Thế kỷ 21 là thế kỷ của công nghệ thông tin nói chung và của tin học nói riêng Đó
là một trong những thành tựu vĩ đại nhất mà con người đã đạt được trong thiên niên kỷ này Với sự phát triển mạnh mẽ và thay đổi không ngừng về mặt công nghệ, tin học ngày càng đi sâu vào đời sống xã hội Nó thâm nhập vào mọi lĩnh vực của đời sống và được phát huy hiệu quả trong các lĩnh vực đó Tin tức là một trong nhiều lĩnh vực đang được sự quan tâm của mọi người
Tin tức là một trong những nhu cầu không thể thiếu được của con người Trước đây, chúng ta thường tiếp nhận được các tin tức thông qua việc truyền qua lại giữa mọi người hay nghe qua đài, các tờ báo Với sự phát triển mạnh mẽ của công nghệ thông tin và thời gian dành cho tin tức là không nhiều, nhưng vẫn đáp ứng được các nhu cầu về mặt tin tức Chính vì lẽ đó mà các website trên các thiết
bị công nghệ này được người dùng hưởng ứng tích cực
Website tin tức công nghệ được xây dựng với mục tiêu chủ yếu là hỗ trợ người dùng khi có nhu cầu tìm hiểu tin tức công nghệ hay sảm phẩm hoặc dịch vụ công nghệ nổi bật và đang được quan tâm ở trong và ngoài nước Hệ thống hoạt động như sau:
Khi người dùng có nhu cầu xem các tin tức liên quan đến công nghệ thì người dùng có thể chọn các danh mục mình quan tâm hay xem những tin nổi bật
có trong cơ sở dữ liệu của hệ thống
Khi người dùng có nhu cầu tìm kiếm thông tin liên quan đến công nghệ, người dùng vào khu vực tìm kiếm để tìm các tin tức công nghệ có trong cơ sở dữ liệu của hệ thống Trường hợp không tìm thấy thông tin cần thiết trong cơ sở dữ liệu, người dùng có thể gửi yêu cầu tới người quản trị hệ thống
Trang 7 Người quản trị có thể theo dõi quá trình yêu cầu của người dùng, đăng tin tức, quản lý bình luận, thêm, sửa, xóa cơ sở dữ liệu hay toàn quyền với cơ sở dữ liệu của hệ thống.
Đối tượng và phạm vi của ứng dụng
Đối tượng: Website Tin Tức Công Nghệ được xây dựng hướng đến các đối tượng là người dùng có nhu cầu liên quan đến các thông tin tổng hợp về công nghệ
Phạm vi: Website Tin Tức Công Nghệ được xây dựng để hỗ trợ và phục vụ người dùng trong phạm vi trong và ngoài nước xoay quanh các vấn đề liên quan đến tin tức công nghệ tổng hợp
Mục tiêu cần đạt được và cách tiếp cận bài toán
Mục tiêu cần đạt được: Thực hiện đầy đủ các chức năng như tìm kiếm tin tức, đăng kí tài khoản, xem tin tức, bình luận tin tức và gửi đánh giá và phản hồi tới người quản trị website tin tức công nghệ Quản trị hệ thống như đăng kí tài khoản, quản lý tin tức, quản lý bình luận
Các tiếp cận bài toán: Website Tin Tức Công Nghệ không còn xa lạ với người dùng trong và ngoài nước và lợi ích của nó Vì thế nhu cầu xây dựng Website tin tức công nghệ là cần thiết và tất yếu Nhưng khi bắt đầu xây dựng hệ thống, điều đầu tiên cần được quan tâm là tổ chức việc lưu trữ dữ liệu Nếu dữ liệu được tổ chức tốt thì hệ thống của chúng ta sẽ được cải thiện về mọi mặt như tốc độ truy xuất, chi phí lưu trữ, thời gian cập nhật… Như vậy, làm cách nào tổ chức tốt việc lưu trữ dữ liệu, nhất là Website Tin Tức Công Nghệ hoạt động trên môi trường Internet, môi trường đa người dùng
Hướng giải quyết
Sử dụng hệ quản trị cơ sở dữ liệu SQL Server 2014 để tổ chức cơ sở dữ liệu của hệ thống
Sử dụng mô hình MVC trong ASP NET để xây dựng Website Tin Tức Công
Trang 8 Dùng ADO NET Entity Framework là một nền tảng được sử dụng để làm việc với cơ sở dữ liệu thông qua các cơ chế ánh xạ Nhờ đó, có thể truy vấn, thao tác với cơ sở dữ liệu gián tiếp thông qua các đối tượng lập trình
Do thời gian có hạn, trình độ và kinh nghiệm còn hạn chế nên bài thực tập tốt nghiệp không thể tránh khỏi những thiếu sót Kính mong được sự quan tâm chỉ bảo của các thầy cô giáo để bài báo cáo của em được hoàn thiện tốt hơn Em rất mong được tiếp thu những ý kiến đóng góp chân thành, chỉ bảo để em có điều kiện bổ sung, nâng cao kiến thức của mình để phục vụ tốt hơn cho công tác thực tế sau này
Chương 1 CƠ SỞ LÝ THUYẾT
Phát biểu bài toán.
Hiện nay, công nghệ thông tin đang là ngành mũi nhọn của các quốc gia, đặc biệt là các quốc gia đang phát triển để tiến hành công nghiệp hóa hiện đại hóa đất nước Sự bùng nổ thông tin và sự phát triển mạnh mẽ của thời đại công nghệ đặc biệt là các ứng dụng web ngày càng trở nên phổ biến
Sự phát triển nhanh chóng của website đang trở thành các thành phần không thể thiếu trong cuộc sống chúng ta Từ ý tế, cho đến các tổ chức giáo dục… Đặc biệt, các website tin tức đang được người dùng hưởng ứng tích cực
Hiện tại, nguồn tin tức công nghệ đang được sự quan tâm của người dân trong và ngoài nước Các website tin tức công nghệ hiện tại vẫn chưa đáp ứng được các yêu cầu cần thiết của người dùng như: vấn đề về cập nhật tin tức, tải trang còn chậm và địa chỉ chưa được tối ưu… Nhận thấy sự cần thiết của việc đáp ứng các yêu cầu của người dùng, em lựa chọn xây dựng đề tài cho đồ án tốt ngành
Kĩ Thuật Phần Mềm – Khoa Công Nghệ Thông Tin, trường Đại Học Công Nghệ
Trang 9Thông Tin và Truyền Thông với đề tài “Xây Dựng Website Tin Tức Công Nghệ” với công nghệ sử dụng ASP NET MVC.
Tổng quan về MVC.
Giới thiệu tổng quan.
Tất cả bắt đầu vào những năm 70 của thế kỉ 20, tại phòng thí nghiệm Xerox Parc ở Palo Alto Sự ra đời của giao diện đồ họa và lập trình hướng đối tượng cho phép các lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox Parc còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug MVC lần đầu tiên xuất hiện công khai là trong Smalltalk – 80 Các giấy tờ quan trọng được công bố trên MVC là “A Cookbook for Using the Model – View – Controller User Interface Paradigm in Smalltalk - 80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 9 năm 1988
Kiến trúc mô hình MVC.
Trong kiến trúc MVC, một đối tượng đồ họa người dùng bao gồm 3 phần
cơ bản: Model, View, Controller Model có trách nhiệm với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa.View chính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện đồ họa Và Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như những đối tượng khác
Trang 10Hình 1.1 Tổng quan về mô hình MVC
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đối tượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽ thực hiện việc thay đổi Model Khi có bất kì thông điệp nào xẩy ra ở Model, nó sẽ phát thông điệp thông báo cho View và Controller biết Nhân được thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó sẽ luôn là thể hiện trực quan nhất của Model Còn Controller, khi nhận được thông điệp từ Model nó sẽ có những tương tác cần thiết phản hồi lại cho người dùng hoặc các đối tượng khác
Trang 11 Đặc điểm mô hình MVC.
Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho các ứng dụng
dễ bảo trì, module hóa các chức năng và được xây dựng nhanh chóng MVC tách các tác vụ của ứng dụng thành các phần riêng lẻ: Model, View, Controller giúp việc quản lý, xây dựng các ứng dụng nhẹ nhành hơn Dễ dàng thêm các tính năng mới và các tính năng cũ cũng dễ dàng thay đổi MVC cho phép các nhà phát triển
và các nhà thiết kế có thể làm việc đồng thời với nhau MVC cho phép thay đổi trong một phần của ứng dụng mà không ảnh hưởng đến các thành phần khác Sở dĩ như vậy vì kiến trúc MVC đã tách biệt sự phụ thuộc giữa các thành phần trong một đối tượng đồ họa, làm tăng tính năng động và tính tái sử dụng của đối tượng đồ họa đó Một đối tượng đồ họa bây giờ có thể dễ dàng thay đổi giao diện bằng cách thay đổi các thành phần View của nó trong khi cách thức lưu trữ của Model cũng như xử lý của Controller không hề thay đổi Tương tự, ta có thể thay đổi cách thức lưu trữ hoặc cách xử lý của đối tượng đồ họa mà những thành phần còn lại vẫn giữ nguyên
Controller có trách nhiệm chính là điều hướng các yêu cầu của người sử dụng Như vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tới controller Và tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họ đến một tác vụ nào đó trên ứng dụng
Tại các tác vụ này, chúng sẽ thông qua lớp model để làm việc và trả kết quả trở về controller Cuối cùng controller sẽ đẩy dữ liệu thao tác tới view View là thành phần cuối cùng mà người sử dụng nhận được khi họ gửi request tới ứng dụng
Có thể hiểu controller, giống với kỹ thuật đa cấp với các tác vụ chạy ứng dụng phân cấp theo từng nhánh riêng biệt như: Module, action,…
Trang 12Model là thành phần chủ yếu được sử dụng để thao tác xử lý dữ liệu Trong các framework, Model vẫn thường sử dụng theo phương thức Active Record Một trong những design pattern Chúng có tác dụng rút ngắn thời gian viết câu truy vấn cho người sử dụng Biến những câu truy vấn phức tạp trở nên gần gũi và thân thiện với người sử dụng thông qua các thư viện được định nghĩa sẵn.
Model thường sẽ là các phương thức có trách nhiệm xử lý các tác vụ như: select, insert, update, delete các record trong database Ứng với các lấy dữ liệu, model thường sử dụng mảng để gửi trả kết quả về Vì mảng có thể cho phép model lưu trữ nhiều thông tin hơn, nên thường các record khi bóc tách chúng sẽ mang các
dữ liệu của database một cách chi tiết
Khi sử dụng models, ta cũng cần tuân theo nguyên tắc chính của chúng
là không xuất giá trị trực tiếp trong model Mà tất cả những dữ liệu ấy, phải đưa vào mảng và trả về theo phương thức Và tiếp tục ở View ta sẽ sử dụng
nó để lấy dữ liệu ra
View là phần hiển thị thông tin tương phản khi gửi và nhận request Trước đây, khi người lập trình chưa nghĩ tới View Họ thường thao tác xử lý dữ liệu ngay trực tiếp trên ứng dụng và đổ cả dữ liệu ngay trên file đó Điều này làm cho ứng dụng trở nên cồng kềnh, và đặc biệt rất khó cho việc bảo trì nâng cấp sau này Nhất
là đối với designer, việc thay đổi giao diện của một website luôn làm cho họ cảm thấy đau đầu vì phải vọc thẳng vào mã
Trước đây, để giải quyết tình huống này Người ta thường sử dụng template
để phân tách website thành 2 mảng riêng biệt Một là giao diện và một là mã Việc chỉnh sửa giao diện trở nên đơn giản hơn đối với họ so với cách viết thập cẩm kia Tuy nhiên, các thư viện này thực chất sẽ làm cho ứng dụng của chúng ta trở nên chậm chạp hơn bao giờ hết Bởi chúng phải phiên dịch nhiều lần các kịch bản
Trang 13Chẳng hạn: Để dễ thao tác, smarty sẽ dịch ngược các yêu cầu của bạn sang ngôn ngữ của nó Sau đó chúng sẽ chuyển ngôn ngữ đó và thao tác xử lý trên nó.
Việc này sẽ làm ứng dụng chậm chạp, do cứ phải dịch qua, dịch lại một kịch bản Trong khi, với sự kết hợp đơn thuần, ứng dụng của bạn sẽ nhanh và ổn định hơn nhiều
Và view cũng là một phần trong việc nâng cấp những hạn chế ấy Chúng giúp giảm thiểu tối đa quá trình biên dịch nhiều lần Và làm cho ứng dụng trở nên mạnh mẽ và chuyên nghiệp hơn nhiều so với cách lập trình thuần
MVC làm cho ứng dụng trở nên trong sáng, giúp lập trình viên phân tách ứng dụng thành ba lớp một cách rõ ràng Điều này sẽ rất giúp ích cho việc phát triển những ứng dụng xét về mặt lâu dài cho việc bảo trì và nâng cấp hệ thống
MVC hiện đang là mô hình lập trình tiên tiến bậc nhất hiện nay, điều
mà các framework vẫn đang nổ lực để hướng tới sự đơn giản và yếu tố lâu dài cho người sử dụng
Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thông thường Nhưng MVC luôn phải nạp, tải những thư viện đồ sộ để xử lý dữ liệu Chính điều này làm cho mô hình trở nên chậm chạp hơn nhiều so với việc code tay thuần túy MVC đòi hỏi người tiếp cận phải biết qua OOP, có kinh nghiệm tương đối cho việc thiết lập và xây dựng một ứng dụng hoàn chỉnh Sẽ rất khó khăn nếu OOP của người sử dụng còn yếu MVC tận dụng mảng là thành phần chính cho việc truy xuất dữ liệu Nhất là với việc sử dụng active record để viết ứng dụng Chúng luôn cần người viết phải nắm vứng mô hình mảng đa chiều
Chính vì vậy mà kiến trúc MVC đã được ứng dụng vào để xây dựng rất nhiều và thư viện đồ họa khác nhau Tiêu biểu là bộ thư viện đồ họa của ngôn ngữ
Trang 14lập trình hướng đối tượng SmallTalk Các Swing Components của Java cũng được xây dựng dựa trên kiến trúc MVC.
Tổng quan về ASP NET MVC.
ASP NET là một nền tảng ứng dụng web (web application framework) được phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo ra những trang web động, những ứng dụng web và những dịch vụ web Lần đầu tiên được đưa ra thị trường vào tháng 2 năm 2002 cùng với phiên bản 1.0 của NET framework, là công nghệ nối tiếp của Microsoft's Active Server Pages(ASP)
Giới thiệu tổng quan.
Không phải tự nhiên mà web programming framework phổ biến hiện nay kế thừa các nguyên tắc của MVC như Django, Ruby on Rails, CakePHP… Sự thành công của việc kế thừa mẫu lập trình này cuối cùng cũng được Microsoft quyết định đưa vào nguyên tắc sử dụng trong NET Framework và rồi hình thành lên đầu năm 2007
Kiểu mẫu lập trình các ứng dụng nền tảng web này tuy rằng không phải là kiểu lập trình tốt phổ biến hiện nay xong nó có những ưu điểm nhất định và đang được hỗ trợ phát triển của Microsoft
Hãng Microsoft bắt đầu nghiên cứu một mô hình ứng dụng web để giải quyết những bất tiện của ASP, đặc biệt là việc tách riêng biệt phần thể hiện và phần nội dung cũng như cách viết mã rõ ràng hơn
Tương tự trong ASP NET MVC được thiết kế để giải quyết những thiếu sót của ASP NET WebForms truyền thống nhưng lại bằng cách nhấn mạnh sự đơn giản
Trang 15Bảng 1.1 Lịch sử phát triển của ASP NET MVC
.NET đã là một bược nhảy vọt khi lần đầu tiên xuất hiện nhằm thu hẹp khoảng cách giữa phát triển Window Form hướng đối tượng và phát triển web hướng HTML Microsoft đã cố gắng che dấu HTTP và HTML bằng cách dùng mô hình giao diện như một đối tượng điều khiển có cấu trúc hoạt động phía server Mỗi đối tượng điều khiển lưu giữ trạng thái qua yêu cầu
ASP NET MVC cung cấp sự tách biệt rõ ràng giữa các thành phần bất chấp việc sử dụng lại mô hình MVC mặc dù nó không có gì mới Những ứng dụng web luôn cần phải kết hợp một số công nghệ, luôn chia thành nhiều lớp và những mẫu
Trang 16đề ra này đã nảy sinh thành các khái niệm trong MVC ASP NET MVC thực thi một biến thể hiện đại trên MVC mà đặc biệt thích hợp với ứng dụng web.
Đặc điểm của mô hình ASP NET MVC.
ASP NET MVC cũng chia nhỏ ứng dụng ra làm ba phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh hưởng lẫn nhau đó là Models, View
và Controllers
Hình 1.2 Sự tương tác trong một ứng dụng MVC 4.
Trong ASP NET chắc chúng ta sẽ nghĩ ngay đến việc sử dụng các đối tượng như Connection và Command trong namespace System.Data.SQLClient để lấy dữ liệu và truyền vào các server control như GridView hay Repeater trong ASP NET WebForm Theo cách này thông thường chúng ta luôn phải tạo ra các chuỗi
là câu lệnh truy vấn SQL ngay trên mã lập trình hướng đối tượng hoặc các bạn sẽ giảm thiểu việc đó bằng việc gọi các stored Nhưng suy cho cùng đó vẫn là sử dụng các câu lệnh truy vấn trong mã lập trình hướng đối tượng Chính vì thế Microsoft đã tạo ra ngôn ngữ truy vấn LinQ với 2 mô hình LinQ to SQL và Entity Framework là phiên bản cao hơn của LinQ to SQL Hai mô hình này sẽ ánh xạ toàn bộ cơ sở dữ liệu của bạn thành các lớp và đối tượng Ví dụ như một bảng trong cơ sở dữ liệu sẽ được chuyển thành một đối tượng là một tập hợp chứa các đối tượng con chính là các bản ghi trong cơ sở dữ liệu Các đối tượng đó cũng có các thuộc tính mô tả mối quan hệ tương ứng trong cơ sở dữ liệu quan hệ Mọi hành
Trang 17động thêm, sửa, xóa đều có thể thực hiện thông qua các phương thức có sẵn của từng đối tượng tương ứng Điều đó sẽ hỗ trợ rất nhiều cho người lập trình Vậy LinQ là gì?
LinQ - Language-Integrated Query được Microsoft cho ra đời trong phiên bản NET 3.5 LinQ đúng nghĩa là một ngôn ngữ truy vấn được áp dụng trên toàn
bộ các tập hợp dữ liệu từ mảng, cho đến cơ sở dữ liệu quan hệ thậm chí là XML
LinQ được coi là một tính năng tích hợp vào các ngôn ngữ lập trình chính Nó định nghĩa một tập hợp các toán tử truy vấn cho phép kiểm duyệt, lọc và đối chiếu một cách trực tiếp được khai báo trong bất kỳ ngôn ngữ lập trình nào của NET mà không phải gán thành chuỗi giống như câu lệnh truy vấn vẫn hay được dùng
LinQ to SQL là một thành phần, một phiên bản hiện thực hóa của O/RM (Object Relational Mapping) của NET Framework được ra đời trong phiên bản 3.5 dựa trên LinQ tạo ra một cơ sở cho việc quản lý dữ liệu quan hệ bằng đối tượng
Trong LinQ to SQL, mô hình cơ sở dữ liệu quan hệ được ánh xạ thành mô hình các đối tượng được diễn tả trong ngôn ngữ lập trình của người phát triển Khi chạy ứng dụng LinQ to SQL sẽ dịch từ các đối tượng đó các câu truy vấn SQL tích hợp và chuyển chúng tới cơ sở dữ liệu để thực thi sau đó lại chuyển kết quả truy vấn thành đối tượng và gửi trả lại sau bạn có thể làm việc với chúng trên ngôn ngữ lập trình của mình
Một cơ sở dữ liệu được ánh xạ sang LinQ to SQL được chuyển thành một DataContext, các bảng chính là các đối tượng kế thừa từ các lớp Collection là các thuộc tính của đối tượng DataContext Trong đó các bản ghi là các đối tượng thuộc các tập hợp đó Khi muốn thêm, sửa hay xóa bản ghi chúng ta chỉ cần sử dụng các
Trang 18phương thức của các đối tượng tập hợp dữ liệu đó.
Khi đó dữ liệu lập tức được insert vào trong cơ sở dữ liệu Hơn nữa các liên kết khóa ngoài cũng được thể hiện thông qua các thuộc tính của đối tượng cũng là một đối tượng được ánh xạ từ cơ sở dữ liệu
LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure dưới dạng các phương thức của đối tượng datacontext Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong
mô hình dữ liệu của bạn
Trong tháng 7 năm 2008 Microsoft phát hành phiên bản đầu tiên của ADO.NET Entity Framework như là một phần của Visual Studio 2008 Service Pack 1 cũng như các NET Framework 3.5 Service Pack 1 Đồng thời, Microsoft LINQ (Language Integrated Query) và LINQ to SQL đã được chuẩn bị trong một thời gian và đã đạt được rất nhiều sự chú ý Cả Entity Framework và LINQ to SQL cho thấy Microsoft đã rất nghiêm túc về nâng cao năng suất phát triển, bằng cách cung cấp một cơ sở cho việc quản lý dữ liệu quan hệ như các đối tượng và lập trình với một mô hình khái niệm thay vì trực tiếp chống lại một lược đồ lưu trữ
Như đã nói ở trên, Entity Framework được phát triển trên LinQ và kế thừa từ LinQ to SQL nên những gì có ở LinQ to SQL đều có ở Entity Framework Nhưng nó còn mạnh mẽ hơn nhiều trong việc thể hiện các liên kết trong cơ sở dữ liệu quan hệ
Trung tâm của mô hình MVC là Controller mọi xử lý Request và Reponse đều được thực hiện bằng các phương thức của Controller Mọi hành động của người dùng như gõ vào một URL, ấn một nút submit form đều được “lắng nghe”
và xử lý bởi Controller Mọi Response trả về cho người dùng cũng được Controller
xử lý thông qua việc sử dụng các Model để lấy dữ liệu và truyền dữ liệu đó cho
Trang 19View để hiện thị kết quả.
Khởi nguồn của một Controller là interface IController Để một lớp được coi là một Controller lớp đó ít nhất là phải thực thi IController với phương thức Execute (RequestContext requestContext) đồng thời nó phải có hậu tố là Controller và được đặt trong thư mục Controllers
Nhưng để cung cấp đầy đủ cơ sở để Routing Engine làm việc và chọn ra Controller nào Action nào để xử lỷ Request việc thực thi Response Đầu tiên việc truyền dữ liệu cho View được thể hiện ở lớp trừu tượng ControllerBase là lớp thực thi ở mức trên cùng của IController với 2 thuộc tính TempData và ViewData dùng
để truyền dữ liệu nhận được từ Model cho View Nhưng lớp trừu tượng này mới chỉ cung cấp việc truyền dữ liệu mà chưa cung cấp khả năng thay đổi Action thông qua việc gọi các phương thức của đối tượng Controller Và vì thế lớp Controller là lớp thực thi IController ở mức thứ 2 nó được kế thừa từ lớp ControllerBase và một
số các lớp khác Đồng thời nó được bổ sung các thuộc tính như Response, Request, Session quen thuộc giúp người lập trình dễ dàng sử lý các dữ liệu liên quan ngay trong thân phương thức action của nó
Ấn tượng đầu tiên đến với người dùng từ ứng dụng của bạn chính là các View Trong khi Model hay Controller của bạn có được thiết kế hay và mạnh mẽ đến đâu Với một View xấu xí và khó sử dụng nhiều người dùng sẽ không cho bạn thời gian để chứng minh ứng dụng của mình mạnh mẽ hay giàu tính năng như thế nào Với View trong ASP NET bạn hoàn toàn có thể tạo ra một View rất linh động từ dữ liệu, các thành phần trên trang web, stylesheet và javascript thông qua các thuộc tính xuyên suốt từ Controller cho tới View như ViewData, ViewModel
và HTML helper
Nhiệm vụ của View là cung cấp giao diện người dùng tới người sử dụng Chúng được liên kết tới các Model và những Model đó sang mã HTML hoặc định
Trang 20dạng nhất định để gửi tới người dùng Trong ASP NET nó có thể là các đối tượng hoặc tập hợp các Entity, một hay nhiều ViewDataDictionary là tập hợp các dữ liệu ngoài dữ liệu từ Entity (được gán và truy cập thông qua thuộc tính ViewData của Controller và View) Những Model này được gửi tới View qua Controller.
Việc tạo ra một View có 2 cách:
Tạo trực tiếp trên thư mục Views
Tạo thông qua tên phương thức Action
Như ta đã biết một Controller được kế thừa từ lớp trừu tượng ControllerBase lớp này cung cấp một thuộc tính giúp chúng ta có thể trao đổi dữ liệu tới View từ Action của Controller đó là ViewData
ViewData là đối tượng của lớp ViewDataDictionary thực thi interface Với thuộc tính này chúng ta hoàn toàn có thể gán mọi dữ liệu từ kiểu nguyên thủy cho tới kiểu đối tượng, collection thông qua từ khóa Và khi muốn hiển thị thông báo ở View chúng ta cũng sử dụng thuộc tính ViewData của View lấy dữ liệu với cùng một từ khóa
Một đặc điểm nổi bật nữa của ASP NET MVC Framework là nó hỗ trợ bạn ngay cả trong mã HMTL Hỗ trợ quá nhiều không hẳn là tốt nhưng điều đó lại tùy vào người phát triển Với HTML helper, bạn sẽ có đủ các phương thức để tạo ra các thành phần của HTML: textbox, checkbox, radio và cả validation
So sánh giữa ASP NET MVC và ASP NET.
ASP NET WebForm sử dụng ViewState để quản lý, các trang ASP NET đều có lifecycle, postback và dùng các web controls, các event để thực hiện các hành động cho UI (User Interface) khi có sự tương tác với người dùng nên hầu hết
Trang 21ASP NET WebForm xử lý chậm.
ASP NET MVC chia ra làm 3 phần: Models, View, Controller Mọi tương tác của người dùng với Views sẽ được thực hiện hành động trong Controllers, không còn postback, lifecycel và events
Việc kiểm tra (test), gỡ lỗi (debug) với ASP NET WebForm đều phải chạy tất cả các tiến trình của ASP NET, và sự thay đổi ID của bất kỳ Controls nào cũng ảnh hưởng đến ứng dụng như thế sẽ làm cho ứng dụng chạy nhiều tác vụ cùng lúc
và dẫn đến việc tốn kém dữ liệu và tốc độ tải các trang không được tối ưu Nhưng đối với ASP NET MVC thì việc kiểm tra, gỡ lỗi có thể sử dụng các unit test có thể thẩm định rất dễ dàng các Controllers thực hiện như thế nào
Sau đây là bảng so sánh các tính năng của ASP NET WebForm với ASP NET
Kiến trúc chương trình Kiến trúc mô hình
WebFormBussiness -> Database
Kiến trúc sự dụng việc phân chia chương trình thành: Model, Views, Controllers
Cú pháp chương trình Sử dụng cú pháp của
WebForm, tất cả các sự kiện và controls do server quản lý
Các sự kiện được điều khiển bởi controllers, các controls không do server quản lý
Truy cập dữ liệu Sử dụng hầu hết các công
nghệ truy cập dữ liệu trong ứng dụng
Phần lớn dùng LINQ và các lớp SQL để tạo mô hình truy cập đối tượng
Trang 22Debug Debug phải thực hiện tất
cả bao gồm các lớp truy cập dữ liệu, sự hiển thị, điều khiển các controls
Debug có thể sử dụng các unit test để kiểm tra các phương pháp trong controllers
Tốc độ phân tải Tốc độ phân tải chậm khi
trong trang có quá nhiều các controls vì Viewstate quá lớn
Phân tải trang nhanh hơn
do không phải quản lý Viewstate để quản lý các controls trong trang
URL address Cấu trúc địa chỉ URL có
dạng: <tên>.aspx?&<các tham số>
Cấu trúc đỉa chỉ rành mạch theo dạng:
Controller/Action/ID
Bảng 1.2 Bảng so sánh ASP NET WebForm với ASP NET MVC
Bảo mật trong ASP NET MVC.
Bảo mật vốn là chủ đề cực kỳ phức tạp và bảo mật trong ASP NET MVC cũng không phải ngoại lệ Sự quan trọng của bảo mật không lời nào nói hết Nếu không đầu tư thời gian cũng như tài nguyên thích đáng cho nhiệm vụ này có thể dẫn tới những kết quả không mong muốn như thất thoát dữ liệu, sai hỏng trong thực thi ứng dụng hoặc ứng dụng bị chiếm quyền điều khiển và giảm doanh thu lợi nhuận của doanh nghiệp, làm cho doanh nghiệp bị mất uy tín với khách hàng Xem xét vấn đề bảo mật ngay từ khi bắt đầu xây dựng ứng dụng cũng là điều hết sức quan trọng
Đảm bảo an toàn trong truy cập ứng dụng hay truy cập tài nguyên thuộc ứng dụng tập trung vào hai quá trình: thẩm định (authentication) và cấp phép (authorization) Chúng ta sẽ quan tâm tới ba phương thức thẩm định mà bộ thực thi ASP NET cung cấp: Windows, Form và Passport Còn với cấp phép, chúng ta sẽ
Trang 23thảo luận chủ yếu về hai cơ chế: sử dụng đường dẫn URL và sử dụng danh sách điều khiển truy cập ACL.
Thẩm định (authentication) là quá trình nhận dạng người hay chương trình đưa ra yêu cầu Nó không gán quyền truy cập tài nguyên mà kiểm tra định danh đã biết để đưa ra quyết định xem liệu có chấp nhận yêu cầu này hay không Nói một cách đơn giản, thẩm định trả lời cho câu hỏi: “Bạn là ai?”
Trong ứng dụng ASP cổ điển, có hai phương thức thẩm định chính: một là dựa trên IIS để thẩm định người dùng theo tài khoản Windows, sau đó sử dụng các danh sách điều khiển truy cập, hai là đưa ra kiểu thẩm định riêng, so sánh để khớp với thông tin thẩm định người dùng lưu trữ trên máy chủ Mỗi phương thức đều có những điểm hạn chế riêng Mô hình an toàn nhất của thẩm định Windows, Intergrated Security, đòi hỏi tất cả người dùng phải sử dụng Internet Explorer và không làm việc với quá nhiều proxy server Còn phương thức thẩm định riêng đòi hỏi phải tự xây dựng và kiểm tra một lượng lớn công việc
ASP NET cung cấp ba cơ chế thẩm định: thẩm định Windows, thẩm định Forms và thẩm định Passport
Thẩm định Windows cung cấp tính năng tương tự như thẩm định IIS trong ASP cổ điển, tuy nhiên cũng có một số điểm khác nhau quan trọng Thẩm định Windows làm việc cùng với thẩm định tích hợp sẵn trong IIS và dùng định danh
do thẩm định IIS cung cấp để thực hiện quá trình thẩm định Thẩm định IIS sử dụng thông tin tài khoản người dùng lưu trữ trên server cục bộ hoặc Domain Controller và đưa nhận dạng người dùng vào bộ thực thi ASP NET để dùng cho quá trình thẩm định Lý do chính để chọn thẩm định Windows là bởi nó cần lượng
mã triển khai thấp nhất Trong ba cơ chế thẩm định ASP NET cung cấp, chỉ có thẩm định Windows đòi hỏi phải cấu hình IIS cho các thiết lập thẩm định trong file machine.config hoặc web.config Giống như thẩm định IIS trong ASP, thẩm định
Trang 24Windows chủ yếu được dùng trong các trường hợp:
Tất cả client đều dùng Internet Explorer 4.0 hoặc cao hơn và không có quá nhiều proxy server, chủ yếu phổ biến ở các mạng Intranet, không mấy khi gặp trong các ứng dụng Internet
Yêu cầu bảo mật trong ứng dụng ở mức thấp, chỉ đòi hỏi thẩm định IIS Basic hoặc Digest (cả hai đều có hạn chế là kém an toàn hơn so với bảo mật hợp nhất)
Yêu cầu bảo mật không cho phép người dùng nặc danh truy cập toàn bộ ứng dụng.Thẩm định Windows chủ yếu được dùng cùng với impersonation (tức một ngữ cảnh bảo mật cụ thể) Chúng ta có thể giới hạn quyền truy cập tài nguyên bằng cách dùng danh sách điều khiển truy cập NTFS (NTFS ACL) hoặc gán quyền truy cập cơ sở dữ liệu cho từng tài khoản Windows của người dùng khi đăng nhập vào
cơ sở dữ liệu
Thẩm định Windows hoạt động theo nguyên tắc sử dụng ngữ cảnh bảo mật của người dùng lấy ra từ IIS Bước đầu tiên trong cấu hình một ứng dụng để sử dụng thẩm định Windows là phải thay đổi các thiết lập cấu hình IIS để nó đáp ứng được một trong các phương thức thẩm định không nặc danh Có ba mức độ trong thẩm định Windows là Basic, Digest và Integrated Trong đó thẩm định Windows Basic là mức cơ bản nhất Nó cho phép sử dụng các tài khoản Windows ở nhiều trường hợp hơn nhưng thông tin username, password được gửi đi dưới dạng văn bản thuần tuý Đây là điểm cực kỳ nguy hiểm, nhất là khi ứng dụng không dùng cơ chế mã hoá Secure Sockets Layer (SSL) để bảo vệ các hoạt động truyền thông Chọn mức Basic thường có nhiều rủi ro hơn so với các mức khác
Thẩm định Forms được đánh giá là phương thức hữu ích nhất trong ba
Trang 25phương thức ASP NET cung cấp Nó cung cấp một cơ sở hạ tầng rất linh hoạt cho các ngữ cảnh bảo mật từ người dùng định nghĩa Khi một ứng dụng được cấu hình
để dùng thẩm định Forms, các yêu cầu về tài nguyên được bảo vệ sẽ được chuyển tới một trang đăng nhập cụ thể, ngoại trừ yêu cầu có gắn kèm mã thông báo thẩm định nằm trong một cookie Trong trang đăng nhập, trình phát triển website sẽ viết
mã kiểm tra thông tin thẩm định do người dùng nhập vào xem có khớp với thông tin sao lưu ở vùng lưu trữ trên máy chủ hay không Vùng lưu trữ này có thể là một
cơ sở dữ liệu quan hệ như SQL Sever, một file XML, Microsoft Active Directory hoặc bất kỳ nơi lưu trữ nào khác do chúng ta chọn Nếu thông tin người dùng gửi
đi khớp với thông tin lưu trữ trên server, trình thực thi sẽ gọi phương thức RedirectFromLoginPage của lớp trợ giúp FormsAuthentication để gửi trở lại cho người dùng trang web họ yêu cầu kèm theo một cookie nhất thời hoặc một cookie lâu dài có chứa mã thông báo thẩm định trên máy người dùng Khi người dùng đã được thẩm định, họ được quyền truy cập tới các vùng khác trên ứng dụng đó mà không cần đăng nhập lại
Thẩm định Passport cho phép một người dùng có một mật khẩu duy nhất trong khi có thể đăng nhập (địa chỉ e-mail được gắn với tài khoản Passport của họ) vào nhiều ứng dụng hay website Điều này giúp đơn giản quá trình đăng nhập của người dùng và giảm bớt công việc quản trị khi bảo trì tài khoản người dùng Để sử dụng được thẩm định Passport trong ASP NET chúng ta phải download và cài đặt Passport SDK Sau khi cài đặt Passport SDK, chúng ta cần cấu hình theo cấu trúc tương ứng Cuối cùng là cấu hình ứng dụng ASP NET
để sử dụng thẩm định Passport
Ngoài các cơ chế thẩm định, trong ASP NET còn cung cấp quá trình cấp phép nhằm tăng tính bảo mật của các ứng dụng ASP NET Cấp phép là quá trình xác định xem liệu người dùng đã được nhận dạng trong quá trình thẩm định có được phép truy cập tài nguyên họ đang yêu cầu không hay phải thực hiện thêm
Trang 26hành động nào khác (ví dụ như update dữ liệu cho cơ sở dữ liệu rồi mới được truy cập) Quá trình thẩm định trả lời cho câu hỏi: “Bạn là ai?” còn quá trình cấp phép trả lời cho câu hỏi: “Bạn có được phép làm điều đó hay không?” Cấp phép trong ASP NET có ba hình thức: cấp phép sử dụng danh sách điều khiển truy cập (ACL), cấp phép sử dụng đường dẫn URL và cấp phép programmatic.
Danh sách điều khiển truy cập (ACL) được dùng trong Windows NT, Windows 2000, Windows XP và Windows Sever 2003 để kiểm soát truy cập tài nguyên hệ thống như các tệp, thư mục trong hệ thống file NTFS Bạn có thể gán một số tài nguyên nhất định vào ACL cho tài khoản người dùng hoặc một nhóm người dùng Windows để cho phép họ truy cập tài nguyên hoặc xác định kiểu truy cập (đọc, ghi, thay đổi…) được phép dùng Thẩm định ACL được dùng với thẩm định Windows trong ASP NET IIS sử dụng nhận dạng người dùng đã qua thẩm định để thực hiện các kiểm tra ACL và cũng có thể đưa ra các yêu cầu về tài nguyên được bảo vệ bởi ACL Bằng cách dùng ngữ cảnh bảo mật của người dùng, nếu impersonation được cho phép Để bảo vệ một file dùng ACL, kích phải chuột lên file trong Windows Explorer và chọn Properties Tiếp theo, bấm chọn thẻ Security để xem người dùng, nhóm người dùng và đặc quyền hiện thời có trên file
Sử dụng các nút Add và Remove để thêm hoặc bớt tài khoản người dùng, nhóm người dùng và đánh dấu hoặc bỏ dấu ở các ô trong phần Permissions để thay đổi đặc quyền cho người dùng Một trong những việc cần làm đầu tiên trong là loại bỏ nhóm everyone ra khỏi thư mục, do nhóm này cho phép bất kỳ ai truy cập máy tính cũng có thể truy cập file này Khi loại bỏ một số tài khoản đặc biệt (như SYSTEM) khỏi các danh sách ACL chúng ta cần thận trọng Một số file hệ điều hành đòi hỏi phải có tài khoản SYSTEM mới được phép truy cập để thực hiện các chức năng của hệ điều hành Vì thế loại bỏ những đặc quyền này có thể là nguyên nhân gây ra nhiều vấn đề nghiêm trọng Thậm chí dẫn đến không khởi động được hệ điều hành
Chế độ cấp phép URL sử dụng các yếu tố <allow> và <deny> của phần tử
Trang 27cấu hình <authorization> để kiểm soát truy cập file, thư mục bên trong ứng dụng, giống như trong ví dụ ở thẩm định Forms Truy cập có thể được cho phép hoặc bị
từ chối dựa trên tên người dùng (username), vai trò (role) và phương thức HTTP dùng để yêu cầu tài nguyên Do đó, lấy ví dụ, nếu cho phép người dùng Marcie truy cập tất cả tài nguyên trong ứng dụng theo tất cả phương thức yêu cầu của HTTP, nhưng cấm người dùng Charles thực hiện yêu cầu POST, chúng ta sẽ phải thêm phần <authentication> vào sau file web.config ở mức gốc của ứng dụng (hoặc có thể thêm phần <authentication>vào file web.config trong một thư mục con để ghi đè hoặc thêm các thiết lập)
Chúng ta có thể thực hiện các kiểm tra programmatic tại thời gian chạy bằng cách xác định xem liệu người dùng có được phép thực hiện một hành động nào đó hay không Công cụ chủ yếu để thực hiện điều này là phương thức IsInRole, được định nghĩa bởi giao diện Iprincipal và có thể truy cập từ thuộc tính User của lớp Page Cũng như với cấp phép ACL, phương thức này hữu ích nhất khi dùng với cơ chế thẩm định Windows và khi muốn kiểm tra xem liệu liệu người dùng đã qua thẩm định thuộc nhóm Windows nào, như nhóm manager (quản lý) chẳng hạn
Tổng quan về Microsoft SQL Server.
Microsoft SQL Server 2014, nền tảng đầy đủ thông tin mới nhất từ Microsoft, là hiện thân của kỷ nguyên mới của Microsoft, cung cấp cho các tổ chức và khách hàng với một phù hợp nền tảng cho cơ sở hạ tầng, các ứng dụng và
dữ liệu mà trung tâm dữ liệu khách hàng, lưu trữ dữ liệu trung tâm cung cấp dịch
vụ và các điện toán đám mây công cộng của Microsoft SQL Server 2014 cũng cung cấp các tổ chức cơ hội để bảo vệ hiệu quả, mở khóa và quy mô dữ liệu của họ trên máy tính để bàn, các thiết bị di động, các trung tâm dữ liệu, công cộng hoặc điện toán đám mây Hơn nữa, SQL Server 2014 xây dựng trên sự thành công của
Trang 28SQL Server 2012 bằng cách làm cho một tác động mạnh mẽ vào các tổ chức trên toàn thế giới với khả năng mới đáng kể mà phù hợp với xu hướng chuyển đổi ngành công nghiệp công nghệ thông tin, bao gồm cả hệ điều hành đám mây của Microsoft SQL server cung cấp hiệu năng nhiệm vụ quan trọng cho các ứng dụng
cơ sở dữ liệu đòi hỏi khắt khe nhất trong khi cung cấp các hình thức bảo mật cao nhất, khả năng mở rộng, tính sẵn sàng cao và hỗ trợ SQL Server 2014 nhiệm vụ là cung cấp những hiểu biết nhanh hơn vào dữ liệu lớn, các dữ liệu nhỏ, quan trọng nhất cung cấp thông tin kinh doanh qua các công cụ quen thuộc như Microsoft Excel Cuối cùng, SQL Server 2014 cho phép các giải pháp độc đáo điện toán đám mây Những tính năng mới, khả năng, và phiên bản của SQL Server 2014 từ góc nhìn của một người quản trị cơ sở dữ liệu Nó cũng mô tả các yêu cầu phần cứng
và phần mềm và các chiến lược cài đặt
SQL Server 2014 cải tiến cho các quản trị viên cơ sở dữ liệu Các tổ chức ngày nay đang tìm kiếm một nền tảng cơ sở dữ liệu đáng tin cậy chi phí, hiệu quả
và khả năng mở rộng mà cung cấp sự tự tin cho nhiệm vụ quan trọng, những hiểu biết mang tính đột phá và các dịch vụ dựa trên đám mây linh hoạt Các tổ chức này thường xuyên phải đối mặt với thay đổi điều kiện kinh doanh trong nền kinh tế toàn cầu và nhiều thách thức để cạnh tranh, chẳng hạn như có được những hiểu biết kinh doanh có giá trị, quyền sử dụng các thông tin vào đúng thời điểm và làm việc thành công trong vòng ràng buộc ngân sách
Ngoài ra, các tổ chức phải được đáp ứng xu hướng mới và quan trọng thường xuyên thay đổi phần mềm cách được phát triển và triển khai Một số trong những xu hướng tập trung vào cơ sở dữ liệu trong bộ nhớ mà có thể cải thiện hiệu suất và hiệu quả, một khả năng mà có nhiều khả năng bị ảnh hưởng bởi sự sụt giảm đáng kể chi phí của bộ nhớ Một xu hướng quan trọng là việc áp dụng điện toán đám mây máy tính của khách hàng yêu cầu một cơ sở hạ tầng cung cấp một bước nhảy vọt trong sự nhanh nhẹn, độ đàn hồi và khả năng mở rộng trên một tập
Trang 29hợp các tài nguyên chia sẻ với tự động hóa hơn các dịch vụ điện toán đám mây và
tự phục vụ trích lập dự phòng
Cuối cùng nhưng không kém là xu hướng dữ liệu, thảo luận về nơi lưu trữ công suất tự nhiên liên quan đến việc zettabyte Khách hàng muốn đạt được những hiểu biết mới về các doanh nghiệp nhanh hơn, vì vậy họ đang phân tích dữ liệu lớn hơn, cả bên trong và bên ngoài Những hiểu biết mới đang giúp khách hàng có được một lợi thế cạnh tranh, nhưng họ cũng đang dẫn đầu với khối lượng lớn dữ liệu Microsoft đã đầu tư lớn trong SQL Server 2014 Các tính năng mới và khả năng cần quản trị cơ sở dữ liệu, trong đó có sẵn, sao lưu và phục hồi, khả năng mở rộng, hiệu suất, an ninh, quản lý, lập trình và nền tảng cho các điện toán đám mây Một số lớn các cải tiến có tính sẵn sàng cao được thêm vào SQL Server 2012, trong đó tăng cả sự tự tin rằng các tổ chức có trong cơ sở dữ liệu của họ và thời gian hoạt động tối đa cho những cơ sở dữ liệu Microsoft xây dựng trên tác phẩm này với những cải tiến có tính sẵn sàng cao mới trong SQL Server năm 2014
Trong SQL Server 2012, AlwaysOn Availability Groups là tính năng rất được mong đợi nhất liên quan đến công cụ cơ sở dữ liệu Khả năng sẵn sàng cao Cải tiến trong SQL Server 2014 đã đưa ra cơ sở dữ liệu tốt hơn dữ liệu dự phòng, bảo vệ và sẵn có Thứ nhất, số lượng tối đa các bản sao thứ cấp đã tăng lên Sự thay đổi này cho phép các tổ chức để giảm tải tiếp tục chỉ đọc các hoạt động như báo cáo và sao lưu vào bản sao thứ cấp bổ sung Các bản sao thứ cấp bổ sung cũng
có thể được đặt trong nhiều các trung tâm dữ liệu cho các cấp cao hơn của bảo vệ
và khôi phục thảm họa SQL Server 2014 phiên bản cải tiến và năm bản sao thứ cấp đã được tăng cường và có thể được sử dụng cho các hoạt động chỉ đọc ngay cả trong trường hợp sự cố mạng hoặc mất dữ liệu giữa bản sao Thứ hai, cho dù một
số tự động chuyển đổi dự phòng được thực hiện, hoạt động không còn nhu cầu không qua cơ sở dữ liệu cùng một lúc
Trang 30Nhiều cơ sở dữ liệu bây giờ có thể không qua đồng thời, làm tăng tính sẵn sàng Cuối cùng, SQL Server 2014 giới thiệu các Add Azure Replica wizard cho các tổ chức đang tạo ra một bản sao thứ được lưu trữ trong Windows Azure, đám mây công cộng của Microsoft Đặt một bản sao thứ trong Windows Azure là một cách tuyệt vời cho một tổ chức để đạt được thêm bảo vệ phục hồi thảm họa trong trường hợp không chắc rằng tất cả các trung tâm dữ liệu lưu trữ bản sao thứ cấp của nó trở thành không có
Một tổ chức toàn cầu sử dụng Groups Availability AlwaysOn, bao gồm cả Windows Azure Cuối cùng, quan điểm quản lý năng động mới được giới thiệu trong SQL Server 2014 giúp các quản trị viên khắc phục sự cố và trả về thông tin liên quan đến FCIs Sao lưu và khôi phục cải tiến
Những cải tiến mới bao gồm:
SQL Server quản lý sao lưu cho Windows Azure sao lưu trong SQL Server 2014 nguyên bản hỗ trợ các dịch vụ lưu trữ Windows Azure để đơn giản hóa sao lưu vào đám mây Hybridcloud backup giảm chi phí vốn (CAPEX) và chi phí hoạt động (OPEX) và cải thiện phục hồi thảm họa cho các bản sao lưu của một
tổ chức vì các bản sao lưu được lưu trữ trong Windows Azure đám mây sẽ được tự động tạo bản sao cho nhiều trung tâm dữ liệu trên toàn thế giới Quá trình khai thác nâng cao mới này khá đơn giản
SQL Server sao lưu vào URL SQL Server sao lưu đã được cập nhật để sử dụng các URL như một trong những lựa chọn điểm đến khi sao lưu được thực hiện với SQL Server Management Studio
SQL Server 2014 cho phép mã hóa toàn bộ cơ sở dữ liệu, các file dữ liệu và file bản ghi mà không cần thay đổi ứng dụng Một số lợi ích của mã hóa dữ liệu trong suốt cho phép tìm kiếm dữ liệu đã mã hóa bằng cả tìm kiếm phạm vi và tìm
Trang 31kiếm thô, tìm kiếm dữ liệu bảo mật từ những người dùng không có thẩm quyền và
sự mã hóa dữ liệu Tất cả có thể được mã hóa mà không cần thay đổi các ứng dụng đang tồn tại
SQL Server 2014 cung cấp một giải pháp toàn diện cho việc mã hóa và quản lý khóa Sự mã hóa cho phép đáp ứng được nhu cầu của các tổ chức trong việc thi hành những chính sách và sử dụng dữ liệu riêng tư SQL Server 2014 mang đến một giải pháp tuyệt vời với những nhu cầu ngày càng tăng này bằng việc
hỗ trợ các sản phẩm modul bảo mật phần cứng (HSM) và quản lý khóa của nhóm thứ ba
Với việc mở rộng, SQL Server 2014 hỗ trợ cho việc bổ sung thêm tài nguyên bộ nhớ trực tuyến, Hot Add CPU cho phép một cơ sở dữ liệu có thể được mở rộng theo nhu cầu Trong thực tế, tài nguyên CPU có thể được bổ sung vào SQL Server 2014 trên các nền tảng phần cứng được hỗ trợ mà không phải dừng ứng dụng
Truy cập tức thời đến các thông tin xác đáng cho người dùng để trả lời các câu hỏi phức tạp nhất với tốc độ của tư duy là một trong hai ưu điểm của Online Analytical Processing (OLAP) SQL Server 2014 xây dựng trên sự hỗ trợ mạnh mẽ của OLAP trong SQL Server 2005 bằng việc mang đến số lần truy vấn nhanh hơn và tốc độ refresh dữ liệu cũng nhanh hơn Sự khởi động này cho phép các tổ chức có thể thực hiện các phân tích phức tạp với một số lượng lớn kích cỡ và tập hợp SQL Server Analysis Services mang đến những tiến bộ trong phân tích như giới thiệu dưới đây SQL Server 2008 có thể tiến hành với các phân tích rộng hơn trong đó vẫn cho phép có những khả năng phân tích nâng cao và các tính toán phức tạp hơn Các công cụ thiết kế lũy thừa 3 mới có thể giúp người dùng phát triển cơ sở hạ tầng phân tích một cách liên tục, cho phép họ xây dựng các giải pháp thực thi tối ưu
Trang 32Các tổ chức tiếp tục đầu tư vào BI và các giải pháp lưu trữ dữ liệu để có thể nhận được giá trị từ dữ liệu của họ SQL Server 2008 cung cấp một nền tảng lưu trữ dữ liệu có khả năng mở rộng và toàn diện cho phép các tổ chức tích hợp dữ liệu bên trong kho lưu trữ dữ liệu nhanh hơn, có thể mở rộng/quản lý các ấn bản dữ liệu và người dùng đang gia tăng, trong đó vẫn phân phối được thông tin đến được tất cả mọi người Dưới đây là một số những nâng cao trong việc lưu trữ dữ liệu Các ấn bản dữ liệu trong kho lưu trữ liên tục tăng trong các hệ thống SQL Server 2008 cho phép các tổ chức có thể lưu hiệu quả hơn với việc nén dữ liệu, cho phép cải thiện hiệu suất bằng giảm thiểu luồng dữ liệu vào/ra Việc giữ các backup trực tuyến dựa trên đĩa rất đắt và tốn nhiều thời gian Với nén backup của SQL Server 2008, bạn sẽ giảm được lưu trữ cần thiết trong việc giữ các backup trực tuyến và backup có thể chạy nhanh hơn vì giảm được lượng dữ liệu vào/ra cần thiết.
Các partition cho phép các tổ chức có thể quản lý bảng dữ liệu lớn một cách hiệu quả bằng cách chia trong suốt chúng vào các khối dữ liệu có thể quản lý SQL Server 2014 xây dựng trên những nâng cao vấn đề phân chia của SQL Server 2005 trong việc cải thiện thực thi trên các bảng chia lớn
SQL Server 2014 cho phép các tổ chức có thể cung cấp sự đáp trả nhất quán
và có thể dự báo đối với người dùng qua sự giới thiệu về tài nguyên chủ (Resource Governor) Tài nguyên chủ cho phép các tổ chức định nghĩa giới hạn tài nguyên và những ưu tiên cho các luồng công việc khác nhau, cho phép các luồng công việc đang thực hiện tại cùng thời điểm có thể cung cấp thực thi nhất quán
GROUPING SETS là một mở rộng đối với mệnh đề GROUP BY, mệnh đề cho phép người dùng định nghĩa nhiều nhóm trong cùng một truy vấn GROUPING SETS cho một tập các kết quả tương đương với UNION ALL cho các hàng khác nhau được nhóm, tạo truy vấn khối và báo cáo dễ dàng và nhanh
Trang 33hơn
Với sự thay đổi capture dữ liệu, các thay đổi được capture và đặt trong các bảng Nó capture toàn bộ nội dung thay đổi và duy trì kiên định, thậm chí làm việc với những thay đổi giản đồ Điều này cho phép các tổ chức có thể tích hợp các thông tin mới nhất vào kho chứa dữ liệu Giới thiệu lệnh MERGE SQL Server, các chuyên gia phát triển có thể quản lý hiệu quả hơn các kịch bản lưu trữ dữ liệu chung giống như việc kiểm tra xem một hàng nào đó có tồn tại không, sau đó thực thi nhiệm vụ chèn hoặc nâng cấp
Các chuyên gia phát triển có thể quản lý hiệu quả hơn các kịch bản lưu trữ dữ liệu chung giống như việc kiểm tra xem một hàng nào đó có tồn tại không, sau đó thực thi nhiệm vụ chèn hoặc nâng cấp Hai cải thiện chính trong khả năng mở rộng các dịch vụ tích hợp:
Những cải thiện của kênh cung cấp các dịch vụ tích hợp SQL Server: các gói tích hợp dữ liệu có thể mở rộng hiệu quả, tạo khả năng có sẵn của tài nguyên và quản lý các luồng công việc với khả năng mở rộng lớn nhất có thể đối với doanh nghiệp Thiết kế mới cải thiện khả năng mở rộng cho runtime đối với nhiều bộ vi xử lý
Tra cứu liên tục SQL Server: sự cần thiết để thực hiện tra cứu là một trong những công việc chung nhất như trích rút, biến đổi và nạp các hoạt động (ETL) Vấn đề này rất phổ biến trong việc lưu trữ giữ liệu, nơi các bản ghi phải sử dụng tra cứu để biến đổi khóa doanh nghiệp thành các thành phần thay thế tương ứng của chúng SSIS cho phép tăng hiệu suất của tra cứu để có thể hỗ trợ được các bảng lớn nhất
Windows Server 2012 R2 cung cấp một lượng lớn tài nguyên máy tính để cung cấp quy mô lớn cho các doanh nghiêp hay các cá nhân.Ngoài ra, các cơ sở dữ
Trang 34liệu missioncritical không chỉ trong một môi trường vật chất mà còn trong một môi trường ảo.
Tổng quan về Entity Framework.
Entity Framework là một tập hợp các công nghệ trong ADO.NET hỗ trợ sự phát triển của các ứng dụng phần mềm định hướng dữ liệu Kiến trúc sư và các nhà phát triển của các ứng dụng dữ liệu theo định hướng đã thường phải vật lộn với sự cần thiết để đạt được hai mục tiêu rất khác nhau Họ phải mô hình thực thể, mối quan hệ và logic của vấn đề kinh doanh mà họ đang giải quyết, và họ cũng phải làm việc với các công cụ dữ liệu dùng để lưu trữ và truy xuất dữ liệu Các dữ liệu
có thể kéo dài nhiều hệ thống lưu trữ, mỗi giao thức riêng của mình; thậm chí các ứng dụng làm việc với một hệ thống lưu trữ duy nhất phải cân bằng các yêu cầu của hệ thống lưu trữ so với yêu cầu của việc viết mã ứng dụng hiệu quả và duy trì
Phiên bản đầu tiên của Entity Framework đã được bao gồm với NET Framework 3.5 Service Pack 1 và Visual Studio 2008 Service Pack 1, phát hành vào ngày 11 tháng 8 năm 2008 Phiên bản này đã bị chỉ trích, thậm chí còn thu hút một 'bỏ phiếu bất tín nhiệm có chữ ký của khoảng một ngàn nhà phát triển
Phiên bản thứ hai của Entity Framework, tên Entity Framework 4.0, được phát hành như là một phần của NET 4.0 vào ngày 12 tháng 4 năm 2010 và giải quyết được nhiều lời phê bình làm bằng phiên bản 1
Một phiên bản thứ ba của Entity Framework, phiên bản 4.1, được phát hành vào ngày 12 Tháng Tư năm 2011 Một làm mới của phiên bản 4.1, được đặt tên Entity Framework 4.1 Cập nhật 1, được phát hành vào ngày 25 tháng 7 năm
2011 Nó bao gồm các bản vá lỗi và các loại hỗ trợ mới Phiên bản 4.3.1 được phát hành vào ngày 29 tháng 2 năm 2012 Có một số thông tin cập nhật, như hỗ trợ cho việc di chuyển
Trang 35Phiên bản 5.0.0 được phát hành vào ngày 11 tháng 8 năm 2012 và là mục tiêu của NET framework 4.5 Ngoài ra, phiên bản này có sẵn cho Net framework
4, nhưng không có bất kỳ lợi thế thời gian chạy trên phiên bản 4
Phiên bản 6.0 được phát hành vào ngày 17 tháng 10 năm 2013 và bây giờ là một dự án mã nguồn mở được cấp phép theo Giấy phép Apache v2 Giống như ASP NET MVC , mã nguồn của nó được lưu trữ tại CodePlex sử dụng Git Phiên bản này có một số cải tiến cho mã đầu tiên hỗ trợ
Phiên bản 7 hiện đang được xây dựng như một phần của nỗ lực của Microsoft để hiện đại hóa, componentize và mang NET nền tảng Linux, OSX
và các nơi khác EF7 được dự kiến phát hành cùng với ASP NET lõi 1.0 trong quý 1 năm 2016 EF7 được cấp phép theo Giấy phép Apache v2, và đang được xây dựng hoàn toàn trong mở trên GitHub Trong khi EF7 chia sẻ một số điểm tương đồng về khái niệm với các phiên bản trước, đó là một cơ sở mã hoàn toàn mới được thiết kế để có hiệu quả hơn, mạnh mẽ, linh hoạt và mở rộng, sẽ chạy trên Windows, Linux và OSX, và sẽ hỗ trợ một phạm vi mới của các cửa hàng dữ liệu quan hệ và NoSQL
Có 3 cách sử dụng Entity Framework: Code First, Models First, Database First Database first: là phương pháp chỉ nên dùng khi bạn đã có sẵn CSDL, EF Wizard sẽ tạo Model và Code Models first: nên dùng khi bạn bắt đầu thiết kế CSDL từ đầu (từ chưa có gì) Bạn sẽ thiết kế mô hình CSDL (Model) EF sẽ tự tạo code cho bạn, sau đó nhờ EF Wizard tạo CSDL Code first: nên dùng khi đã có mô hình CSDL, bạn sẽ viết Class, từ đó tạo Database
Entity Framework cho phép các nhà phát triển để làm việc với dữ liệu trong các hình thức của các đối tượng, lĩnh vực cụ thể và các thuộc tính, chẳng hạn như khách hàng và địa chỉ của khách hàng, mà không cần phải quan tâm đến việc các bảng cơ sở dữ liệu nằm bên dưới và cột, nơi dữ liệu này được lưu trữ Với khung
Trang 36Entity, các nhà phát triển có thể làm việc ở một mức độ trừu tượng cao hơn khi họ đối phó với các dữ liệu, và có thể tạo ra và duy trì các ứng dụng hướng dữ liệu với
mã ít hơn trong các ứng dụng truyền thống Bởi vì khung Entity là một thành phần của NET Framework, các ứng dụng Entity Framework có thể chạy trên bất kỳ máy tính mà NET Framework (bắt đầu với phiên bản 3.5 SP1) được cài đặt
Trong tháng 7 năm 2008, Microsoft phát hành phiên bản đầu tiên của ADO.NET Entity Framework như là một phần của Visual Studio 2008 Service Pack 1 cũng như các NET Framework 3.5 Service Pack 1 Đồng thời, Microsoft LINQ (Language Integrated Query) và LINQ to SQL đã được chuẩn bị trong một thời gian và đã đạt được rất nhiều sự chú ý Cả Entity Framework và LINQ to SQL cho thấy Microsoft đã rất nghiêm túc về nâng cao năng suất phát triển, bằng cách cung cấp một cơ sở cho việc quản lý dữ liệu quan hệ như các đối tượng và lập trình với một mô hình khái niệm thay vì trực tiếp chống lại một lược đồ lưu trữ
Như đã nói ở trên, Entity Framework được phát triển trên LinQ và kế thừa
từ LinQ to SQL nên tất cả những cú pháp hay câu lệnh điều khiển có ở LinQ to SQL đều có ở Entity Framework Nhưng nó còn mạnh mẽ hơn nhiều trong việc thể hiện các liên kết trong CSDL quan hệ Nó giúp cho người lập trình có thể thực hiện một các dễ dàng nhất khi triển khai ứng dụng của mình Không phải sự dụng các câu lệnh phức tạp trong SQL, đối với Entity Framework thì việc bạn cần làm là lấy dữ liệu ra và sử dụng
ADO.NET Entity Framework là một Object/Relational Mapping framework cho phép các developers làm việc với dữ liệu quan hệ như là các objects Sử dụng Entity Framework, developers có thể sử dụng và khai thác sức mạnh của LINQ trong việc khai thác dữ liệu ADO.NET Entity Framework còn cung cấp rất nhiều các tính năng khác như change tracking, identity resolution, lazy loading, query translation, tạo điều kiện cho developers tập trung vào việc phát triển ứng dụng ở
Trang 37mức business logic hơn là phải tốn thời gian vào truy xuất dữ liệu
Xây dựng ứng dụng với ASP NET MVC Framwork
Tạo một ứng dụng ASP NET MVC.
Trong phần mềm Visual Studio 2013 đã tích hợp sẵn ASP NET MVC FrameWork, ta tạo theo đường dẫn sau:
File New Project Visual C# Web ASP NET MVC 4 Web Application
Khi tạo ASP NET MVC Web application thì nhìn vào Solution Explore sẽ thấy ba thư mục chính xuất hiện: Models, View, Controllers trong mô hình MVC Ngoài ra, Visual Studio sẽ tạo các thư mục con để chứa các file Cascading Style Sheet, JavaScript… ASP NET MVC khuyến khích việc đưa lớp điều khiển vào thư mục Controllers, những lớp thuộc về mô hình dữ liệu vào bên trong thư mục Models Mặc dù ASP NET MVC không bắt buộc chúng ta phải sử dụng cấu trúc này, nhưng đây là cấu trúc mặc định khi chúng ta tạo một dự án mới và ASP NET MVC luôn luôn khuyến khích việc sử dụng nó để phân chia ứng dụng Ngoại trừ trường hợp ta đề ra một lý do đủ thuyết phục để thay đổi nó
Tìm hiểu về định tuyến URL.
ASP NET MVC Framework có một bộ ánh xạ URL thật sự mạnh mẽ Bộ máy này cung cấp các phương pháp rất linh hoạt trong việc ánh xạ URLs sang cho Controller Chúng ta có thể dễ dàng định ra các quy luật ánh xa, cài đặt để ASP NET MVC dựa vào các quy luật ánh xạ đó để xác định xem phải thực thi các Controller nào ASP NET MVC còn có khả năng phân tích URL, chuyển các thông số trong URL thành các tham số trong phần gọi hàm của Controller
Khi trình duyệt yêu cầu một địa chỉ từ Controller Action trong ASP NET
Trang 38MVC được gọi là định tuyến URL URL Routing sẽ chỉ định yêu cầu tới Controller Action URL Routing sử dụng một bảng định tuyến được thiết lập các yêu cầu Bảng định tuyến được thiết lập khi ứng dụng được chạy lần đầu tiên và được thiết lập trong file Global.asax.
Khi ứng dụng được chạy lần đầu tiên thì phương thức Application_Start() được gọi Phương thức này gọi một phương thức khác RegisterRouter(Route Table.Router) để tạo bảng định tuyến
Định tuyến mặc định chia một yêu cầu thành ba đoạn, mỗi đoạn nằm giữa dẫu “/” Phần đoạn đầu tiên chứa một Controller, phần đoạn thứ hai chứa Controller Action, phần đoạn thứ ba chứa tham số đầu vào của Controller Action
Hầu hết các lớp của các Web Framework như ASP, PHP… đều ánh xạ các URL vào một file được lưu trên đĩa hay một thiết bị lưu trữ Khi một ứng dụng web nhận được HTTP Reques đến Web Server, thì Web Server sẽ chạy một đoạn
mã cụ thể tương ứng với nội dung trong đó và các đoạn mã này đóng vai trò xử lý các yêu cầu do phía client gửi đến Thông thường thì đoạn mã này sẽ sinh ra HTML và đáp ứng lại phía client
ASP NET MVC Framework lại hoạt động theo một cách hoàn toàn khác, thay vì ánh xạ các URL vào các file lưu trên các thiết bị lưu trữ, nó sẽ đưa thẳng vào các lớp Những lớp được ánh xạ tới được gọi là các Controller và chúng sẽ xử
lý yêu cầu được gửi đến, kiểm soát dòng nhập xuất và giao diện với người dùng, thực thi các ứng dụng và cơ sở dữ liệu tương ứng với các yêu cầu Cuối cùng chúng sử dụng các thành phần View để tạo ra HTML và đáp trả lại các yêu cầu
ASP NET MVC Framework có một hệ thống định tuyến URL linh hoạt cho phép xác định các quy tắc ánh xạ địa chỉ URL bên trong ứng dụng Một hệ thống định tuyến có hai mục đích:
Trang 39 Xây dựng một tập hợp các URL đi vào ứng dụng và định tuyến chúng tới các Controller và thực thi các phương thức Action để xử lý.
Xây dựng các URL gửi đi mà có thể gửi ngược lại Controller/Action
Sử dụng các quy tắc ánh xạ URL để điều khiển các URL đi vào và đi ra để tăng tính mềm dẻo cho việc lập trình ứng dụng, nghĩa là nếu muốn thay đổi cấu trúc URL có thể thay đổi một tập các quy tắc ánh xạ mức ứng dụng mà không cần phải viết mã lập trình bên trong Controller và View
Khi một URL được yêu cầu gửi đến ASP NET MVC Application, ASP NET MVC Framework tìm trong bảng hệ thống ánh xạ để xác định một quy tắc ánh xạ thích hợp để xử lý ASP NET MVC Framework xác định các Controller bằng cách tìm trong những quy tắc ánh xạ mà chúng ta đã tạo theo thứ tự từ trên xuống dưới URL được yêu cầu đến sẽ được so sánh với từng quy tắc ánh xạ trong RouteTable.Router collection, nếu một quy tắc ánh xạ nào phù hợp với URL đó thì
nó sẽ được áp dụng Điều này có nghĩa là bạn phải có cách sắp xếp các quy tắc ánh
xạ một cách hợp lý nhất
Một điều quan trong của lớp Route là có thuộc tính “Validation” nó cho phép chúng ta thêm các điều kiện xác nhận trước các quy tắc đó được ASP NET MVC Framework đánh giá là phù hợp cho một yêu cầu URL được gửi đến ASP NET MVC Framework cho phép ta sử dụng một Regular Expression để kiểm tra mỗi đối số trong URL, cũng như cho phép ta đánh giá các tiêu đề HTTP
Ngoài việc truyền tham số một cách linh hoạt bằng cách sử dụng các anonymous type, ASP NET MVC Framework cũng hỗ trợ khả năng tạo ra các ánh
xạ bằng cách sử dụng các strongly – typed một cơ chế cho phép compile – time checking và intellusense cho URL Helper
Trang 40 Xây dựng các lớp của ứng dụng.
Mỗi lần có một yêu cầu được gửi đến trang web ASP NET MVC của bạn thì nó sẽ được giải quyết bởi Controller Controller có trách nhiệm điều khiển các tương tác của người dùng bên trong ứng dụng MVC Controller quyết định cái gì
sẽ được chuyển về cho người dùng khi tạo quyền cho người dùng khi tạo một yêu cầu trên trình duyệt
Controller có trách nhiệm cho các ứng dụng logic, bao gồm tiếp nhận thông tin người dùng nhập vào, ra lệnh, lấy dữ liệu từ Model và cuối cùng là xử lý Có một số tương đồng giữa các Controller ASP NET MVC Framework và các View
ASP NET MVC Framework cũng hỗ trợ tự động ánh xạ các giá trị tham số
từ URL đến Action Methor như một tham số của Action Method đó Theo mặc định nếu có một tham số trong Action Method ASP NET MVC Framework sẽ xem sét các dữ liệu yêu cầu gửi xuống để xem có một yêu cầu HTTP tưng ứng có giá trị cùng tên nào không Nếu có, nó sẽ tự động chuyển vào như một tham số cho Action Method đó
Trên đây là những điều cơ bản để có một lớp Controller Bước tiếp theo sẽ
là xây dựng một số lớp để giúp chúng ta làm việc với cơ sở dữ liệu, lấy các dữ liệu thích hợp cần thiết để yêu cầu web Trong một ứng dụng ASP NET MVC Framework thì Model là các thành phần nhận nhiệm vụ duy trì trạng thái của các đối tượng, thông thường nó là một lớp ánh xạ đến một bảng trong cơ sở dữ liệu ASP NET MVC Framework cho phép bạn sử dụng bất kì mô hình truy cập dữ liệu nào bạn muốn để thao tác, quản lý dữ liệu
Sau khi đã triển khai được Controller và Model Bây giờ chúng ta cần thực hiện các giao diện người dùng HTML cho nó ASP NET MVC Framework hỗ trợ khả năng sử dụng bất kì công cụ khuôn mẫu nào giúp ta tạo giao diện người dùng