HọcMicrosoft .NET
Chào mừng và giới thiệu Hoan nghênh bạn viếng thăm trang
Học Microsoft .NET! .NET là vũ khí chiến lược của Microsoft để
trong tương lai gồm thâu lục quốc từ Desktop, Distributed cho đến
Internet và Mobile (Phone, Pocket PC). Visual Studio.NET cho ta
một IDE (Intergrated Development Environment) tuyệt diệu, đầy đủ
để triển khai mọi loại dự án. Cốt lõi của .NET là .NET Framework, hỗ
trợ lập trình theo hướng đối tượng (Object Oriented) cho VB.NET
(Visual Basic 7) và C# (hậu thân của VC++). Hai ngôn ngữ lập trình
nầy khá đơn giản (chỉ có chừng 80 reserved words), tương đương
nhau về chức năng và code của hai bên có thể thừa kế lẫn nhau.
.NET Framework cung cấp khoảng 5000 classes để hỗ trợ mọi nhu
cầu lập trình như Streaming, Threading, Collections, Delegate và
EventHandling, Interface, Remoting, Reflection, Unicode, XML,
Disconnected database ADO.NET, Encryption v.v Phần lớn các bài
vỡ ở đây là VB.NET nhưng thỉnh thoảng cũng có một số chương
trình của C#. Việc porting từ VB.NET qua C# là chuyện nhỏ.Nếu bạn
có thắc mắc nào về .NET mà mục FAQ không có nhắc đến và muốn
đặt câu hỏi hãy dùng mục .NET, VB.NET, C# trong Vovisoft
Forums 2001. Nếu không có ai trả lời thì chúng tôi sẽ cố gắng,
nhưng không dám hứa sẽ giải đáp thoả đáng vì chúng tôi cũng mới
học .NET thôi.Mục đích chính của Vovisoft là giúp bà con Việt Nam
khắp nơi tìm vịêc làm, và mong rằng khi đã ổn định họ lại sẽ giúp
người khác tìm việc. Nếu trang nầy bổ ích cho bạn thì, nếu tiện,
bạn có thể biên lại đôi dòng khích lệ các anh chị em Vovisoft trong
Sổ Lưu Niệm.
Các bài học Giới thiệu
Microsoft .Net Bài 01:
Microsoft.NET Framework Cài
đặt Beta 2 ,.NET Framework,
Metadata, Common Language
Runtime, Assembly. Bài 02:
VisualStudio.NET VS.NET IDE,
Compilation Command line,
Demo Program - Menu, Event
Tài liệu Site chính thức về .NET
của MicrosoftMicrosoft Vietnam
- Microsoft.NET Microsoft
Developer Network Visual
Studio.NET Microsoft .NET
Framework SDK GotDotNet so
sánh .NET với Java dotNET
Discussions Các sách về .NET
của WROX và mã nguồn cho
Handler, Listbox, Drag-Drop.
Bài 03: Những khác biệt giữa
VB.NET với VB6 Namespaces,
Data Types, Variable
declaration, Array, Collections,
Access Modifiers, Error
Handler, Property, Arithmetic
Operators, Delegate. Bài 04:
Những chức năng Đối Tượng
mới của VB.NET (phần I)
Class, Abstraction,
Encapsulation, Inheritance,
Polymorphism. Bài 05: Những
chức năng Đối Tượng mới của
VB.NET (phần II)Methods,
Properties. Overloading, Object
Life Cycle, Thừa kế. Bài 06:
Những chức năng Đối Tượng
mới của VB.NET (phần
III)Overrriding, Virtual
methods, keywords Me,
MyBase, MyClass, MustInherit,
MustOverride. Abstract Base
Class. Bài 07: Những chức
năng Đối Tượng mới của
VB.NET (phần IV)Shared
methods, Variables. Global
variables, Events, Shared
Events, Early & Late Binding,
Cross language Inheritance.
Bài 08: Những chức năng mới
trong giao diện cửa sổ của
VB.NET (phần I) Sự quan
trọng của Windows Forms,
WinForms Architecture, Owned
Forms, AcceptButton,
DefaultButton Bài 09: Những
chức năng mới trong giao diện
cửa sổ của VB.NET (phần II)
download Các sách về .NET của
O'Reilly Extreme-VB C#
Corner dotNET 101 InformIT
dotNETWire dotNetNut
dotNETtoday devASP.NET DevX:
Guide to .NET The World of
NET C# Today C# Help The
Code Project .NET X Treme
Lutz Roeder's Programming .NET
ShowDialog và DialogResult,
Tab Order, Control Arrays Bài
10: Những chức năng mới
trong giao diện cửa sổ của
VB.NET (phần III) Anchoring,
Docking, Control Splitter Bài
11: Những chức năng mới
trong giao diện cửa sổ của
VB.NET (phần IV)
HelpProvider, ToolTip,
ErrorProvider, Menus, MDI
Forms Bài 12: Những chức
năng mới trong giao diện cửa
sổ của VB.NET (phần V) (mới
nhập 3-3-2002) Toolbar,
ListBox, ComboBox
Các bài hỗ trợ Cơ số nhị
phân Subnet Mask Căn bản
TCP/IP Dùng Unicode chữ Việt
trong .NETKiến thức căn bản
về Unicode chữ Việt, các điều
cần biết khi lập trình Unicode
trong .NET.
Các bài tập mẫu
Các dự án nhỏ Thừa kế
Textbox để đánh chữ Việt
UnicodeTạo một Control từ
TextBox hỗ trợ chữ Việt
Unicode đánh theo lối VNI và
VIQR, dùng Clipboard để
Cut/Paste Unicode text.
Multithreaded WinsockDùng
TcpListener và TcpClient, dùng
Thread và String Split.
Frequently Asked Questions
(FAQ) Muốn dùng Visual Studio
.NET thì cần OS và thíết bị nào?
Tôi nên dùng version Visual
Studio .NET nào? Xin cho biết sự
liên hệ giữa .NET Framework và
Visual Studio .NET? ASP.NET
khác với ASP như thế nào? Tôi
nên học VB.NET hay C#? Đã
biệt C++, tôi có nên học C#
không? C# có phải là Java killer
không? 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?
Frequently Asked Questions (FAQ)
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.NETDĩ 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 JAVACầ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ủaCLR 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ƯỢCTrong 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.
. Menu, Event
Tài liệu Site chính thức về .NET
của Microsoft Microsoft Vietnam
- Microsoft. NET Microsoft
Developer Network Visual
Studio.NET Microsoft. Học Microsoft .NET
Chào mừng và giới thiệu Hoan nghênh bạn viếng thăm trang
Học Microsoft .NET! .NET là vũ khí chiến lược của Microsoft để