TỔNG QUAN .NET
NGÔN NGỮ C#
ThS. Nguy
nHàGiang
Nguyen Ha Giang -2009
Nội dung
2
1. Giớithiệu.NETFramework
1. CLR,CTS,CLS,MSIL…
2. Garbagecollection
3. Namespace
2. Tổngquanngônngữ C#
1. Đặc điểmngônngữ
2. QuátrìnhbiêndịchCTC#
3. CácloạiCTC#
4. CấutrúcchươngtrìnhC#
5. ChươngtrìnhC# đơngiản
Nguyen Ha Giang -2009
.NET Framework
3
¤ Chươngtrìnhnềntảngcho
chocôngnghệ .NET
¤ Cung cấp tập hợp class
librarythườngdùng
¤ Quảnlýsựthựcthicủacác
chươngtrình.NET
Common Language Runtime
Base Framework Classes
Data and XML Classes
Custom Classes
C# VB.NET J# C++ …
XML Web
Service
Web
Forms
Windows
Forms
ASP.NET
Nguyen Ha Giang -2009
.NET Framework -Architechture
¤ Common Language
Infrastructure (CLI)
provide a language-
neutral platform for
application development
and execution
4
Nguyen Ha Giang -2009
.NET Framework
5
.NET 1.1 (Apr-2003)
VS .NET 2003
Default: Server 2003
.NET 3.5 (Nov-2007)
VS.NET 2008
Default: Windows 7,
Server 2008 R2
.NET 3.0 (Nov-2006)
Default: Windows
Vista, Server 2008
.NET 2.0 (Nov-2005)
VS.NET 2005
.NET 1.0
(Feb-2002)
.NET 4.0 (April-2010)
VS.NET 2010
Default: Windows 7,
Server 2008 R2
.NET 4.5 (August-2012)
VS.NET 2012
Default: Windows 8,
Server 2012
Nguyen Ha Giang -2009
Đặc điểm của ứng dụng .NET
6
¤ Chạytrênnền(.NETframework)
¤ Mãnguồn đượcbiêndịchquaMSIL
¤ MSIL đượcthôngdịchquamãmáylúcthựcthinhờ
vàoCLR
¤ Độclậpnềntảng
Về lýthuyếtcóthể chạytrênmọinền!
¤ Install .NET Framework redistribute packadge
(dotnetfx.exe) để chạy ứng dụng .NET trên máy
client.
Nguyen Ha Giang -2009
Đặc điểm của ứng dụng .NET
7
MS IL
CLR
C++
Compiler
C#
Compiler
J# .NET
Compiler
CT
C#.NET
CT
VB.NET
CT
C++.NET
CT
J#.NET
VB .NET
Compiler
Programmer
Nguyen Ha Giang -2009
Đặc điểm của ứng dụng .NET
8
Nguyen Ha Giang -2009
.NET Framework -CLR
9
¤ Theoquan điểmcủangườilậptrình,.NETcóthể
hiểunhư môitrườngthựcthimớivàthư việnlớpcơ
sởcảitiến.
¤ Môitrườngthựcthilà:CommonLanguageRuntime
-CLR
¤ VaitròchínhCLR:locate,load,manage.NETtypes
¤ CLRcònquảnlýnhữngphần ở mứcthấpnhư:
memorymanagement,securitycheck
Nguyen Ha Giang -2009
.NET Framework -CTS
10
¤ CommonTypeSystem(CTS):
Mục đíchhỗtrợ thựcthichéongônngữ
Địnhnghĩakiểudữliệutiền địnhvàcósẵntrongIL:
n Tấtcảngônngữ .NETsẽđượcsinhramãcuốitrêncơsởkiểu
dữ liệunày
…
Integer
…
…
Int32
…
…
int
…
VB.NET IL C#
Nguyen Ha Giang -2009
. NET Framework -CLS
11
CLR/
CTS/IL
C++
C#
Visual Basic
CLS
CLS is the smallest common
denominator of various OO-
languages. FCL only uses
CLS features.
Nguyen Ha Giang -2009
. NET Framework -CLS
12
¤ CommonLanguageSpecification:
Đảmbảosựthựcthichéo
Tấtcảcompilerhướng.NET đềuphảituânthủ theoCLS
n Cóthể viếtmãnon-CLSnhưngsẽko đảmbảothựcthichéo
n ILphânbiệtloạikýtự,VB.NETkophânbiệt,CLSbáorằng
kochophép2địnhdanhchỉ khácnhauvềkiểukýtự,do đó
VB.NETcóthể hoạt độngtrongCLS
C#
VB.NET
Nguyen Ha Giang -2009
MS Intermediate Language
13
¤ IL
Abstractedassemblylanguage
ÝtưởngvềmãJavabyte
Mãcấpthấpcúpháp đơngiản ⇒ quátrìnhdịchsangmã
máynhanhhơn
¤ CLRchuyểnILthànhmãmáylúcruntime
Sự chuyểnnàygọilà Just–In–Time Compilationhay
JITcompiling
Nguyen Ha Giang -2009
Common Language Runtime -compilation
14
C++, C#, VB or
any .NET
language
csc.exe or vbc.exe
Compiler
Assembly
DLL or EXE
Source
Code
Nguyen Ha Giang -2009
Assembly
¤ ManagedModules
ChứaILcode để thựcthi
¤ Chứaresource,metadata…
¤ PortableExecutable(PE)
Processassembly(EXE)
Libraryassembly(DLL)
15
Nguyen Ha Giang -2009
Managed Code
16
¤ Phầnmềmđượcviết để sử dụngtrong.NET
Framework
¤ PMkhácthìgọilàUnmanagedcode
¤ “Managed”:dochạydướisựgiámsátcủacơchế
thựcthi(CLR)
Legacy Software
(unmanaged code)
Common Language Runtime
Managed Executable
Nguyen Ha Giang -2009
Garbage collection
17
class myClass{
void Method(){
variable v1;
variable v2;
do{
….
}
}
B
E
C
A
D
Managed Heap
A và D sẽ bị xoá do ko
còn tham chiếu hay
truy cập tới
Nguyen Ha Giang -2009
Garbage collection
18
¤ GCxuấthiện(ko địnhtrước)khiko đủ bộ nhớđể
cungcấpcho ứngdụng.
¤ GCthựchiệnviệctìmkiếmnhững đốitượngtrong
managedheap,xoánếukocònthamchiếutới.
¤ Cóthể gọiGCmộtcáchtườngminh
Nguyen Ha Giang -2009
Namespace
19
¤ Tránhxung độttên
¤ Chophépnest
¤ Truycậpđầy đủ quatên
¤ Tấtcảdatatypecótiếp đầungữ là
tênnamespace
Namespace CS1
Class A
Class B
Class C
Namespace CS2
Class A
Class B
Class C
CS1.A…
CS2.A…
Nguyen Ha Giang -2009
Namespace
20
¤ Hầuhếtcáclớpcơsởchungcủa.NET đềuthuộc
namespaceSystem
LớpCSArraythuộcSystem → System.Array
¤ .NET đề nghị tấtcảkiểudouser địnhnghĩaphải
nằmtrong1namespace
Customer
Personel
CompanyName
Tên lớp
Tên
namespace
Nguyen Ha Giang -2009
Namespace
21
¤ Nênphânthành2cấp:
Côngnghệ
Góiphầnmềmchứcnăng
Customer
Personel
CompanyName
Tên lớp
Tên
namespace
SaleServices
ManagingServices
Nguyen Ha Giang -2009
Các lớp .NET Framework
22
¤ Thư việnlớpcơsở.NETlàmanagedcode
¤ Khá đadạng&đầy đủ:
Chophépkếthừa để pháttriểnUD
¤ BaobọctấtcảcáchàmAPI
Dễ sử dụng(khácvớiVC++trước đây)
Nguyen Ha Giang -2009
Các lớp .NET Framework
23
¤ Cáclớp.NETbaogồmcácvấnđề
ĐặctínhlõicungcấpIL,kiểudữliệutrongCTS
Hỗ trợ WinGUIvàcontrol
WebForm(ASP.NET)
DataAccess(ADO.NET)
DirectoryAccess
FileSystem,registryaccess
Networkingandwebbrowsing
.NETattributesandreflection
WinOSaccess
COMinteroperability
Nguyen Ha Giang -2009
Framework (Base) Class Library
¤ Thư việnnềntảngcho.NETFramework
¤ CácnamespacecơbảncủaFCL/BCL
24
Namespace Description
System
Chứalớptoánhọc, chuyển đổidữliệu
System.IO
CáclớpchothaotácInput vàOutput
System.Net
Cáclớpliênquan đếnnetwork protocol
System.Collections
Chứccáclớpliênquan đếnxửlýtậphợp
System.Data
CáclớpcủaADO.NET
System.Drawing
CáclớpthựcthichứcnăngGUI
System.Threading
CáclớplậptrìnhMultiThread
System.Web
Cáclớpliênquan đếnHTTP protocol
System.Xml
CáclớpliênquanXML
Nguyen Ha Giang -2009
Run .NET App from Client
¤ RequiredMS.NETFrameworkcompatible
MS.NETFramework2.0,3.5
¤ Install.NET3.5FullRedistributablepackage
(dotnetfx35.exe,197MB)
¤ WindowsVistacomeswith.NETFramework3.0
25
.NET Framework X.Y
.NET
App
.NET
App
.NET
App