Tìm hiểu về Visual Studio .NET

Việc nâng cấp Microsoft Visual Studio 6 đã được chờ đợi từ nhiều năm nay. Cuối cùng Visual Studio .NET đã được phát hành và tỏ ra đủ tốt để bù đắp cho những yêu cầu cấu hình, chi phí nâng cấp và cả… sự chờ đợi. Vấn đề mấu chốt là, để sử dụng tốt nhất Visual Studio .NET (VS.NET), bạn phải tạo ứng dụng chạy trên nền .NET.

Như cái tên của nó, VS.NET chủ yếu nhắm đến nền .NET. Bạn vẫn có thể dùng VS.NET cho các ứng dụng ASP, MFC, ATL, hay Win32 hiện có (các ứng dụng này không yêu cầu nền .NET, mặc dù cần có nền .NET khi phát triển); nhưng với các ứng dụng Visual Basic 6, Visual J++  hay Visual Foxpro thì không, nếu bạn vẫn muốn giữ các ứng dụng này thì bạn phải giữ lại bản Visual Studio 6.

 

Công Nghệ Mới

 

 


            Visual Studio.Net

Phần quan trọng của VS.NET là các công nghệ mới với trung tâm là .NET Framework – tập các tính năng Windows được xây dựng trên nền tảng môi trường thực thi ngôn ngữ chung (CLR – Common Language Runtime), trên đó là các lớp thư viện dùng để xây dựng ứng dụng Windows, ứng dụng web và dịch vụ web XML. Tất cả ngôn ngữ .NET đều được dịch sang dạng ngôn ngữ trung gian của Microsoft (MSIL – Microsoft Intermediate Language) trước rồi mới được dịch sang dạng mã thực thi bởi một trình dịch JIT (Just-in Time) trên nền .NET.
CLR và MSIL cho phép tất cả các ngôn ngữ .NET làm việc với nhau. Ví dụ, bạn có thể dùng một lớp C# kế thừa từ một đối tượng COM C++/ATL, lớp này lại có thể bắt lỗi từ một chương trình Visual Basic. Nhờ có sự hỗ trợ từ cấp hệ thống cho phép tích hợp đa ngôn ngữ, bạn có thể chạy từng bước để bẫy lỗi qua cả ba ngôn ngữ trong cùng một môi trường phát triển ứng dụng VS.NET.
Trình dịch JIT cung cấp thêm khả năng bảo mật, tính an toàn lúc thực thi và khả năng chạy trên nhiều nền tảng (Microsoft cho biết sẽ dùng một tập con chuẩn hoá của .NET Framework – được gọi là “nền tảng ngôn ngữ chung” – để xây dựng một thể hiện trên FreeBSD). Nếu trình JIT cho mã ngôn ngữ trung gian làm bạn liên tưởng đến Java thì cũng đừng hoang mang, Microsoft đã lẳng lặng dùng mã ngôn ngữ trung gian trong Visual Basic và hầu hết các phần mềm ứng dụng của mình (kể cả Office) từ nhiều năm qua.
C#, một ngôn ngữ được phát triển từ C++ có nhiều nét giống Java, được đưa vào VS.NET là Visual C#.NET. Tương tự, ngôn ngữ Visual C++ quen thuộc được đóng gói vào VS.NET là Visual C++.NET bao gồm phần C++ truyền thống dùng cho ứng dụng độc lập cộng với phần mở rộng để dùng với nền .NET. Về phần VB.NET, đây là một cải tiến và không tương thích hoàn toàn với các phiên bản Visual Basic. Tuy nhiên, dường như những tính năng mới đã bù đắp khá nhiều cho sự không tương thích.
Theo Microsoft, các lớp Windows form (giao diện ứng dụng) trong nền .NET cung cấp nền tảng phát triển ứng dụng mới cho môi trường Microsoft Windows. Windows form vừa là lớp có thể kế thừa vừa là đối tượng điều khiển.  Với GDI+ (giao diện đồ họa) mới, bạn có thể tạo đồ hoạ, văn bản và thao tác như là đối tượng trên Windows form. Tuy nhiên, Windows form đòi hỏi phải có .NET Framework để chạy được trên máy khách.
Web form (giao diện trang web) của ASP.NET là mô hình mới để xây dựng trang web; ASP.NET là môi trường ứng dụng web trên nền .NET. Trang web ASP.NET tách biệt phần hiển thị (trang ASPX) khỏi phần luận lý (mã xử lý), và có thể tự động tạo mã HTML khác tuỳ theo trình duyệt hay thiết bị di động. VS.NET có sẵn trình thiết kế web form với nhiều đối tượng điều khiển.
Các điều khiển .NET trên web form của ASP.NET chạy trên máy chủ (server) chứ không phải máy khách (client), đây là khác biệt quan trọng so với Windows form. Ûu điểm là máy khách có thể chạy bất kỳ trình duyệt web nào và không cần phải có nền .NET, nhược điểm là do xử lý ở phía máy chủ nên phải trao đổi thông tin với máy chủ, gây chiếm dụng đường truyền. Nhưng đây không phải là vấn đề lớn, nếu bạn có kết nối băng rộng.
Mô hình web form ASP.NET rất giống với Windows form và kiểu lập trình Windows truyền thống, nó có các công cụ lập trình hướng đối tượng và phát triển nhanh cho ứng dụng web.
Bạn có thể chạy đồng thời cả ASP.NET và ASP, tuy nhiên việc trao đổi thông tin giữa chúng không đơn giản. Hơn nữa, không có cách nào dễ dàng và tự động nâng cấp ứng dụng ASP sang ASP.NET, mặc dù việc chuyển đổi có thể thực hiện bằng tay với một chút “động não”. Dịch vụ web XML là phần được quảng cáo nhiều nhất của Microsoft .NET. Hãy tạm gác lại chuyện quảng cáo, dịch vụ web XML thực sự là ứng dụng có thể nhận và đáp trả các yêu cầu và dữ liệu dùng XML thông qua giao thức SOAP (Simple Object Access Protocol – giao thức truy cập đối tượng đơn giản ). Do nền .NET đã hỗ trợ cho dịch vụ web ở mức hệ thống thông qua các công nghệ như ASP.NET, nên việc xây dựng hay sử dụng dịch vụ web XML rất đơn giản với VS.NET – bạn chỉ cần dùng thuộc tính dịch vụ web ở một phương thức để gọi chức năng hệ thống của nền .NET. Có hai lý do quan trọng để xây dựng dịch vụ web: dễ sử dụng lại ứng dụng và để làm việc với các hệ thống khác Microsoft.
C# là nhánh phát triển theo hướng mô đun và đơn giản hoá của C++, cộng thêm một số ý tưởng từ các ngôn ngữ khác. Trong C#, mọi thứ thật sự là đối tượng: ngay cả những dạng cơ bản như int cũng có thể được đóng gói thành lớp đối tượng gốc. Không có sự kế thừa đa lớp; thay vì vậy, có một cơ chế đa giao tiếp (interface). C# có toán tử new, nhưng không có toán tử delete: .NET Framework đã xây dựng cơ chế thu dọn “rác” cho tất cả các ngôn ngữ lập trình trên nền .NET.
Hầu hết những trường hợp dùng con trỏ (pointer) trong C thì C# dùng tham chiếu (reference), biểu hiện bằng ký hiệu ‘.’ được quản lý bởi cơ chế thu dọn rác của .NET. Với những trường hợp đặc biệt buộc phải dùng con trỏ, C# có cơ chế mã không an toàn. Trong một khối được đánh dấu là không an toàn, các đối tượng được bảo vệ khỏi cơ chế thu dọn rác, và cho phép con trỏ C/C++ truyền thống.
Có thể điểm qua một số ưu điểm của C# như:
• C# là “thổ ngữ” của .NET, được thiết kế tốt cho CLR.
• C# kết hợp sức mạnh và sự chính xác của C++ với tính dễ phát triển của Visual Basic.
C# có cơ chế tạo tài liệu chương trình rất hay dùng chú thích /// mà các ngôn ngữ .NET khác chưa có. Visual C# có thể hiển thị các chú thích này như cửa sổ trợ giúp.
C# dễ dùng. Nó tương tự như C++, Java và JavaScript, và môi trường phát triển thân thiện (ví dụ như các lỗi được gạch dưới giống như cách mà Microsoft Word gạch dưới những từ sai chính tả hay ngữ pháp).

Visual Basic .Net
Visual Basic .NET đã trở nên hướng đối tượng (OOP) để tham gia vào .NET. Các tính năng OOP được thêm vào là kế thừa, giao tiếp (interface) và nạp chồng (overload). VB.NET cũng có cơ chế kiểm soát lỗi có cấu trúc, thuộc tính tuỳ biến, uỷ nhiệm, đa luồng, và ba kiểu dữ liệu mới để làm nó tương thích hoàn toàn với đặc tả ngôn ngữ chung (CLS – Common Language Specification) của nền .NET.
Lập trình viên Visual Basic không khó khăn lắm để học VB.NET. Điểm then chốt là học cách thức thiết kế và lập trình hướng đối tượng, hiểu rõ về kỹ thuật đa luồng; thay đổi cú pháp ngôn ngữ không đáng kể.
VB.NET Professional Edition (và cao hơn) có tiện ích trợ giúp nâng cấp nhưng chỉ “giúp” được ở chừng mực nào đó, bạn nên chuẩn bị tinh thần cho một số vấn đề khi nâng cấp, các khuyến cáo khi thực thi. Nếu bạn đã đầu tư khá nhiều cho chương trình Visual Basic thì nên thận trọng về việc nâng cấp và đừng vội gỡ bỏ Visual Basic 6.

 

Các Ngôn Ngữ Khác
Phần mở rộng có kiểm soát cho C++ dùng để viết ứng dụng cho nền .NET. Bạn có thể trộn lẫn mã C++ không được kiểm soát truyền thống và mã có kiểm soát trong cùng ứng dụng. Ûu điểm của C++ có kiểm soát là bạn có thể đóng gói các thành phần hiện có như là thành phần của nền .NET, cho phép mang mã chương trình hiện có sang nền .NET. Lớp C++ có kiểm soát khá nhỏ, không ảnh hưởng nhiều đến tốc độ thực thi.
JScript.NET là sự nâng cấp của JScript dựa trên ECMAScript Edition 4, cộng thêm mã được biên dịch, hỗ trợ làm việc với các ngôn ngữ khác thông qua CLS và truy cập .NET Framework. JScript.NET chủ yếu để dùng với ASP.NET và viết kịch bản ứng dụng.
J# là một biến thể của Java và được biên dịch thành MSIL thay vì Java byte code (Visual J# được đưa ra sau khi VS.NET phát hành chính thức, bạn có thể tải J# ở địa chỉ http://msdn.microsoft.com/vjsharp/downloads/). J# có công cụ cho phép chuyển đổi các lớp Java của hãng thứ ba để chạy trên .NET.
Nhiều ngôn ngữ của các hãng thứ ba làm việc với nền .NET, và trong nhiều trường hợp chúng được tích hợp với VS.NET. Ví dụ như Visual Perl, Visual Python, Visual XSLT, Smalltalk, Eiffel, Scheme, RPG, Fortran, Cobol

 

.Net Framework
Nói chung, CLR và các lớp của .NET Framework đều được thiết kế tốt và hoàn chỉnh. Bạn cần phải có thời gian để học; nó không khó nhưng bạn phải “tiêu hoá” rất nhiều thứ. Lập trình với .NET Framework dễ hơn nhiều so với lập trình với bất kỳ C++ API nào của Microsoft trước đây như Win32 API, MFC, và ATL. Lập trình với .NET Framework có thể không dễ như với VB 6, nhưng với các lớp mới bạn không còn phải gọi các hàm Win32 API để thực hiện các chức năng hệ thống cấp thấp; bạn cũng có thể làm những việc mà trước đây không làm được.

 

Tổ Hợp Và Vùng Ứng Dụng
Mô hình thực thi .NET mở rộng mô hình quá trình ứng dụng riêng biệt Win32 cũ với không gian địa chỉ riêng và thực thi đa luồng (thread). Việc cách ly ứng dụng bằng không gian địa chỉ riêng biệt đã được thay thế bởi quá trình quản lý mã lệnh có kiểm soát của .NET. Trong mô hình mới, nhiều vùng ứng dụng có thể chạy trong một quá trình đơn với “hiệu xuất” tổng thể thấp hơn nhưng không phải hy sinh tính bảo mật. Điều này làm tăng khả năng mở rộng của máy chủ và cải thiện hiệu suất trên những hệ thống có các quá trình đa tương tác, thậm chí cả trên máy trạm.
Một trong những vấn đề đau đầu đối với các nhà phát triển ứng dụng Win32 thường được gọi là “địa ngục DLL” hay nôm na là nỗi đau đầu thư viện liên kết động DLL. Về cơ bản, bạn tạo ra một chương trình cài đặt và dựa trên một số DLL nhất định, có giá trị toàn cục đối với hệ thống. Khi có một chương trình mới cài đặt các DLL “đè lên” DLL của bạn và hậu quả là chương trình của bạn bị lỗi không tương thích. Thế là chương trình của bạn đột nhiên bị hư… vô duyên!
.NET Framework giải quyết vấn đề “nỗi đau DLL” bằng cách đưa ra khái niệm tổ hợp ứng dụng.
Tổ hợp gồm có một bảng kê tất cả các thành phần và các số hiệu phiên bản. Các thành phần thường được giữ trong cây thư mục cục bộ của ứng dụng, không cài đặt vào thư mục hệ thống của Windows. Điều này không chỉ giải quyết vấn đề DLL mà còn đơn giản hoá việc cài đặt ứng dụng chỉ còn là chép toàn bộ thư mục ứng dụng. Mô hình tổ hợp mới này cũng hỗ trợ việc thực thi nhiều phiên bản ứng dụng trên cùng một PC, thậm chí trong cùng quá trình, tại cùng thời điểm mà không hề có sự đụng độ.

 

Tóm Lại

.NET Framework và VS.NET cải thiện hiệu suất phát triển ứng dụng Windows và web, hỗ trợ rất tốt cho dịch vụ web XML. .NET Framework làm được nhiều hơn và “sâu” hơn so với các hàm Windows API trước đây. Mô hình này tách biệt một cách hiệu quả phần giao diện và phần mã xử lý, có tính kế thừa và tái sử dụng rất bao quát và mạnh. Môi trường VS.NET hiệu quả và tiện lợi – mọi thứ đều có thể được thực hiện một cách trực quan, và tất cả đều nhằm giúp bạn tạo mã đúng và nhanh.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: