Tải bản đầy đủ (.pdf) (83 trang)

Xây dựng website tin tức công nghệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 83 trang )

LỜ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

1


LỜ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

2




3


DANH 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.
Hình 2.1. Biểu đồ Use – Case cho người dùng

15

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.
Hình 2.6. Biểu đồ trình tự đăng kí thành viên.
Hình 2.7. Biểu đồ trình tự đăng nhập


46

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.
Hình 3.1. Giao diện trang chủ website.

49

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

4

41


DANH 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

5


MỞ ĐẦ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.
6


 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
7


Nghệ
 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ệ

8


Thô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.

9


Hì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.

10


 Đặ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,…

11


Model 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.

12


Chẳ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ữ

13


lậ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.

14


Thời kì

Công nghệ

2009

ASP .NET MVC 1.0

2010

ASP .NET MVC 2.0

2011

ASP .NET MVC 3.0


2012

ASP .NET MVC 4.0

2013

ASP .NET MVC 5.0

Bả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
15


đề 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
16


độ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

17


phươ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

18


View để 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
19


dạ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

20


ASP .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
Các tính năng

ASP .NET WebForm

ASP .NET MVC

Kiến trúc chương trình

Kiến trúc mô hình

Kiến trúc sự dụng việc


WebForm

phân chia chương trình
thành: Model, Views,

Bussiness -> Database

Cú pháp chương trình

Truy cập dữ liệu

Controllers

Sử dụng cú pháp của

Các sự kiện được điều

WebForm, tất cả các sự

khiển bởi controllers, các

kiện và controls do server

controls không do server

quản lý.

quản lý.


Sử dụng hầu hết các công

Phần lớn dùng LINQ và

nghệ truy cập dữ liệu

các lớp SQL để tạo mô

trong ứng dụng.

hình truy cập đối tượng.

21


Debug

Tốc độ phân tải

URL address

Debug phải thực hiện tất

Debug có thể sử dụng các

cả bao gồm các lớp truy

unit test để kiểm tra các

cập dữ liệu, sự hiển thị,


phương pháp trong

điều khiển các controls.

controllers.

Tốc độ phân tải chậm khi

Phân tải trang nhanh hơn

trong trang có quá nhiều

do không phải quản lý

các controls vì Viewstate

Viewstate để quản lý các

quá lớn.

controls trong trang.

Cấu trúc địa chỉ URL có

Cấu trúc đỉa chỉ rành mạch

dạng: <tên>.aspx?&
theo dạng:


tham số>

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ẽ
22


thả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
23


Windows 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

24


phươ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
25


×