1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên

81 368 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Qua khảo sát thực tế cùng với mong muốn hỗ trợ các nhà cung cấp dịch vụ việc làm cũng như những người có nhu cầu sử dụng các dịch vụ việc làm một cách hiệu quả, tạo sự thuận tiện trong g

Trang 1

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

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan toàn bộ nội dung trong thực tập này là do tự em đọc và nghiên cứu các tài liệu, khảo sát các trang tin tức hiện nay Từ đó viết ra cơ sở lý thuyết và xây dựng chương trình website tìm kiếm việc làm cho tỉnh Thái Nguyên

Người cam đoan

Đỗ Xuân Đạt

Trang 3

MỤC LỤC

LỜI CÁM ƠN 1

LỜI CAM ĐOAN 2

MỞ ĐẦU 5

CHƯƠNG 1: TỔNG QUAN VỀ ASP.NET 8

1.1 Tổng quân về ASP.NET 8

1.1.1 Giới thiệu chung 8

1.1.2 Phân loại 8

1.1.3 HTML 12

1.1.4 Giới thiệu về ngôn ngữ ASP.NET 12

1.1.5 Cách thức làm việc của ASP.NET 18

1.2 ASP.NET MVC 20

1.2.1 Giới thiệu mô hình MVC 20

1.2.2 MÔ HÌNH MVC TRONG ASP.NET 25

1.2.3 So sánh ASP.NET MVC với ASP.NET 31

1.2.4 Cài đặt 33

1.2.5 Bảo mật trong ASP.NET MVC 35

1.3 TỔNG QUAN VỀ SQL SERVER 2014 39

1.3.1 Toàn cảnh về nền tảng dữ liệu của SQL Server 2014 39

1.3.2 Những điểm mới trong SQL Server 2014 41

1.3.3 Nền tảng tin cậy cho dữ liệu 42

1.3.4 Nền tảng phân tích có khả năng mở rộng 43

1.3.5 Việc lưu trữ dữ liệu kế tiếp 44

CHƯƠNG II: PHÂN TÍCH KHẢO SÁT HỆ THỐNG 47

2.1 Khảo sát 47

2.1.1 Mô tả bài toán 47

2.1.2 Yêu cầu hệ thống 48

Trang 4

2.2 Phân tích hệ thống 48

2.2.1 Quy trình nghiệp vụ 48

2.2.2 Yêu cầu hệ thông thông tin 49

2.3 Các chức năng 49

2.3.1 Xác định chức năng 49

2.3.2 Đặc tả chức năng 50

2.4 Biểu đồ use-case 51

2.5 Biểu đồ trình tự 53

CHƯƠNG III: CHƯƠNG TRÌNH DEMO WEBSITE TÌM KIẾM VIỆC LÀM CHO TỈNH THÁI NGUYÊN 57

3.1 Trang chủ 57

3.2 Hiển thị chi tiết 57

3.3 Trang đăng nhập 58

3.4 Trang đăng ký 58

3.5 Đăng nhập Admin 59

3.6 Trang chủ Admin 59

TÀI LIỆU THAM KHẢO 60

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1 hoạt động 16

Hình 1.2 Cách thức của một HTTP request được xử lý trên server 19

Hình 1.3 Các thành phần chính của mô hình MVC 21

Hình 1.4 Mô hình tuần tự của MVC 22

Hình 1.5 Mô hình MVC 26

Hình 1.6 Mô hình ASP.NET Webform 27

Hình 1.7 Nền tảng Asp.Net MVC Framwork 30

Hình 1.9 Giao diện tạo project 33

Hình 1.10 Giao diện Solution của MVC 34

Hình 2.1 Quy trình nhà tuyển dụng 48

Hình 2.2 Quy trình người tìm việc 49

Hình 2.3 Biểu đồ UC người tìm việc 51

Hình 2.4 Biểu đồ UC cho nhà tuyển dụng 51

Hình 2.5 Biểu đồ UC cho quyền admin 52

Hình 2.6 Biểu đồ UC quản lý nhà tuyển dụng 52

Hình 2.7 Biểu đồ UC quản lý người tìm việc 53

Hình 2.8 biểu đồ trình tự UC đăng nhập 53

Hình 2.9 Biểu đồ tình tự UC đăng ký 54

Hình 2.10 Biểu đồ UC xem tin tức 54

Hình 2.11 Biểu đồ UC xóa tin tức 55

Hình 2.12 biểu đồ UC chỉnh sửa thành viên 55

Hình 2.13 Biểu đồ UC thêm bài viết mới 56

Hình 3.1 trang chủ 57

Hình 3.2 hiển thị chi tiết 57

Hình 3.3 trang đang nhập 58

Trang 6

Hình 3.4 trang đăng ký 58Hình 3.5 đăng nhập Admin 59Hình 3.6 trang chủ Admin 59

MỞ ĐẦU

Hiện nay Internet là một công cụ, một môi trường làm việc và liên kết mọi người trên thế giới lại với nhau Internet có mặt khắp nơi và hỗ trợ con người vào nhiều lĩnh vực

Tìm kiếm việc làm là ứng viên trên Internet là một loại hình được đa số người tìm việc và nhà tuyển dụng quan tâm nó vừa đỡ mát thời gian và tiền bạc

Khi một công ty muốn tuyển dụng cho công ty mình một vị trí nào đó có lẽ việc liên lạc đến các công ty cung cấp nhân lực, hay nói nôm na là công ty săn đầu người chuyên cung cấp những ứng viên đủ trình độ đáp ứng yêu cầu công ty đặt ra Hoặc có thể đặng lên báo đài để cho mọi người biết đến

Khi một ứng viên muốn tìn việc làm họ thường lục tìm các thông tin tuyển dụng trên báo, hoặc họ đi đến một trung tâm giới thiệu việc làm, hoặc tham gia các cuộc hội thảo, hội chợ việc làm để kiếm việc làm cho mình

Tìm kiếm ứng viên cho nhà tuyển dụng và việc làm cho ứng viên trên mạng Internet hiện nay là một mo hình mới mẻ tại Viết Nam Vấn đề chúng ta đặt ra là làm thế nào để hỗ trợ ứng viên tìm việc và hỗ trợ nhà tuyển dụng tìm ứng viên vừa ý

Trong xu hướng phát triển hiện nay, Internet đã không còn xa lạ với rất nhiều người rất nhiều thành phần khác nhau trong xã hội Nó là một công cụ, một môi trường làm việc và liên kết mọi người trên thế giới lại với nhau Internet có mặt khắp nơi và hỗ trợ con người vào nhiều lĩnh vực

Chính khả năng mạnh mẽ đó dã đem đến khả năng tiềm tàng cho việc xây dựng một hệ thống “MẠNG VIỆC LÀM” (đang còn bước những bước lẫm chẫm đầu tiên tại Việt nam)

Không còn quá xa lạ nhưng cũng không thật chắc chắn, rất nhiều công ty,

Trang 7

doanh nghiệp có cung cấp các dịch vụ việc làm đã tự xây dựng cho mình các website nhằm thực hiện chiến lược thương mại điện tử của mình Tùy nhiên, rất hiều website trong số này đã không mang lại hiệu quả đầu tư xứng đáng.

Vậy vấn đề ở đâu? Trước hết, đó là sự thiếu hiệu quả trong công tác quản lý nội dung thông tin của website, thông tin không được cập nhập thường xuyên dẫn đến nội dung nghèo nàn và hậu quả cửa nó là không thu hút được sự truy cập của khách hàng Thứ hai đó chính là khả năng quản lý và công tác quản bá cho website của mình đối với nhiều doanh nghiệp vẫn là vấn đề nam giải do kinh nghiệm cũng như kỹ năng quản lý còn thiếu, yếu

Qua khảo sát thực tế cùng với mong muốn hỗ trợ các nhà cung cấp dịch vụ việc làm cũng như những người có nhu cầu sử dụng các dịch vụ việc làm một cách hiệu quả, tạo sự thuận tiện trong giao diện cũng như giảm được sự đầu tư không hiệu quả cho các website của công ty, doanh nghiệp Em đã cố gắng tìm hiểu và xây dựng website “MẠNG VIỆC LÀM”

Mặc dù đây là một nội dung không mới và cũng đã có rất nhiều webstie hỗ trợ các dịch vụ này Nhưng cách giải quyết vấn đề thì hoàn toàn mới bởi hệ thống được xây dựng trên nền tảng hỗ trợ đa người dùng với phương thức hoạt động của một mô hình cổng thông tin điện tử Đây chính là điểu mà nhiều website với phương thức hoạt động truyển thống chưa làm được

Trang 9

CHƯƠNG 1: TỔNG QUAN VỀ ASP.NET

 Tổng quân về ASP.NET

 Giới thiệu chung

Internet là mạng của máy tính trên toàn cầu được thành lập từ những năm

80 bắt nguồn từ mạng APARRNET của bộ quốc phòng Mỹ

Vào mạng Internet, bạn có thể tìm thấy nhiều tài liệu để nghiên cứu, học tập, trao đổi thư từ, đặt hàng, mua bán, Một trong những mục tiêu của Internet là chia sẻ thông tin giữa những người dùng trên nhiều lĩnh vực khác nhau

Mỗi máy tính trên Internet được gọi là một host Mỗi host có khả năng như nhau về truyền thông tới máy khác trên Internet Một số host được nối tới mạng bằng đường nối Dial-up (quay số) tạm thời, số khác được nối bằng đường nối mạng thật sự 100% (như Ethernet, Tokenring, )

 Phân loại

Các máy tính trên mạng được chia làm 3 nhóm Client và Server

 Client: Máy khách trên mạng, chứa các chương trình Client.

 Server: Máy phục vụ-Máy chủ Chứa các chương trình Server, tài

nguyên (tập tin, tài liệu ) dùng chung cho nhiều máy khách Server luôn ở trạng thái chờ yêu cầu và đáp ứng yêu cầu của Client

 Internet Server: Là những server cung cấp các dịch vụ Internet như

Web Server, Mail Server, FPT Server,

Các dịch vụ thường dùng trên Internet:

 Dịch vụ World Wide Web (gọi tắt là Web)

 Dịch vụ Electronic Mail (viết tắt là Email)

 Dịch vụ FPT

Để truyền thông với những máy tính khác, mọi máy tính trên Internet phải

hỗ trợ giao thức chung TCP/IP (Transmission Control Protocol/ Internet

Trang 10

Protocol-là giao thức điều khiển truyền dữ liệu và giao thức Internet), Protocol-là một giao thức đồng

bộ, cho truyền thông điệp từ nhiều nguồn và tới nhiều đích khác nhau Ví dụ có thể vừa lấy thư từ trong hộp thư, đồng thời vừa truy cập trang Web TCP đảm bảo tính

an toàn dữ liệu, IP là giao thức chi phối phương thức vận chuyển dữ liệu trên Internet

World Wide Web

Các khái niệm cơ bản về World Wide Web.

World Wide Web (WWW) hay còn gọi là Web là một dịch vụ phổ biến nhất hiện nay trên Internet, 85% các giao dịch trên Internet ước lượng thuộc về WWW Ngày nay số Website trên thế giới đã đạt tới con số khổng lồ WWW cho phép bạn truy xuất thông tin văn bản, hình ảnh, âm thanh, video trên toàn thế giới Thông qua Website, các quý công ty có thể giảm thiểu tối đa chi phí in ấn và phân phát tài liệu cho khách hàng ở nhiều nơi

Cách tạo trang Web:

Có nhiều cách để tạo trang Web:

 Có thể tạo trang Web trên bất kì chương trình xử lí văn bản nào

 Tạo Web bằng cách viết mã nguồn bởi một trình soạn thảo văn bản như: Notepad, WordPad, là những chương trình soạn thảo văn bản có sẵn trong Window

 Thiết kế bằng cách dùng Web Wizard và công cụ của Word 97, Word 3000

 Thiết kế Web bằng các phần mềm chuyên nghiệp: FrontPage, Dreamweaver, Nescape Editor, Phần mềm chuyên nghiệp như DreamWeaver sẽ giúp bạn thiết kế trang Web dễ dàng hơn, nhanh chóng hơn, phần lớn mã lệnh HTML sẽ có sẵn trong phần Code cho bạn

Để xây dựng một ứng dụng Web hoàn chỉnh và có tính thương mại, bạn cần kết hợp cả Client Script (kịch bản trình khách) và Server Script (kịch bản trên trình chủ) với một loại cơ sở dữ liệu nào đó, chẳng hạn như: MS Access, SQL Server, MySQL, Oracle,

Trang 11

Khi bạn muốn triển khai ứng dụng Web trên mạng, ngoài các điều kiện về cấu hình phần cứng, bạn cần có trình chủ Web thường gọi là Web Server.

Trình duyệt Web (Web Client hay Web Browser)

Trình duyệt Web là công cụ truy xuất dữ liệu trên mạng, là phần mềm giao diện trực tiếp với người sử dụng Nhiệm vụ của Web Browser là nhận các yêu cầu của người dùng, gửi các yêu cầu đó qua mạng tới các Web Server và nhận các dữ liệu cần thiết từ Server để hiển thị lên màn hình Để sử dụng dịch vụ WWW, Client cần có 1 chương trình duyệt Web, kết nối vào Internet thông qua một ISP Các trình duyệt thông dụng hiện nay là: Microsoft Internet Explorer và Netscape Navigator Internet Explorer 5.0 là một trình duyệt chuẩn cho phép trình bày nội dung do Web server cung cấp, cho phép đăng kí tới bất kì Website nào trên Internet, hỗ trợ trình bày trang Web

Webserver:

Webserver là một máy tính được nối vào Internet và chạy các phần mềm

được thiết kế Webserver đóng vai trò một chương trình xử lí các nhiệm vụ xác định, như tìm trang thích hợp, xử lí tổ hợp dữ liệu, kiểm tra dữ liệu hợp lệ Webserver cũng là nơi lưu trữ cơ sở dữ liệu, là phần mềm đảm nhiệm vai trò Server cung cấp dịch vụ Web Webserver hỗ trợ các công nghệ khác nhau:

 IIS (Internet Information Service): Hỗ trợ ASP, mở rộng hỗ trợ PHP

 Apache: Hỗ trợ PHP

 Tomcat: Hỗ trợ JSP(Java Servlet Page)

Phân loại Web

 Web tĩnh

Là một trang web mà người dùng không có khả năng tương tác với nó, nó không yêu cầu cần phải lập trình hay nói một cách khác khi xem một trang web tĩnh như xem một tờ báo được in trên giấy Trang web tĩnh dưới dạng các file html, tất cả những gì vần hiển thị trên trang web thì người thiết kế phải tạo sẵn trang đó

Là một trang web mà người dùng không có khả năng tương tác với nó, nó không yêu cầu cần phải lập trình hay nói một cách khác khi xem một trang web

Trang 12

tĩnh như xem một tờ báo được in trên giấy Trang web tĩnh dưới dạng các file html, tất cả những gì vần hiển thị trên trang web thì người thiết kế phải tạo sẵn trang đó.

Tài liệu được phân phát rất đơn giản từ hệ thống file của Server

Định dạng các trang web tĩnh là các siêu liên kết, các trang định dạng Text, các hình ảnh đơn giản

Ưu điểm: CSDL nhỏ nên việc phân phát dữ liệu có hiệu quả rõ ràng, Server

có thể đáp ứng nhu cầu Client một cách nhanh chóng Ta nên sử dụng Web tĩnh khi không thay đổi thông tin trên đó

Nhược điểm: Không đáp ứng được yêu cầu phức tạp của người sử dụng,

không linh hoạt,

Hoạt động của trang Web tĩnh được thể hiện như sau: Browser gửi yêu cầuServer trả về dữ liệu

Chẳng hạn ứng dụng cơ sở của bạn có chức năng như một công cụ thương mại điện tử (một cửa hàng trực tuyến) trưng bày catalogue sản phẩm trên website hay theo dõi kho hàng, khi một mặt hàng được giao, ngay lập tức những trang có liên quan đến sản phẩm đó phản ánh sự thay đổi này Những website cơ sở dữ liệu còn có thể thực hiện những chức năng truyền và xử lý thông tin giữa doanh nghiệp – doanh nghiệp

Web động thường được phát triển bằng các ngôn ngữ lập trình tiên tiến như PHP, ASP, ASP.NET, Java, CGI, Perl, và sử dụng các cơ sở dữ liệu quan hệ mạnh như Access, My SQL, MS SQL, Oracle, DB3

Trang 13

Thông tin trên web động luôn luôn mới vì nó dễ dàng được bạn thường xuyên cập nhật thông qua việc Bạn sử dụng các công cụ cập nhật của các phần mềm quản trị web Thông tin luôn được cập nhật trong một cơ sở dữ liệu và người dùng Internet có thể xem những chỉnh sửa đó ngay lập tức Vì vậy website được hỗ trợ bởi cơ sở dữ liệu là phương tiện trao đổi thông tin nhanh nhất với người dùng Internet Điều dễ nhận thấy là những website thường xuyên được cập nhật sẽ thu hút nhiều khách hàng tới thăm hơn những web site ít có sự thay đổi về thông tin.

Web động có tính tương tác với người sử dụng cao Với web động, Bạn hoàn toàn có thể dễ dàng quản trị nội dung và điều hành website của mình thông qua các phần mềm hỗ trợ mà không nhất thiết Bạn cần phải có kiến thức nhất định về ngôn ngữ html, lập trình web Bạn cũng có thể nhìn nhận vấn đề theo khía cạnh khác: chẳng hạn bạn đã có sẵn những cơ sở dữ liệu như cơ sở dữ liệu sản phẩm, nhân sự, khách hàng hay bất kỳ cơ sở dữ liệu nào đó mà bạn muốn đưa thêm giao diện web vào để người dùng nội bộ hay người dùng Internet đều có thể sử dụng chương trình chỉ với trình duyệt web của mình

Tất cả các website Thương mại điện tử, các mạng thương mại, các mạng thông tin lớn, các website của các tổ chức, doanh nghiệp hoạt động chuyên nghiệp trên Net đều sử dụng công nghệ web động Có thể nói web động là website của giới chuyên nghiệp hoạt động trên môi trường Internet

 HTML

Trang Web là sự kết hợp giữa văn bản và các thẻ HTML HTML là chữ viết tắt của HyperText Markup Language được hội đồng World Wide Web Consortium (W3C) quy định.Một tập tin HTML chẳng qua là một tập tin bình thường, có đuôi.html hoặc htm

HTML giúp định dạng văn bản trong trang Web nhờ các thẻ Hơn nữa , các thẻ html có thể liên kết từ hoặc một cụm từ với các tài liệu khác trên Internet Đa

số các thẻ HTML có dạng thẻ đóng mở Thẻ đóng dùng chung từ lệnh giống như thẻ mở, nhưng thêm dấu xiên phải (/) Ngôn ngữ HTML qui định cú pháp không

Trang 14

phân biệt chữ hoa chữ thường Ví dụ, có thể khai báo <html> hoặc <HTML> Không có khoảng trắng trong định nghĩa thẻ.

 Giới thiệu về ngôn ngữ ASP.NET

ASP là gì?

Hiện tại ASP 3.0 đã và đang trở thành kịch bản được nhiều người sử dụng

để thiết kế ứng dụng thương mại điện tử dưới nhiều hình thức khác nhau Chúng được sự hỗ trợ mạnh của ngôn ngữ lập trình C#, VB.NET… và cơ sở dữ liệu SQL Server 3005 cùng với sự ra đời của công nghệ COM và DCOM, ứng dụng trở nên hoàn hảo và ưu việt hơn trong quá trình trao đổi thông tin trên mạng Internet và Intranet

Tuy nhiên, Microsoft đã và đang nỗ lực cho một công nghệ Web xử lý phía máy chủ hoàn toàn mới đó là ASP.NET, độc lập với mọi trình duyệt Điều này có nghĩa là trình duyệt không cần phải cài đặt bất kỳ công cụ hỗ trợ nào để duyệt trang Web dạng ASP.NET(.aspx) Với kỹ thuật cho phép mọi thực thi đều nằm trên trình chủ (Server), có nghĩa là trình duyệt xử lý nhiều vấn đề cùng một lúc cho nhiều người dùng, chính vì vậy đòi hỏi cấu hình máy chủ có cấu hình mạnh và đòi hỏi băng thông có khả năng truyền dữ liệu với khối lượng lớn và tốc độ truy cập nhanh

ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó Bạn

có thể triển khai ứng dụng phát triển bằng ASP.NET chung với ứng dụng phát triển bằng ASP trên cùng một máy chủ mà không cần thay đổi cấu hình của ứng dụng ASP

Những ngôn ngữ được dùng để viết ASP.NET là VBScript, Jscript, C# Tùy thuộc vào khai báo chỉ mục trong đối tượng chỉ dẫn đầu trang ASP.NET, bạn có thể chỉ rõ ngôn ngữ lập trình bạn sử dụng để xây dựng trang ASP.NET

Trước hết, tên đầy đủ của ASP.NET là Active Server Pages.NET (.NET ở đây là NET framework) Nói đơn giản thì ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng về mạng hiện nay cũng như trong

Trang 15

tương lai Bạn lưu ý ở chỗ ASP.NET là một phương pháp tổ chức hay khung tổ chức (framework) để thiết lập các ứng dụng hết sức hùng mạnh cho mạng dựa trên CLR(Common Language Runtime) CLR là môi trường được dùng để quản lý sự thi hành các nguồn mã mà ta đã soạn ra và biên dịch (write and compile code) trong các ứng dụng.

ASP.NET tích hợp với NET framework

.Net framework được chia thành bộ các tác vụ cho từng chức năng gồm các lớp, cấu trúc, các giao diện, và các lõi thành phần chương trình Trước khi sử dụng thành phần nào, bạn phải hiểu cơ bản về chức năng, các tổ chức của nó Mỗi một trong hàng ngàn các tầng lớp được nhóm theo trình tự logic, thức bậc được học là namespace Mỗi namespace cung cấp một tính năng

ASP.NET là đa ngôn ngữ

Để xây dựng một ứng dụng web chúng ta không chỉ một ngôn ngữ mà có thể chọn nhiều ngôn ngữ khác Điều quan trọng là các ngôn ngữ chúng ta chọn mã của nó dịch được ra mã IL Điều đó có nghĩa là IL là ngôn ngữ của NET và chỉ có CLR nhận biết được IL

ASP.NET là hướng đối tượng(Object-Oriented)

ASP.NET là ngôn ngữ lập trình hướng đối tượng sử dụng các ngôn ngữ NET Nó cung cấp bộ các đối tượng nhỏ và thực sự là một tầng làm việc trên nguyên lý của HTTP và HTML Mã nguồn của chúng ta được truy cập toàn bộ các đối trượng trong NET Framework nhưng có thể khai thác tất cả các quy ước của một môi trường OOP (Object Oriented Programming) Chúng ta có thể tạo các lớp, giao diện, kế thừa các lớp Chúng ta có thể kiểm soát được các đối tượng trong chương trình như hiển thị dữ liệu và các sự kiện của đối tượng

ASP.NET được biên dịch

Một ứng dụng ASP.NET luôn luôn được biên dịch, nó không chạy bằng mã của C# hoặc VB mà không được biên dịch trước Một ứng dụng ASP.NET thực sự được biên dịch thông qua 2 giai đoạn:

Trang 16

 Giai đoạn đầu tiên của những các mã (code) bạn viết (C#, VB, hoặc

ngôn ngữ NET khác) được dịch bởi Microsoft Intermediate Language (MSIL)

Giai đoạn dịch này được tự động khi trang web đầu tiên yêu cầu Chúng ta có thể thực hiện dịch trước Các tệp được dịch thành mã IL (Intermediate Language Code)

 Giai đoạn tiếp theo được dịch trước khi trang web được thực thi Tại giai đoạn này mã IL được dịch thành bản mã máy (Native Machine Code) Giai đoạn được gọi là Just-In-Time(JIT)



Trang 17

ASP.NET được lưu trữ trên máy bởi Common Language Runtime

Khía cạnh quan trọng nhất của công cụ ASP.NET là nó chạy trong môi trường thời gian thực(Runtime) của CLR CLR là máy ảo (virtual machine) trong Microsoft NET, do có ngôn ngữ trung gian IL nên khi phát triển ứng dụng trên NET, chúng ta không bị phụ thuộc vào thiết bị, có nghĩa là theo Microsoft nói thì ứng dụng trên NET có thể chạy trên bất kỳ thiết bị có NET Framework Tất cả các namespace, các ứng dụng, các lớp trong bộ NET Framework được gọi tắt là

bộ quản lý mã CLR cũng cung cấp các dịch vụ quan trọng khác như:

ASP.NET dễ dàng triển khai và cấu hình

Mọi sự cài đặt NET Framework đều cung cấp các lớp như nhau Để triển khai ứng dụng ASP.NET chúng ta chỉ cần sao chép các tập tin vào thư mục ảo trên máy chủ (server) và máy chủ cần có NET Framwork

Việc cấu hình dễ dàng đơn giản không phụ thuộc vào IIS (Internet Information Services) Cấu hình trong ASP.NET được đặt trong tệp web.config Tệp web.config được để cùng với thư mục chứa trang web của chúng ta Tệp web.config không bao giờ bị khóa, chúng ta có thể truy cập bất kỳ lúc nào, việc sửa tệp này hoàn toàn dễ dàng vì chúng được lưu dưới dạng XML

Công nghệ ASP.NET sẽ hướng các lập trình viên Web vào quỹ đạo của chúng bằng các lý do sau :

Độc lập ngôn ngữ cho phép bạn không biên dịch ngôn ngữ, thực hiện tối ưu các ngôn ngữ kết hợp

Dễ phát triển: ASP.NET cho phép bạn khai báo và viết mã và đơn giản hóa

Trang 18

Thay vì sử dụng mô hình DLL, COM, DCOM trước đây, trong trường hợp ứng dụng sử dụng công nghệ ASP.NET bạn có thể sử dụng dịch vụ tương tự có tên

là Web Services

Ưu điểm của ASP.NET

ASP.NET có nhiều ưu điểm hơn các nền tảng khác khi dùng nó để tạo ứng dụng Web Có thể phần lớn những ưu điểm quan trọng của nó đi kèm với các máy chủ Windows và các công cụ lập trình Windows Ứng dụng web được tạo bởi ASP.NET được tạo ra, bắt lỗi và triển khai rất dễ dàng thông qua các tác vụ có thể thực thi trọn vẹn trong một môi trường phát triển duy nhất - Visual Studio NET

Với những nhà phát triển ứng dụng Web, ASP.NET bộc lộ những ưu điểm sau đây:

 Những phần thực thi được của ứng dụng Web được biên dịch, vì vậy chúng thực thi nhanh hơn là các kịch bản thông dịch

Trang 19

Hình 1.1 hoạt động

 Các cập nhập ngay lập tức giúp cho việc triển khai các ứng dụng Web

mà không phải khởi động lại máy chủ

 Truy cập tới NET Framework, có thể đơn giản hóa nhiều khía cạnh trong lập trình Windows

 Sử dụng nhiều những hiểu biết về ngôn ngữ lập trình C#, VB, vốn đã được tăng cường để hỗ trợ lập trình hướng đối tượng

 Giới thiệu ngôn ngữ lập trình mới mà nó cung cấp khả năng an toàn kiểu, hướng đối tượng, so với ngôn ngữ lập trình C

 Tự động quản lý trạng thái để điều khiển trang Web (được gọi là Server Controls) vì vậy chúng có gì đó giống với các Windows Controls

 Các tính năng bảo mật được xây dựng sẵn thông qua máy chủ Windows hoặc thông qua các phương thức xác nhận/phân quyền khác

 Tích hợp chặt chẽ với ADO.NET để cung cấp các truy xuất CSDL và các công cụ thiết kế CSDL trực quan trong bộ VS.NET

 Hỗ trợ đầy đủ XML, CSS và các chuẩn Web đã được thiết lập hoặc mới khác

 Các tính năng sẵn có để đệm các trang web thường xuyên được yêu cầu

Trang 20

trên máy chủ, các nội dung bản địa hóa cho các ngôn ngữ và trao đổi, nhận ra khả năng tương thích trình duyệt

Giới thiệu về cách thức truy cập dữ liệu

 Tổng quan

Phần lớn các ứng dụng hiện nay đều sử dụng cơ sở dữ liệu Có nhiều cách thức truy cập dữ liệu khác nhau trong các công nghệ của Microsoft như ADO, RDO, DAO, ODBC Tuy nhiên từ khi NET Framework ra đời thì công nghệ ADO.NET đã được tích hợp, ADO.NET chứa các lớp cho phép các ứng dụng connect data sources ( kết nối với các nguồn dữ liệu), execute commands (thực hiện các lệnh), manager disconnected data (quản lý dữ liệu đã ngắt kết nối) Với ADO.NET người lập trình có thể viết ít mã lệnh thao tác cơ sở dữ liệu hơn so với các công nghệ trước trong các ứng dụng client – server hoặc các ứng dụng trên desktop

Mặt khác, trong ASP.NET từ phiên bản NET Framework 3.0 trở lên có thêm các thao tác với cơ sở dữ liệu mà không sử dụng ADO.NET như SqlDataSource, LINQ hoặc profiles

Ngoài ra các ứng dụng truy cập dữ liệu của NET Framework còn có thể truy nhập vào các nguồn dữ liệu như File, Stream, XML, Ajax, web services, WCF, data services

 Truy cập dữ liệu ADO.NET

ADO.NET Data Providers cho phép truy cập vào một cơ sở dữ liệu cụ thể, thực hiện các câu lệnh SQL và nhận dữ liệu Data provider là chiếc cầu nối giữa ứng dụng và nguồn dữ liệu Lớp ADO.NET Data Provider bao gồm các thành phần: Connection: thực hiện connect tới nguồn cơ sở dữ liệu; Command: thực hiện một câu lệnh SQL hoặc một store procedures; DataReader: chỉ đọc và nhận dữ liệu

từ một truy vấn; DataAdapter thực hiện 3 nhiệm vụ: điền dữ liệu nhận được vào một DataSet, có thể ghi nhận sự thay đổi dữ liệu trong DataSet

 Truy cập dữ liệu XML

Trang 21

Dữ liệu XML ngày càng thông dụng và được phát triển mạnh mẽ hơn trước Trong các ứng dụng ngày nay, việc sử dụng XML thay cho dữ liệu truyền thống đang có xu hướng phát triển mạnh mẽ Tuy nhiên các ứng dựng XML làm cơ sở dữ liệu vẫn còn ở mức quy mô nhỏ và hạn chế.

 Truy cập dữ liệu với SQLDataSource

SqlDataSource là một thành phần được giới thiệu từ NET Framework 3.0

Sử dụng SqlDataSource để truy cập dữ liệu sẽ không cần phải viết mã lệnh lập trình, chỉ cần khai báo đầy đủ các thuộc tính cần SqlDataSource chỉ nên dùng khi không cần sử dụng truy vấn SQL quá phức tạp để thao tác với cơ sở dữ liệu

 Cách thức làm việc của ASP.NET

Mối quan hệ giữa ASPX File và Code-Behind File

File ASPX sẽ khai báo tên của file code liên kết với nó, và tên class trong file code mà nó thừa kế Tuy nhiên, class này chỉ là partial class File code sẽ chứa code để hiện thực các chức năng cần thêm vào của trang web, file aspx sẽ hiện thực giao diện của người dùng

Khi client gửi request ASPX file, ASP.NET sẽ tạo 2 classes Class đầu tiên

là một partial class khác với partial class trong code-behind file, tuy nhiên nó chứa phần còn lại của partial class này Khi biên dịch, phần class chứa khai báo web control sẽ liên kết với partial class khai báo trong code-behind file để tạo mộtlớphoànthiện

Lớp thứ hai được sinh ra bởi ASP.NET dựa trên ASPX file để định nghĩa cách thể hiện trực quan của trang web Lớp mới này sẽ được thừa kế từ lớp đã được khai báo trong code-behind file (lớp định nghĩa trang web về mặt luận lý) Trong lần đầu kích hoạt trang web, lớp này sẽ được biên dịch và một thực thể được tạo ra Thực thể này sẽ đại diện cho trang web và tạo ra file XHTML gửi cho client Nhiều người dùng có thể cùng sử dụng thực thể này mà không cần biên dịch lại Project sẽ dịch lại khi ta thay đổi ứng dụng, những thay đổi này được phát hiện trong môi trường thực thi

Trang 22

Cách thức vận hành của ASP.NET:

Hình 1.2 Cách thức của một HTTP request được xử lý trên server

Hình trên mô tả cách thức xử lý khi có một HTTP request của client đối với một aspx page trên IIS ( Internet Information Service)

Một yêu cầu loại HTTP được gửi đến IIS (INETIFO.EXE), nếu đó là yêu cầu đối với một aspx page thì nó sẽ được chuyển đến bộ lọc ISAPI ( thông qua tập tin aspnet_isapi.dll) Tại đây, bộ lọc sẽ gửi lại yêu cầu đến quá trình xử lý ASP.NET thông qua một đường ống (named pipe) Tại đây, ASP.NET sẽ tiến hành kiểm tra, nếu trang web được yêu cầu đã được biên dịch hay chưa Nếu trang web này đã được biên dịch thì nó sẽ được load từ bộ nhớ cache và gửi kết quả về cho client Ngược lại, nếu đây là yêu cầu đầu tiên đến trang này, ASP.NET sẽ tự động biên dịch trang này và lưu lại các đoạn mã assembly in thư mục Temporary

Trang 23

ASP.NET Files Bạn có thể tìm thấy thư mục này thông qua đường dẫn sau:

WINDOWS\Microsoft.NET\Framework\v.<version>\

ASP.NET sẽ tự động tham khảo đến các mã assembly có trong thư mục \bin

và nhiều mã assembly khác từ “global assembly cache”

Class đóng vai trò quan trọng nhất trong quá trình này là class Page .aspx page sẽ được chuyển thành một lớp dẫn xuất (derived class), tất cả các nội dung tĩnh như HTML, các khối render block trong mã ASP.NET sẽ được thể hiện trong phương thức Render Class Page cũng đóng vai trò quan trọng trong web form và server controls

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 Sau đó trong một thời gian dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk Các giấy tờ quan trọng đầu tiên đượ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 8 / tháng 9 năm 1988

 Kiến trúc của mô hình MVC

Trong kiến trúc MVC, một đối tượng đồ họa người dùng (GUI

Trang 24

Component) bao gồm 3 thành phần cơ bản: Model, View, và Controller Model có trách nhiệm đối 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 của đối tượng đồ 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.

Hình 1.3 Các thành phần chính của 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 trên Model Khi có bất kỳ sự thay đổi nào ở xảy ra ở Model, nó sẽ phát thông điệp (broadcast message) 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ó luôn là thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thông điệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác

Trang 25

Hình 1.4 Mô hình tuần tự của MVC

Khi người sử dụng nhấn chuột vào Checkbox, thành phần Controller của Checkbox sẽ xử lý sự kiện này, yêu cầu thành phần Model thay đổi dữ liệu trạng thái Sau khi thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View và Controller Thành phần View của Checkbox nhận được thông điệp sẽ cập nhật lại thể hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Model lưu giữ Thành phần Controller nhận được thông điệp

Trang 26

do Model gởi tới sẽ có những tương tác phản hồi với người sử dụng nếu cần thiết.

 Đặc điểm của 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,…

Model là thành phần chủ yếu được sử dụng để thao tác xử lý dữ liệu Trong

Trang 27

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

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

Trang 28

đị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ữ 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

1.2.2 MÔ HÌNH MVC TRONG ASP.NET

1.2.2.1 Giới thiệu tổng quan

Như đã nói ở phần 1, mô hình MVC với những ưu điểm đã được ứng dụng nhiều trên các nền tảng (framework) khác nhau, trong đó có một nền tảng (framework) nổi tiếng được nhiều người biết đến và sử dụng đó là nền tảng (framework) ASP.NET MVC Vậy ASP.NET MVC là gì ?

Trang 29

ASP.NET MVC là một nền tảng (framework) phát triển ứng dụng web mới của Microsoft, nó kết hợp giữa tính hiệu quả và nhỏ gọn của mô hình model-view- controller(MVC), những ý tưởng và công nghệ hiện đại nhất, cùng với những thành phần tốt nhất của nền tảng ASP.NET hiện thời Là một lựa chọn khác bên cạnh nền tảng WebForm khi phát triển 1 ứng dụng web sử dụng ASP.NET.

Trong chương này em sẽ trình bày lý do lại sao ASP.NET MVC được tạo

ra, nó có gì khác so với ASP.NET WebForm, và cuối cùng là những cái mới trong ASP.NET MVC

Hình 1.5 Mô hình MVC 1.2.2.2 Lịch sử phát triển của ASP.NET

Trang 30

Để hiểu được những đặc điểm nổi bật và mục tiêu thiết kế của ASP.NET MVC, trước tiên cần coi lại lịch sử phát triển của website ASP Trong số những nền tảng phát triển web của Microsoft, chúng ta sẽ thấy sức mạnh và sự phức tạp tăng lên theo từng năm Như trong bảng ta thấy mỗi nền tảng mới đều giải quyết những thiếu sót đặc trưng của nền tảng trước đó Tương tự, 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.

 ASP.NET truyền thống:

ASP.NET đã là 1 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 (có trạng thái) và phát triển web hướng HTML (không có trạng thái) Hình dưới minh họa công nghệ Asp.net WebForm trong lần đầu xuất hiện năm 2002

Hình 1.6 Mô hình ASP.NET Webform

Microsoft đã cố gắng che dấu HTTP (không trạng thái) và HTML (vào thời điểm đó không thân thiện với nhiều người lập trình) bằng cách dùng mô hình giao diện như một đối tượng điều khiển (control) có cấu trúc hoạt động phía

Trang 31

có xử lý sự kiện thông qua Web.

1.2.2.3 Nhược điểm của ASP.NET

ASP.NET truyền thống đã từng là một ý tưởng hay, nhưng thực tế lại trở nên rắc rối Qua nhiều năm, sử dụng ASP.NET WebForm cho thấy có một số nhược điểm:

 ViewState (trạng thái hiển thị): Kĩ thuật lưu giữ trạng thái qua các yêu cầu (request) thường mang lại kết quả là những khối dữ liệu lớn được chuyển qua lại giữa client và server Nó có thể đạt hàng trăm kilobytes trong nhiều dữ liệu thực, và nó đi qua đi lại với mỗi lần yêu cầu (request), làm những người truy cập vào trang web phải chờ một thời gian dài khi họ click một button hoặc cố gắng di chuyển đến trang kế tiếp ASP.NET bị tình trạng này rất tồi tệ, Ajax là một trong các giải pháp được đưa ra để giải quyết vấn đề này

 Page life cycle (chu kỳ sống của một trang web): Kĩ thuật kết nối sự kiện phía client với mã xử lý sự kiện phía server là một phần của page life cycle,

có thể cực kì rắc rối và mỏng manh Chỉ có một số ít lập trình viên thành công trong việc xử lý hệ thống đối tượng điều khiển (control) trong thời gian thực mà không bị lỗi ViewState hoặc hiểu được rằng một số trình xử lý sự kiện không được kích họat một cách bí hiểm

 Limited control over HTML (giới hạn kiểm soát HTML): Server control tự tạo ra nó như là mã HTML, nhưng không phải là mã HTML mà bạn muốn Ngoài việc mã HTML của chúng thường không tuân theo tiêu chuẩn web hoặc không sử dụng tốt CSS mà hệ thống các server control còn tạo ra các giá trị

ID phức tạp và không đoán trước dc, làm khó khăn trong việc sử dụng JavaScript

Trang 32

 Ý thức sai về sự tách biệt các thành phần: Mô hình code-behind của ASP.NET cung cấp một giải pháp cho phép ứng dụng đưa mã ra khỏi các dòng HTML vào thành một lớp code – behind riêng biệt Điều này đã được ca ngợi là làm tách biệt giữa giao diện với mã xử lý, nhưng thực tế người lập trình được khuyến khích pha trộn mã xử lý giao diện (xử lý cây control phía server) với mã

xử lý chương trình (xử lý CSDL) trong cùng những lớp code behind khổng lồ Nếu không có sự tách biệt rõ ràng giữa các thành phần, kết quả cuối cùng thường

là mỏng manh và khó hiểu

 Untestable (kiểm chứng): Khi những người thiết kế của ASP.NET lần đầu tiên giới thiệu nền tảng này, họ có thể đã không lường trước được là việc kiểm thử (test) tự động sẽ trở thành một công đoạn chính của việc phát triển phần mềm ngày nay Không quá ngạc nhiên, cấu trúc mà họ đã thiết kế hoàn toàn không thích hợp với việc kiểm thử (test) tự động

ASP.NET tiếp tục bổ sung thêm các tính năng Phiên bản 2.0 thêm nhiều thành phần (component) chuẩn có thể giảm khá nhiều lệnh mà bạn cần phải tự viết AJAX release năm 2007 đã là phản hồi của Microsoft với phong trào Web 2.0/Ajax hồi đó, hỗ trợ tương tác phía client trong khi làm cho công việc của người lập trình đơn giản hơn Phiên bản 3.5 là một bản nâng cấp nhỏ hơn, thêm hỗ trợ cho các tính năng của NET 3.5 và các đối tượng điều khiển (control) mới Tính năng ASP.NET Dynamic Data tạo ra các trang cho phép c hỉnh sửa / liệt kê cơ sở

dữ liệu một cách tự động

 Sự ra đời của ASP.NET MVC:

Vào tháng 11 năm 2007, ở hội thảo ALT.NET tại Austine, Texas, giám đốc điều hành Scott Guthrie của Microsoft đã công bố và mô tả về nền tảng phát triển web MVC mới, xây dựng trên ASP.NET, rõ ràng được thiết kế như là một lời hồi đáp thẳng vào các lời chỉ trích trước đây

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 – MVC lần đầu

Trang 33

được công bố vào năm 1978 trong dự án Smalltalk của Xerox PARC - nhưng ngày nay nó phổ biến như là một kiến trúc cho các ứng dụng web bởi vì các lý do sau :

 Người dùng tương tác với ứng dụng MVC tự nhiên sẽ theo một chu trình : người dùng thực hiện một hành động, và để hồi đáp lại, ứng dụng thay đổi

mô hình dữ liệu của nó và chuyển một trang đã được cập nhật cho người dùng,

và sau đó vòng xoay lập lại Điều này là thích hợp cho một ứng dụng web phải luân chuyển hàng lọat các lời yêu cầu cũng như hồi đáp

 Những ứng dụng web luôn cần phải kết hợp một số công nghệ (về cơ sở

dữ liệu, HTML và mã xử lý), luôn chia thành nhiều lớp, và những mẫu đề ra đã 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 các ứng dụng web

1.2.2.4 Khái quát các thành phần của ASP.NET MVC

Như đã giới thiệu ở chương trên, ASP.NET MVC cũng chia nhỏ một ứng dụng thành ba thành 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, views, và controllers

Trang 34

Hình 1.7 Nền tảng Asp.Net MVC Framwork

Models trong các ứng dụng dựa trên MVC là những thành phần có nhiệm

vụ lưu trữ thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong CSDL Lấy ví dụ, chúng ta có lớp Giáo trình được sử dụng để mô tả dữ liệu từ bảng Giáo trình trong SQL, bao gồm Mã giáo trình, Tên giáo trình

Views chính là các thành phần chịu trách nhiệm hiển thị các thông tin lên cho người dùng thông qua giao diện Thông thường, các thông tin cần hiển thị được lấy từ thành phần Models

Ví dụ, đối tượng Giáo trình có một "Edit" view bao gồm các textbox, các dropdown và checkbox để chỉnh sửa các thuộc tính của thông tin giáo trình; có một "Display" view gồm 2 dòng, cột dòng là Mã giáo trình, dòng sau là Tên giáo trình để xem thông tin về sinh viên

Controllers trong các ứng dụng kiểu MVC chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với models, và cuối cùng là chọn một view

Trang 35

thích hợp để hiển thị ra màn hình Trong kiến trúc MVC, View chỉ có tác dụng hiển thị giao diện mà thôi, còn điều kiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách.

1.2.2.5 Lợi ích của mô hình ASP.NET MVC

 Hỗ trợ kết hợp rất tốt giữa người lập trình và người thiết kế giao diện

 Sử dụng các tính năng tốt nhất đã có của ASP.NET

1.2.2.6 Đặ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

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

Trang 36

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 động thêm, sửa, xóa đều có thể thực hiện thông các các phương thức có sẵn của từng đối tượng tương ứng.

1.2.3 So sánh ASP.NET MVC với ASP.NET

Bạn đã được nghe qua về điểm yếu và giới hạn của ASP.NET WebForm truyền thống, và làm thế nào mà ASP.NET MVC vượt qua những vấn đề này Điều đó không có nghĩa là ASP.NET WebForm đã chết mà chỉ là : Microsoft muốn mọi người hiểu rằng có hai nền tảng song song nhau, hỗ trợ cho nhau, và cả hai đều là đối tượng cho việc phát triển hiện tại Nói chung, việc bạn chọn lựa giữa hai mô hình còn tùy vào hoàn cảnh

ASP.NET WebForm mang tới một trang web mà giao diện có thể lưu giữ trạng thái, và cuối cùng thêm vào một lớp trừu tượng tinh vi nằm trên HTTP và HTML, sử dụng ViewState và postback để tạo ra hiệu ứng của việc có trạng thái Điều này thích hợp với phong cách phát triển kéo và thả của Window Form, tức

là bạn đặt các đối tượng có giao diện lên trang và mã xử lý vào trình xử lý sự kiện của chúng

MVC hòa vào bản chất không trạng thái của HTTP , làm việc chung với

nó hơn là chống lại Điều này yêu cầu bạn phải hiểu thật sự cách làm việc của một ứng dụng web, để đạt được điều đó, MVC cung cấp một cách tiếp cận đơn giản, mạnh mẽ và hiện đại cho việc viết các ứng dụng web với mã có trật tự mà dễ dàng để kiểm thử (test) và bảo trì sau này, giải phóng những phức tạp khó chịu và các giới hạn không đáng có

Điều đặc biệt là ASP.NET MVC có mã nguồn mở, không giống các nền tảng trước đó, bạn có thể dễ dàng tải mã nguồn gốc của ASP.NET MVC, thậm chí bạn có thể sửa đổi và tạo ra phiên bản của riêng bạn

Có những tình huống mà ASP.NET WebForm khá tốt thậm chí còn tốt hơn

Trang 37

ASP.NET MVC Ví dụ như các ứng dụng nhỏ, nội bộ mà trực tiếp kết nối thẳng vào các bảng CSDL hoặc dẫn người sử dụng thông qua các trình hướng dẫn tự động (wizard) Vì thế sẽ không cần phải lo lắng về băng thông do ViewState, không dính dáng tới vấn đề tối ưu hóa hệ thống tìm kiếm, và không bị làm phiền

về việc kiểm thử (test) và bảo trì lâu dài Sự tiện lợi của cách phát triển kiểu kéo thả của ASP.NET WebForm làm mờ đi các điểm yếu của nó

Nhưng mặt khác, nếu bạn viết 1 ứng dụng trên Internet, hoặc các ứng dụng nội bộ lớn hơn, bạn sẽ hướng tới tốc độ download nhanh và tương thích trình duyệt chéo, được xây dựng với chất lượng cao hơn, mã kiến trúc tốt thích hợp cho việc test tự động, trong trường hợp đó ASP.NET MVC sẽ mang lại nhưng ưu điểm quan trọng

 Sau đó chúng ta cần phải cài đặt bộ Visual Studio 2008 hoặc 2010 (trong thực tập này em sử dụng Visual Studio 2010)

Sau khi chúng đã cài đặt xong bộ Visual Studio, để khởi tạo một dự án MVC, ta chọn File -> New Project (hoặc sử dụng phím tắt Ctrl + Shift + N) Ta có thể tùy chọn ngôn ngữ Visual Basic hoặc c# (trong thực tập này em chọn C#), ta chọn tiếp ứng dụng Web, chọn tiếp ASP.NET MVC 2 Web application

Trang 38

Hình 1.9 Giao diện tạo project

Trang 39

Nhấn nút ok chương trình mvc có cấu trúc như sau:

Hình 1.10 Giao diện Solution của MVC

Bạn nhấn F5 để chạy chương trình

Trang 40

Giao diện website ứng dụng mô hình MVC

Như vậy là chúng ta đã tạo cho mình một trang Web nhỏ ứng dụng mô hình MVC, trong các phần sau chúng ta sẽ tìm hiểu rõ hơn cách thức hoạt động của mô hình MVC trong ASP.NET

Ngày đăng: 08/12/2016, 23:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1].Phạm Hữu Khang (2007), Lập trình ASP.NET NXB Lao động Xã hội Sách, tạp chí
Tiêu đề: Lập trình ASP.NET
Tác giả: Phạm Hữu Khang
Nhà XB: NXB Lao động Xã hội
Năm: 2007
[3].Phạm Hữu Khang (2010), Microsoft SQL Server 2008 - Quản Trị Cơ Sở Dữ Liệu NXB Lao động Xã hội Sách, tạp chí
Tiêu đề: Microsoft SQL Server 2008 - Quản Trị Cơ Sở Dữ Liệu
Tác giả: Phạm Hữu Khang
Nhà XB: NXB Lao động Xã hội
Năm: 2010
[5] Andrew Siemer, GASP .NET MVC Cookbook, 2011 Sách, tạp chí
Tiêu đề: GASP .NET MVC Cookbook
[6] John Sharp, Microsoft Visual C# 2013, Microsoft Sách, tạp chí
Tiêu đề: Microsoft Visual C# 2013
[2]. Bài giảng Lập trình ASP.NET C# 4.0 - jQuery basic - Lương Trần Hy Hiến Khác
[4] Đào Hải Nam, LINQ to SQL Tutorial, 2009 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.4. Mô hình tuần tự của MVC - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 1.4. Mô hình tuần tự của MVC (Trang 25)
Hình 1.5. Mô hình  MVC 1.2.2.2. Lịch sử phát triển của  ASP.NET - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 1.5. Mô hình MVC 1.2.2.2. Lịch sử phát triển của ASP.NET (Trang 29)
Hình 1.9. Giao diện tạo project - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 1.9. Giao diện tạo project (Trang 38)
Hình 2.3. Biểu đồ UC người tìm việc - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.3. Biểu đồ UC người tìm việc (Trang 60)
Hình 2.4. Biểu đồ UC cho nhà tuyển dụng - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.4. Biểu đồ UC cho nhà tuyển dụng (Trang 61)
Hình 2.5. Biểu đồ UC cho quyền admin - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.5. Biểu đồ UC cho quyền admin (Trang 62)
Hình 2.6. Biểu đồ UC quản lý nhà tuyển dụng - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.6. Biểu đồ UC quản lý nhà tuyển dụng (Trang 63)
Hình 2.7. Biểu đồ UC quản lý người tìm việc - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.7. Biểu đồ UC quản lý người tìm việc (Trang 64)
Hình 2.8. biểu đồ trình tự UC đăng nhập - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.8. biểu đồ trình tự UC đăng nhập (Trang 65)
Hình 2.9. Biểu đồ tình tự UC đăng ký - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.9. Biểu đồ tình tự UC đăng ký (Trang 66)
Hình 2.10. Biểu đồ UC xem tin tức - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.10. Biểu đồ UC xem tin tức (Trang 67)
Hình 2.11. Biểu đồ UC xóa tin tức - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.11. Biểu đồ UC xóa tin tức (Trang 68)
Hình 2.12. biểu đồ UC chỉnh sửa thành viên - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 2.12. biểu đồ UC chỉnh sửa thành viên (Trang 69)
Hình 3.3 trang đang nhập - Xây dựng website tìm kiếm việc làm cho tỉnh thái nguyên
Hình 3.3 trang đang nhập (Trang 74)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w