FrequentlyAskedQuestions (FAQ) .NET
Muốn dùng Visual Studio .NET thì cần OS và thíết bị nào?
Bạn nên có CPU Pentium III, 500MHz trở lên, với 256 MB RAM và ít nhất 10GB Harddisk. Về OS bạn
nên dùng Windows 2000 (Professional 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.
Tôi nên dùng version Visual Studio .NET nào?
Từ tháng Bảy, 2001 có Visual Studio.NET Beta 2. Version nầy có nhiều thay đổi so với Beta 1
(11/2000). Nó có đầy đủ các chức năng và tương đối vững chãi. Ngày 23-Oct-2001, Microsoft phát
hành Visual Studio.NET Release Candidate trong một DVD, khoảng 2GB. Version nầy có ít chức năng
hơn Beta 2 và có lẽ ít bugs hơn. Nhưng nó có một "time bomb" (trái bom nổ chậm), tức là nó sẽ hết
hạn ngày 28-Feb-2001.
Visual Studio.NET Beta 2 hiện nay có Service Pak 2, nó cho phép ta dùng Visual Studio.NET Beta 2
sau ngày 31-July-2001, tức là không có time-bomb. Nếu VS.NET version của bạn bị giới hạn về thời
gian nói trên, từ trong VS.NET bạn có thể download Service Pak 2 để cài đặt bằng 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 tại VSLive! ở San Francisco, Mỹ.
Có ba versions: Professional, Enterprise và Enterprise Architect. Cách cài đặt giống 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 cuối của 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 tiện thì bạn nên dùng version chính thức mới nhất.
Xin cho biết sự liên hệ giữa .NET Framework và Visual Studio .NET?
.NET Framework là phần chính của .NET. Nó gồm có Common Language Runtime (CLR) và tất cả
mọi Libraries. Bạn có thể viết program trong VB.NET hay C# bằng Notepad rồi compile bằng
command line và chạy trên .NET Framework. Tuy nhiên, Visual Studio.NET cho ta một IDE rất hùng
mạnh và đầy đủ để drag-drop các controls khi ta design và viết code, debug rất nhanh. Đại khái
Visual Studio.NET giống như VB6 IDE nhưng nó có thêm rất nhiều chức năng như inbuilt-editor tự
động pretty code, ta có thể edit XML và IntellSense rất thông minh.
Nhìn từ quan điểm deployment and package thì .NET Framework giống như VB6-Runtime. Thông
thường chỉ cần copy các exe, dll và data files cần thiết vào destination folders của một computer có
cài sẵn .NET Framework là ta có thể chạy program được. Hoàn toàn không cần phải register gì cả.
Trong tương lai, có thể Microsoft sẽ làm .NET Framework như một component của MSWindows.
ASP.NET khác với ASP như thế nào?
ASP.NET đối với lập trình trên Webserver cũng giống như VB6 đối với lập trình cho desktop. ASP.NET
là hậu thân của ASP, tức là ta có thể dùng nó để lập trình trên Webserver thay gì dùng cgi-perl hay
php.
Về System Architecture thì ASP.NET nằm trên .NET Framework nên nó tận dụng tất cả những chức
năng Đối tượng, Cross Language Inheritance v.v.
ASP.NET có một số đặc điểm sau đây:
1. Mỗi program ASP.NET gồm có hai phần: phần Visual thì giống như trang HTML, còn phần code thì
nằm riêng để handle Events và giống hệt như code để dùng cho desktop application.
2. Bạn có thể viết ASP.NET bằng VB.NET hay C#, cả hai đều được compiled at run time, chớ không
phải là Script như trong ASP.
3. ASP.NET dùng ADO.NET là một loại Disconnected Cached Database, nên rất thích hợp cho
Internet.
4. ASP.NET quản lý chuyện data state persistence (còn nhớ trạng thái của data trong form) một cách
tự động cho bạn.
5. ASP.NET có nhiều Server controls cho bạn dùng (giống giống như Design time controls của Visual
InterDev) và develop thêm bằng cách thừa kế.
6. ASP.NET dùng XML rất nhiều, nhất là cho ADO.NET.
7. Visual Studio.NET cho bạn một IDE giống như Visual InterDev đối với ASP, nhưng hiệu năng hơn
bội phần.
8. ASP.NET cho phép bạn develop Web Services. Người khác dùng một Web Service của bạn bằng
cách gọi một Function từ URL của bạn để lấy kết quả.
Tôi nên học VB.NET hay C#?
Về mặt kỹ thuật thì VB.NET và C# tương đương nhau về chức năng, không phải như VC++, tuy khó
học nhưng hùng mạnh hơn VB6 nhiều. Lý do là cả hai ngôn ngữ lập trình VB.NET và C# đều phải
được compiled ra Microsoft Intermediate Language (MIL).
Nếu bạn đã từng dùng VC++ hay Java thì đã quen với các ý niệm về Đối Tượng (Object Oriented)
của .NET. Syntax của C# rất giống với VC++ và Java nên bạn sẽ học nhanh lắm vì các kiến thức
trước đây về VC++ hay Java đều có thể mang qua C# đầy đủ.
Nếu bạn đã từng dùng VB6 thì sẽ quen thuộc với syntax của VB.NET và nhất là Visual Studio .NET
IDE (Intergrated Development Environment). Bạn phải học thêm để biết tường tận về lập trình theo
hướng Đối Tượng (Object Oriented) của .NET, nhưng điều ấy không khó lắm, vì dầu sao bạn cũng đã
từng dùng Object và viết Class trong VB6.
Có điều, đa số các code có sẵn cho .NET là C# nên dầu sao bạn cũng nên làm quen với C#. Vì cách
gọi các methods của Classes giữa VB.NET và C# y hệt nhau, nên việc porting code từ C# qua VB.NET
hay ngược lại là chuyện nhỏ.
Đã biết C++ tôi có nên học C# không?
Microsoft nói C# là một ngôn ngữ lập trình đơn giản, tân tiến, đối tượng và type-safe đến từ ưu điểm
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à một tá built-in data types.
Nhưng học C# không phải chỉ là học một ngôn ngữ mà học luôn cả cái run-time nằm bên dưới gọi là
Common Language Runtime (CLR). Cái high-performance CLR nầy gồm có execution engine, garbage
collector, just-in-time compiler, security system, và một rich class Framework với khoảng 5000
classes. Nó cho phép ta develop một project trong nhiều ngôn ngữ khác nhau (VB.NET, C#, C+
+.NET, JScript.NET, Eiffel, Perl, Cobol ). Class trong ngôn ngữ nầy có thể thừa kế Class trong một
ngôn ngữ khác.
C# tuy giống Java nhưng hay hơn Java nhiều và dĩ nhiên hơn hẳn C++.
C# được phát triển bởi một nhóm nhỏ do Anders Hejlsberg và Scott Wiltamuth lãnh đạo. Anders là
cha của Turbo Pascal và Delphi. Ông ta viết cái Turbo Pascal compiler đầu tiên bằng Assembly
language trong 3 tháng. Anders cũng là Microsoft J++ team leader trước đây.
Beta 2 của Visual Studio.NET (July 2001) rất stable. Có lẽ Microsoft cố ý chưa release .NET để
partners của họ có đủ thì giờ phát triển các Web Services.
.NET được thiết kế để hỗ trợ XML và mục đích là liên kết tất cả các CSDL nho nhỏ trên khắp thế giới.
Tương lai của Microsoft hoàn toàn dựa vào kỹ thuật .NET, và tính cho đến nay họ đã đầu tư trên
US$2 tỷ. Do đó, vì C# là ngôn ngữ chính của .NET, có lẽ nếu bạn chọn học C# chắc không đến nổi
nào đâu.
C# có phải là Java killer không?
C# v/s JAVA
Cần nhắc lại là Java là một ngôn ngữ lập trình tân tiến, được thiết kế ngay từ đầu để dùng cho
Internet, hỗ trợ Unicode, với nguyên tắc "Write Once, Run Everywhere". Java đến từ C++, nhưng
đơn giản hơn, nhất là không có pointers. Nó được compiled ra "byte code" để có thể chạy trên bất cứ
computer nào hỗ trợ "Java Virtual Machine", một dạng code intepreter. Do đó nó là platform
independent, lôi cuốn những tổ chức và cá nhân ghét Microsoft. Trên thực tế, Java không thích hợp
cho desktop application và Java Applet bị coi là quá chậm khi chạy trong WebBrowsers. Dầu vậy, vì
Microsoft không cung cấp phương tiện hoàn hảo cho Web Development nên Java đã chiếm một vị thế
vững vàng trong Enterprise/E-Commerce WebDevelopment.
ASP là một giải pháp tạm thời của Microsoft cho WebServer Application nên nó có nhiều khuyết điểm.
Dù Microsoft không nhìn nhận, nhưng C# là hậu tự của Java, tức là nó ngồi trên vai của người khổng
lồ Java, cũng giống như trước đây Java ngồi trên vai người khổng lồ C++ . Nhớ là Java chào đời năm
1995, còn C# được thiết kế năm 1998.
C# giữ tất cả các ưu điểm của Java và thêm nhiều sáng kiến như:
1. Dùng Common Language Runtime (CLR) để hỗ trợ nhiều ngôn ngữ lập trình (cho phép cross-
language inheritance), có Just-In-Time compiler, garbage collector (automatic memory
management) và Security check. Framework của
CLR cung cấp đầy đủ mọi Classes ta cần từ Thread, Stream, Serialization, Remoting cho đến
Encryption.
2. Trong C# mọi data đều là Object, khoảng cách giữa value type và reference type được nối lại.
Properties, Methods và Events là căn bản, tức 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" để dặn compiler chứa các tin tức về components mà lúc run-time CLR đọc
được.
4. Webservices rất đơn giản và hiệu năng.
5. Hỗ trợ XML tuyệt đố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.
CHIẾN LƯỢC
Trong khi Sun phát minh ra Java vì sự tình cờ thì tạo ra .NET, trong đó có C#, là cả một chiến lược
của Microsoft. Trong tương lai tất cả applications của Microsoft đều được ported qua .NET. Mới đây
Microsoft release 6 CDs cho 6800 IT professionals ở
một week-long conference. Các CDs nầy chứa 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 (một upgrade của
SQL Server 2000).
Sự lấn áp của Java đối với Microsoft VB6/VC++/ASP trong mấy năm trước có lẽ cũng giống như
Netscape đối với Internet Explorer. Theo thống kê Microsoft chiếm 42% Server Market (và đang tăng
lên) với trên 90% desktop market. Nếu không còn nhiều Platforms trong Market thì đặc tính Platform
Independence không còn quan trọng nữa.
Ngoài ra, .NET Framework với CLR powerful hơn JVM nhiều. Và ngay cả đặc tính "Write Once, Run
Everywhere", thật ra chỉ là lý thuyết nên nhiều khi người ta vẫn phải test JVM mới với Java program
của mình, nên có câu "Write Once, Debug EveryWhere".
Ta phải nhớ rằng Bill Gates xuất thân là một programmer nên ông ta hiểu programmer hơn ai hết.
Viển tượng của Bill Gates khủng khiếp và ông dám nói, dám làm.
Một khi đã nhất quyết rồi thì dù thất bại bao nhiêu lần, rốt cuộc ông ta cũng phải thắng. Như
MSWord thắng WordPerfect, MSWindows thắng McIntosh, VisualStudio thắng Borland, WindowsNT
thắng Unix, IE thắng Netscape, ngay cả vụ kiện AntiTrust của 18 tiểu bang ở Mỹ rốt cuộc không ai
làm gì được.
CÒN CHÚNG TA THÌ SAO?
Nếu là C++/Java programmers thì dọn nhà qua C# rất đơn giản. VB6 programmers thì có thể viết
VB.NET, cũng đầy đủ các chức năng như C#, chớ không phải yếu kém như VB6 so với VC++. VB6 và
C programmers phải làm quen với kỹ thuật Object Oriented, nhưng việc ấy không khó.
Muốn hưởng phúc lợi của Unicode cho tiếng Việt, XML, Internet Web Services và nhất là thật sự RAP
(Rapid Application Programming) thì khó bỏ qua VisualStudio.NET.
Trong .NET (C#, VB.NET) tiếng Việt Unicode là tự nhiên vì tất cả text đều được chứa dưới dạng UTF-
8.
Có một khuyết điểm của .NET là ta có thể dissassemble Intermediate Language Code ngược lại ra C#
hay VB.NET. Do đó, hầu như tất cả đều sẽ là nguồn mở.
Để kết luận, C# không kill được Java đâu, nhưng nếu ta theo đạo C#/VB.NET thì không mất mát gì
mà lại có tương lai lắm.
Những bài về VB.NET ở đây có thích hợp cho tôi là người mới học lập trình
không?
Các bài víết về VB.NET trong trang nầy nhắm vào những lập trình viên đã có kinh nghiệm, nhất là
những người đã biết qua Visual Basic 6 khá nhiều. Nếu bạn là người mới học lập trình thì cũng có thể
đọc được, nhưng nếu muốn có một kiến thức căn bản về lập trình thì nên học qua các bài trong trang
Học VB6 từ xa. Các bài học ấy sẽ giúp bạn hiễu các bài về VB.NET nầy dễ dàng hơn.
Công ty tôi muốn port codes VB5 và VB6 qua VB.NET xin cố vấn
VB.NET hỗ trợ Object Oriented hoàn toàn nên rất khác với VB5 và VB6. Do đó nếu Codes có sẵn gồm
có ba phần: User Interface (tức là các Forms), Business Rules/Logic và Data Access thì bạn nên
program lại hoàn toàn phần User Interface với Visual Studio.NET, port Business Rules/Logic qua
VB.NET và dịch thoáng phần Data Access.
Có lẽ cũng nên port các Classes của VB6 qua VB.NET. Có một số vấn đề cần lưu ý:
1. VB5 và VB6 programmers sẽ học VB.NET rất nhanh.
2. Lập trình trong .NET không chú trọng nhiều về coding nhưng nặng về cách dùng khoảng 5,000
classes của .NET Framework. Do đó, khi quen với VB.NET thì triển khai application rất nhanh so với
VB6. Lập trình cách nầy sinh ra rất ít bugs nên code maintenance sẽ khỏe lắm.
3. ADO.NET thay thế ADO. Mới nhìn thoáng qua chúng có vẽ tương tự. Nhưng ADO.NET dùng cached
database gọi là Dataset thay cho Recordset. Ta làm việc với Dataset thẳng trong bộ nhớ xem một
table như một array of records và không connect với database. Hơn nữa, Dataset là một dạng của
XML nên ta có sẵn nhiều dụng cụ của XML như XPath, Document Object Model (DOM), XSL để sử
dụng khi làm việc với Dataset.
4. Vì WebWindows và WebForm của .NET rất tương tự nên nếu thiết kế application cho desktop lẫn
Internet/Intranet thì có thể dùng nhiều code chung và tiết kiệm rất nhiều.
Nói tóm lại, công tác lập trình lại một application bằng VB.NET để thay thế VB5/VB6 sẽ cần rất ít thì
giờ và công sức hơn bạn tưởng.
. Frequently Asked Questions (FAQ) .NET
Muốn dùng Visual Studio .NET thì cần OS và thíết bị nào?
Bạn nên có CPU. software for .NET
Framework, VisualStudio .NET, technology preview for .NET Alerts, .NET Speech và Commerce Server
2002, software development kits cho .NET My