.NET REFLECTOR
.NET Reflector là công cụ 'dịch ngược' (decompiler) và duyệt danh sách lớp, có thể giúp bạn khám phá tất cả 'bí mật' bên trong một gói. .NET Framework đưa ra reflection dùng để xem code .NET bất kỳ, dù là lớp đơn hay toàn bộ gói chương trình ('reflection' là tính năng cho phép ứng dụng truy vấn siêu dữ liệu của chính nó).
Reflection cũng có thể dùng để truy xuất thông tin từ các lớp, hàm và thuộc tính khác nhau trong một gói nào đó. .NET Reflector cho phép bạn duyệt danh sách các lớp và hàm trong một gói, bạn có thể xem xét ngôn ngữ trung gian của Microsoft (MSIL) được sinh ra từ các lớp và hàm này, và có thể dịch ngược các lớp và hàm sang C# hay VB.NET.
7 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2293 | Lượt tải: 1
Bạn đang xem nội dung tài liệu 10 công cụ miễn phí tốt nhất cho .NET, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
10 công cụ miễn phí tốt nhất cho .NET
cho-NET.aspx
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 dành cho các nhà phát triển .NET, trong số đó có những công cụ giúp
phát triển ứng dụng nhanh hơn và có những công cụ có thể làm thay đổi hẳn cách thức bạn viết mã lệnh (code).
SNIPPET COMPILER
Snippet Compiler ( là công cụ dùng để viết code, biên dịch và chạy, nó
đặc biệt có ích đối với những đoạn code nhỏ (khi bạn không muốn tạo toàn bộ project VS.NET cùng với các tập tin đi
kèm).
Ví dụ, đoạn code dưới đây gọi chạy một ứng dụng khác (Notepad) từ .NET. Bạn có thể thực thi (chạy) đoạn code này
ngay trong Snippet Compiler (chỉ việc nhấn nút Play).
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
Regulator ( là công cụ hoàn chỉnh dùng để biên dịch và kiểm tra biểu thức chuỗi, đây
là vấn đề hiện được quan tâm vì được ứng dụng nhiều trong .NET. Biểu thức chuỗi được dùng để định nghĩa các chuỗi ký
tự và số, thường được dùng để so trùng dữ liệu người dùng nhập vào hay để tìm chuỗi ký tự trong một chuỗi lớn hơn.
Regulator cho phép bạn nhập vào một biểu thức chuỗi và dữ liệu đầu vào để kiểm tra. Bằng cách này bạn có thể thấy cách
thức làm việc của biểu thức và kết quả trả về trước khi thực hiện trong ứng dụng.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Một trong những đặc tính hấp dẫn nhất của Regulator là khả năng tìm thư viện biểu thức trực tuyến ở regexlib.com. Ví dụ,
nếu nhập vào chuỗi 'phone' trong ô tìm kiếm, bạn sẽ tìm thấy hơn 20 biểu thức khác nhau so khớp số điện thoại, bao gồm
các biểu thức áp dụng cho số điện thoại ở Anh, Úc...
CODESMITH
CodeSmith ( là công cụ sinh mã dựa trên template (mẫu có sẵn) dùng cú pháp tương tự
như ASP.NET để sinh ra dạng code hay text bất kỳ, từ tập hàm đơn giản đến toàn bộ ứng dụng. Không giống như 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 đi lặp lại một số công việc, ví dụ như viết code truy cập dữ liệu
hay xây dựng hàm. CodeSmith đặc biệt hữu dụng trong những tình huống như vậy, vì nó cho phép bạn tạo các template để
thực hiện tự động các công việc này, không chỉ cải thiện hiệu suất làm việc mà còn tránh cho bạn sự nhàm chán.
CodeSmith có sẵn một số template, bao gồm các kiểu tập hợp .NET cũng như thủ tục, nhưng sức mạnh thực sự của công
cụ này chính là khả năng tạo template riêng.
Template của CodeSmith là tập tin văn bản đơn thuần và bạn có thể tạo bằng công cụ soạn thảo văn bản bất kỳ, chỉ với
yêu cầu là 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 quả và mô
tả vắn tắt template.
<%@ CodeTemplate Language='C#'
TargetLanguage='C#'
Description='Car Template' %>
Phần kế tiếp của template khai báo các thuộc tính sẽ được xác định khi template chạy. Ví dụ dưới đây khai báo một thuộc
tính chuỗi (string).
<%@ Property Name='ClassName' Type='String' Category='Context'
Description='Class Name' %>
Bước tiếp theo xây dựng phần thân template với mã lệnh tương tự ASP.NET, bạn có thể dùng bất kỳ lệnh .NET nào.
CodeSmith khá dễ dùng và có thể cho ra những kết quả tuyệt vời nếu được sử dụng đúng đắn. Một trong những phần phổ
biến nhất của ứng dụng thích hợp cho việc sinh mã là truy cập dữ liệu. CodeSmith có tích hợp thành phần đặc biệt gọi là
SchemaExplorer có thể dùng để sinh các template cho bảng dữ liệu (table), thủ tục lưu trữ (stored procedure) và gần như
bất kỳ đối tượng SQL Server.
NUNIT
NUnit (hhtp://www.nunit.org) là 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 nổi tiếng dùng cho Java), nhưng NUnit được viết bằng C# và khai thác
được ưu điểm của các 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 một chức năng cụ thể của chương
trình. Unit test là cách thức tốt để kiểm tra hoạt động của đoạn code viết mới, và cũng là một phương thức kiểm tra hồi
quy ứng dụng. Các unit test có thể lưu lại và chạy lại mỗi khi bạn sửa đổi code, điều này giúp phát hiện lỗi dễ dàng hơn và
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
đảm bảo phát triển ứng dụng tốt hơn.
NUnit cung cấp khung để viết các unit test, và còn có giao diện đồ họa để chạy các unit test và xem kết quả. Ví dụ, chúng
ta sẽ kiểm tra hoạt động của lớp Hashtable trong .NET với việc thêm vào và lấy ra 2 đối tượng. Bước đầu tiên là tham
chiếu đến NUnit.Framework để có thể dùng các thuộc tính và hàm của NUnit; kế tiếp, tạo một lớp và đánh dấu nó với
thuộc tính [TestFixture] để NUnit biết lớp này 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, chúng ta tạo một hàm và đánh dấu với thuộc tính [Test] để NUnit biết đây là hàm kiểm tra. Trong hàm này chúng
ta sẽ thiết lập Hashtable và đưa vào 2 giá trị, sau đó dùng hàm Assert.AreEqual để truy xuất 2 giá trị này.
[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ở nó trong NUnit và nhấn nút Run. Bạn cũng có thể tải về NUnit
Visual Studio .NET add-in ( để chạy kiểm tra trực tiếp trong Visual Studio.
FXCOP
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
FxCop ( là công cụ kiểm tra gói chương trình đảm bảo tính tương thích với những
quy tắc của .NET Framework (
us/cpgenref/html/cpconnetframeworkdesignguidelines.asp): Thiết kế thư viện, vấn đề bản địa, quy cách đặt tên, hiệu suất,
bảo mật. FxCop do Microsoft phát triển và kèm theo tập các quy tắc do Mircosoft đưa ra, tuy nhiên bạn có thể tạo thêm
những quy tắc riêng.
Ví dụ, chúng ta hãy xem FxCop kiểm tra và phát hiện lỗi trong gói NUnitExample ở trên. Trước hết, bạn cần tạo một
project FxCop và đưa vào gói mà bạn muốn kiểm tra, sau đó nhấn Analyze và FxCop sẽ kiểm tra và đưa ra thông báo lỗi
(Hình 3).
FxCop có thể giúp bạn viết code tốt hơn nhưng nó không thể sửa chữa thiết kế tồi hay lập trình kém. FxCop cũng không
thể thay thế việc kiểm tra code nhưng nó cho phép bạn dành nhiều thời gian hơn cho những vấn đề quan trọng hơn là quy
ước đặt tên.
.NET REFLECTOR
.NET Reflector ( là công cụ 'dịch ngược' (decompiler) và duyệt danh sách lớp, có thể giúp
bạn khám phá tất cả 'bí mật' bên trong một gói. .NET Framework đưa ra reflection dùng để xem code .NET bất kỳ, dù là
lớp đơn hay toàn bộ gói chương trình ('reflection' là tính năng cho phép ứng dụng truy vấn siêu dữ liệu của chính nó).
Reflection cũng có thể dùng để truy xuất thông tin từ các lớp, hàm và thuộc tính khác nhau trong một gói nào đó. .NET
Reflector cho phép bạn duyệt danh sách các lớp và hàm trong một gói, bạn có thể xem xét ngôn ngữ trung gian của
Microsoft (MSIL) được sinh ra từ các lớp và hàm này, và có thể dịch ngược các lớp và hàm sang C# hay VB.NET.
Ví dụ, chúng ta dùng .NET Reflector xem xét gói NUnitExample ở trên, hình 4 thể hiện gói này khi được nạp. Để xem
MSIL của một hàm, bạn nhấn chọn hàm và chọn menu Disassembler, hay chọn menu Decompiler để xem ở dạng ngôn
ngữ C#. Bạn cũng có thể dịch ngược hàm sang VB.NET hay Delphi bằng cách thay đổi tùy chọn trong menu Language.
.NET Reflector đặc biệt có ích để tìm hiểu các hàm và gói trong .NET Framework. Ví dụ, dùng .NET Reflector bạn có thể
biết được cách thức mà Microsoft dùng với hàm ReadXml. .NET Reflector cũng rất có ích để tìm hiểu cách thức tạo các
đối tượng như HttpHandlers, và qua đó biết được cách thức mà nhóm phát triển của Microsoft đã xây dựng các đối tượng
trong Framework.
NDOC
Việc lập tài liệu chương trình luôn là công việc khó gây hứng thú. Ở đây không nói về tài liệu thiết kế mà là tài liệu hàm
và thuộc tính của lớp. Công cụ NDoc ( sẽ tự động sinh tài liệu cho chương trình của bạn bằng
cách dùng reflection để truy vấn thư viện và dùng XML được sinh từ chú thích XML C#. Chú thích XML chỉ có hiệu lực
cho C#, tuy nhiên công cụ VB.DOC ( và VBCommenter của VS.NET Power Toy có thể
thực hiện tương tự cho VB.NET. Ngoài ra, phiên bản kế tiếp của Visual Studio sẽ hỗ trợ nhiều ngôn ngữ hơn.
Đầu tiên, bạn dùng NDoc để sinh chú thích XML cho gói chương trình. Nhấn phải project và chọn
Properties.Configuration Properties.Build, sau đó nhập vào đường dẫn nơi lưu tập tin XML trong tùy chọn XML
Documentation File. Dưới đây là tài liệu của hàm trong ví dụ NUnit.
///
/// This test adds a number of values to the Hashtable collection
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
/// and then retrieves those values and checks if they match.
///
[Test]
public void HashtableAddTest(){
//Method Body Here
}
Tài liệu XML của hàm này sẽ được trích xuất ra và lưu lại trong 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 khi sinh ra tập tin XML, bước kế tiếp nạp gói chương trình và tập tin XML vào NDoc để xử lý. Việc này được thực
hiện đơn giản bằng cách mở NDoc và nhấn nút Add. Sau khi khai báo thuộc tính đầu ra, nhấn nút Generate để bắt đầu quá
trình sinh tài liệu.
NANT
NAnt ( phiên bản .NET của Ant được hỗ trợ với dự án Jakarta (khá phổ tiếng trong cộng đồng
phát triển Java), là công cụ cho phép dễ dàng tạo qui trình build (biên dịch và tích hợp ứng dụng) dựa trên XML. Khi có
nhiều nhà phát triển cùng làm việc trên một dự án, bạn không thể phó thác việc build cho từng người, và chắc bạn cũng
không muốn thực hiện build thủ công nhiều lần mỗi ngày. NAnt cho phép bạn build tự động toàn bộ ứng dụng, chép các
tập tin, chạy các kiểm tra NUnit, gửi email và nhiều chức năng khác. NAnt dùng các tập tin XML để khai báo những tác
vụ cần thực hiện trong quá trình build. Lưu ý là MSBuild, thành phần trong phiên bản mới Visual Studio 2005, có tính
năng tương tự và có thể thay thế NAnt.
Ví dụ dưới đây là tập tin XML (có phần đuôi là .build) để biên dịch ứng dụng NUnitExample với NAnt.
The NUnit Example Project
<csc target='library' output='.\bin\debug\NUnitExample.dll'
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
debug='${debug}'>
<includes name='C:\program files\NUnit
V2.1\bin\NUnit.Framework.dll' />
Tập tin XML này được lưu ở thư mục gốc của project NUnitExample. Bạn đến thư mục này và chạy nant.exe để biên dịch
ứng dụng.
Tuy không dễ dàng như việc nhấn Build trong Visual Studio, nhưng NAnt là công cụ rất mạnh dùng để xây dựng qui trình
build chạy tự động theo lịch biểu.
Công cụ chuyển đổi
Cuối cùng là 2 công cụ đơn giản nhưng rất hữu dụng. Đầu tiên là ASP.NET Version Switcher
( công cụ này dùng để chuyển đổi phiên bản
(version) ASP.NET của một website đang hoạt động. Công cụ thứ hai là Visual Studio Converter
( dùng để chuyển đổi tập tin project từ VS.NET 2002 sang VS.NET
2003 hay ngược lại.
IIS sử dụng cơ chế ánh xạ phần mở rộng (extension) để xử lý yêu cầu một website. Khi cài ASP.NET 1.1, cơ chế này
được nâng cấp phiên bản mới và gây lỗi khi chạy ứng dụng được xây dựng trên ASP.NET 1.0. Để giải quyết vấn đề này,
bạn có thể chuyển tất cả ánh xạ phần mở rộng của website về phiên bản 1.0, tuy nhiên, thực hiện thủ công việc này rất vất
vả và đây chính là nơi 'dụng võ' của ASP.NET Version Switcher. Tiện ích nhỏ này có thể dùng để chuyển version .NET
của bất kỳ ứng dụng ASP.NET nào. Công cụ này càng có ích khi tương lai có thêm các phiên bản mới ASP.NET và .NET
Framework.
Visual Studio Converter tương tự như ASP.NET Version Switcher, ngoại trừ việc nó được dùng để chuyển đổi version
của tập tin project Visual Studio. Mặc dù chỉ có một ít khác biệt giữa .NET Framework version 1.0 và 1.1, một khi tập tin
project được chuyển từ VS.NET 2002 sang VS.NET 2003 thì không thể chuyển ngược lại. Tuy nhiên, đôi khi việc chuyển
ngược lại cần thiết. Công cụ Converter này cho phép chuyển bất kỳ tập tin solution hay project từ Visual Studio 7.1
(VS.NET 2003) về Visual Studio 7.0 (VS.NET 2002) và ngược lại.
Kết luận
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Vậy là chúng ta đã 'cưỡi ngựa xem hoa' một số công cụ miễn phí tuyệt vời hỗ trợ cho việc phát triển trên nền .NET. Hy
vọng trong số này có những công cụ đáp ứng nhu cầu của bạn và có thể giúp bạn cải thiện hiệu suất. Hãy trang bị đầy đủ
các công cụ cần thiết, đó có thể là máy tính mạnh, Visual Studio phiên bản mới nhất hay tiện ích miễn phí vì chúng sẽ
giúp tạo nên sự khác biệt cho bạn.
Thanh Phong - Theo PCWorld VN
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Các file đính kèm theo tài liệu này:
- 10_cong_cu_mien_phi_tot_nhat_cho_vs.pdf