Frequently Asked Questions (FAQ) .NET
Mun dùng Visual Studio .NET thì cn OS và thíết b nào?
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 hay Server) hay Windows XP. Lý do chính là các versions
Windows ny h tr Unicode và có Internet Information Server (IIS) h tr ASPX để ta dùng cho
ASP.NET.
Tôi nên dùng version Visual Studio .NET nào?
T tháng By, 2001 có Visual Studio.NET Beta 2. Version ny có nhiu thay đổi so vi Beta 1
(11/2000). Nó có đầy đủ các chc năng và tương đối vng chãi. Ngày 23-Oct-2001, Microsoft phát
hành Visual Studio.NET Release Candidate trong mt DVD, khong 2GB. Version ny có ít chc
năng hơn Beta 2 và có l ít bugs hơn. Nhưng nó có mt "time bomb" (trái bom n chm), tc là nó s
hết hn ngày 28-Feb-2001.
Visual Studio.NET Beta 2 hin nay có Service Pak 2, nó cho phép ta dùng Visual Studio.NET Beta 2
sau ngày 31-July-2001, tc là không có time-bomb. Nếu VS.NET version ca bn b gii hn v thi
gian nói trên, t trong VS.NET bn có th download Service Pak 2 để cài đặt bng cách dùng IDE
Menu Command Help | Check for Updates.
Microsoft đã lăn-xê Visual Studio.NET vào ngày th tư 13-Feb-2002 ti VSLive! San Francisco, M.
Có ba versions: Professional, Enterprise và Enterprise Architect. Cách cài đặt ging và đơn giãn hơn
trước:
o Trước hết uninstall Visual Studio.NET Beta và .NET Framework Beta
o Kế đó là cài đặt Windows Update Components t CD cui ca b VS.NET, trong đó có .NET
Framework.
o Sau cùng là cài đặt chính Visual Studio.NET
Dĩ nhiên nếu có phương tin thì bn nên dùng version chính thc mi nht.
Xin cho biết s liên h gia .NET Framework và Visual Studio .NET?
.NET Framework là phn chính ca .NET. Nó gm có Common Language Runtime (CLR) và tt c
mi Libraries. Bn có th viết program trong VB.NET hay C# bng Notepad ri compile bng
command line và chy trên .NET Framework. Tuy nhiên, Visual Studio.NET cho ta mt IDE rt hùng
mnh và đầy đủ để drag-drop các controls khi ta design và viết code, debug rt nhanh. Đi khái
Visual Studio.NET ging như VB6 IDE nhưng nó có thêm rt nhiu chc năng như inbuilt-editor t
động pretty code, ta có th edit XML và IntellSense rt thông minh.
Nhìn t quan đim deployment and package thì .NET Framework ging như VB6-Runtime. Thông
thường ch cn copy các exe, dll và data files cn thiết vào destination folders ca mt computer có
cài sn .NET Framework là ta có th chy program được. Hoàn toàn không cn phi register gì c.
Trong tương lai, có th Microsoft s làm .NET Framework như mt component ca MSWindows.
ASP.NET khác vi ASP như thế nào?
ASP.NET đối vi lp trình trên Webserver cũng ging như VB6 đối vi lp trình cho desktop.
ASP.NET là hu thân ca ASP, tc là ta có th dùng nó để lp trình trên Webserver thay gì dùng cgi-
perl hay php.
V System Architecture thì ASP.NET nm trên .NET Framework nên nó tn dng tt c nhng chc
năng Đối tưng, Cross Language Inheritance ..v.v.
ASP.NET có mt s đặc đim sau đây:
1. Mi program ASP.NET gm có hai phn: phn Visual thì ging như trang HTML, còn phn code
thì nm riêng để handle Events và ging ht như code để dùng cho desktop application.
2. Bn có th viết ASP.NET bng VB.NET hay C#, c hai đều đưc compiled at run time, ch không
phi là Script như trong ASP.
3. ASP.NET dùng ADO.NET là mt loi Disconnected Cached Database, nên rt thích hp cho
Internet.
4. ASP.NET qun lý chuyn data state persistence (còn nh trng thái ca data trong form) mt cách
t động cho bn.
5. ASP.NET có nhiu Server controls cho bn dùng (ging ging như Design time controls ca Visual
InterDev) và develop thêm bng cách tha kế.
6. ASP.NET dùng XML rt nhiu, nht là cho ADO.NET.
7. Visual Studio.NET cho bn mt IDE ging như Visual InterDev đối vi ASP, nhưng hiu năng hơn
bi phn.
8. ASP.NET cho phép bn develop Web Services. Người khác dùng mt Web Service ca bn bng
cách gi mt Function t URL ca bn để ly kết qu.
Tôi nên hc VB.NET hay C#?
V mt k thut thì VB.NET và C# tương đương nhau v chc năng, không phi như VC++, tuy khó
hc nhưng hùng mnh hơn VB6 nhiu. Lý do là c hai ngôn ng lp trình VB.NET và C# đều phi
được compiled ra Microsoft Intermediate Language (MIL).
Nếu bn đã tng dùng VC++ hay Java thì đã quen vi các ý nim v Đối Tượng (Object Oriented) ca
.NET. Syntax ca C# rt ging vi VC++ và Java nên bn s hc nhanh lm vì các kiến thc trước
đây v VC++ hay Java đều có th mang qua C# đầy đủ.
Nếu bn đã tng dùng VB6 thì s quen thuc vi syntax ca VB.NET và nht là Visual Studio .NET
IDE (Intergrated Development Environment). Bn phi hc thêm để biết tường tn v lp trình theo
hướng Đối Tượng (Object Oriented) ca .NET, nhưng điu y không khó lm, vì du sao bn cũng đã
tng dùng Object và viết Class trong VB6.
Có điu, đa s các code có sn cho .NET là C# nên du sao bn cũng nên làm quen vi C#. Vì cách
gi các methods ca Classes gia VB.NET và C# y ht nhau, nên vic porting code t C# qua
VB.NET hay ngược li là chuyn nh.
Đã biết C++ tôi có nên hc C# không?
Microsoft nói C# là mt ngôn ng lp trình đơn gin, tân tiến, đối tượng và type-safe đến t ưu đim
các ngôn ng đi trước như C (nhanh), C++ (đối tượng), VB (viết nhanh, d) và Java (an ninh, cho
Internet). Nó ch có 80 keywords và mt tá built-in data types.
Nhưng hc C# không phi ch là hc mt ngôn ng mà hc luôn c cái run-time nm bên dưới gi là
Common Language Runtime (CLR). Cái high-performance CLR ny gm có execution engine,
garbage collector, just-in-time compiler, security system, và mt rich class Framework vi khong
5000 classes. Nó cho phép ta develop mt project trong nhiu ngôn ng khác nhau (VB.NET, C#, C+
+.NET, JScript.NET, Eiffel, Perl, Cobol...). Class trong ngôn ng ny có th tha kế Class trong mt
ngôn ng khác.
C# tuy ging Java nhưng hay hơn Java nhiu và dĩ nhiên hơn hn C++.
C# được phát trin bi mt nhóm nh do Anders Hejlsberg và Scott Wiltamuth lãnh đạo. Anders là
cha ca Turbo Pascal và Delphi. Ông ta viết cái Turbo Pascal compiler đầu tiên bng Assembly
language trong 3 tháng. Anders cũng là Microsoft J++ team leader trước đây.
Beta 2 ca Visual Studio.NET (July 2001) rt stable. Có l Microsoft c ý chưa release .NET để
partners ca h có đủ thì gi phát trin các Web Services.
.NET được thiết kế để h tr XML và mc đích là liên kết tt c các CSDL nho nh trên khp thế gii.
Tương lai ca Microsoft hoàn toàn da vào k thut .NET, và tính cho đến nay h đã đầu tư trên
US$2 t. Do đó, vì C# là ngôn ng chính ca .NET, có l nếu bn chn hc C# chc không đến ni
nào đâu.
C# có phi là Java killer không?
C# v/s JAVA
Cn nhc li là Java là mt ngôn ng lp trình tân tiến, được thiết kế ngay t đầu để dùng cho
Internet, h tr Unicode, vi nguyên tc "Write Once, Run Everywhere". Java đến t C++, nhưng đơn
gin hơn, nht là không có pointers. Nó được compiled ra "byte code" để có th chy trên bt c
computer nào h tr "Java Virtual Machine", mt dng code intepreter. Do đó nó là platform
independent, lôi cun nhng t chc và cá nhân ghét Microsoft. Trên thc tế, Java không thích hp
cho desktop application và Java Applet b coi là quá chm khi chy trong WebBrowsers. Du vy, vì
Microsoft không cung cp phương tin hoàn ho cho Web Development nên Java đã chiếm mt v thế
vng vàng trong Enterprise/E-Commerce WebDevelopment.
ASP là mt gii pháp tm thi ca Microsoft cho WebServer Application nên nó có nhiu khuyết đim.
Dù Microsoft không nhìn nhn, nhưng C# là hu t ca Java, tc là nó ngi trên vai ca người khng
l Java, cũng ging như trước đây Java ngi trên vai người khng l C++ . Nh là Java chào đời năm
1995, còn C# được thiết kế năm 1998.
C# gi tt c các ưu đim ca Java và thêm nhiu sáng kiến như:
1. Dùng Common Language Runtime (CLR) để h tr nhiu ngôn ng lp trình (cho phép cross-
language inheritance), có Just-In-Time compiler, garbage collector (automatic memory management)
và Security check. Framework ca
CLR cung cp đầy đủ mi Classes ta cn t Thread, Stream, Serialization, Remoting cho đến
Encryption.
2. Trong C# mi data đều là Object, khong cách gia value type và reference type được ni li.
Properties, Methods và Events là căn bn, tc là chúng được Framework h tr t nhiên. Thí d như
ta có th viết o.Value++ thay vì o.SetValue(o.GetValue()+1) .
3. C# dùng "Attributes" để dn compiler cha các tin tc v components mà lúc run-time CLR đọc
được.
4. Webservices rt đơn gin và hiu năng.
5. H tr XML tuyt đối.
Nói chung cái gì Java làm hay thì C# làm hay hơn, thí d như Event Handling và Remoting.
CHIN LƯỢC
Trong khi Sun phát minh ra Java vì s tình c thì to ra .NET, trong đó có C#, là c mt chiến lược
ca Microsoft. Trong tương lai tt c applications ca Microsoft đều được ported qua .NET. Mi đây
Microsoft release 6 CDs cho 6800 IT professionals
mt week-long conference. Các CDs ny cha Microsoft XML-based blueprint - software for .NET
Framework, VisualStudio.NET, technology preview for .NET Alerts, .NET Speech và Commerce
Server 2002, software development kits cho .NET My Services và .NET Compact Framework. Lúc y,
Microsoft cũng phát hành Microsoft XML Core Services (MSXML 4.0) và SQLXML 2.0 (mt upgrade
ca SQL Server 2000).
S ln áp ca Java đối vi Microsoft VB6/VC++/ASP trong my năm trước có l cũng ging như
Netscape đối vi Internet Explorer. Theo thng kê Microsoft chiếm 42% Server Market (và đang tăng
lên) vi trên 90% desktop market. Nếu không còn nhiu Platforms trong Market thì đặc tính Platform
Independence không còn quan trng na.
Ngoài ra, .NET Framework vi CLR powerful hơn JVM nhiu. Và ngay c đặc tính "Write Once, Run
Everywhere", tht ra ch là lý thuyết nên nhiu khi người ta vn phi test JVM mi vi Java program
ca mình, nên có câu "Write Once, Debug EveryWhere".
Ta phi nh rng Bill Gates xut thân là mt programmer nên ông ta hiu programmer hơn ai hết.
Vin tượng ca Bill Gates khng khiếp và ông dám nói, dám làm.
Mt khi đã nht quyết ri thì dù tht bi bao nhiêu ln, rt cuc ông ta cũng phi thng. Như MSWord
thng WordPerfect, MSWindows thng McIntosh, VisualStudio thng Borland, WindowsNT thng
Unix, IE thng Netscape, ngay c v kin AntiTrust ca 18 tiu bang M rt cuc không ai làm gì
được.
CÒN CHÚNG TA THÌ SAO?
Nếu là C++/Java programmers thì dn nhà qua C# rt đơn gin. VB6 programmers thì có th viết
VB.NET, cũng đầy đủ các chc năng như C#, ch không phi yếu kém như VB6 so vi VC++. VB6 và
C programmers phi làm quen vi k thut Object Oriented, nhưng vic y không khó.
Mun hưởng phúc li ca Unicode cho tiếng Vit, XML, Internet Web Services và nht là tht s RAP
(Rapid Application Programming) thì khó b qua VisualStudio.NET.
Trong .NET (C#, VB.NET) tiếng Vit Unicode là t nhiên vì tt c text đều được cha dưi dng UTF-
8.
Có mt khuyết đim ca .NET là ta có th dissassemble Intermediate Language Code ngược li ra C#
hay VB.NET. Do đó, hu như tt c đều s là ngun m.
Để kết lun, C# không kill được Java đâu, nhưng nếu ta theo đạo C#/VB.NET thì không mt mát gì
mà li có tương lai lm.
Nhng bài v VB.NET đây có thích hp cho tôi là người mi hc lp trình
không?
Các bài víết v VB.NET trong trang ny nhm vào nhng lp trình viên đã có kinh nghim, nht là
nhng người đã biết qua Visual Basic 6 khá nhiu. Nếu bn là người mi hc lp trình thì cũng có th
đọc được, nhưng nếu mun có mt kiến thc căn bn v lp trình thì nên hc qua các bài trong trang
Hc VB6 t xa. Các bài hc y s giúp bn hiu các bài v VB.NET ny d dàng hơn.
Công ty tôi mun port codes VB5 và VB6 qua VB.NET xin c vn
VB.NET h tr Object Oriented hoàn toàn nên rt khác vi VB5 và VB6. Do đó nếu Codes có sn
gm có ba phn: User Interface (tc là các Forms), Business Rules/Logic và Data Access thì bn nên
program li hoàn toàn phn User Interface vi Visual Studio.NET, port Business Rules/Logic qua
VB.NET và dch thoáng phn Data Access.
Có l cũng nên port các Classes ca VB6 qua VB.NET. Có mt s vn đề cn lưu ý:
1. VB5 và VB6 programmers s hc VB.NET rt nhanh.
2. Lp trình trong .NET không chú trng nhiu v coding nhưng nng v cách dùng khong 5,000
classes ca .NET Framework. Do đó, khi quen vi VB.NET thì trin khai application rt nhanh so vi
VB6. Lp trình cách ny sinh ra rt ít bugs nên code maintenance s khe lm.
3. ADO.NET thay thế ADO. Mi nhìn thoáng qua chúng có v tương t. Nhưng ADO.NET dùng
cached database gi là Dataset thay cho Recordset. Ta làm vic vi Dataset thng trong b nh xem
mt table như mt array of records và không connect vi database. Hơn na, Dataset là mt dng ca
XML nên ta có sn nhiu dng c ca XML như XPath, Document Object Model (DOM), XSL để s
dng khi làm vic vi Dataset.
4. Vì WebWindows và WebForm ca .NET rt tương t nên nếu thiết kế application cho desktop ln
Internet/Intranet thì có th dùng nhiu code chung và tiết kim rt nhiu.
Nói tóm li, công tác lp trình li mt application bng VB.NET để thay thế VB5/VB6 s cn rt ít thì
gi và công sc hơn bn tưởng.