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 để 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 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) 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) Toolbar, ListBox, ComboBox
Bài 13: DataGrid (phần I) ADO.NET, XML, DataSet, DataGrid, DataView
Bài 14: DataGrid (phần II) BindingManagerBase, XML Schema
Bài 15: DataGrid (phần III) (mới nhập 13-April-2002) Edit XML File, Typed DataSet, Data Form Wizard
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 .NET
Kiế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ơ sở dữ liệu (mới nhập 28-April-2002)
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 .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 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
Kỹ thuật XML
Tìm hiểu cấu trúc và cú pháp của XML
XPATH (phần I)
XPATH (phần II)
XSL Style Sheets (phần I)
XSL Style Sheets (phần II) (mới nhập 27-April-2002)
Các bài tập mẫu Các dự án nhỏ
Thừa kế Textbox để đánh chữ Việt Unicode
Tạ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 Winsock
Dù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?
Công ty tôi muốn port codes VB5 và VB6 qua VB.NET, xin cố vấn (mới )
Frequently Asked Questions (FAQ)
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.
Vovisoft © 2000. All rights reserved. |
||
First day posted: 19 Oct 2001
|
Trang được viếng thăm 54 lần |