Bài giảng Lập trình ứng dụng web cung cấp cho người học những kiến thức như: Giới thiệu ASP.NET; Web Control; Master Page, CSS, User Control; Các đối tượng trong ASP.NET; Kết nối dữ liệu với ADO.NET; Điều khiển liên kết dữ liệu;...Mời các bạn cùng tham khảo!
Giới thiệu ASP.NET
Giới thiệu
ASP.NET là công nghệ xử lý web phía máy chủ, độc lập với mọi trình duyệt,
Kỹ thuật áp dụng cho phép thực thi trên máy chủ, yêu cầu máy chủ xử lý nhiều vấn đề đồng thời cho nhiều người dùng Do đó, máy chủ cần có cấu hình mạnh mẽ và băng thông tốt để đảm bảo hiệu suất Hệ thống này cũng tương thích với ASP 3.0.
Xây dựng ứng dụng web đơn giản
- Vào menu Start -> Programs -> Microsoft Visual Studio 2005 -> Microsoft Visual
- Giao diện Visual Studio 2005 có dạng như sau:
- Vào menu File->New->Website
- Chọn ASP.NET Web Site trong Templates
Cuối cùng click chuột vào nút OK để tiến hành tạo Web Site
* Thiết kế giao diện ở chế độ Source
- Sử dụng các thẻ HTML để thiết kế
- Trong chỉ thị @Page các thuộc tính:
+ Language: ngôn ngữ sử dụng + CodeFile: tập tin mã nguồn xử lý + Inherits: lớp
* Thiết kế giao diện ở chế độ Design
- Sử dụng các control trên thanh công cụ Toolbox để thiết kế
- Thanh công cụ Toolbox bao gồm tập hợp các điều khiển web (web control) dùng để xây dựng ứng dụng web chia ra thành các nhóm control sau:
+ Standard: là những điều khiển chuẩn của web form như: Label, Button,
+ Data: là những điều khiển cho phép thao tác với dữ liệu
+ Validation: là những điều khiển cho phép kiểm tra tính hợp lệ của các điều khiển nhập dữ liệu trên web form
+ Navigation: là những điều khiển cho phép di chuyển giữa các trang trong cùng website
+ Login: là những điều khiển liên quan đến bảo mật của ứng dụng web như đăng nhập, thay đổi mật khẩu,…
+ HTML: là những điều khiển của tài liệu HTML và có thể được chuyển thành các điều khiển làm việc trên server (HTML Server Control)
- Phương thức Page_Load được gọi mỗi khi trang aspx được tải (load)
- Giao diện mã nguồn ở chế độ Code C#:
1.2.2 Lưu lại trang web Để lưu lại các trang web đã tạo trong website, vào menu File -> Save All hoặc nhấn tổ hợp phím Ctrl+Shift+S
Khi một số trang web sử dụng chữ Tiếng Việt Unicode, Visual Studio sẽ yêu cầu lưu trang web với kiểu mã hóa Unicode trong quá trình lưu trữ.
Chọn Save With Other Encoding
Trong Encoding chọn Unicode (UTF-8 with signature) – Codepage 65001
1.2.3 Biên dịch và chạy ứng dụng web Để biên dịch và chạy ứng dụng web vào menu Debug -> Start Debugging hoặc nhấn phím F5
1.2.4 Mở ứng dụng Web Để mở một ứng dụng web, vào menu File -> Open -> Website
Trong Solution Explorer, click phải vào Website, chọn Add New Item…
Trong Templates, chọn Web Form, sau đó nhập tên trang web vào ô Name và click vào
Nếu chọn “Place code in separate file” thì tập tin mã nguồn xử lý sẽ được tách riêng khỏi tập tin Web Form.
IsPostBack
+ Thuộc tính của Page có kiểu dữ liệu bool (true, false)
+ Nếu trả về giá trị false khi trang được nạp lần đầu tiên
+ Nếu trả về giá trị true khi trang được nạp lần tiếp theo protected void Page_Load(object sender, EventArgs e)
//các câu lệnh chỉ muốn thực thi 1 lần khi trang được nạp lần đầu tiên }
Trong biểu thức logic của cấu trúc if trên
!IsPostBacktương đương với IsPostBack == false
Web Control
ASP.NET Web Control
ID Nhận dạng điều khiển
Text Nội dung hiển thi
Visible Cho phép hiển thị hay không (true/false)
Trang aspx.cs: protected void Page_Load(object sender, EventArgs e)
TextMode SingleLine(mặc định), Multiline
AutoPostBack Tự động PostBack lên Server khi Textbox có thay đổi, mặc định là False AutoCompleteType None / Disabled / Company / …
Tương đương thẻ có type=submit
nhấp đôi chuột vào GridView
Tạo nguồn dữ liệu cho GridView
Bước 3: Chọn AccessData để kết nối với file dữ liệu Access->OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
Hiệu chỉnh cách hiển thị dữ liệu: Định dạng hình thức: chọn Auto Format… hoặc Properties->Styles Định dạng nội dung: Chọn Edit Columns…
Thuộc tính DataFormatString: (Lưu ý thuộc tính HTMLEncode)
Ví dụ: DataFormatString="{0:dd/MM/yy}"
Sắp xếp dữ liệu theo cột
Gán thuộc tính của GridView: AllowSorting=True
Gán thuộc tính của các cột muốn sắp xếp: SortExpression=”TênCột”
Gán thuộc tính của GridView: AllowPaging=True, PageSize=”số lượng mẫu tin trong 1 trang”
Thẻ PagerSettings: định dạng hình thức hiển thị
Position=Top/Bottom/TopandBottomMode=Numeric/NumericFirstLast/NextPrevious/NextPreviousFirstLastPageButtonCount =”số trang hiển thị tối đa, nếu số trang nhiều hơn số này thì sẽ hiển thị từng phần”
DataList
DataList control là một công cụ hiển thị dữ liệu trên Web, cho phép người dùng tự thiết kế cách thức trình bày thông tin Việc sử dụng DataList control giúp tùy chỉnh giao diện và cách thức hiển thị dữ liệu theo nhu cầu cụ thể.
6.3.1 Các thành phần của DataList
Trên thanh ToolBox nhấp chuột chọn DataList vào kéo thả vào giao diện thiết kế Web Form
6.3.3 Tạo nguồn dữ liệu cho DataList dùng AccessDataSource
Bước 3: Chọn AccessData để kết nối với file dữ liệu Access->OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
6.3.4 Thiết kế giao diện cho các thành phần trong DataList
Thiết kế giao diện trong vùng ItemTemplate
6.3.5 Liên kết dữ liệu cho các thành phần trong DataList
Bước 1: nhấp chuột Bước 2: chọn
Thực hiện tương tự như trên đối với Mật khẩu, email, số đăng ký
Bước 1: nhấp chuột Bước 2: chọn
The CTBaiHat.aspx.cs file is a C# code-behind for a web page that utilizes various namespaces such as System, System.Data, and System.Web It includes essential libraries for data handling, web forms, and user interface controls, indicating its role in managing song-related functionalities on a web application The partial class CTBaiHat inherits from System.Web.UI.Page, suggesting it is designed to work within the ASP.NET framework.
{ public DataSet LayThongTinBaiHat(string sMaBaiHat)
DataSet ds; ds = new DataSet(); string sConnectString; string sSql; sConnectString = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + Server.MapPath("DB/MusicDB.mdb");
OleDbConnection myConn = new OleDbConnection(sConnectString); sSql = "SELECT
MaBaiHat,TenBaiHat,NoiDung,TenNhacSi,BaiHat.MaNhacSi as MaNS FROM
BaiHat,NhacSi WHERE BaiHat.MaNhacSi=NhacSi.MaNhacSi "; sSql += "AND MaBaiHat='" + sMaBaiHat + "'"; try
OleDbDataAdapter da = new OleDbDataAdapter(sSql, myConn); da.Fill(ds); myConn.Close();
} public void HienThiChiTietBaiHat(string sMaBaiHat)
DataSet ds; ds = new DataSet(); ds = LayThongTinBaiHat(sMaBaiHat); dlBaiHat.DataSource = ds.Tables[0]; dlBaiHat.DataBind();
} protected void Page_Load(object sender, EventArgs e)
{ string sMaBaiHat; if (Request.QueryString["MaBaiHat"] != null)
DetailView
DetailsView là điều khiển cho phép hiển thị một mẫu tin hoặc một đối tượng tại một điểm
6.5.1 Các thành phần của DetailsView
OK
Bước 4: Đường dẫn đến file dữ liệu->Next
Bước 5: Chọn cách lấy dữ liệu ->Next
Bước 1: nhấp chuột Bước 2: chọn
Bước 6: Có thể Kiểm tra thử dữ liệu lấy được->Finish
6.5.4 Thiết kế giao diện cho các thành phần trong DetailsView
Tiến hành thiết kế các Fields:
Bước 1: nhấp chuột Bước 2: chọn
The article discusses the implementation of a web page in C# for calculating the sum of two integers It includes essential namespaces such as System, System.Data, and System.Web, which are crucial for web application functionality The code defines a partial class named clsTinhTong2SoNguyen, which inherits from System.Web.UI.Page, allowing for the creation of dynamic web content This framework enables the development of interactive web applications that can process user input and display results effectively.
{ protected void Page_Load(object sender, EventArgs e)
{ int a; int b; int S; string chuoi; chuoi = Request["a"]; a = int.Parse(chuoi); chuoi = Request["b"]; b = int.Parse(chuoi);
//tạo chuỗi XML string sXML = ""; sXML = sXML + "";
Web Service
Web service là hệ thống phần mềm hỗ trợ tương tác giữa các ứng dụng trên máy tính khác nhau qua Internet, sử dụng giao diện chung và XML để mô tả sự gắn kết Nó cung cấp các phương thức chuẩn để gọi và truy cập các hệ thống đóng gói và hệ thống kế thừa.
Các phần mềm được phát triển bằng nhiều ngôn ngữ lập trình khác nhau và chạy trên các nền tảng đa dạng có khả năng sử dụng dịch vụ web để truyền tải dữ liệu qua Internet Điều này cho phép chúng giao tiếp tương tự như trong một máy tính Dịch vụ web bao gồm các module độc lập phục vụ cho hoạt động của khách hàng và doanh nghiệp, và chúng được thực thi trên server.
Web service giúp giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống
Web service cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau
Ví dụ, khi thiết lập máy chủ web cho ứng dụng trên hệ điều hành Linux, người dùng có thể truy cập và sử dụng ứng dụng từ máy tính chạy Windows mà không gặp vấn đề tương thích Ứng dụng vẫn hoạt động và xử lý bình thường mà không cần yêu cầu đặc biệt nào.
Web service chủ yếu được phát triển dựa trên mã nguồn mở và các tiêu chuẩn đã được công nhận, như XML.
Một web service bao gồm có nhiều module và có thể công bố lên mạng Internet
7.4.3 Kiến trúc của Web Services
Web services consist of three main standards: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language), and UDDI (Universal Description, Discovery, and Integration) UDDI is utilized for registering and discovering web services that are specifically described in WSDL The UDDI interface communicates with the UDDI server using SOAP, after which SOAP applications request a web service SOAP messages are transmitted via HTTP and TCP/IP.
7.4.4 Các thành phần của Web Service a) XML (eXtensible Markup Language)
XML là một chuẩn mở do W3C phát triển, dùng để mô tả dữ liệu và định nghĩa các thành phần trên trang web cũng như tài liệu B2B Cấu trúc của XML tương tự như HTML, nhưng trong khi HTML chỉ định nghĩa cách hiển thị, XML tập trung vào việc định nghĩa các thành phần dữ liệu bên trong Các lập trình viên có thể tạo ra thẻ XML tùy chỉnh cho từng trang web, giúp XML trở thành định dạng thông điệp chuẩn nhờ tính phổ biến và hiệu quả của mã nguồn mở.
Web service là sự kết hợp của nhiều thành phần khác nhau, sử dụng các tính năng và đặc trưng của chúng để giao tiếp hiệu quả XML đóng vai trò là kiến trúc nền tảng cho việc xây dựng dịch vụ Web, trong đó tất cả dữ liệu được chuyển đổi sang định dạng thẻ XML WSDL (Web Service Description Language) là một phần quan trọng trong việc mô tả dịch vụ Web.
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:
+ Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service
+ Loại thông tin: thao tác, tham số, những kiểu dữ liệu
WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụ web qua Internet Khi một client kết nối tới dịch vụ web, nó có thể đọc WSDL để xác định các phương thức có sẵn trên server Sau đó, client sử dụng SOAP để truy cập các chức năng trong WSDL Để sử dụng dịch vụ, client cần tìm kiếm thông tin về dịch vụ, cách sử dụng và nhà cung cấp dịch vụ UDDI (Universal Description, Discovery, and Integration) định nghĩa các thành phần để cung cấp thông tin này, cho phép client tìm kiếm và nhận thông tin cần thiết khi sử dụng dịch vụ web.
Trang trắng (White pages) cung cấp thông tin liên hệ và các định dạng chính yếu của dịch vụ web, bao gồm tên giao dịch, địa chỉ và thông tin nhận dạng Những thông tin này giúp các đối tượng khác dễ dàng xác định và nhận diện dịch vụ.
Trang vàng (Yellow pages) cung cấp thông tin mô tả các dịch vụ web theo nhiều loại khác nhau, giúp người dùng dễ dàng tìm kiếm và phân loại dịch vụ Trong khi đó, trang xanh (Green pages) chứa thông tin kỹ thuật chi tiết về các hành vi và chức năng của dịch vụ web, hỗ trợ người dùng hiểu rõ hơn về cách thức hoạt động của chúng.
+ tModel (Loại dịch vụ): chứa các thông tin về loại dịch vụ được sử dụng
Web service sử dụng giao thức SOAP (Simple Object Access Protocol) để kích hoạt các ứng dụng tìm kiếm thông tin từ các web service khác Điều này giúp xác định dịch vụ nào cần sử dụng thông tin từ web service hiện tại.
SOAP là giao thức giao tiếp có cấu trúc XML, đóng vai trò là xương sống cho các ứng dụng phân tán được phát triển trên nhiều ngôn ngữ và hệ điều hành khác nhau Giao thức này cho phép truyền tải các thông điệp dựa trên XML qua mạng máy tính, thường sử dụng giao thức HTTP.
Một client gửi yêu cầu tới server, và server ngay lập tức phản hồi lại client Cả SMTP và HTTP đều là giao thức lớp ứng dụng của SOAP, nhưng HTTP được sử dụng phổ biến hơn do khả năng tương thích tốt với hạ tầng Internet hiện nay.
7.4.5 Ví dụ xây dựng web service đơn giản a) Xây dựng 1 ứng dụng web service cho phép:
- Tính tổng 2 số nguyên a và b b) Client truy xuất vào ứng dụng web service ở trên được viết dưới dạng:
- HTML page (sử dụng JavaScript để gọi)
Thực hiện: a) Xây dựng ứng dụng Web Service
Trong Visual Studio 2005, vào menu File -> New -> Web site
Chọn ASP.NET Web Service
Xây dựng 2 lớp Service gồm 2 phương thức Web: public string XuatThongBaoChao() public int TinhTong(int a, int b)
- Biên dịch và thực thi (Nhấp phím F5) b) Xây dựng ứng dụng Client truy xuất ứng dụng Web Service
Thêm tham chiếu đến Web service
Nhập địa chỉ URL của Web Service, sau đó nhập tên vào Web reference name và click vào Add
Xây dựng mã nguồn: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace test_WS
{ public partial class Form1 : Form
} private void btn_XuatTBChao_Click(object sender, EventArgs e) {
MyWebService.Service ws = new MyWebService.Service(); string sThongBao; sThongBao = ws.XuatThongBaoChao();
} private void btn_TinhTong_Click(object sender, EventArgs e) {
MyWebService.Service ws = new MyWebService.Service(); int a = int.Parse(txt_a.Text); int b = int.Parse(txt_b.Text); int s = ws.TinhTong(a, b);
Thực hiện tương tự như Windows Application
Mã nguồn: test_WS.htm
Vi du web service
function InitializeService()
{ service.useService("http://localhost:61076/ViDu_WebService/Service.asmx?ws dl","Service");
{ var a = document.getElementById("txt_a").value; var b = document.getElementById("txt_b").value; service.Service.callService("TinhTong", a, b);
{ var kq; kq = event.result.value; alert(kq);