5/11/2009
1
11
Môn học: Lập trình ASP.NET
.NET-Based Languages
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
Nội dung
1. Tổng quan về các .NET-Based Languages
2. So sánh các .NET-Based Languages
3. Web Form trong ASP.NET
4. Tạo Component sử dụng Visual Studio .NET
2
5/11/2009
2
1. Tổng quan về các .NET- Based Languages
Hỗ trợ đa ngôn ngữ
The Common Language Runtime - CLR
Các thành phần trong CLR
Runtime Compilation and Execution
Khái niệm Namespaces
Sử dụng Namespaces
3
Hỗ trợ đa ngôn ngữ
Kiến trúc .NET Framework mang đến tính năng hỗ
trợ đa ngôn ngữ lập trình
Hiện tại hỗ trợ khoảng 20 NNLT
Microsoft cung cấp các ngôn ngữ: Visual Basic .NET,
C#, Visual J# .NET, and JScript .NET
Lợi ích của hỗ trợ đa ngôn ngữ:
Code modules có thể được tái sử dụng (resuable)
Lựa chọn ngôn ngữ thích hợp tương ứng với một tác
vụ cụ thể (ngôn ngữ phát triển web, ngôn ngữ phát
triển ứng dụng)
Hiệu năng tương đương cho tất cả ngôn ngữ
4
5/11/2009
3
The Common Language Runtime
5
CIL: Common Intermediate Language
CLR: Common Language Runtime
The Common Language Runtime
Quá trình Runtime chung cho tất cả các NNLT
Quản lý đa tiểu trình, quản lý bộ nhớ
Garbage collection
Đảm bảo code security
Xây dưng giải pháp DLL version
Nhiều version của một DLL file có thể chạy đồng thời
Ứng dụng có thể lựa chọn version của DLL file để
chạy chương trình
6
5/11/2009
4
7
Các thành phần trong CLR
.NET Framework Class Library Support.NET Framework Class Library Support
Thread SupportThread Support COM MarshalerCOM Marshaler
Type CheckerType Checker Exception ManagerException Manager
MSIL to NativeMSIL to Native
CompilersCompilers
CodeCode
ManagerManager
GarbageGarbage
CollectorCollector
Security EngineSecurity Engine Debug EngineDebug Engine
Class LoaderClass Loader
Runtime Compilation and Execution
Native
code
C# code
Visual Basic .NET code
Which language?
Visual Basic
.NET compiler
C# compiler
MSIL
JIT
compiler
default.aspx
Runtime
8
5/11/2009
5
Khái niệm Namespaces
Gom nhóm các relation Classes
Gom theo mối liên quan logical, không theo physical
Thể hiện kiến trúc phân tầng
Giảm vấn đề conflict (xung đột) trong vấn đề đặt
tên class
Imports keyword in Visual Basic .NET code
Using keyword in C# code
9
Imports System.Data.SqlClient
using System.Data.SqlClient;
Sử dụng Namespaces
10
Implicit object declaration – khai báo ngầm định
Explicit object declaration – khai báo tường minh
Dim listBox1 As New System.Web.UI.WebControls.ListBox()
listBox1.Items.Add("First Item")
Imports System.Web.UI.WebControls
Dim listBox1 As New ListBox()
listBox1.Items.Add("First Item")
using System.Web.UI.WebControls;
ListBox listBox1 = new ListBox();
listBox1.Items.Add("First Item");
System.Web.UI.WebControls.ListBox listBox1 =
new System.Web.UI.WebControls.ListBox();
listBox1.Items.Add("First Item");
5/11/2009
6
2. So sánh các .NET- Based Languages
Visual Basic .NET
C#
…
11
Visual Basic .NET
Visual Basic .NET là version mới nhất của NN
Visual Basic
Là ngôn ngữ hướng đối tượng thực sự
12
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer = 0
Dim x As Double = TextBox1.Text
For i = 0 To 4
x *= 2
Label1.Text = Label1.Text & x & ","
Next
End Sub
5/11/2009
7
C#
C# là một ngôn ngữ LT mới
Tương tự Java, Visual C++ và Pascal
13
private void Button1_Click(object sender,
System.EventArgs e)
{
int i = 0;
double x = Convert.ToDouble(TextBox1.Text);
for (i=0; i<=4; i++)
{
x *= 2;
Label1.Text = Label1.Text + x + ",";
}
}
3. Web Forms
Thành phần chính trong các ASP.NET Application là
các Web pages
Là file text với extension là .aspx, gọi là Web Forms
Bao gồm:
Thành phần thể hiện presentation/ markup (HTML)
Thành phần lập trình (các đoạn code C#,VB.NET…), gọi
là programming logic.
14
5/11/2009
8
Programming logic
Th/p programming logic có thể có 2 vị trí xuất hiện:
Trong cùng các file web page
Trong cùng file HelloWorld.aspx
Code declaration block
Trong một file class riêng
Code-behind file
Chứa hai file:
HelloWorld.aspx Web Form
HelloWorld.aspx.cs Code-behind file
15
16
Code declaration block
Code Declaration Block
Page Directive
Web Form
ASP.NET Control
5/11/2009
9
Page directive
Page Directive cung cấp các đặc tả ban đầu của các
Web pages cho môi trường ASP.NET
Xác định ngôn ngữ lập trình được sử dụng là C#
FIT - HCMUS
17
Thành phần <script>
Sử dụng với thuộc tính runat = “server”
Xác định với môi trường ASP.NET là đoạn code ở
trong sẽ được thực thi ở server
FIT - HCMUS
18
5/11/2009
10
Thành phần <form>
Tất cả các trang ASP.NET web page phải chứa thành
phần form với thuộc tính runat = ‘server’
Nội dung của web page được đặt trong thành phần
form này
19
ASP.NET control
<asp: Label>
ID: ‘labDate’
runat = ‘server’ xác định server control
Tương đương với đoạn code
Label labDate = new Label();
FIT - HCMUS
20
5/11/2009
11
Programming logic
Th/p programming logic có thể có 2 vị trí xuất hiện:
Trong cùng các file web page
Trong cùng file HelloWorld.aspx
Code declaration block
Trong một file class riêng
Code-behind file
Chứa hai file:
HelloWorld.aspx Web Form
HelloWorld.aspx.cs Code-behind file
21
Code- behind file
22
HelloWorld.aspx HelloWorld.aspx.cs
5/11/2009
12
Code- behind file
Tách biệt giữa thành phần programming logic và
thành phần giao diện
23
4. Tạo Component sử dụng VS.NET
Khái niệm Classes và Components
Sử dụng Component trong ASP.NET Web Forms
Demo: Tạo Class sử dụng VS.NET
24
5/11/2009
13
Khái niệm Classes và Components
Classes là tập hợp các đoạn code không có giao
diện (interfaces)
Components là các compiled classes
Components được complied thành các DLL files
Components được sử dụng với mục đích share code
giữa các ứng dụng
25
Component
Web
application
Windows
application
Windows
application
Web
application
Tạo Classes
26
Public Class Shipping
Function ShippingCost _
(ByVal sngPrice As Single) As Single
'…
Return (sngShipping)
End Function
End Class
}
public class Shipping
{
public Single ShippingCost (Single sngPrice)
{
//…
return sngShipping;
}
}
5/11/2009
14
Sử dụng Components
27
Add a reference to the DLL
Khởi tạo class object:
Sử dụng object:
sngShipping =
x.ShippingCost(sngPrice);
Dim x As New CompanyA.Shipping
Namespace CompanyA
Class Shipping
Function
ShippingCost ()
End Class
End Namespace
component.d
ll
sngShipping = _
x.ShippingCost(sngPrice)
CompanyA.Shipping x =
new CompanyA.Shipping();
namespace CompanyA
{
class Shipping
{
public void ShippingCost () { }
}
}
component.d
ll
Demo: Tạo Class sử dụng VS.NET
28
5/11/2009
15
3. Lab Web Application
29
Medical
Medical.aspx
Benefits
Home Page
Default.aspx
Life Insurance
Life.aspx
Retirement
Retirement.aspx
Dentists
Dental.aspx
Dentists
Doctors
Doctors.aspx
Doctors
Logon Page
Login.aspx
Registration
Register.aspx
Coho
Winery
Prospectus
Prospectus.aspx
XML Web
Service
dentalService1.asmx
Page Header
Header.ascx
ASPState
tempdb
Lab Web
Application
User Control
namedate.ascx
Class1.vb or Class1.cs
Menu
Component
Class1.vb or Class1.cs
XML
Files
Web.
config