Không thể có ứng dụng tốt nếu không có công cụ phát triển tốt, dù là phát triển với bất kỳ ngôn ngữ (lập trình) nào, ngay cả với các ngôn ngữ ‘mạnh’ của nền tảng .NET hiện đang ‘nổi đình nổi đám’. Ngoài công cụ phát triển ứng dụng ‘chính thống’ và ‘đồ sộ’ như Visual Studio .NET (VS.NET) của Microsoft, cộng đồng phát triển .NET hiện nay có thêm nhiều lựa chọn với các công cụ gọn nhẹ hơn và đặc biệt là có mã nguồn mở hay miễn phí. Bài viết này giới thiệu 10 công cụ miễn phí tốt nhất...
10 cơng cụ miễn phí tốt cho NET Khơng thể có ứng dụng tốt khơng có cơng cụ phát triển tốt, dù phát triển với ngơn ngữ (lập trình) nào, với ngơn ngữ ‘mạnh’ tảng NET ‘nổi đình đám’ Ngồi cơng cụ phát triển ứng dụng ‘chính thống’ ‘đồ sộ’ Visual Studio NET (VS.NET) Microsoft, cộng đồng phát triển NET có thêm nhiều lựa chọn với công cụ gọn nhẹ đặc biệt có mã nguồn mở hay miễn phí Bài viết giới thiệu 10 cơng cụ miễn phí tốt dành cho nhà phát triển NET, số có cơng cụ giúp phát triển ứng dụng nhanh có cơng cụ làm thay đổi hẳn cách thức bạn viết mã lệnh (code) SNIPPET COMPILER Snippet Compiler (http://www.sliver.com/dotnet/SnippetCompiler) công cụ dùng để viết code, biên dịch chạy, đặc biệt có ích đoạn code nhỏ (khi bạn khơng muốn tạo tồn project VS.NET với tập tin kèm) Ví dụ, đoạn code gọi chạy ứng dụng khác (Notepad) từ NET Bạn thực thi (chạy) đoạn code Snippet Compiler (chỉ việc nhấn nút Play) Hình 1: Snippet Compiler using System; using System.Collections; public class MyClass { public static void Main() { System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName= ‘notepad.exe’; proc.Start(); proc.WaitForExit(); } } REGULATOR Hình 2: Regulator Regulator (http://royo.is-a-geek.com/regulator) cơng cụ hồn chỉnh dùng để biên dịch kiểm tra biểu thức chuỗi, vấn đề quan tâm ứng dụng nhiều NET Biểu thức chuỗi dùng để định nghĩa chuỗi ký tự số, thường dùng để so trùng liệu người dùng nhập vào hay để tìm chuỗi ký tự chuỗi lớn Regulator cho phép bạn nhập vào biểu thức chuỗi liệu đầu vào để kiểm tra Bằng cách bạn thấy cách thức làm việc biểu thức kết trả trước thực ứng dụng Một đặc tính hấp dẫn Regulator khả tìm thư viện biểu thức trực tuyến regexlib.com Ví dụ, nhập vào chuỗi ‘phone’ tìm kiếm, bạn tìm thấy 20 biểu thức khác so khớp số điện thoại, bao gồm biểu thức áp dụng cho số điện thoại Anh, Úc… CODESMITH CodeSmith (http://ericjsmith.net/codesmith) công cụ sinh mã dựa template (mẫu có sẵn) dùng cú pháp tương tự ASP.NET để sinh dạng code hay text bất kỳ, từ tập hàm đơn giản đến tồn ứng dụng Khơng giống nhiều cơng cụ sinh mã khác, CodeSmith không yêu cầu bạn mô tả thiết kế hay kiến trúc ứng dụng Khi xây dựng ứng dụng, bạn nhận thấy thường phải lặp lặp lại số cơng việc, ví dụ viết code truy cập liệu hay xây dựng hàm CodeSmith đặc biệt hữu dụng tình vậy, cho phép bạn tạo template để thực tự động công việc này, không cải thiện hiệu suất làm việc mà tránh cho bạn nhàm chán CodeSmith có sẵn số template, bao gồm kiểu tập hợp NET thủ tục, sức mạnh thực cơng cụ khả tạo template riêng Template CodeSmith tập tin văn đơn bạn tạo công cụ soạn thảo văn bất kỳ, với yêu cầu lưu lại với đuôi cst Đầu tiên, bạn tạo phần đầu khai báo ngôn ngữ dùng cho template, ngôn ngữ kết mô tả vắn tắt template Phần template khai báo thuộc tính xác định template chạy Ví dụ khai báo thuộc tính chuỗi (string) Bước xây dựng phần thân template với mã lệnh tương tự ASP.NET, bạn dùng lệnh NET CodeSmith dễ dùng cho kết tuyệt vời sử dụng đắn Một phần phổ biến ứng dụng thích hợp cho việc sinh mã truy cập liệu CodeSmith có tích hợp thành phần đặc biệt gọi SchemaExplorer dùng để sinh template cho bảng liệu (table), thủ tục lưu trữ (stored procedure) gần đối tượng SQL Server NUNIT NUnit (hhtp://www.nunit.org) khung kiểm tra đơn vị chương trình (như lớp, hàm hay module) có mã nguồn mở Được phát triển theo mơ hình JUnit (cơng cụ kiểm tra tiếng dùng cho Java), NUnit viết C# khai thác ưu điểm ngôn ngữ NET NUnit cho phép bạn viết hàm kiểm tra lỗi (unit test) theo ngôn ngữ lựa chọn để kiểm tra chức cụ thể chương trình Unit test cách thức tốt để kiểm tra hoạt động đoạn code viết mới, phương thức kiểm tra hồi quy ứng dụng Các unit test lưu lại chạy lại bạn sửa đổi code, điều giúp phát lỗi dễ dàng đảm bảo phát triển ứng dụng tốt NUnit cung cấp khung để viết unit test, cịn có giao diện đồ họa để chạy unit test xem kết Ví dụ, kiểm tra hoạt động lớp Hashtable NET với việc thêm vào lấy đối tượng Bước tham chiếu đến NUnit.Framework để dùng thuộc tính hàm NUnit; kế tiếp, tạo lớp đánh dấu với thuộc tính [TestFixture] để NUnit biết lớp có hàm kiểm tra using System; using System.Collections; using NUnit.Framework; namespace NunitExample { [TestFixture] public class HashtableTest { public HashtableTest() { } } } Kế tiếp, tạo hàm đánh dấu với thuộc tính [Test] để NUnit biết hàm kiểm tra Trong hàm thiết lập Hashtable đưa vào giá trị, sau dùng hàm Assert.AreEqual để truy xuất giá trị [Test] public void HashtableAddTest(){ Hashtable ht = new Hashtable(); ht.Add(‘Key1′, ‘Value1′); ht.Add(‘Key2′, ‘Value2′); Assert.AreEqual(‘Value1′, ht['Key1'], ‘Wrong object returned!’); Assert.AreEqual(‘Value2′, ht['Key2'], ‘Wrong object returned!’); } Để chạy thủ tục kiểm tra, bạn cần xây dựng project, mở NUnit nhấn nút Run Bạn tải NUnit Visual Studio NET add-in (http://sourceforge.net/project/nunitaddin) để chạy kiểm tra trực tiếp Visual Studio FXCOP Hình 3: FxCop FxCop (http://www.gotdotnet.com/team/fxcop) cơng cụ kiểm tra gói chương trình đảm bảo tính tương thích với quy tắc NET Framework (http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpgenref/html/cpconnetframeworkdesignguidelines.asp): Thiết kế thư viện, vấn đề địa, quy cách đặt tên, hiệu suất, bảo mật FxCop Microsoft phát triển kèm theo tập quy tắc Mircosoft đưa ra, nhiên bạn tạo thêm quy tắc riêng Ví dụ, xem FxCop kiểm tra phát lỗi gói NUnitExample Trước hết, bạn cần tạo project FxCop đưa vào gói mà bạn muốn kiểm tra, sau nhấn Analyze FxCop kiểm tra đưa thơng báo lỗi (Hình 3) FxCop giúp bạn viết code tốt khơng thể sửa chữa thiết kế tồi hay lập trình FxCop khơng thể thay việc kiểm tra code cho phép bạn dành nhiều thời gian cho vấn đề quan trọng quy ước đặt tên .NET REFLECTOR Hình 4: Reflector NET Reflector (http://aisto.com/roeder/dotnet) cơng cụ ‘dịch ngược’ (decompiler) duyệt danh sách lớp, giúp bạn khám phá tất ‘bí mật’ bên gói .NET Framework đưa reflection dùng để xem code NET bất kỳ, dù lớp đơn hay toàn gói chương trình (‘reflection’ tính cho phép ứng dụng truy vấn siêu liệu nó) Reflection dùng để truy xuất thơng tin từ lớp, hàm thuộc tính khác gói .NET Reflector cho phép bạn duyệt danh sách lớp hàm gói, bạn xem xét ngơn ngữ trung gian Microsoft (MSIL) sinh từ lớp hàm này, dịch ngược lớp hàm sang C# hay VB.NET Ví dụ, dùng NET Reflector xem xét gói NUnitExample trên, hình thể gói nạp Để xem MSIL hàm, bạn nhấn chọn hàm chọn menu Disassembler, hay chọn menu Decompiler để xem dạng ngôn ngữ C# Bạn dịch ngược hàm sang VB.NET hay Delphi cách thay đổi tùy chọn menu Language .NET Reflector đặc biệt có ích để tìm hiểu hàm gói NET Framework Ví dụ, dùng NET Reflector bạn biết cách thức mà Microsoft dùng với hàm ReadXml .NET Reflector có ích để tìm hiểu cách thức tạo đối tượng HttpHandlers, qua biết cách thức mà nhóm phát triển Microsoft xây dựng đối tượng Framework NDOC Việc lập tài liệu chương trình ln cơng việc khó gây hứng thú Ở khơng nói tài liệu thiết kế mà tài liệu hàm thuộc tính lớp Cơng cụ NDoc (http://ndoc.sourceforge.net) tự động sinh tài liệu cho chương trình bạn cách dùng reflection để truy vấn thư viện dùng XML sinh từ thích XML C# Chú thích XML có hiệu lực cho C#, nhiên công cụ VB.DOC (http://vb-doc.sourceforge.net) VBCommenter VS.NET Power Toy thực tương tự cho VB.NET Ngồi ra, phiên Visual Studio hỗ trợ nhiều ngôn ngữ Đầu tiên, bạn dùng NDoc để sinh thích XML cho gói chương trình Nhấn phải project chọn Properties.Configuration Properties.Build, sau nhập vào đường dẫn nơi lưu tập tin XML tùy chọn XML Documentation File Dưới tài liệu hàm ví dụ NUnit /// /// This test adds a number of values to the Hashtable collection /// and then retrieves those values and checks if they match /// [Test] public void HashtableAddTest(){ //Method Body Here } Tài liệu XML hàm trích xuất lưu lại tập tin XML This test adds a number of values to the Hashtable collection and then retrieves those values and checks if they match. Sau sinh tập tin XML, bước nạp gói chương trình tập tin XML vào NDoc để xử lý Việc thực đơn giản cách mở NDoc nhấn nút Add Sau khai báo thuộc tính đầu ra, nhấn nút Generate để bắt đầu trình sinh tài liệu NANT NAnt (http://nant.sourceforge.net), phiên NET Ant hỗ trợ với dự án Jakarta (khá phổ tiếng cộng đồng phát triển Java), công cụ cho phép dễ dàng tạo qui trình build (biên dịch tích hợp ứng dụng) dựa XML Khi có nhiều nhà phát triển làm việc dự án, bạn khơng thể phó thác việc build cho người, bạn không muốn thực build thủ công nhiều lần ngày NAnt cho phép bạn build tự động toàn ứng dụng, chép tập tin, chạy kiểm tra NUnit, gửi email nhiều chức khác NAnt dùng tập tin XML để khai báo tác vụ cần thực trình build Lưu ý MSBuild, thành phần phiên Visual Studio 2005, có tính tương tự thay NAnt Ví dụ tập tin XML (có phần đuôi build) để biên dịch ứng dụng NUnitExample với NAnt