Các bài tp Microsoft .NET 1
MC LC
Bài 1 Microsoft .NET Framework 2
Bài 2 Visual Studio.NET 13
Bài 3 Nhng khác bit gia VB.NET vi VB6 37
Bài 4 Nhng chc nng i Tng mi ca VB.NET (phn I) 59
Bài 5 Nhng chc nng i Tng mi ca VB.NET (phn II) 68
Bài 6 Nhng chc nng i Tng mi ca VB.NET (phn III) 82
Bài 7 Nhng chc nng i Tng mi ca VB.NET (phn IV) 95
Bài 8 Nhng chc nng mi trong giao din ca s ca VB.NET (phn I) 112
Bài 9 Nhng chc nng mi trong giao din ca s ca VB.NET (phn II) 124
Bài 10 Nhng chc nng mi trong giao din ca s ca VB.NET (phn III) 134
Bài 11 Nhng chc nng mi trong giao din ca s ca VB.NET (phn IV) 144
Bài 12 Nhng chc nng mi trong giao din ca s ca VB.NET (phn V) 161
Các bài tp Microsoft .NET 2
Bài 1
Microsoft .NET Framework
Cài đt Visual Studio.NET Beta 2
Visual Studio.NET nm trong 3 CDs, gm có 4 files:
• EN_VS_NET_BETA2_WINCUP.exe
• EN_VS_NET_BETA2_CD1.exe
• EN_VS_NET_BETA2_CD2.exe
• EN_VS_NET_BETA2_CD3.exe
Chy EN_VS_NET_BETA2_WINCUP.exe đ Unzip nó vào mt folder
trong mt harddisk (eg: E:\CD\WINCUP).
Ln lt chy EN_VS_NET_BETA2_CD1.exe,
EN_VS_NET_BETA2_CD2.exe và EN_VS_NET_BETA2_CD3.exe đ
Unzip chúng vào chung mt folder trong mt harddisk (eg: E:\CD ).
Vic Unzip files có th rt lâu, bn phi kiên nhn ch cho đn khi nó kt
thúc. Nu không, khi cài đt có th b than phin là thiu files.
tier qua DCOM. Trong browser based Client ta dùng Javascript hay Java
applet. T browser based Client ta dùng http đ ni vi middle tier qua
IIS/ASP (có th dùng COM đây).
Middle Tier: Cha các rules đ validate data trên client và các business
rules khác. Ta dùng VB6 đây, nhng cách trin khai COM vi nhng
Object Oriented Programming concepts rc ri hn bình thng. Ta phi
thit k sao cho các components scale well (dùng cho mi c). Có khi
dùng Microsoft Transaction Server trên Windows NT hay COM+
Services trên Windows 2000. Lp ráp các versions ca components là
mt thách thc ln.
Nhiu khi middle tier còn nói chuyn vi các database qua HTTP, ADO
và CDO (Collaborative Data Objects), .v.v
Data Tier: Thng là relational database nh Microsoft SQL Server hay
Oracle. Ngoài ra còn có Exchange hay các database xa ca mainframe.
Do đó ta thy:
• Desktop tools không thích hp cho Distributed System
hay Internet
Phi dùng nhiu th codes nh VB6 Code, VBScript,
JavaScript, Dynamic HTML, Cascading Style Sheet,
VC++, Stored Procedures (Transact-SQL trong
SQLServer hay PL-SQL trong Oracle).
Tùy thuc quá nhiu vào central database: Ngay c ADO dù là tin dng
cng đòi hi Client luôn luôn connect vi Server. iu này không thích
Các bài tp Microsoft .NET 5
hp cho Internet applications, vì bn cht ca Internet là stateless (không
gi trng thái), mi ln cn làm vic mi connect li mt chút thôi.
• DLL "Hell": Các ActiveX cn phi đc registered
vi Windows Registry, ch có mt version đc chp
nhn. Nu version mi nht ca mt DLL không
compatible vi các versions trc đó mà applications
qua các platform khác, có th ngay c Unix.
Mc du hãy còn là Beta, .NET Framework rt stable và Visual
Studio.NET rt ít bugs, có th dùng cho software development ngay t
bây gi. Hin nay đã có mt s sách v lp trình .NET do
Wrox và
Oreilly xut bn.
Các phn chính ca Microsoft.NET Framework:
.NET application đc chia ra làm hai loi: cho Internet gi là ASP.NET,
Các bài tp Microsoft .NET 7
gm có Web Forms và Web Services và cho desktop gi là Windows
Forms.
Windows Forms ging nh Forms ca VB6. Nó h tr Unicode hoàn
toàn, rt tin cho ch Vit và tht s Object Oriented.
Web Forms có nhng Server Controls làm vic ging nh các Controls
trong Windows Forms, nht là có th dùng codes đ x lý Events y ht
nh ca Windows Forms.
im khác bit chánh gia ASP (Active Server Pages) và ASP.NET là
trong ASP.NET, phn đi din visual components và code nm riêng
nhau, không ln xn nh trong ASP. Ngoài ra ASP.NET code hoàn toàn
Object Oriented.
Web Services ging nh nhng Functions mà ta có th gi dùng t các
URL trên Internet, thí d nh Credit Card authorisation.
ADO.NET là mt loi cache database nho nh (gi là disconnected
database) đ thay th ADO. Thay vì application connects vnh vin vi
database m qua ADO, application trong .NET làm vic vi portable
database ch cha mt hai tables, là copy t database m. Khi nào cn,
portable database này (ADO.NET) s đc reconciled vi database m đ
update các thay đi. Hai tables trong ADO.NET có th đc related nhau
trong Master/Details relationship. Vì ADO.NET có cha original data
ln data mi nht nên Rollback trong ADO.NET rt d dàng và nh ký.
mt khi ta đã cài .NET framework vào máy ri thì có
đy đ mi .DLL cn thit. Có l trong tng lai
Microsoft cài .NET framework chung vi Windows.
• Dùng cho t WindowsCE đn Desktop, đn Web
(scalability).
Các bài tp Microsoft .NET 9
Metadata
Metadata là các d kin ct ngha cho ta bit v d kin. Thí d XML
Schema ca mt XML file là metadata ct ngha v data structure ca
data trong XML file. Chính cái XML Schema cng là mt XML file. Các
.NET application components, gi là Assembly, cha rt nhiu metadata
đ ct ngha v chính nó (self describing). Tìm bit v mt .NET
application đ có th làm vic vi nó thì gi là Reflection.
H tr và phi hp mi ngôn ng lp trình
Common Language Runtime (CLR) là trung tâm đim ca .NET
Famework, nó là hm máy đ chy các nng tính ca .NET. Trong .NET,
mi ngôn ng lp trình đu đc compiled ra Microsoft Intermediate
Language (IL) ging ging nh byte code ca Java. Nh bt buc mi
ngôn ng đu phi dùng cùng các loi data types (gi là Common Type
System) nên Common Language Runtime có th kim soát mi interface,
gi gia các components và cho phép các ngôn ng có th hp tác nhau
mt cách thông sut. Tc là trong .NET, VB.NET program có th inherit
C# program và ngc li mt cách hoàn toàn t nhiên.
iu này chng nhng giúp các VC++ hay Java programmers bt đu
Các bài tp Microsoft .NET 10
dùng C# mt cách d dàng mà còn làm cùng mt d án vi VB.NET
programmers na.
Nu VC++ linh đng và hiu nng hn VB6, thì C# chng khác gì
VB.NET. Bn có th port C# code qua VB.NET code rt d dàng. Vì
source code VC++ và Java gn gi C# hn VB6 vi VB.NET nên ngoài
.NET application xây dng t các assemblies. Mi assembly phi có mt
manifest. Có th nó nm riêng trong mt file hay nm bên trong mt
module. Manifest cha nhng metadata sau đây:
• Tên và Version number ca assembly
• Nhng assembly khác (k c version number ca
assembly) mà assembly này tùy thuc vào đ chy
Các bài tp Microsoft .NET 12
• Types (classes và members) mà assembly này cho
xut khu
• Assembly này đòi hi điu kin an ninh nào (security
permissions)
Manifest cho phép ta dùng hn mt version ca assembly (tng đng
vi DLL trc đây) cùng mt lúc. T đây không còn register DLL na.
Thay vào đó, ta ch cn copy các assembly vào mt subfolder /bin ca
chng trình chính.
Quyt đnh ca bn
Sau khi bit qua v .NET, câu hi bn s đt ra là bn có nên hc lp trình
trên .NET hay không. Nói chung, v lp trình có nhiu tôn giáo nh
VC++/Java, VB6, Delphi v.v Bn có th chn gia C# và VB.NET.
i vi VB6 programmers, hc lp trình VB.NET s mt mt thi gian,
nhng không khó. Nên nh rng .NET không phi ch cho ta các ngôn
ng lp trình, mà c mt h thng trin khai phn mm chú trng vào
mc tiêu hn là cách thc. Các li ích .NET cng hin cho bn cách thc
tin là:
• K thut .NET s hoành hành trên giang h trong t 5
đn 10 nm ti.
• Tính trung bình, lp trình trong .NET s tit kim thì
gi cho bn t 25% đn 50% so vi trc đây. Lý do
là trong .NET bn s nghiên cu đ dùng component
nào nhiu hn là tht s vit code. Hn na, hu nh
ngoài VB6 IDE nh trc đây.
Solution trong VS.NET có th cha hn mt Project và bao gm tt c
nhng files bn lit ra là cn thit cho Solution. Nu mt trong nhng
files y b thay đi bên ngoài VS.NET, khi VS.NET khám phá ra nó s
load vào trong VS.NET cho bn nu bn đng ý.
Các bài tp Microsoft .NET 15
m mt Solution/Project có sn, bn có th click link ca tên project
trên trang StartPage, hay dùng Menu command File | Open | Project ,
hay Menu Command File | Recent Projects.
Visual Studio.NET IDE
Các bài tp Microsoft .NET 16
Giao din ca VS.NET có nhng đc đim ging nh Delphi và Visual
InterDev ch code đc generated t đng, Windows nm chung thành
Tab set hay float khp ni, và h tr Solution rt thích hp cho vic trin
khai ca c đi.
Toolbox bên trái cha Controls cho Windows Forms, Web Forms,
General Components, Data Components, HTML tags, XML Schema
tools v.v Khi mt Form đang hin th, click lên mt button trong
Toolbox đ chn Tool Set bn cn. Toolbox trng thái Fixed displayed
(nh trong hình trên) khi cây ghim phía trên đâm xung. Bn có th click
cây ghim cho nó nm ngang và vertical Toolbox tab hin ra bên trái. Lúc
y, Toolbox trong trng thái Auto Hide (hin ra/rút vào) nh di đây:
Các bài tp Microsoft .NET 17
Bn có th gi hu ht các Windows hin th bng cách dùng Menu
commands View, View | Other Windows và Debug | Windows:
Các Windows bên phi có th float, nm chng lên nhau thành nhng
Tabs trong mt Window set hay nm cnh nhau vertically tiled. Nm
Tittle bar đ di nguyên mt Window set đi. Nm Window Tab ca mt
Window set đ kéo ch mt Window ra. Bn có th đ chng hai
Các bài tp Microsoft .NET 18
Phng tin Integrated Debugging cho ta Debug Menu, Call Stack
Window, Breakpoints Window và Watch and Value Display
Windows.
Thng thng bn s Add Reference các .NET components. Nhng bn
cng có th dùng ActiveX (có sn trong VB6) trong .NET application
bng cách Add Reference COM (click Tab COM trên Add Reference
Dialog). .NET s gói ActiveX thành mt NET component (click Yes tr
Các bài tp Microsoft .NET 20
li câu hi "Would you like to have a wrapper generated for you?").
Ngoài ra dùng Add Reference Projects đ refer đn DLL ca các User
developed DLL.
Demo Program
Trong chng trình biu din này, ta dùng giao din hu nh hoàn toàn
bng ch Vit. Ta có th đánh ch Vit (Unicode) cho Title Bar, Menu,
TextBox, ListBox .v.v
Nu bn cn mt key input software cho ch Vit h tr Unicode thì
download VPS, Vietkey hay Unikey.
Các documents nh Form, XML .v.v. trong .NET project đu đc Saved
vi UTF-8 encoding.
Các bài tp Microsoft .NET 21
Trong program S thú Saigon này ta có hai Listboxes. Khi chy, bn có
th drag tên các loi thú t Listbox1 (bên trái) đ drop vào Listbox2 (bên
phi). Phía di là mt Label dùng đ hin th ngày gi. Có mt button
Lu tr danh sách đ ta save data trong Listbox2 vào file animal.txt
trong subFolder bin. Ngoài ra bn cng có th dùng Main menu Item c
danh sách đ Load data t file animal.txt vào Listbox2.
Nhng components không cn phi hin ra lúc runtime nh Timer,
Menu, Tooltip .v.v. nm trong mt Component Tray (mâm) riêng. Mun
Edit MainMenu, click lên MainMenu1 icon ri đánh trc tip vào
MainMenu. Thêm các menuitems mi bng cách đánh thng vào các ch