Trường Đại Học Lạc Hồng 2009 - 2010
LẬP TRÌNH WEB ASP.NET
Ts. Vũ Đức Lung Ks. Phan Hữu Tiếp
Chương 1: Giới Thiệu
http://lhu.edu.vn
1
LHU
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Nội dung giới thiệu
Phân biệt Web tĩnh và Web động Mô hình Client- side, Server-side Công nghệ lập trình web Giới thiệu .NET Mục đích .NET ASP & ASP.NET Cơ bản về ASP.NET
2 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Phân biệt web tĩnh – web động
Website tĩnh
Website động
Định nghĩa
là thuật ngữ được dùng để chỉ những website có cơ sở dữ liệu và được hỗ trợ bởi các phần mềm phát triển web.
website chỉ bao gồm các trang web tĩnh và không có cơ sở dữ liệu đi kèm nên thường được xây dựng bằng các ngôn ngữ HTML, DHTML.
Ưu điểm
Thiết kế đồ hoạ đẹp truy cập nhanh Tốc độ Chi phí đầu tư thấp
hiệu
cao,
dễ
Thông tin hiển thị được gọi ra từ một cơ sở dữ liệu khi người dùng truy vấn trang web tới một Dùng nhiều ngôn ngữ lập trình khác nhau và nhiều hệ cơ sở dữ liệu khác nhau Thông tin luôn mới, có tính tương tác chỉnh
3 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Phân biệt web tĩnh – web động
Website tĩnh
Website động
Khuyết điểm
thân
Chi phí đầu tư cao Dễ bị tấn công
Khó khăn trong việc thay đổi cập nhật Thông tin không có tính linh hoạt, không thiện với người dùng Khó tích hợp, nâng cấp, mở rộng
4 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mô hình Client- Side
Lập trình Client-side
Ngôn ngữ được sử dụng để lập trình xử lý ở phía client gọi là Client – side script, thông dụng nhất là Java Script. Trong đó, đoạn code được nhúng vào trang HTML hay đặt trong một tập tin riêng biệt và tập tin này sẽ được khai báo trong trang HTML. Quá trình yêu cầu và trả về cho máy client của một trang web
sử dụng kỹ thuật lập trình client – side
5 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mô hình Client- Side
Đặc điểm khi xử lý tại client:
Nhanh, không mất nhiều thời gian chuyển đến Server rồi quay lại
client do dữ liệu cần dùng để xử lý có tại client.
Chỉ có thể lập trình thực hiện những xử lý đơn giản và độc lập Không cần phải cài đặt phần mềm tại Web Server, tuy nhiên trình duyệt phải hỗ trỡ ngôn ngữ script mà trang HTML đang sử dụng
Rất hữu ích cho DHTML
6 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mô hình Client- Side
Lập trình Server – side :
Ngôn ngữ được sử dụng để lập trình xử lý ở phía server gọi là Server – side cript. Chúng ta có 01 số ngôn ngữ lập trình phía server như: ASP, ASP.NET, PHP…
Kỹ thuật lập trình phía server khác so với client, đó là các đoạn mã lệnh (source code) sẽ được biên dịch và thi hành ngay tại Web Server. Sau đó trả về client dưới dạng HTML, JavaScript hay CSS
Kỹ thuật này thường được áp dụng cho các trang web động và
có sự tương tác với cơ sở dữ liệu
7 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mô hình Client- Side
Đặc điểm khi xử lý tại Server :
Chậm, do dữ liệu phải chuyển về server và chờ nhận kết quả trả
về rồi thể hiện trên client
Thực hiện những xử lý phức tạp, cần truy cập cơ sở dữ liệu và
xử lý tập tin
Trang web linh động, phục vụ đa yêu cầu của người dùng. Phải cài đặt phần mềm tại web server
Tóm lại :
Trong quá trình triển khai một ứng dụng web, để website của bạn thật sự có hiệu quả, bạn cần phân tích các xử lý, nhận biết bản chất của mỗi xử lý là nên thực hiện ở client hay server để từ đó xây dựng phối hợp các xử lý cho phù hợp
8 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Tổng quan công nghệ lập Trình web
HTML ( HyperText Markup Language)
Trang web HTML là 01 tập tin văn bản được viết bằng ngôn ngữ HTML, ngôn ngữ này còn được biết đến với tên gọi: ngôn ngữ đánh dấu văn bản
Ngôn ngữ HTML sử dụng các ký hiệu quy định sẵn (được gọi là
Tag) để trình bày nội dung văn bản
Nội dung + Định dạng = Kết quả hiển thị
9 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Tổng quan công nghệ lập Trình web
Mô hình ứng dụng 02 lớp
Đây là mô hình đơn giản, khá phổ biến của 01 ứng dụng phân tán Trong mô hình này, việc xử lý dữ liệu được thực hiện trên Database
Server, việc nhận và hiển thị dữ liệu được thực hiện ở client Ưu điểm: Dữ liệu tập trung do đó đảm bảo dữ liệu được nhất
quán. Dữ liệu được chia sẻ cho nhiều người dùng.
Khuyết điểm: Cách xử lý tra cứu và truy cập dữ liệu được thực hiện ở Database Server, việc nhận kết quả và hiển thị phải được thực hiện ở Client. Do đó khó khăn trong việc bảo trì và nâng cấp. Khối lượng, dữ liệu truyền trên mạng lớn do đó chiếm dụng đường truyền thêm gánh nặng cho database server
10 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Tổng quan công nghệ lập Trình web
Mô hình ứng dụng 03 lớp:
Mô hình hai lớp phần nào đáp ứng được yêu cầu khắt khe của 01 ứng dụng phân tán, tuy nhiên khi khối lượng dữ liệu lớn, ứng dụng đòi hỏi nhiều xử lý phức tạp, số người dùng tăng, mô hình 02 lớp không thể đáp ứng được
Mô hình 03 lớp sử dụng thêm Apllication Server giữ nhiệm vụ tương tác giữa Client và Server, giảm bớt các xử lý trên Database Server, tập trung các xử lý nhận và hiển thị dữ liệu tại Application Server
Ưu điểm: Hỗ trợ người dùng. Giảm bớt xử lý cho client, không yêu cầu máy Client có cấu hình mạnh. Xử lý nhận và hiển thị dữ liệu tập trung tại Application Server -> dễ dàng quản lý, bảo trì và nâng cấp. Xử lý truy cập dữ liệu tập trung tại Database Server Khuyết điểm: Phải sử dụng 01 Application Server
11 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
.NET là gì?
A new software platform for the desktop and the Web
Nguồn gốc của .NET
Hệ điều hành: tập hợp các COM (Component Object
Model) tương tác với nhau.
Chương trình=COM COM+ 1998 IIS ver.4 => Project: Khung dịch vụ web thế hệ kế tiếp (Next Generation Web Service Framework - NGWSF)
11/2000 phát hành Beta 1 của .NET Cuối 2001 chính thức cho ra đời phiên bản đầu tiên
12 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
.NET Platform là gì ?
.NET Platform bao gồm .NET Framework và những công cụ được dùng để xây dựng, phát triển ứng dụng và dịch vụ ASP.NET
Những sản phẩm công nghệ .NET của Microsoft bao gồm: MSN.NET, OFFICE.NET, VISUAL STUDIO.NET, WINDOWS SERVER 2003
VISUAL STUDIO.NET là bộ phần mềm được dùng để xây dựng và phát triển các ứng dụng bao gồm các ngôn ngữ lập trình: C++.NET, Visual Basic.NET, ASP.NET, C# và j#.
Tất cả các ngôn ngữ này đều được xây dựng trên nền .NET Framework, do đó cú pháp cơ bản của những ngôn ngữ này tương tự nhau.
13 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
Các bộ phận chính của Microsoft NET Framework
14 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
Các phần chính của Microsoft.NET Framework
Framework 1.0,1.1, 2.0, 3.0, 3.5, 4.0,.. Integrated Development Environment (IDE)
Kiến trúc .NET có 3 tầng:
Common Language Runtime (CLR) Bộ thư viện các lớp cơ sở (.NET Framework Base Classes):
String, Integer, Exception,… ASP.NET và Windows Forms
15 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
NET application được chia ra làm hai loại:
Cho Internet gọi là ASP.NET, gồm có Web Forms và Web
Services
Cho desktop gọi là Windows Forms.Windows Forms giống như Forms của VB6. Nó hổ trợ Unicode hoàn toàn, rất tiện cho chữ Việt và thật sự Object Oriented
Note:
Web Forms có những Server Controls làm việc giống như các Controls trong Windows Forms, nhất là có thể dùng codes để xử lý Events y hệt như của Windows Forms.
16 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu .NET
.NET Framework là gì ?
.NET Framework là nền tảng cho Microsoft.NET Platform .NET Framework là môi trường cho việc xây dựng, triển khai và
vận hành các ứng dụng Web cũng như Web Service
.NET Framework giúp đơn giản hóa quá trình phát triển cũng
như tích hợp sản phẩm
.NET Framework không phụ thuộc vào ngôn ngữ. Các ngôn ngữ
đang được hỗ trợ: C++, C#, VB.NET, J#
.NET Framework chứa Common Language Runtime (CLR) và các lớp thư viện cung cấp các dịch vụ cơ sở để xây dựng các ứng dụng
17 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mục đích của .NET
Mô hình đồng nhất cho lập trình Form(Desktop) và Web
18 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mục đích của .NET
Trước đây: rất hạn chế .NET: binary compatibility between more than 20 languges
(C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML, Haskell, Pascal, Oberon, Perl, Python, ...)
19 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Mục đích của .NET
Tương tác giữa các ngôn ngữ lập trình:
20 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Lợi ích dùng CIL
21 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Lợi ích của việc sử dụng ASP
Công nghệ Server-side scripting Tự động biên dịch Cho phép tạo các ứng dụng web đơn giản nhanh chóng và dễ
dàng
Tạo trang web có tích hợp nội dung động Sử dụng hiệu quả các đối tượng COM: ADO (ActiveX Data Object), xử lý dữ liệu, FSO (File System Object), làm việc với hệ thống tập tin,…
Hỗ trợ nhiều ngôn ngữ: JavaScript, VBScript
22 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Những bất lợi khi sử dụng ASP
Chỉ hỗ trợ 2 loại ngôn ngữ : VBScript và JavaScript Thông dịch mã lệnh ASP Pha trộn code, HTML và text Tương thích trình duyệt Không hỗ trợ cache Cơ chế debug kém Tái sử dụng code kém
23 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu ASP.NET
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 tương lai (ASP.NET is a revolutionary technology for developing web applications)
ASP.NET là kỹ thuật lập trình và phát triển ứng dụng web ở tảng của
trên nền
phía server (Server – side) dựa Microsoft.NET Framework
Một công nghệ server-side mới, mạnh để tạo các trang web động (A new and powerful server-side technology for creating dynamic web pages)
ASP.NET sử dụng kỹ thuật lập trình ở phía server, mã lệnh ở
phía server sẽ được biên dịch và thi hành tại Web server.
Tất cả các xử lý lệnh ASP.NET đều được thực hiện tại server
do đó gọi là kỹ thuật lập trình ở phía server
24 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các điểm nổi bật của ASP.NET
Hỗ trợ đa ngôn ngữ : >20 C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML, Haskell, Pascal, Oberon, Perl, Python, ... Biên dịch các trang trước, giúp làm tăng tốc độ thực hiện. Thay vì phải đọc và thông dịch mỗi khi trang web được yêu cầu, ASP.NET biên dịch những trang web động thành tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả.
ASP.NET hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của .NET Framework, làm việc với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.NET.
ASPX và ASP có thể cùng hoạt động trong một ứng dụng ASP.NET sử dụng phong cách lập trình mới: code behide. Tách code riêng, giao diện riêng => Dễ quản lý, dễ đọc và bảo trì
Kiến trúc lập trình giống ứng dụng trên Windows
25 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các điểm nổi bật của ASP.NET
Hỗ trợ trạng thái của các control Tự động phát sinh mã HTML cho các Server control tương
ứng với từng loại Browser Hỗ trợ nhiều cơ chế cache Triển khai cài đặt không cần lock, không cần đăng ký DLL.
Cho phép nhiều hình thức cấu hình ứng dụng.
Hỗ trợ quản lý ứng dụng ở mức toàn cục Global.aspx có nhiều sự kiện hơn Quản lý session trên nhiều Server, không cần Cookies
26 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Khác biệt giữa ASP.NET và ASP
Tập tin của ASP.NET - .ASPX, còn tập tin của ASP - .ASP - Tập tin của ASP.NET được phân tích ngữ pháp (parsed) bởi
XSPISAPI.DLL, còn ASP ASP.DLL.
ASP.NET dùng event driven, còn ASP được thi hành theo thứ
tự tuần tự từ trên xuống dưới.
ASP.NET sử dụng trình biên dịch (compiled code) nên rất nhanh, còn ASP dùng trình thông dịch (interpreted code) do đó hiệu suất và tốc độ phát triển cũng thua sút hẳn ASP.NET : 25 ngôn ngữ lập trình mới với .NET và chạy trong môi trường biên dịch (compiled environment), còn ASP: VBScript và JavaScript
ASP.NET yểm trợ tất cả các browser và quan trọng hơn nữa
là yểm trợ các thiết bị lưu động (mobile devices).
27 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cách thức làm việc của HTML
28 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cách thức làm việc của trang ASPX
29 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cài đặt các chương trình đòi hỏi cho ASP.NET
Internet Information Server (IIS) và bố trí Virtual Directory
Windows XP tích hợp IIS 5.5, win 7 – 6.5 Nếu chưa có thì phải cài thêm
MS Visual Studio.NET
trong trường hợp này thì MS Visual Studio.NET đã cài sẵn .NET Framework SDK cho ta dùng với ASP.NET hoặc là dùng Web Matrix
.NET Framework Software Development Kit (SDK)
30 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
IIS – Internet Information Server
IIS có thể sử dụng như web server, kết hợp với ASP để xây dựng các ứng dụng web, tận dụng các điểm mạnh của theo mô hình Server-side script, COM component… Client/Server
IIS chuyển giao thông tin bằng giao thức chuyển đổi siêu văn
bản HTTP
IIS có rất nhiều phiên bản
Phiên bản Windows 2000 tích hợp IIS 5.0 Windows XP tích hợp IIS 5.5 Windows XP.Net Server tích hợp IIS 6.0, hỗ trợ các tính năng
dành cho .NET của ASP.NET và Web Service
31 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
IIS – Internet Information Server
IIS làm được gì?
Xuất bản 1 Home page lên internet Tạo các giao dịch thương mại trên internet Truy xuất cơ sở dữ liệu từ xa
Hoạt động của IIS
IIS dịch URL sang path cục bộ
(vd: d:\domains\thisSite\wwwroot\site\index.aspx)
Sử dụng Common LanguageRuntime compiler dịch sang ngôn
ngữ trung gian MSIL, rồi sang mã nhị phân để thực thi.
Mã nhị phân được chứa tạm vào 1 vùng. Nếu lần gọi sau cần sử dụng mà trang web không có gì thay đổi thì sẽ lấy sử dụng mà không cần dịch lại. Nếu có thay đổi thì sẽ dịch lại và cập nhật vào vùng này.
Server trả về kết quả tương ứng với trình duyệt của client. Trình duyệt client xử lý phần hiển thị.
32 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cài đặt IIS trong WinXP
Start->Settings-> Control Panel-> Add/Remove Programs và nhấp đơn (click) Add/Remove Windows Components, xong chọn Internet Information Server như sau:
33 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu về WEB MATRIX
Web Studio Mongoose Project Saturn Tahiti Project
Microsoft ASP.NET Web Matrix.
- Free ware - Tạo ra từ C# - 800 class (.NET Framework >3000) - Rất nhỏ: 1.3MB (dạng đóng gói)
34 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp Khác biệt giữa VISUAL STUDIO.NET và WEB MATRIX
VS.NET dùng làm đủ mọi thứ, WM chỉ làm ASP.NET WM support FTP, VS không (1.0,1.1) WM có ASP.NET Web Matrix Server, còn VS có ASP.NET
Development Server
VS support IntelliSence và Debugging, còn WM không
35 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Phân loại tập tin Trong ASP.NET
.asax: tập tin global.asax trong ASP.NET thay thế cho tập tin global.asp trong ASP, là tập tin quản lý các sự kiện của ứng dụng (application), session, và các sự kiện khi có các yêu cầu tới trang web
.ascx: các điều khiển do người dùng tự tạo được lưu trữ với
phâǹ mở rộng ascx
.asmx: tập tin web service của ứng dụng ASP.NET .aspx: phần mở rộng mặc định của trang ASP.NET .config: tập tin cấu hình ứng dụng theo định dạng XML.
Web.config chứa hầu hết các cấu hình của ứng dụng
.cs: tập tin mã nguồn viết theo ngôn ngữ C# .js: tập tin mã nguồn của javascript .vb: tập tin mã nguồn viết theo ngôn ngữ VB.NET
36 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Ngôn ngữ lập trình ASP.NET
VB.NET : dễ hiểu và được cho là đơn giản nhất, nên đi theo
cách này nếu đã sử dụng thành thạo VB
C# : Gần với Java và C++, có nhiều chức năng hơn. Nên
chọn C# nếu am hiểu sâu về C++ và Java
J#: Ít được sử dụng, nhưng sẽ tốt với ai thông thạo Java Các ngôn ngữ khác: C++.NET, Smalltalk.NET, COBOL.NET, Eiffel.NET, Perl.NET, Component Pascal.NET, Mercury.NET, Oberon.NET, Python.NET,…
37 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cấu trúc trang ASP.NET
Ngôn ngữ lập trình trong ASP.NET Directives Code declaration blocks Code render blocks ASP.NET server control Server-side comments Server-side include directives Literal text and HTML tags
38 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Cấu Trúc Trang ASP.NET
39 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Directives
Tự động khai báo mỗi khi trang aspx được tạo ra Cung cấp cho ASP.NET những thông tin đặc biệt để ASP.NET biết cách mà đối xử cũng như những thông tin dùng trong tiến trình biên dịch (during the compiling process)
Cung cấp các chỉ dẫn thường được sử dụng trong
trang
như: Page, Assembly, Control, Implements, Import, Master,
OutputCache, PreviousPageType, Reference và Register Cho phép Import các class vào để dùng trong trang web này Ví dụ: <%@ Page Language=“VB” AutoEventWireUp=“true”
CodeFile=“Default.aspx.vb” Inherits=“_Default” %>
40 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Directives
Directive
Ý nghĩa
Assembly
Liên kết assembly va Page hay user control
Control
Sử dụng cho user control
Import
Không gian tên dùng cho Page hay user control
Master
Chỉ định trang chính được dùng trong trang Master.
OutputCache điều khiển chính sách sử dụng bộ nhớ cache cho
trnag ASP.NET hay user control
Page
Chỉ định những thuộc tính và giá trị của trang
Reference
Chỉ dẫn liên kết đến một trang khác
Register
Đăng ký không gian tên hay lớp trong custom control
41 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Code declaration blocks
42 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Other attributes
Tags “< script>…..” cho phép các thuộc tính khác
43 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Code render blocks
Dùng trực tiếp trong html code trong <% và %> Là phương pháp cổ điển ASP, thường dùng Response.Write()
44 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
ASP.NET Server Control
Có 4 dạng Server control cơ bản:
ASP.NET controls HTML controls Validation controls User control
Tất cả ASP.NET controls phải nằm trong