12 Bài tập và lời giải MICROSOFT.NET
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. K đó, trc ht chy Setup.exe ca Windows Component Update nh di đây, click No khi Warning dialog hin ra: Tip theo, chy Setup.exe ca Visual Studio.NET: Bn nên có CPU Pentium III, 500MHz tr lên, vi 256 MB RAM và ít nht 10GB Harddisk. V OS bn nên dùng Windows 2000 (Professional Các bài tp Microsoft .NET 3 hay Server) hay Windows XP. Lý do chính là các versions Windows này h tr Unicode và có Internet Information Server (IIS) h tr ASPX đ ta dùng cho ASP.NET. M các Samples ca QuickStart Trc khi expand Samples ca Quickstart bn cn phi cài đt IIS. Nu cha làm vic y bn b CD ca Windows2000 hay WindowsXP vào đ install IIS component. QuickStart Samples ca .NET Framework cha các gii thích cn bn và nhiu thí d. expand các Samples doubleclick Webpage Starthere.htm nh trong hình di đây: Khi trang Web ca QuickStart hin ra, click QuickStart, tutorials and samples ri sau đó theo ch dn tng bc. Trang Framework SDK QuickStart Tutorials cho ta các bài tp ca ASP.NET, Windows Forms và How Do I . Nh đ nguyên các folders ca Unzipped files (E:\CD, E:\CD\WINCUP), đng delete chúng, vì .NET s còn dùng chúng. Ngoài ra, nu sau này .NET b corrupted vì conflict vi các application software khác, bn có th cài đt .NET li. Gii hn ca Software Tools hin gi Các bài tp Microsoft .NET 4 Architect ca application software hin gi có nói chung ba tng (three tiers): tng giao din (Presentation Tier), tng gia (Middle Tier) và tng d kin (Data Tier): Presentation Tier: Trong desktop Client ta dùng VB6 và ni vi middle 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 trên máy đang cn thì có rc ri. Gii hn ca VB6 • Thiu kh nng inheritance (tha k) và mt s Object Oriented features khác. • Kh nng Error handling gii hn: On Error Goto ., On Error Resume Next Các bài tp Microsoft .NET 6 • Nhiu khi cn phi gi Windows API đ làm nhng vic VB6 không h tr: vic này không t nhiên và đôi khi nguy him. • Không có multi-threading: không th đoán trc response ca code chy trong các windows ca cùng mt VB6 application. Ngay c gii quyt vn đ multitasking bng Timers cng không đáng tin cy. • Không d dùng chung vi các ngôn ng khác nh VC++. • Không tin cho Web development: WebClass không thành công lm. Ít ai chu cho ta cài ActiveX trên máy ca h. .NET Framework .NET đc developed t đu nm 1998, lúc đu có tên là Next Generation Windows Services (NGWS). Nó đc thit k hoàn toàn t con s không đ dùng cho Internet. Vin tng ca Microsoft là xây dng mt globally distributed system, dùng XML (cha nhng databases tí hon) làm cht keo đ kt hp chc nng ca nhng computers khác nhau trong cùng mt t chc hay trên khp th gii. Nhng computers này có th là Servers, Desktop, Notebook hay Pocket Computers, đu có th chy cùng mt software da trên mt platform duy nht, đc lp vi hardware và ngôn ng lp trình. ó là .NET Framework. Nó s tr thành mt phn ca MS Windows và s đc port 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ý. XML đc ym tr ti đa. Nm phía sau ADO.NET là XML. XML có th là Table of records trong ADO.NET hay Tree of nodes trong DOM (Document Object Model). IO đc h tr bng toàn b Stream k c Memory Stream và StreamReader/StreamWriter. Thêm vào là DataFormatting cho Serialisation đ cha Object xung binary file hay text file. TCP/IP và http là hai protocols thông dng nht trong .NET, nhng chúng làm vic phía sau sân khu giúp ta gi mt remote procedure (nm trên computer khác) d dàng nh mt local procedure. K thut y gi là Remoting. Các bài tp Microsoft .NET 8 Security h tr Cryptography, Permissions và Policy. Diagnostics cho ta Debug và Trace. Threading rt tin và đn gin đ implement Lightweight Process. Vn đ Timing trong .NET program rt linh đng, hiu qu và chính xác. Vic thit k Common Language Runtime nhm vào các mc tiêu chính sau đây: • Vic trin khai đn gin và nhanh hn: developers s dành thì gi quyt đnh ráp nhng software components nào li vi nhau nhiu hn là lp trình tht s. • Các công tác thit yu ("plumbing") nh memory management, process communication .v.v. đc lo liu t đng. • Các công c h tr rt đy đ (no more API): .NET Framework Base classes rt phong phú cho file, network, serialisation, mã hóa, XML, database, v.v • Cài đt đn gin và an toàn (no more DLL "hell"): ch cn xcopy files, ging nh thi vàng son ca DOS. Lý do là .NET application chy trên .NET framework, 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 đi có nhiu C# code hn VB.NET. Do đó, mc du hai ngôn ng VB.NET và C# đu ngang c nhau, nu dùng C# bn đc li đim có nhiu source code sn và nht là lâu nay ngi ta vn mang n tng rng VC++ hay Java programmers mi tht s là các cao th lp trình, và có khuynh hng tr lng các guru VC++/Java cao hn VB programmers. Khi chy .NET application, nó s đc compiled bng mt JIT (Just-In- Time) compiler rt hiu nng ra machine code đ chy. im này giúp .NET application chy nhanh hn Java interpreted code trong Java Virtual Machine. Just-In-Time cng có ngha là ch phn code nào cn x lý trong lúc y mi đc compiled. IL code chy trong CLR đuc nói là managed code. .NET code có th chy chung vi ActiveX, nhng code trong ActiveX đc gi là unmanaged code, tc là CLR không chu trách nhim. Ngoài vic allocation và management of memory, CLR còn gi các refrerence đn objects và đ rác (handle garbage collection), tc là thâu li các mnh vn memory khi chúng không cn dùng na. Trc đây, mi khi mt DLL đuc loaded vào memory, system s ghi nhn có bao nhiêu task dùng nó đ khi task cui cùng chm dt thì system unload DLL và tr li phn memory nó dùng trc đây đ system dùng cho chuyn khác. Ch nu allocate memory đ dùng mà không nh dispose nó thì s b memory leak (r ), ln ln ta dùng ht memory, b bt buc phi reboot . Các bài tp Microsoft .NET 1 MC LC Bài 1 Microsoft .NET Framework .2. 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