Tải bản đầy đủ (.pdf) (10 trang)

Công cụ của .NET phần đầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (179.37 KB, 10 trang )

Giới thiệu một số công cụ của .NET

Phần phụ lục này giới thiệu một số công cụ nhỏ (hầu hết là miễn phí) nhưng rất tốt cho
các nhà phát triển .NET, trong đó 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 cách thức viết mã lệnh của bạn.
1.
Biên dịch các đoạn mã ngắn với Snippet Compiler
2.
Xây dựng biểu thức chính quy với Regulator
3.
Sinh mã với CodeSmith
4.
Viết kiểm thử đơn vị với NUnit
5.
Kiểm soát mã lệnh với FxCop
6.
Khảo sát assembly với .NET Reflector
7.
Lập tài liệu mã lệnh với NDoc
8.
Tạo dựng giải pháp với NAnt
9.
Các công cụ chuyển đổi: ASP.NET Version Switcher, Visual Studio .NET Project
Converter, VB.NET to C# Converter, và Convert C# to VB.NET
10.
Xây dựng website quản trị cơ sở dữ liệu với ASP.NET Maker 1.1
1. A.1 Biên dịch các đoạn mã ngắn với Snippet Compiler
Snippet Compiler là một ứng dụng nhỏ dùng để viết, biên dịch, và chạy mã lệnh. Công cụ
này hữu ích khi bạn có những đoạn mã ngắn và bạn không muốn phải tạo toàn bộ dự án
Visual Studio .NET (cùng với các file đi kèm) cho chúng.
Lấy ví dụ, giả sử bạn muốn chạy một ứng dụng nào đó từ Microsoft .NET Framework.


Trong Snippet Compiler, bạn hãy tạo một ứng dụng Console mới. Phần mã lệnh có th

được tạo bên trong phương thức Main của ứng dụng này. Đoạn mã dưới đây trình bày
cách tạo một thể hiện của Notepad từ .NET Framework:
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();
}
}

Hình A-1 Snippet Compiler

Hình A-1 cho thấy đoạn mã này trong Snippet Compiler. Để thử nghiệm đoạn mã này,
bạn chỉ việc nhấn nút Play (hình tam giác xanh), và nó sẽ chạy ở chế độ gỡ rối. Đoạn mã
này sẽ sinh ra một cửa sổ pop-up (ứng dụng Console), và Notepad sẽ xuất hiện. Khi bạn
đóng Notepad, ứng dụng Console cũng sẽ đóng.
1.
Snippet Compiler được viết bởi Jeff Key và có thể được download tại
[
2. A.2 Xây dựng biểu thức chính quy với Regulator
Regulator là một công cụ với đầy đủ tính năng dùng để xây dựng và kiểm tra các biểu
thức chính quy. Biểu thức chính quy được sử dụng để định nghĩa các mẫu trong những

chuỗi dựa trên ký tự, tần số xuất hiện, và thứ tự ký tự. Chúng thường được sử dụng nhiều
nhất để làm phương tiện xác nhận tính tính hợp lệ của đầu vào do người dùng cung cấp
hoặ
c tìm một chuỗi ký tự bên trong một chuỗi lớn hơn—chẳng hạn, khi tìm kiếm một địa
chỉ URL hay e-mail trên một trang web.
Regulator cho phép bạn nhập một biểu thức chính quy và một đầu vào nào đó (bạn sẽ
chạy biểu thức chính quy dựa trên đầu vào này). 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 chính quy và kết quả trả về trước khi hiện thực nó trong ứng
d
ụng của mình. Hình A-2 cho thấy Regulator với một biểu thức chính quy đơn giản.
The image part with relationship ID rId5 was not fo und in the file.


Hình A-2 Regulator với một biểu thức chính quy đơn giản

Phần document chứa biểu thức chính quy, trong ví dụ này là [0-9]*, biểu thức này trùng
khớp với bất kỳ dãy chữ số nào. Hộp ở phía dưới phải chứa đầu vào cho biểu thức chính
quy, và hộp ở phía dưới trái hiển thị những trùng khớp mà biểu thức chính quy tìm thấy
bên trong các đầu vào. Viết và kiểm tra các biểu thức chính quy trong một ứng dụng độc
lập như thế này thì dễ hơn nhiều so với thao tác chúng trong ứng dụng của bạn.
Một trong những tính năng hay nhất của Regulator là khả năng tìm kiếm thư viện biểu
thức chính quy trực tuyến tại []. Ví dụ, nếu nhập chuỗi "phone" vào
hộp tìm kiếm, bạn sẽ tìm thấy hơn 20 biểu thức chính quy khác nhau trùng khớp với các
số điện thoại, bao gồm các bi
ểu thức cho Anh, Úc, và nhiều số điện thoại khác.
2.
Regulator được viết bởi Roy Osherove và có thể được download tại
[].
3. A.3 Sinh mã với CodeSmith
CodeSmith là một công cụ sinh mã dựa-trên-template (khuôn mẫu), sử dụng một cú pháp

tương tự như ASP.NET để kết sinh bất kỳ kiểu mã hay text nào. Khác với nhiều công cụ
sinh mã khác, CodeSmith không yêu cầu bạn mô tả một bản thiết kế hay kiến trúc ứng
dụng cụ thể. Khi sử dụng CodeSmith, bạn có thể kết sinh mọi thứ, từ một tập hợp đơn
giản, được-đị
nh-kiểu-mạnh đến toàn bộ một ứng dụng.
Khi xây dựng một ứng dụng, bạn thường phải lặp đi lặp lại những tác vụ nào đó, chẳng
hạn viết mã truy xuất dữ liệu hay xây dựng các tập hợp tùy biến. CodeSmith đặc biệt hữu
ích trong những tình huống như vậy, vì bạn có thể viết các template để tự động hóa các
tác vụ này, điều này không ch
ỉ cải thiện hiệu năng mà còn giúp bạn bớt nhàm chán.
The image part with relationship ID rId6 was not fo und in the file.
CodeSmith có sẵn một số template, bao gồm những template cho tất cả các kiểu tập hợp
.NET cũng như những template để sinh thủ tục tồn trữ, nhưng sức mạnh thực sự của công
cụ này chính là khả năng tạo các template tùy biến.
Template của CodeSmith chỉ là file văn bản đơn thuần (có thể được tạo bằng công cụ
soạn thảo văn bản bất kỳ
), với phần mở rộng là .cst.
Template được giới thiệu dưới đây sẽ nhận một chuỗi và rồi xây dựng một lớp dựa vào
chuỗi đó. Bước đầu tiên là viết phần header, phần này khai báo ngôn ngữ của template,
ngôn ngữ đích, và mô tả vắn tắt về template:
<%@ CodeTemplate Language="C#"
TargetLanguage="C#"
Description="Car Template" %>
Phần kế tiếp của template là các khai báo thuộc tính, các thuộc tính này sẽ được chỉ định
mỗi khi template chạy. Ví dụ
dưới đây khai báo một thuộc tính chuỗi:
<%@ Property Name="ClassName" Type="String" Category="Context"
Description="Class Name" %>
Khai báo này sẽ làm cho thuộc tính ClassName xuất hiện trong cửa sổ thuộc tính của
CodeSmith để nó có thể được chỉ định khi template chạy.

Bước tiếp theo là xây dựng phần thân của template (với mã lệnh tương tự như ASP.NET).
Như bạn có thể thấy, template này nhận chuỗi nhập và sinh ra một lớp với tên đó. Trong
phần thân của template, các thẻ đóng và mở
được sử dụng như trong ASP.NET. Trong
template này, ta chỉ chèn giá trị thuộc tính, nhưng cũng có thể sử dụng bất kỳ kiểu mã
.NET nào bên trong các thẻ này.
public sealed class <%= ClassName %>
{
private static volatile <%= ClassName %> _instance;
private <%= ClassName %>() {}
private static readonly object _syncRoot = new object();

public static <%= ClassName %> Value
{
get
{
if (_instance == null)
{
lock(_syncRoot)
{
if (_instance == null)
{
_instance = new <%= ClassName %>();
}
}
}
return _instance;
}
}
}

Một khi template đã hoàn tất, bạn hãy nạp nó vào CodeSmith (xem hình A-3). Bạn có thể
nhận thấy thuộc tính phía bên trái là thuộc tính mà chúng ta đã khai báo trong template.
Nếu bạn nhập “SingletonClass” làm tên lớp và nhắp nút Generate, CodeSmith sẽ sinh ra
lớp dưới đây:
public sealed class SingletonClass
{
private static volatile SingletonClass _instance;
private SingletonClass() {}
private static readonly object _syncRoot = new object();

public static SingletonClass Value
{
get
{
if (_instance == null)
{
lock(_syncRoot)
{
if (_instance == null)
{
_instance = new SingletonClass();
}
}
}
return _instance;
}
}
}


×