1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình ứng dụng web

212 12 0

Đ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

Tiêu đề Lập Trình Ứng Dụng Web
Tác giả ThS. Mai Ngọc Thu, ThS. Nguyễn Đình Ánh
Trường học Đại Học Công Nghệ Tp.Hcm
Thể loại Ấn bản
Năm xuất bản 2015
Định dạng
Số trang 212
Dung lượng 8,61 MB

Cấu trúc

  • BÀI 1: ASP.NET (9)
    • 1.1 TỔNG QUAN ASP.NET (9)
      • 1.1.1 Giới thiệu (9)
      • 1.1.2 ASP.NET tích hợp với Framework (9)
      • 1.1.3 Tính đa ngôn ngữ (9)
      • 1.1.4 Tính hướng đối tượng (10)
      • 1.1.5 Biên dịch ASP.NET (10)
      • 1.1.6 Dễ dàng triển khai và cấu hình (11)
    • 1.2 TÍNH NĂNG MỚI TRONG ASP.NET (11)
      • 1.2.1 Các công cụ điều khiển mới (12)
      • 1.2.2 LINQ (12)
      • 1.2.3 Các Assembly mới (12)
      • 1.2.4 ASP.NET MVC (Model View Control) (12)
    • 1.3 TẠO TRANG WEB VỚI VISIUAL STUDIO (13)
      • 1.3.1 Tạo dự án mới (13)
      • 1.3.2 Ví dụ (15)
    • 1.4 CÁC SỰ KIỆN TRONG ASP.NET (16)
      • 1.4.1 Chu kỳ sống của trang web trong ASP.NET (Page Life Cycle) (17)
      • 1.4.2 Một số sự kiện của trang web (17)
      • 1.4.3 Sự kiện ứng dụng (18)
  • BÀI 2: CÁC LỚP SỬ DỤNG TRONG ASP.NET (23)
    • 2.1 HTTP REQUEST (23)
      • 2.1.1 Giới thiệu (23)
      • 2.1.2 Các thuộc tính (24)
    • 2.2 HTTP RESPONSE (27)
      • 2.2.1 Giới thiệu (27)
      • 2.2.2 Các thuộc tính/phương thức (28)
    • 2.3 HTTP SERVER (28)
    • 2.4 SESSION VÀ COOKIE (29)
      • 2.4.1 Giới thiệu Cookie và Session (29)
      • 2.4.2 Cookie (30)
      • 2.4.3 Session (31)
  • BÀI 3: TRUY CẬP DỮ LIỆU (36)
    • 3.1 TỔNG QUAN (36)
    • 3.2 TRUY CẬP DỮ LIỆU ADO.NET (38)
    • 3.3 TRUY CẬP DỮ LIỆU XML (39)
    • 3.4 SQLDATASOURCE (40)
    • 3.5 TRUY CẬP DỮ LIỆU LINQ (42)
      • 3.5.1 LINQ cơ bản (43)
      • 3.5.2 Cách làm việc của LINQ (43)
      • 3.5.3 Cú pháp LINQ (43)
  • BÀI 4: LẬP TRÌNH GIAO DIỆN WEB VỚI JQUERY (49)
    • 4.1 J QUERY LÀ GÌ? (49)
      • 4.1.1 Giới thiệu (49)
      • 4.1.2 Sử dụng jQuery trong ASP.NET (50)
    • 4.2 LẬP TRÌNH VỚI J QUERY (51)
      • 4.2.1 Chạy mã khi trang đã sẵn sàng (51)
      • 4.2.2 Hàm $() - function $() (52)
      • 4.2.3 Một số API trong jQuery (52)
  • BÀI 5: TỔNG QUAN VỀ ASP.NET MVC FRAMEWORK (60)
    • 5.1 TỔNG QUAN ASP.NET MVC (60)
      • 5.1.1 Mô hình MVC cơ bản (60)
      • 5.1.2 Đặc tính trong ASP.NET MVC (61)
      • 5.1.3 Khác biệt với Web Form (61)
      • 5.1.4 Lợi ích của ứng dụng web dựa trên mô hình MVC (62)
    • 5.2 XÂY DỰNG ỨNG DỤNG VỚI ASP.NET MVC (64)
      • 5.2.1 Tạo Project với ASP.NET MVC Web Application (64)
    • 5.3 ĐỊNH TUYẾN URL (66)
      • 5.3.1 Giới thiệu (66)
      • 5.3.2 Tìm hiểu định tuyến URL (67)
  • BÀI 6: MODEL – VIEW CONTROLLER (71)
    • 6.1 TÌM HIỂU VỀ CONTROLLER (71)
    • 6.2 TÌM HIỂU VỀ VIEW (73)
    • 6.3 TÌM HIỂU VỀ MODEL (75)
    • 6.4 CẤU TRÚC VIEWS\SHARE\SITE.MASTER (78)
  • BÀI 7: CẬP NHẬT DỮ LIỆU VỚI MVC (81)
    • 7.1 THÊM MỚI DỮ LIỆU TRONG MVC (81)
      • 7.1.1 Thêm các phương thức dữ liệu với mô hình dbml (81)
      • 7.1.2 Các hành động (action) tại các bộ điều khiển (controller) (82)
    • 7.2 SỬA ĐỔI DỮ LIỆU TRONG MVC (84)
    • 7.3 QUY TRÌNH KIỂM TRA TRONG ỨNG DỤNG MVC (89)
      • 7.3.1 Controller trong ứng dụng test (89)
      • 7.3.2 Kiểm thử kết quả trả về từ một controller (93)
  • BÀI 8: THỰC HIỆN BẢO MẬT CHO ỨNG DỤNG ASP.NET MVC (96)
    • 8.1 AUTHENTICATION - XA C THƯ C NGƯỜI DU NG (0)
      • 8.1.1 Tạo ngư i d ng mặc định với ứng dụng ASP.NET MVC (0)
      • 8.1.2 Quản l ngư i d ng với công cụ Website Administration (0)
      • 8.1.3 Roles - Ph n quyền nh m ngư i d ng (0)
    • 8.2 CẤU HÌNH VIỆC XÁC THƯ C NGƯỜI DÙNG (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

ASP.NET

TỔNG QUAN ASP.NET

Trước hết, tên đầy đủ của ASP.NET là Active Server Pages NET (.NET ở đây là

ASP.NET là một công nghệ cách mạng trong việc phát triển ứng dụng mạng, hiện tại và tương lai Nó hoạt động như một khung tổ chức (framework) để xây dựng các ứng dụng mạnh mẽ cho web, dựa trên CLR (Common Language Runtime).

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

.NET Framework được tổ chức thành các tác vụ riêng biệt, bao gồm lớp (class), cấu trúc (structures), giao diện (interfaces) và lõi (core) của chương trình Để sử dụng các thành phần này, người dùng cần nắm rõ chức năng và cấu trúc của chúng Hàng ngàn lớp trong NET Framework được phân loại theo trình tự logic trong các namespace, mỗi namespace mang đến một tính năng cụ thể.

1.1.3 Tính đa ngôn ngữ Để xây dựng một ứng dụng web chúng ta không chỉ chọn 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à một ngôn ngữ lập trình hướng đối tượng dựa trên các ngôn ngữ NET, cung cấp một tập hợp các đối tượng nhỏ và hoạt động trên nguyên lý của HTTP và HTML Mặc dù mã nguồn không cho phép truy cập đầy đủ vào tất cả các đối tượng trong NET Framework, nhưng nó cho phép khai thác các quy tắc của môi trường lập trình hướng đối tượng (OOP) Người dùng có thể tạo ra các lớp, giao diện và kế thừa các lớp, đồng thời kiểm soát các đối tượng trong chương trình, bao gồm việc hiển thị dữ liệu và xử lý các sự kiện của đối tượng.

Một ứng dụng ASP.NET luôn được biên dịch trước khi chạy, không sử dụng mã C# hoặc Visual Basic trực tiếp Quá trình biên dịch của ứng dụng ASP.NET diễn ra qua hai giai đoạn.

- Giai đoạn đầu tiên những các mã (code) ta viết (C#,

Visual Basic hoặc ngôn ngữ

.NET khác) được dịch bởi

Giai đoạn dịch trong ngôn ngữ MSIL diễn ra tự động khi trang web đầu tiên được yêu cầu Chúng ta cũng có thể thực hiện dịch trước, với các tập tin được chuyển đổi thành mã IL.

The next phase occurs before the website is executed, where IL code is translated into native machine code This process is known as Just-In-Time (JIT) compilation.

Hình 1.1: Kiến trúc Net Framework

Khía cạnh quan trọng nhất của công cụ ASP.NET là khả năng hoạt động trong môi trường thời gian thực của CLR (Common Language Runtime), một máy ảo trong Microsoft NET Nhờ vào ngôn ngữ trung gian IL, ứng dụng phát triển trên NET không bị phụ thuộc vào thiết bị, cho phép chạy trên bất kỳ thiết bị nào có NET Framework Tất cả các namespace, ứng dụng và lớp trong bộ NET Framework được gọi là bộ quản lý mã, cùng với các dịch vụ quan trọng khác mà CLR cung cấp.

1.1.6 Dễ dàng triển khai và cấu hình

Mọi cài đặt NET Framework đều cung cấp các lớp giống nhau, cho phép triển khai ứng dụng ASP.NET một cách dễ dàng 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ủ, và máy chủ chỉ cần cài đặt NET Framework để hoạt động.

Việc cấu hình dễ dàng đơn giản không phụ thuộc vào IIS (Internet Information

Cấu hình trong ASP.NET được lưu trữ trong tập tin web.config, nằm cùng thư mục với trang web Tập tin này không bị khóa, cho phép người dùng truy cập và chỉnh sửa dễ dàng, vì nó được lưu dưới định dạng XML.

TÍNH NĂNG MỚI TRONG ASP.NET

Microsoft đã phát hành ASP.NET 3.5 vào ngày 19 tháng 11 năm 2007, cùng với Visual Studio 2008, đánh dấu sự tiến hóa từ ASP.NET 2.0 Để chuyển từ ASP.NET 2.0 sang 3.5, người dùng chỉ cần cài đặt thêm các tính năng mới của phiên bản này Bài viết này sẽ giới thiệu một số tính năng nổi bật trong ASP.NET 3.5.

1.2.1 Các công cụ điều khiển mới

Các công cụ (control) ListView và DataPager có thể dùng mới kiểu dữ liệu mới LinqDataSource

ListView trong ASP.NET 2.0 linh hoạt hơn và tích hợp đầy đủ tính năng của Gridview, Datagrid, và Repeater Nó cho phép người dùng thực hiện các thao tác như chèn, xóa, sửa, sắp xếp và phân trang Người dùng có thể định dạng hiển thị dữ liệu trên ListView mà không cần sử dụng thẻ Các Template trong ListView rất phong phú và đa dạng, trong khi Datager hỗ trợ hiệu quả cho việc phân trang.

LINQ (Language Integrated Query) mang đến một phương pháp lập trình mới trong NET, cho phép lập trình viên thực hiện truy vấn dữ liệu bằng cú pháp SQL ngay trong C# hoặc VB.NET Giải pháp này áp dụng cho mọi loại dữ liệu, từ đối tượng đến các nguồn dữ liệu khác nhau.

Cơ sở dữ liệu quan hệ và XML

- System.Core.dll: Các cài đặt cho LINQ to Objects

- System.Data.Linq.dll: Các cài đặt cho LINQ to SQL

- System.Xml.Linq.dll: Các cài đặt cho LINQ to XML

- Các hiện thực cho LINQ đến DataSet

- System.Web.Extensions.dll: Các cài đặt for ASP.NET AJAX

1.2.4 ASP.NET MVC (Model View Control)

Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần (component) khác nhau Model, View và Controller:

Model chịu trách nhiệm cung cấp và lưu trữ dữ liệu trong các kho dữ liệu Tất cả các nghiệp vụ logic được thực hiện tại Model, nơi dữ liệu từ người dùng được kiểm tra qua View trước khi được lưu vào cơ sở dữ liệu Model cũng đảm nhiệm việc truy xuất, xác nhận và lưu trữ dữ liệu.

View là thành phần hiển thị thông tin cho người dùng trong ứng dụng, có nhiệm vụ nhận dữ liệu từ người dùng, gửi yêu cầu đến bộ điều khiển, và hiển thị phản hồi từ bộ điều khiển Các trang HTML, JSP, thư viện thể và tập tin nguồn đều là một phần của View.

Controller là thành phần trung gian giữa Model và View, có nhiệm vụ nhận yêu cầu từ máy khách Khi nhận yêu cầu, Controller sẽ thực hiện chức năng logic phù hợp từ Model và tạo ra kết quả để hiển thị cho người dùng thông qua View.

TẠO TRANG WEB VỚI VISIUAL STUDIO

- Chúng ta kích hoạt ứng dụng Visual Studio (h1.2)

Hình 1.2: Tạo mới dự án

- Nếu chọn New Project xuất hiện hộp hội thoại New Project (h1.3)

 Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng

 Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng

- Trong Templates chọn ASP.NET Web Application,

- Trong Name đặt tên cho Project, tên do ta đặt

- Trong Location là thư mục chứa Project

 Nếu chọn New Web Site xuất hiện hộp hội thoại New Project sau

 Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng

 Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng

- Trong Templates chọn ASP.NET Web Application

- Trong Location chọn tên và thư mực chứa Project

Hình 1.3: Chọn ứng dụng Web form application

Hình 1.4: Tạo dự án dạng Web form

Để tạo một dự án mới có tên là ViDu1, bạn cần chọn ổ đĩa D và ngôn ngữ lập trình C# Sau khi hoàn tất, bấm OK để hệ thống tạo ra tập tin Default.aspx.

Trong ví dụ đầu tiên này chúng ta soạn một đoạn mã sau trong Default.aspx:

5

- Transfer: gửi tất cả thông tin mà nó đã xử lý từ trang ASP hiện hành sang trang

Cú pháp: Tham số path là đường dẫn của tập tin ASP cần chuyển điều khiển

- Phương thức URLEncode: Tương tự như phương thức HTMLEncode, phương thức

URLEcode dùng để mã hoá URL thành chuỗi

Cú pháp: Khi mã hoá chuỗi URL sang chuỗi bình thường nếu gặp các ký tự như sau, sẽ chuyển sang ký tự tương ứng:

 Ký tự khoảng trắng chuyển thành dấu +

 Ký tự không thuộc ký tự chữ và số sẽ chuyển thành số hexadecimal.

SESSION VÀ COOKIE

2.4.1 Giới thiệu Cookie và Session Điểm chung giữa Cookie và Session là việc lưu trữ và quản lý một số thông tin liên quan đến người dùng website, những thông tin này cần dùng trên nhiều trang web của cùng hệ thống website

Thông tin được lưu trữ trong một khoảng thời gian nhất định và có thể tự hủy khi hết thời gian cho phép Cookie và Session giúp gửi thông tin giữa các trang web mà không cần sử dụng phương thức POST/GET, từ đó giảm thiểu việc phát sinh biến Chúng thường được sử dụng để lưu trữ thông tin đăng nhập của người dùng, xác định thời điểm đăng nhập và thoát khỏi website.

Redirect để có thể quản lý, chặn truy cập từ người dùng khi chưa đăng nhâp…

Cookie được lưu trữ trên trình duyệt và khi người dùng truy cập vào một website, server sẽ gửi cookie về trình duyệt để lưu trữ trực tiếp trên máy của người dùng.

Cookie khác nhau tùy thuộc vào loại trình duyệt, địa chỉ IP của người dùng và máy chủ của website Mỗi website tạo ra và gửi cookie đến trình duyệt, vì vậy hai website khác nhau, dù cùng được lưu trữ trên một máy chủ, sẽ gửi hai cookie khác nhau đến trình duyệt.

Mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng, vì vậy hai trình duyệt khác nhau khi truy cập cùng một website sẽ nhận được hai cookie khác nhau.

Trong ASP.NET các phương thức, thuộc tính liên quan đến việc xử lý Cookie được lưu trữ trong class HttpCookie Các thuộc tính thường dùng trong Cookie:

- Domain: Tên miền của Cookie lưu trữ

- Expires: Xác định thời gian hiệu lực của Cookie

- Value: Giá trị của Cookie

- HasKeys: Cho biết Cookie có tập giá trị con hay không

- Values: Tập các giá trị của Cookie

Mỗi khi người dùng truy cập vào website, trình duyệt sẽ gửi cookie đến server, nơi mà server sẽ "đọc" cookie và thực hiện các tác vụ tương ứng Cookie mà website gửi đến trình duyệt thường bao gồm ba thành phần chính.

- Địa chỉ URL của website mà trình duyệt nhận cookie

- Thời gian tồn tại của Cookie

Cú pháp: Respone.Cookies[cookie][key|attribute]=value;

Trong đó, cookie là tên biến cookie, key là tham số mở rộng cho Cookie, attribute là các thuộc tính của biến Cookie

Cú pháp: value = Request.Cookies[cookie][key|attribute];

Thao tác trên Cookie có nhiều Subkey

- Xóa Cookie: Việc xóa Cookie thực chất là thao tác chỉnh thời gian hiệu lực về trước thời điểm hiện tại so với giờ hệ thống

Chúng ta có thể chưa sử dụng cookie để lưu trữ giỏ hàng, vì cookie quá nhỏ và đơn giản Để vượt qua hạn chế của cookie, ASP.NET Framework cung cấp một chức năng mới gọi là Session State Tương tự như cookie, Session lưu trữ dữ liệu riêng biệt cho từng người dùng, nhưng có nhiều ưu điểm hơn.

Cookie và Session không giới hạn dung lượng lưu trữ, cho phép lưu trữ hàng Gigabyte dữ liệu Đặc biệt, Session có khả năng lưu trữ các đối tượng phức tạp hơn như chuỗi Text Chúng ta có thể lưu trữ nhiều đối tượng trong Session, chẳng hạn như Dataset hoặc Giỏ hàng (Shopping Cart).

Trong ASP.NET và các công nghệ lập trình web khác, Session được khởi tạo khi Client gửi yêu cầu đến Server và sẽ kết thúc khi Client hủy Session hoặc sau một khoảng thời gian không có hoạt động nào với Server.

Khi Session được tạo đồng thời phương thức Session_OnStart() sẽ được thực thi và tương tự khi kết thúc Session phương thức Session_OnEnd() sẽ được thực thi

2.4.3.3 Một số phương thức thao tác trên session

- Timeout : Qui định khoảng thời gian (tính bằng phút) Web Server duy trì Session nếu người dùng không gởi yêu cầu nào về lại Server

Giá trị mặc định của Timeout là 20 phút Nếu không có yêu cầu nào được gửi đi sau lần yêu cầu cuối cùng trong khoảng thời gian này, đối tượng Session do Web server cấp sẽ tự động được giải phóng.

 Những yêu cầu sau đó, webserver coi như là một người dùng mới, và sẽ cấp một đối tượng Session mới

Ví dụ: Thiết lập thời gian cho 1 phiên làm việc của user là 100 phút

Có thể thiết lập thuộc tính này trong tập tin Web.config

- SessionID: chứa ID của session đang kích hoạt, mỗi user được phân biệt bởi sessionID gọi là mã phiên làm việc

- Count: trả về số session trong một ứng dụng

- Abandon(): giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên

Web Server ngay khi được gọi thực hiện Những yêu cầu sau đó được Web server coi như là một người dùng mới

- Remove(“SessionName”): xoá dữ liệu trên biến “VarSession”

- RemoveAll(): Xoá dữ liệu, nhưng sessionID vẫn tồn tại

- Cũng có thể dùng Session để lưu các biến giá trị như Cookie

Bài học này giới thiệu về các đối tượng làm việc thông dụng và quan trọng trong kỹ thuật lập trình web là Request, Response, Cookie và Session

Request là lớp đại diện cho HttpRequest, cho phép trình duyệt gửi thông tin cần thiết tới máy chủ Đối tượng Request tiếp nhận tất cả giá trị mà trình duyệt của client gửi đến server qua yêu cầu HTTP.

Http Response là phương thức truyền dữ liệu từ web server đến web browser Đối tượng Server cung cấp các chức năng để chuyển điều khiển giữa các trang, cũng như lấy thông tin về mã lỗi và mã hóa dữ liệu.

Cookie được lưu trữ trên trình duyệt và được gửi từ server đến máy người dùng khi truy cập vào một website Mỗi loại trình duyệt, địa chỉ IP và server sẽ tạo ra cookie khác nhau Hai website khác nhau, dù cùng host trên một server, sẽ gửi cookie riêng biệt đến trình duyệt Hơn nữa, mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng, do đó, hai trình duyệt khác nhau truy cập cùng một website sẽ nhận được cookie không giống nhau.

Session là một phương thức lưu trữ dữ liệu riêng biệt cho từng người sử dụng, tương tự như Cookie, nhưng không bị giới hạn về dung lượng, cho phép lưu trữ hàng Gigabyte dữ liệu và các đối tượng phức tạp hơn như chuỗi Text Khi Client gửi yêu cầu đến Server, Session sẽ được tạo ra và sẽ kết thúc khi Client hủy Session hoặc sau một khoảng thời gian không có hoạt động nào trên Server.

Trong bài thực hành này, chúng ta sẽ sử dụng Visual Studio để thiết kế trang web, bao gồm việc tạo các trang nhập liệu, truyền tham số giữa các trang và hiển thị thông tin chi tiết Các công việc này có thể được thực hiện theo từng bước cụ thể.

Tạo WebForm, đặt tên là DVDCatalog.aspx với giao diện thiết kế như sau:

Trong cửa sổ Solution Explorer, ta bấm chuột phải lên file DVDCatalog.aspx, chọn View Code Trong sự kiện Form_Load ta hãy viết lệnh sau:

Ta bấm đúp vào nút Reset để thực hiện viết mã lệnh như sau:

Ta viết sự kiện cho nút Submit và bấm đúp vào nút Submit để thực hiện lệnh:

Ta tạo mới một Web Form và đặt tên là Bill.aspx Trong cửa sổ Solution

Explorer, ta bấm chuột phải lên file Bill.aspx, chọn View Code Trong sự kiện Page_Load ta viết mã lệnh sau:

TRUY CẬP DỮ LIỆU

TỔNG QUAN

Hầu hết các ứng dụng hiện nay đều sử dụng cơ sở dữ liệu và có nhiều phương thức truy cập dữ liệu trong các công nghệ của Microsoft như ADO, RDO, DAO và ODBC Tuy nhiên, với sự ra đời của NET Framework, công nghệ ADO.NET đã được tích hợp, cung cấp các lớp cho phép ứng dụng kết nối hiệu quả với các nguồn dữ liệu.

ADO.NET cho phép lập trình viên kết nối các nguồn dữ liệu, thực hiện các lệnh và quản lý dữ liệu đã ngắt kết nối một cách hiệu quả So với các công nghệ trước đây, ADO.NET giúp giảm thiểu mã lệnh cần viết để thao tác với cơ sở dữ liệu trong các ứng dụng client-server và desktop.

Trong ASP.NET từ phiên bản NET Framework 2.0 trở đi, người dùng có thể thực hiện các thao tác với cơ sở dữ liệu mà không cần sử dụng ADO.NET, thông qua các công cụ như SqlDataSource, LINQ và Profiles.

Additionally, NET Framework applications can access external data sources such as files, streams, XML, Ajax, web services, WCF, and data services.

In this lesson, we will create a website project that interacts with a database using Visual Studio 2008 We will set up a project website and create a database named DB_TEST.MDF within the App_Data folder Additionally, we will utilize the DB_TEST database to create two tables: HangHoa and KhoHang.

Hình 3.1: Thêm Sql cơ sở dữ liệu từ dự án

Để truy cập vào cơ sở dữ liệu, chúng ta cần tạo một chuỗi kết nối trong tập tin cấu hình web.config và đặt tên cho nó là ConnectionString.

Nội dung tập tin web.config:

For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId9433

TRUY CẬP DỮ LIỆU ADO.NET

ADO.NET Data Providers là cầu nối giữa ứng dụng và cơ sở dữ liệu, cho phép thực hiện các câu lệnh SQL và truy xuất dữ liệu một cách hiệu quả.

Lớp ADO.NET Data Provider bao gồm các thành phần:

- Connection: Thực hiện kết nối 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 2 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

Ví dụ sử dụng ADO.NET với GridView trong webform Adonet.aspx, nơi bạn tạo một GridView có tên là GridView1 để hiển thị dữ liệu Mã lệnh thực hiện kết nối dữ liệu sẽ được sử dụng để lấy và hiển thị thông tin trong GridView này.

SqlConnection(ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionStr ing);

SqlCommand sql = new SqlCommand(“SELECT * FROM HangHoa”, conn);

SqlDataAdapter sda = new SqlDataAdapter(sql); sda.Fill(ds, “HangHoa”);

DataTable dt = ds.Tables[“HangHoa”];

Kết quả chương trình là:

Hình 3.3: Hiển thị danh sách hang hóa trên trang với GridView

TRUY CẬP DỮ LIỆU XML

Dữ liệu XML ngày càng trở nên phổ biến và phát triển mạnh mẽ trong các ứng dụng hiện nay Việc thay thế dữ liệu truyền thống bằng XML đang có xu hướng gia tăng Tuy nhiên, việc sử dụng XML làm cơ sở dữ liệu vẫn còn bị giới hạn và chủ yếu ở quy mô nhỏ.

Ví dụ sử dụng GridView để hiển thị dữ liệu trong một tập tin XML

Nội dung tập tin Employee.xml:

Nội dung tập tin XML.aspx.cs:

DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath(“Employee.xml”));

DataTable dt = ds.Tables[“Employees”];

Kết quả chương trình là:

Hình 3.4: Kết quả chương trình

SQLDATASOURCE

SqlDataSource là một thành phần trong NET Framework 2.0, cho phép truy cập dữ liệu mà không cần viết mã lập trình, chỉ cần khai báo các thuộc tính cần thiết Tuy nhiên, SqlDataSource chỉ nên được sử dụng cho các truy vấn SQL đơn giản, không phù hợp với các thao tác phức tạp trên cơ sở dữ liệu.

SqlDataSource là một cách thức kết nối dữ liệu dùng ADO.NET provider:

SqlDataSource yêu cầu một chuỗi kết nối (connectionString) thường được định nghĩa trong tệp web.config Sau đó, SqlDataSource sẽ thực thi một câu lệnh SQL, có thể là câu lệnh truy vấn SELECT hoặc các lệnh thay đổi dữ liệu như DELETE, INSERT và UPDATE.

Hình 3.5: Kết hợp dữ liệu với SqlDataSource

Lựa chọn bảng cần hiển thị dữ liệu vào trong SqlDataSource (ví dụ table KhoHang) sau đó thiết lập GridView trỏ vào SqlDataSource vừa được tạo

Hình 3.6: Cấu hình kết nối

Kết quả chương trình là:

Hình 3.7: Trang hiển thị danh sách kho hàng trên trình duyệt

TRUY CẬP DỮ LIỆU LINQ

LINQ là một sự sáng tạo mới trong NET Framework 3.5 (Language Integrate

LINQ (Language Integrated Query) là một ngôn ngữ mở rộng cho phép thực hiện các truy vấn trong C# 2008 và Visual Basic 2008, giúp người dùng chọn, lọc, sắp xếp, nhóm và chuyển đổi dữ liệu từ nhiều nguồn khác nhau LINQ to Objects cho phép truy vấn các đối tượng, LINQ to DataSet thực hiện truy vấn trên DataSet, LINQ to SQL cho phép truy vấn cơ sở dữ liệu SQL Server mà không cần viết mã, và LINQ to XML hỗ trợ đọc dữ liệu từ định dạng XML.

Nếu không dùng LINQ, nếu cần lấy tất cả hàng hóa bắt đầu bằng B thì ta có mã nguồn sau:

List dshh = dm.LayDanhMucHangHoa();

List dmhh = new List(); foreach (HangHoaChiTiet hh in dshh)

{ if (hh.HangHoa_TenHang.ToString().StartsWith(“B”))

Nếu sử dụng LINQ trong mã lập trình:

List dshh = dm.LayDanhMucHangHoa();

IEnumerable dmhh; dmhh = from hh in dshh where hh.HangHoa_TenHang.ToString().StartsWith(“B”) select hh;

3.5.2 Cách làm việc của LINQ Để dùng LINQ, ta cần tạo ra một LINQ expression theo đúng quy tắc

Giá trị trả về của LINQ expression là một đối tượng iterator thực thi giao diện IEnumerable

Khi enumerable đã được gán vào iterator thì LINQ thực hiện

Cú pháp LINQ tương tự như một cú pháp của SQL nhưng có trật tự khác với SQL

3.5.3.1 Dùng filter và sorting với LINQ

IEnumerable dmhh = from hh in dshh where hh.HangHoa_TenHang.ToString().StartsWith(“B”) select hh; hoặc:

IEnumerable dmhh = from hh in dshh orderby hh.HangHoa_TenHang select hh;

Ta có thể dùng LINQ như sau (hai câu lệnh sau tương đương nhau):

IEnumerable dmhh = from hh in dshh select hh; Hoặc:

IEnumerable dmhh = hh.Select(hh => hh);

LinqDataSource là một điều khiển mạnh mẽ cho phép thực hiện các thao tác thêm, sửa, và xóa dữ liệu một cách tự động Với LinqDataSource, người dùng không cần viết mã nguồn phức tạp cho việc cập nhật hay sửa đổi dữ liệu, tương tự như SqlDataSource.

Hình 3.8: Thêm Linq to SQL vào dự án

Sau đó ta tạo ra mô hình LinqSqlDataContext cho phép Linq lấy dữ liệu từ cơ sở dữ liệu DB_TEST.MDF

Ta thiết lập cấu hình cho control Linqdatasource1 như sau: Chọn

Linqdatasource1  Configure Data Source …  Chọn LinqSqlDataContext, rồi thực hiện đưa dữ liệu từ LinqDataSource vào vào GridView:

Hình 3.10: Kết quả thực thi

Kết quả chương trình là:

Hình 3.11: Danh sách hàng hóa

The ADO.NET Data Provider class consists of several key components: Connection, which establishes a connection to the database; Command, which executes SQL statements or stored procedures; DataReader, designed for reading and retrieving data from queries; and DataAdapter, which serves two main functions: filling a DataSet with retrieved data and tracking changes made to the DataSet.

LINQ cho phép truy cập và xử lý dữ liệu từ nhiều nguồn khác nhau một cách đồng nhất Cụ thể, LINQ to Objects cho phép truy vấn các đối tượng, trong khi LINQ to DataSet hỗ trợ truy vấn từ DataSet Đối với cơ sở dữ liệu SQL Server, LINQ to SQL giúp thực hiện truy vấn mà không cần viết mã nguồn phức tạp Cuối cùng, LINQ to XML cho phép đọc dữ liệu từ định dạng XML.

Mặc dù SqlDataSource và LinqDataSource mang lại sự linh hoạt và có thể thực hiện nhiều chức năng truy cập dữ liệu, nhưng việc sử dụng các đối tượng ADO.NET như Connection, Command, và Adapter vẫn cần thiết Điều này đặc biệt đúng khi người dùng cần thực hiện các thao tác phức tạp trên cơ sở dữ liệu, mà các control này chưa thể đáp ứng đầy đủ.

Để lấy dữ liệu từ một bảng trong cơ sở dữ liệu bằng ADO.NET và đưa vào đối tượng DataTable, bạn cần sử dụng các thành phần chính như Connection, DataSet và Adapter.

Trong bài thực hành này, ta sẽ xây dựng trang website quản lý tin:

- Cho phép chọn một lĩnh vực từ combo box và hiển thị danh sách tin thuộc lĩnh vực được chọn

- Cho phép sắp xếp danh sách tin theo ngày đăng tin, tiêu đề

- Thao tác với DataGrid: hiển thị dữ liệu, phân trang, sắp xếp,…

- Cho phép thêm, xoá, sửa tin

- Đã nắm bắt được cách thức kết nối CSDL

- Xây dựng được kiến trúc 3 tầng

- Tạo các class : LinhVucInfo, BanTinInfo, BanTinController , LinhVucController, LinhVucDAL, BanTinDAL, DataService.

LẬP TRÌNH GIAO DIỆN WEB VỚI JQUERY

J QUERY LÀ GÌ?

4.1.1 Giới thiệu jQuery là một thư viện kiểu mới của Javascript giúp đơn giản hóa cách viết

JavaScript đóng vai trò quan trọng trong việc tăng tốc độ xử lý sự kiện trên trang web Thư viện jQuery cung cấp sự trừu tượng hóa cho các lớp phổ biến trong scripting, giúp tối ưu hóa hiệu suất và tính linh hoạt cho hầu hết các tình huống lập trình trên web.

Các chức năng jQuery bao gồm:

- Chọn một tag hoặc một tập hợp các tag trên trang web

- Cung cấp các hàm tiện ích thông dụng

- Nhanh chóng tạo ra các tag mới

Việc phân tách thiết kế và lập trình web phía client là rất quan trọng jQuery, một thư viện script, có thể dễ dàng được thêm vào trang web Bạn có thể tải bản mới nhất của jQuery từ trang web http://docs.iquery.com/Downloading jQuery.

Từ phiên bản Visual Studio 2008 SP1, các chức năng của JavaScript Intellisense đã được hỗ trợ đầy đủ Tệp “jquery-***-vsdoc.js” đóng vai trò quan trọng trong việc cung cấp hướng dẫn viết chú thích và hỗ trợ mã thông minh khi soạn thảo jQuery.

4.1.2 Sử dụng jQuery trong ASP.NET

Từ Visual Studio 2010 trở đi, jQuery đã được tích hợp sẵn trong các dự án web, như web form hay MVC

Hình 4.2: Cây thƣ mục của dự án

Trước khi viết các câu lệnh jQuery, ta chỉ cần khai báo sử dụng thư viện jQuery như sau:

*”).css(“border”, “3px double red”);

 Lấy phần tử liền sau của những đối tượng được chọn theo cú pháp: prev + next

Ví dụ lấy phần tử liên sau là input của những label:

$( “label + input”).css(“color”, “blue”).val(“Labeled!”);

$(“form input”).css(“border”, “1px solid blue”);

$(“#submit > *”).css(“border”, “1px solid red”);

$(“label + input”).css(“background-color”, “red”);

body { font-size: 14px;

} form { border: 2px green solid; padding: 2px; margin: 0; background: #efe;

} fieldset { margin: 1px; padding: 3px;

Nhập thông tin cá nhân

Họ và tên:

Nơi công tác

Tên công ty:

Hình 4.3: Kết quả khi thực hiện chương trình

- first : Tương ứng với phần tử đầu tiên được chọn

$(“tr:first”).css(“font-style”, “italic”);

- last : tương ứng với phần tử cuối cùng được chọn

$(“tr:last”).css(“background-color”, “yellow”);

- :not(selector) : Bỏ ra tất cả các phần tử tương ứng cho selector

$(“input:not(:checked)+span”).css(“background-color”, “yellow”);

- :even : Tương ứng với các phần tử chẵn, chỉ số 0, 2, 4,

$(“tr:even”).css(“background-color”, “#bbbbff”);

- :odd : Tương ứng với các phần tử lẻ, chỉ số 1, 3, 5, Ví dụ:

$(“tr:odd”).css(“background-color”, “#bbbbff”);

- :eq(index) :Tương ứng với một phần tử riêng lẻ bởi chỉ số của nó

Ví dụ gán css cho các cột lẻ của bảng:

Ví dụ: $(“td:eq(2)”).css(“color”, “red”);

$(“tr:first”).css(“font-style”, “italic”);

$(“tr:last”).css({ backgroundColor: 'yellow', fontWeight: 'bolder' }); $(“tr:even”).css(“color”, “red”);

$(“tr:odd”).css(“color”, “blue”);

$(“tr:eq(4)”).css(“text-decoration”, “line-through”);

$(“tr:gt(6)”).css(“font-size”, “30px”);

$(“tr:lt(3)”).css(“font-size”, “25px”);

$(“:header”).css({ background: '#000', color: “blue” });

Dòng thứ 1

Dòng thứ 2

Dòng thứ 3

Dòng thứ 4

Dòng thứ 5

Dòng thứ 6

Dòng thứ 7

Dòng thứ 8

Dòng thứ 9

Phương thức này chỉ có ở các element có thuộc tính inner html như div, span, v.v

- Lấy nội dung html (innerHTML) của phần tử html() Kiểu trả về: String

Ví dụ: Mỗi khi bấm vào thẻ p lấy nội dung html của thẻ p đó và thông báo nội dung lấy được

$(“p”).click(function() {alert($(this).html())});

- Thiết lập nội dung html (innerHTML) cho phần tử html( value ) Kiểu trả về: jQuery

Ví dụ: Thiết lập nội dung html cho thẻ div

$(“div”).html(“Chào các bạn! Chúc buổi học hôm nay thú vị.“);

- Lấy nội dung text (innerText) của phần tử text() Kiểu trả về: String

Ví dụ: Mỗi khi bấm vào thẻ p lấy nội dung text của thẻ p đó và thông báo nội dung lấy được

$(“p”).click(function() {alert($(this).html())});

- Thiết lập nội dung text (innerText) cho phần tử text( value ) Kiểu trả về: jQuery

Ví dụ: Thiết lập nội dung text cho thẻ div

$(“div”).text(“Chào các bạn! Chúc buổi học hôm nay thú vị”);

- Phương thức này chỉ có ở các phần tử có thuộc tính value như input, select val() Kiểu trả về: String

Ví dụ: var $(“#username”).val() ;

- Thiết lập giá trị cho phần tử val( value )

Ví dụ: Thiết lập nội dung text cho thẻ input

Ví dụ: $(“input”).val(“hello world”);

- :hidden Tương ứng với tất cả các phần tử được ẩn đi hoặc phần tử vào có dạng ẩn

Ví dụ: $(“div:hidden”).show(3000);

- :visible : tương ứng với các phần tử nhìn thấy được

Ví dụ: Bấm chuột vào các thẻ div nhìn thấy được

Ví dụ: $(“div:visible”).click(function() {$(this).css(“background”, “yellow”);});

Trong bài viết này, chúng ta sẽ khám phá jQuery, một thư viện JavaScript hiện đại giúp đơn giản hóa việc viết mã JavaScript và tăng tốc độ xử lý sự kiện trên trang web jQuery cung cấp các lớp trừu tượng phổ biến, mang lại lợi ích đáng kể trong hầu hết các tình huống lập trình web.

Các chức năng jQuery bao gồm:

- Chọn một tag hoặc một tập hợp các tag trên trang web

- Cung cấp các hàm tiện ích thông dụng

- Nhanh ch ng tạo ra các tag mới

- Quan trọng nhất là ph n tách việc thiết kế và lập trình web trên phía client

- Cách sử dụng jQuery trong lập trình ASP.Net để truy xuất dữ liệu

- Một số ví dụ tổng quát và đầy đủ với các ứng dụng từ những hàm API

TỔNG QUAN VỀ ASP.NET MVC FRAMEWORK

TỔNG QUAN ASP.NET MVC

5.1.1 Mô hình MVC cơ bản

MVC, viết tắt của Models, Views, Controllers, chia giao diện người dùng thành ba phần chính: Controller tiếp nhận các điều khiển thông qua yêu cầu HTTP, Model chứa logic miền, và View là những thông tin được trả về cho trình duyệt.

Hình 5.1: Mô hình MVC cơ bản

Phương pháp MVC mang lại lợi ích lớn nhờ vào sự phân tách rõ ràng giữa các thành phần models, views và controllers trong ứng dụng Cấu trúc rõ ràng của mô hình này không chỉ giúp tổ chức mã nguồn một cách khoa học mà còn làm cho việc kiểm tra và xử lý lỗi ứng dụng trở nên dễ dàng hơn.

5.1.2 Đặc tính trong ASP.NET MVC

- Tách rõ ràng các mối liên quan, mở khả năng test TDD (Test Driven Developer)

Chúng ta có thể thực hiện kiểm thử đơn vị trong ứng dụng mà không cần chạy Controllers cùng với tiến trình của ASP.NET, và có thể sử dụng bất kỳ framework kiểm thử đơn vị nào như NUnit, MBUnit, MS Test, v.v.

The MVC framework is designed for scalability, allowing for easy replacement and customization of its components For instance, developers can choose to implement their own view engine, routing policies, and parameter serialization methods, among other options.

Một ánh xạ URL mạnh mẽ giúp xây dựng ứng dụng với các URL sạch và không cần phần mở rộng, ví dụ như ánh xạ địa chỉ /Products/Edit/4 để thực hiện hành động "Edit" trong lớp điều khiển ProductControllers, hoặc ánh xạ địa chỉ /Blog/SomeTopic để thực hiện các hành động liên quan đến chủ đề blog.

“Display Topic” của lớp điều khiển BlogEngineController

The ASP.NET MVC Framework supports ASP.NET files such as ASPX, ASCX, and Master, designating them as "view templates." This allows for the utilization of various ASP.NET features, including master page nesting, snippets, server controls, templates, data-binding, and localization However, it eliminates postbacks and interactive server-side processing, instead enabling user interaction directly with a Controller class, removing the view state and traditional page lifecycle.

The ASP.NET MVC Framework fully supports a wide range of security features found in ASP.NET, including forms and Windows authentication, URL authorization, membership and role management, output and data caching, session and profile state management, a robust configuration system, and a flexible provider architecture.

5.1.3 Khác biệt với Web Form

ASP.NET WebForm sử dụng ViewState để quản lý trạng thái, với mỗi trang đều có vòng đời (lifecycle) riêng, hỗ trợ postback và các web controls Tuy nhiên, do phải xử lý nhiều sự kiện để thực hiện hành động cho giao diện người dùng khi có tương tác, nên hiệu suất của ASP.NET WebForm thường chậm.

ASP.NET MVC Framework được cấu trúc thành ba thành phần chính: Models, Views và Controllers Mọi tương tác của người dùng với Views sẽ được xử lý qua Controllers, loại bỏ hoàn toàn hiện tượng postback, vòng đời và sự kiện truyền thống.

Kiểm thử và gỡ lỗi trong ASP.NET yêu cầu chạy toàn bộ tiến trình của hệ thống, với việc thay đổi ID của các điều khiển có thể ảnh hưởng đến ứng dụng Đối với ASP.NET MVC Framework, việc sử dụng unit test giúp dễ dàng thẩm định hiệu suất của các Controller.

Bảng 5.1: Bảng so sánh tính năng giữa ASP.NET với ASP.NET MVC

Tính năng ASP.NET ASP.NET MVC

Kiến trúc mô hình WebForm Business Database

Kiến trúc sử dụng việc phân chia chương trình thành Controllers, Models, Views

Sử dụng cú pháp của webform, tất các sự kiện và điều khiển do server quản lý

Các sự kiện được điều khiển bởi controllers, các điều khiển không do server do server quản lý

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 to SQL class để tạo mô hình truy cập đối tượng

Debug Debug chương trình 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 điều khiển

Debug có thể sử dụng các unit test kiểm tra các phương thức trong controller

Tốc độ phân tải chậm khi trong trang có quá nhiều các điều khiển vì ViewState quá lớn

Phân tải nhanh hơn do không phải quản lý ViewState để quản lý các control trong trang

Tương tác với javascript khó khăn vì các điều khiển được điều khiển bởi server

Tương tác với javascript dễ dàng vì các đối tượng không do server quản lý điều khiển không khó

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

.aspx?&

Cấu trúc địa chỉ rành mạch theo dạng Controllers/Action/Id

5.1.4 Lợi ích của ứng dụng web dựa trên mô hình MVC

ASP.NET MVC Framework mang lại những lợi ích sau:

- Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành ba thành phần model, view, controller

- Nó không sử dụng view state hoặc server-based form Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng

Mẫu Front Controller giúp quản lý tất cả các yêu cầu thông qua một Controller duy nhất, từ đó cho phép thiết kế một hạ tầng quản lý định tuyến hiệu quả Để tìm hiểu thêm về mẫu này, bạn có thể tham khảo phần Front Controller trên trang web MSDN.

- Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)

Nó cung cấp hỗ trợ hiệu quả cho các ứng dụng được phát triển bởi các đội ngũ có nhiều lập trình viên và thiết kế, đồng thời vẫn đảm bảo quản lý tốt các tính năng của ứng dụng.

Các tính năng của ASP.NET MVC Framework:

Việc tách bạch các tác vụ của ứng dụng như logic nhập liệu, business logic và logic giao diện giúp dễ dàng kiểm thử và áp dụng phát triển theo phương pháp TDD Tất cả các tính năng chính của mô hình MVC được xây dựng dựa trên interface và kiểm thử thông qua các đối tượng mocks, cho phép mô phỏng các chức năng của đối tượng thực Điều này cho phép thực hiện unit-test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET, mang lại sự nhanh chóng và tiện dụng trong việc kiểm thử Người dùng có thể sử dụng bất kỳ nền tảng unit-testing nào tương thích với nền tảng NET.

ASP.NET MVC là một nền tảng mở rộng và khả nhúng, cho phép thay thế hoặc tùy chỉnh các thành phần một cách dễ dàng Người dùng có thể nhúng thêm view engine, cơ chế định tuyến cho URL, và cách kết xuất tham số của action-method Nền tảng này hỗ trợ Dependency Injection (DI) và Inversion of Control (IoC), giúp gắn các đối tượng vào lớp mà không cần khởi tạo trực tiếp IoC cho phép một đối tượng lấy các đối tượng cần thiết từ nguồn bên ngoài, như tập tin cấu hình, từ đó cải thiện khả năng kiểm thử.

ASP.NET MVC cung cấp một thành phần ánh xạ URL mạnh mẽ, giúp xây dựng ứng dụng với địa chỉ URL ngắn gọn và dễ tìm kiếm Các URL này không yêu cầu phần mở rộng của tên tệp và được thiết kế để tối ưu hóa tìm kiếm, đồng thời phù hợp với lập địa chỉ theo kiểu REST.

XÂY DỰNG ỨNG DỤNG VỚI ASP.NET MVC

Tính năng ASP.NET MVC Framework đã được tích hợp sẵn từ phiên bản VS Studio

5.2.1 Tạo Project với ASP.NET MVC Web Application

Trong chương trình Visual Studio 2008 đã cài đặt ASP.NET MVC Framework, ta thực hiện: Tập tin  New Project  Windows C#  ASP.NET MVC Web Application

Hình 5.2: Tạo ứng dụng MVC

When creating an ASP.NET MVC Framework, a dialog for Unit Testing appears Select "Yes" to create a Test Project, or "No" if you prefer not to create a Unit Test.

Sau khi một ứng dụng ASP.NET MVC

Web Application được tạo, ta nhìn vào trong mục Solution Explorer sẽ thấy xuất hiện mặc định 3 thư mục: Models, Views,

Controllers chứa các đối tượng tương ứng với các thành phần Models, Views,

Controllers trong mô hình MVC

In the project structure, expanding the Controllers folder reveals the HomeController.cs file, while the Views folder contains subdirectories for Home, Shared, and Account Within the Home directory, additional files and resources can be found.

About.aspx và Index.aspx

Để thực thi ứng dụng, bạn chỉ cần nhấn F5 Nếu đây là lần đầu tiên bạn tạo ứng dụng, sẽ xuất hiện thông báo hỏi xem có cho phép mở chế độ Debug hay không Nếu bạn đồng ý, hãy chọn "Có".

“Modify the Web.config file to enable debugging”, hoặc không muốn debug thì chọn

Hình 5.4: Minh họa các bước tạo một ASP.NET MVC

Hình 5.3: Quản trị cơ sở dữ liệu trong dự án dạng MVC của ASP.Net

Kết quả khi chạy ứng dụng (h5.5) là ứng dụng được nạp vào trình duyệt Trong ví dụ này ta chỉ có 2 trang là Index và About

Hình 5.5: Chương trình MVC đầu tiên

ĐỊNH TUYẾN URL

ASP.NET MVC Framework có một hệ thống định tuyến URL (URL Routing

System) 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ó 2 mục đích:

- 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 trở lại Controllers/Actions Ví dụ: form posts, liên kết và các lời gọi AJAX

Việc sử dụng quy tắc ánh xạ URL cho phép điều khiển linh hoạt các URL vào và ra trong lập trình ứng dụng, giúp dễ dàng thay đổi cấu trúc URL mà không cần viết lại mã trong Controllers và Views Chẳng hạn, chuyển đổi từ /Catalog sang /Products có thể thực hiện thông qua việc điều chỉnh một tập hợp quy tắc ánh xạ ứng dụng.

Các quy tắc định tuyến URL mặc định trong ASP.NET MVC Web Application

Khi tạo ứng dụng ASP.NET MVC trong Visual Studio, một lớp ứng dụng ASP.NET có tên Global.asax sẽ được tạo ra, chứa cấu hình các quy tắc định tuyến URL Các định tuyến được xây dựng thông qua phương thức RegisterRoutes, và khi ứng dụng khởi động, phương thức Application_Start() trong Global.asax.cs sẽ gọi RegisterRoutes để thiết lập bảng định tuyến.

In an ASP.NET MVC Web Application, the default controller is HomeController, the default action is Index, and the default ID is empty This means that when accessing a website built using the ASP.NET Web template, the URL will typically be formatted as http://localhost/Home/Index/.

When an ASP.NET MVC Web Application receives a URL, the MVC Framework evaluates the routing rules in the RouteTable.Routes collection to determine which Controller will handle the request The framework selects the appropriate Controller by assessing the routing rules in a predefined order.

5.3.2 Tìm hiểu định tuyến URL

In ASP.NET MVC, the browser requests an address from a controller action through a process known as URL routing This routing mechanism directs requests to the appropriate controller action using a routing table, which is established when the application first starts The routing table is configured in the Global.asax file, which includes necessary namespaces such as System, System.Web.Mvc, and System.Web.Routing.

// Note: For instructions on enabling IIS6 or IIS7 classic mode,

// visit http://go.microsoft.com/?LinkId94801 public class VisionPointMVCApplication : System.Web.HttpApplication

{ public static void RegisterRoutes(RouteCollection routes)

{ routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute(

“{controller}/{action}/{id}”, // URL with parameters new { controller = “Home”, action = “Index”, id = UrlParameter.Optional}); } protected void Application_Start()

} protected void Application_BeginRequest(object sender, EventArgs e)

HttpContext.Current.Response.AddHeader(“Access-Control-Allow-Origin”,

“*”); if (HttpContext.Current.Request.HttpMethod == “OPTIONS”)

HttpContext.Current.Response.AddHeader(“Cache-Control”, “no-cache”); HttpContext.Current.Response.AddHeader(“Access-Control-Allow-Methods”,

HttpContext.Current.Response.AddHeader(“Access-Control-Allow-Headers”,

HttpContext.Current.Response.AddHeader(“Access-Control-Max-Age”,

Khi ứng dụng khởi động lần đầu, phương thức Application_Start() được kích hoạt, và nó sẽ gọi phương thức RegisterRoutes(RouteTable.Routes) để thiết lập bảng định tuyến Định tuyến mặc định chia một yêu cầu thành ba phân đoạn, mỗi phân đoạn được ngăn cách bởi dấu “/” Phân đoạn đầu tiên chứa tên của controller, phân đoạn thứ hai là tên của action trong controller, và phân đoạn thứ ba là tham số đầu vào cho action đó.

Ví dụ: với địa chỉ /Product/Details/3 được hiểu là:

Controller = ProductController Action = Detail Id = 3

Ví dụ: với địa chỉ /Employee:

Controller = EmployeeController Action = Index Id = “”

Mô hình MVC (Models, Views, Controllers) phân chia giao diện người dùng thành ba phần chính: controller nhận đầu vào thông qua các yêu cầu HTTP, model quản lý các miền logic, và view là nội dung được trả về cho trình duyệt.

ASP.NET MVC là một nền tảng mở rộng và khả nhúng, cho phép dễ dàng thay thế hoặc tùy chỉnh các thành phần Người dùng có thể tích hợp view engine, cơ chế định tuyến URL, và cách kết xuất tham số của action-method Nền tảng này cũng hỗ trợ Dependency Injection (DI) và Inversion of Control (IoC), giúp gắn các đối tượng vào lớp mà không cần tự khởi tạo DI cho phép lớp sử dụng các đối tượng từ bên ngoài, trong khi IoC quy định rằng các đối tượng cần sẽ được lấy từ nguồn bên ngoài như tập tin cấu hình, từ đó làm cho việc kiểm thử trở nên dễ dàng hơn.

ASP.NET MVC cung cấp một thành phần ánh xạ URL mạnh mẽ, giúp xây dựng các ứng dụng với địa chỉ URL ngắn gọn và dễ tìm kiếm Các địa chỉ URL này không yêu cầu phần mở rộng của tên tập tin và được thiết kế để tối ưu hóa tìm kiếm (SEO), đồng thời hỗ trợ các mẫu định dạng tên phù hợp với lập địa chỉ theo kiểu REST.

ASP.NET hỗ trợ nhiều tính năng quan trọng như cơ chế xác thực người dùng, quản lý thành viên và quyền truy cập, cũng như caching đầu ra và dữ liệu Nó còn cung cấp khả năng quản lý phiên làm việc và hồ sơ người dùng, theo dõi tình trạng ứng dụng, cùng với hệ thống cấu hình linh hoạt.

Câu 1: Trong một ứng dụng MVC, liệu có tồn tại 1 mô hình dữ liệu Models, có n

Controllers, mỗi Controllers điều khiển m Views không?

Câu 2: Views của MVC có thể sử dụng AJAX, javascript không?

Câu 3: Xây dựng ứng dụng với ASP.NET MVC Framework thì trang web sẽ chạy nhanh hơn so với xây dựng trên nền WebForm cũ?

Testing and debugging in the ASP.NET MVC Framework is easier than in the WebForm platform This is because testing and debugging in ASP.NET MVC is focused solely on the Controller, allowing for better control and management compared to the more complex process required for WebForm.

MODEL – VIEW CONTROLLER

CẬP NHẬT DỮ LIỆU VỚI MVC

THỰC HIỆN BẢO MẬT CHO ỨNG DỤNG ASP.NET MVC

Ngày đăng: 08/06/2022, 22:04

HÌNH ẢNH LIÊN QUAN

Hình 1.4: Tạo dự án dạng Web form - Lập trình ứng dụng web
Hình 1.4 Tạo dự án dạng Web form (Trang 15)
Hình 1.5: ViDu1 project - Lập trình ứng dụng web
Hình 1.5 ViDu1 project (Trang 15)
Hình 3.5: Kết hợp dữ liệu với SqlDataSource - Lập trình ứng dụng web
Hình 3.5 Kết hợp dữ liệu với SqlDataSource (Trang 41)
Hình 3.7: Trang hiển thị danh sách kho hàng trên trình duyệt - Lập trình ứng dụng web
Hình 3.7 Trang hiển thị danh sách kho hàng trên trình duyệt (Trang 42)
Hình 3.11: Danh sách hàng hóa - Lập trình ứng dụng web
Hình 3.11 Danh sách hàng hóa (Trang 46)
Hình 4.1: Website jQuery.com - Lập trình ứng dụng web
Hình 4.1 Website jQuery.com (Trang 50)
Hình 4.3: Kết quả khi thực hiện chương trình - Lập trình ứng dụng web
Hình 4.3 Kết quả khi thực hiện chương trình (Trang 55)
Hình 5.2: Tạo ứng dụng MVC - Lập trình ứng dụng web
Hình 5.2 Tạo ứng dụng MVC (Trang 64)
Hình 5.3: Quản trị cơ sở dữ liệu trong - Lập trình ứng dụng web
Hình 5.3 Quản trị cơ sở dữ liệu trong (Trang 65)
Hình 6.2: Cửa sổ dự án dạng MVC - Lập trình ứng dụng web
Hình 6.2 Cửa sổ dự án dạng MVC (Trang 74)
Hình 6.5: Kết hợp dữ liệu vào trong Views\DanhMucLoaiSanPham.aspx.cs - Lập trình ứng dụng web
Hình 6.5 Kết hợp dữ liệu vào trong Views\DanhMucLoaiSanPham.aspx.cs (Trang 77)
Hình 7.6: Tạo ứng dụng - Lập trình ứng dụng web
Hình 7.6 Tạo ứng dụng (Trang 89)
Hình 7.9: Cách thực hiện các phương thức kiểm thử - Lập trình ứng dụng web
Hình 7.9 Cách thực hiện các phương thức kiểm thử (Trang 93)
Hình 8.1: Account Controller, và View tích hợp sẵn trong ứng dụng MVC - Lập trình ứng dụng web
Hình 8.1 Account Controller, và View tích hợp sẵn trong ứng dụng MVC (Trang 97)
Hình 8.12: Thiết lập roles cho tài khoản đăng nhập cơ sở dữ liệu - Lập trình ứng dụng web
Hình 8.12 Thiết lập roles cho tài khoản đăng nhập cơ sở dữ liệu (Trang 103)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w