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

Công cụ của .NET phần cuối

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 (225.27 KB, 8 trang )

Đoạn mã trên rất giống với đoạn mã mà chúng ta đã viết:
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!");
}
Mặc dù có một vài khác biệt nhỏ về mã lệnh nhưng chúng giống hệt nhau về chức
năng.
Công dụng hay nhất của .NET Reflector là khảo sát các assembly và phương thức
của .NET Framework. .NET Framework cung cấp nhiều cách khác nhau để thực
hiện các thao tác tương tự nhau. Ví dụ, nếu bạn cần đọc mộ
t tập dữ liệu từ XML, có
nhiều cách khác nhau để thực hiện điều này: sử dụng XmlDocument,
XPathNavigator, hay XmlReader. Bằng cách sử dụng .NET Reflector, bạn
có thể xem Microsoft đã sử dụng gì khi viết phương thức ReadXml của
DataSet, hoặc họ đã làm gì khi đọc dữ liệu từ file cấu hình. .NET Reflector cũng
rất có ích khi tìm hiểu cách tạo các đối tượng như HttpHandlers
; và qua đó,
bạn 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.
1.
.NET Reflector được viết bởi Lutz Roeder và có thể được download tại
[
/>].


1. A.7 Lập tài liệu mã lệnh với NDoc
Việc lập tài liệu mã lệnh gần như là một công việc không mấy hứng thú. Ở đây
không nói về tài liệu thiết kế mà là tài liệu cho từng phương thức và thuộc tính của
lớp. Công cụ NDoc sẽ sẽ tự động sinh tài liệu cho mã lệnh của bạn bằng cách sử
dụng cơ chế phản chiếu để khảo sát assembly và sử dụng file XML được sinh từ
các chú thích XML C# (các chú thích
XML chỉ có hiệu lực cho C#, nhưng có một
Visual Studio .NET Power Toy với tên là VBCommenter cũng sẽ thực hiện giống
như vậy đối với Visual Basic .NET).
Với NDoc, bạn vẫn cứ lập tài liệu cho mã lệnh, nhưng lập khi viết mã (trong các
chú thích XML). Bước đầu tiên khi sử dụng NDoc là mở chức năng sinh chú thích
XML đối với assembly của bạn. Nhắp phải vào dự án và chọn Properties |
Configuration Properties | Build, rồi nhập một đường dẫn để lưu file XML trong
tùy chọn XML Documentation File (xem hình A-7). Khi dự án được tạo dựng, một
file XML sẽ được sinh ra v
ới tất cả các chú thích XML đi kèm.



Dưới đây là phương thức ở mục A.4:
/// <summary>
/// This test adds a number of values to the Hashtable
collection
/// and then retrieves those values and checks if they
match.
/// </summary>
[Test]
public void HashtableAddTest()
{
// Phần thân phương thức ở đây.

}
Phần chú thích XML cho phương thức này sẽ được trích xuất và lưu thành file XML
như sau:
<?xml version="1.0" ?>
<doc>
<assembly>
<name>NUnitExample</name>
</assembly>
<members>
<member
name="M:NUnitExample.HashtableTest.HashtableAddTest">
<summary>This test adds a number of values to the
Hashtable
collection and then retrieves those values and
checks if
they match.
</summary>
</member>
</members>
</doc>
Bước kế tiếp là nạp assembly và file XML vào NDoc. Sau đó, nhắp nút Build
Documentation để chạy quá trình sinh tài liệu (xem hình A-8). Hình A-9 là tài liệu
CHM do NDoc sinh ra.




ra

2.

NDoc là một dự án mã nguồn mở và có thể được download tại
[

].
2. A.8 Tạo dựng giải pháp với NAnt
NAnt là một công cụ tạo dựng dựa-trên-.NET, giúp bạn viết một quy trình tạo dựng
dự án cho mình. 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 tạo dựng cho từng người. Bạn cũng không muốn phải
thường xuyên tạo dựng dự án một cách thủ công. Thay vào đó, bạn viết một quy
trình tạo dựng tự động chạy mỗi đêm. NAnt cho phép bạn tạ
o dựng giải pháp, chép
file, chạy các kiểm tra NUnit, gửi e-mail, và nhiều nữa. Đáng tiếc, NAnt thiếu giao
diện đồ họa, nhưng nó có một ứng dụng Console và các file XML chỉ định các tác
vụ nào sẽ được hoàn thành trong quá trình tạo dựng. Lưu ý rằng MSBuild, một nền
tạo dựng mới trong trong phiên bản Visual Studio 2005, cũng có tính năng tương tự
như NAnt.
Ví dụ, chúng ta cần viết file t
ạo dựng NAnt cho dự án NUnitExample ở mục A.4.
Trước tiên, bạn hãy tạo một file XML với phần mở rộng là .build, và đặt nó trong
thư mục gốc của dự án:
<?xml version="1.0"?>
<project name="NUnit Example" default="build"
basedir=".">
<description>The NUnit Example
Project</description>
<property name="debug" value="true"/>
<target name="build" description="compiles the
source code">
<csc target="library"
output=".\bin\debug\NUnitExample.dll"

debug="${debug}">
<references>
<includes name="C:\Program Files\NUnit
2.2\bin
\NUnit.Framework.dll"
/>
</references>
<sources>
<includes name="NUnitExample.cs"/>
</sources>
</csc>
</target>
</project>
Thẻ project được sử dụng để đặt tên cho dự án, target mặc định, và thư mục cơ
sở. Thẻ này cần có những thẻ con sau:
1.
Thẻ description được sử dụng để đặt một mô tả ngắn gọn về dự án.
2.
Thẻ property được sử dụng để lưu trữ một thiết lập sao cho nó có thể được
truy xuất từ bất cứ đâu trong file tạo dựng. Ví dụ này tạo một thuộc tính với
tên là debug, và thiết lập nó là true hay false tùy vào bạn có muốn dự án
được biên dịch ở cấu hình gỡ rối hay không (thuộc tính này không ảnh hưởng
gì đến cách thức tạo dựng dự án; nó chỉ là mộ
t biến số mà bạn có thể thiết lập
và sẽ được thu về khi bạn thật sự xác định cách thức tạo dựng dự án).
3.
Kế tiếp là thẻ target. Một dự án có thể có nhiều target (có thể được chỉ định
khi NAnt chạy). Nếu không có target nào được chỉ định, target mặc định sẽ
được sử dụng (ta đã thiết lập nó trong thẻ project). Trong ví dụ này, target
mặc định là build. Bên trong thẻ target, bạn cần thiết lập tên của target

và mô tả những gì mà target này sẽ thực hiện.
Thẻ csc được s
ử dụng để chỉ định những gì sẽ được truyền cho trình biên
dịch C#. Trước tiên, bạn phải thiết lập target cho thẻ csc. Do cần tạo file .dll
nên ví dụ này thiết lập target là library. Kế tiếp, bạn phải thiết lập output
cho thẻ csc, đây là nơi mà file .dll sẽ được tạo. Cuối cùng, bạn cần thiết lập
thuộc tính debug, cho biết dự án có đượ
c biên dịch ở chế độ gỡ rối hay
không. Vì đã tạo một thuộc tính trước đó để lưu trữ giá trị này, ta có thể sử
dụng chuỗi ${debug} để truy xuất giá trị của thuộc tính.
Thẻ csc cũng cần có các thẻ con: thẻ references cho biết những
assembly nào cần được tham chiếu; và thẻ sources cho biết những file nào
đi kèm. Ví dụ này tham chiếu đến assembly NUnit.Framework.dll và chứa file
NUnitExample.cs.
Để tạo dựng, bạn cần đến thư mục gốc của dự án và thực thi NAnt.exe ở đó (xem
hình A-10). Nếu tạo dựng thành công, bạn có thể tìm thấy file các .dll và .pdb
trong thư mục
bin của dự án.


Tuy không dễ dàng như việc nhắp Build trong Visual Studio, nhưng NAnt là một
công cụ rất mạnh khi xây dựng quy trình tạo dựng chạy tự động theo lịch biểu.
NAnt cũng có các tính năng hữu ích như chạy các kiểm thử đơn vị hay chép các file
đi kèm (các tính năng này không được quy trình tạo dựng của Visual Studio 2003
hỗ trợ).
4.
NAnt là một dự án mã nguồn mở và có thể được download tại
[
/>].
3. A.9 Chuyển đổi phiên bản ASP.NET với

ASP.NET Version Switcher
Khi thụ lý một yêu cầu, IIS xem phần mở rộng của file được yêu cầu; và rồi dựa
vào các ánh xạ phần mở rộng (extension mapping) cho thư mục ảo hay website, nó
ủy nhiệm yêu cầu cho một phần mở rộng ISAPI hoặc tự thụ lý nó. Đây là cách
ASP.NET làm việc; các ánh xạ phần mở rộng được đăng ký cho tất cả các phần mở
rộng ASP.NET và hướng chúng đến aspnet_isapi.dll.
Khi bạn cài đặt ASP.NET 1.1, ánh xạ phần mở rộng được nâng cấp sang phiên bản
mới của aspnet_isapi.dll. Điều này gây ra lỗi khi một ứng dụng đã được tạo dựng
trên ASP.NET 1.0 lại chạy trên phiên bản 1.1. Để giải quyết vấn đề này, bạn có thể
chuyển tất cả các ánh xạ phần mở rộng trở về phiên bản 1.0 của aspnet_isapi.dll,
nh
ưng với 18 ánh xạ phần mở rộng thì quả là vất vả nếu làm thủ công. Đây chính
là nơi ASP.NET Version Switcher trở nên hữu dụng. Tiện ích nhỏ này có thể được
sử dụng để chuyển phiên bản .NET Framework của bất kỳ ứng dụng ASP.NET nào.
Sử dụng công cụ này rất đơn giản: bạn hãy chọn một ứng dụng và rồi chọn phiên
bản .NET Framework mà bạ
n muốn ứng dụng này sử dụng (xem hình A-11). Sau
đó, công cụ này sẽ sử dụng tiện ích dòng lệnh aspnet_regiis.exe để chuyển ứng

×