Các giải pháp lập trình CSharp- P80
Số trang: 10
Loại file: pdf
Dung lượng: 2.63 MB
Lượt xem: 1
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các giải pháp lập trình CSharp- P80: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P80 681 Phụ lục A: Giới thiệu một số công cụ .NET lock(_syncRoot) { if (_instance == null) { _instance = new SingletonClass(); } } } return _instance; } }} Hình A-3 Nạp template vào CodeSmithCodeSmith tương đối dễ sử dụng và có thể sinh ra những kết quả tuyệt vời nếu được áp dụngmột cách đúng đắn. Một trong những phần phổ biến nhất cần được sinh mã là tầng truy xuấtdữ liệu. CodeSmith có một assembly đặc biệt với tên là SchemaExplorer, assembly này có thểđược sử dụng để sinh ra các template từ bảng, thủ tục tồn trữ, hay hầu như bất kỳ đối tượngSQL Server nào khác. CodeSmith được viết bởi Eric J. Smith và có thể được download (bản dùng thử) tại [http://www.ericjsmith.net/codesmith/download.aspx].A.4 Viết kiểm thử đơn vị với NUnitNUnit là bộ khung kiểm thử đơn vị được xây dựng cho .NET Framework, cho phép bạn viếtcác phương thức kiểm thử theo ngôn ngữ do bạn chọn để kiểm tra một hàm cụ thể của chương 682 Phụ lục A: Giới thiệu một số công cụ .NETtrình. Ứng dụng NUnit cung cấp một bộ khung để viết các kiểm thử đơn vị, cũng như mộtgiao diện đồ họa để chạy các kiểm thử đơn vị và xem kết quả.Ví dụ, chúng ta cần kiểm tra chức năng của lớp Hashtable trong .NET Framework để xác địnhhai đối tượng có thể được thêm vào và lấy ra hay không. Bước đầu tiên là tham chiếu đếnassembly NUnit.Framework để có thể truy xuất các thuộc tính và phương thức của bộ khungNUnit. Bước kế tiếp là tạo một lớp và đánh dấu nó với đặc tính [TestFixture] để NUnit biếtlớp này có chứa phương thức kiểm thử.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 phương thức và đánh dấu nó với đặc tính [Test] để NUnit biết đâylà phương thức kiểm thử. Trong phương thức này, chúng ta sẽ thiết lập một Hashtable và đưavào đó hai giá trị, sau đó sử dụng phương thức Assert.AreEqual để xem chúng ta có thể thulấy đúng các giá trị mà chúng ta đã đưa vào Hashtable hay không:[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 phương thức kiểm thử này, bạn cần tạo một dự án NUnit, mở assembly đã được sinhra bên trên và nhắp nút Run. Hình A-4 cho thấy kết quả. 683 Phụ lục A: Giới thiệu một số công cụ .NETTrên đây chỉ là một kiểm thử đơn giản, nhưng cho thấy khả năng của NUnit. Có rất nhiều kiểukiểm thử, cũng như nhiều phương thức Assert, có thể được sử dụng để kiểm thử mọi phầntrong mã lệnh của bạn.Một kiểm thử đơn vị có thể lưu và chạy lại mỗi khi bạn sửa đổi mã lệnh, điều này giúp bạnphát hiện lỗi dễ dàng hơn và đảm bảo phát triển ứng dụng tốt hơn. NUnit là một dự án mã nguồn mở và có thể được download tại [http://www.nunit.org]. Hình A-4 NUnitCũng có một bản add-in của NUnit cho Visual Studio .NET, add-in này cho phép bạn trực tiếpchạy các phương thức kiểm thử đơn vị từ Visual Studio .NET (có thể được download tại[http://sourceforge.net/projects/nunitaddin]).Để có thêm thông tin về NUnit và vị trí của nó trong việc phát triển test-driven (vận hành theokiểm thử), bạn hãy xem bài viết “Test-Driven C#: Improve the Design and Flexibility of YourProject with Extreme Programming Techniques” trong đĩa CD đính kèm.A.5 Kiểm soát mã lệnh với FxCop.NET Framework rất mạnh, có nghĩa khả năng tạo ra những ứng dụng tuyệt vời là rất cao,nhưng khả năng tạo ra những chương trình tồi cũng là rất cao. FxCop là một trong nhữngcông cụ có thể được sử dụng để trợ giúp tạo ra những ứng dụng tốt hơn bằng việc cho phépbạn khảo sát một assembly và kiểm tra tính tương thích của nó với một số quy luật. FxCopchứa tập các quy luật do Microsoft tạo ra, nhưng bạn cũng có thể tạo ra những quy luật chomình. Chẳng hạn, nếu muốn tất cả các lớp đều có một phương thức khởi dựng mặc địnhkhông đối số, bạn có thể viết một quy luật kiểm tra phương thức khởi dựng trên mỗi lớp củaassembly. Để có thêm thông tin về việc tạo những quy luật tùy biến, bạn hãy vào[http://msdn.microsoft.com/msdnmag/issues/04/06/bugslayer].Ví dụ, chúng ta hãy xem FxCop phát hiện ra lỗi gì trong assembly NUnitExample (đã đượctrình bày mục A.4). Trước tiên, bạn cần tạo một dự án FxCop và đưa assembly này vào. Sau 684 Phụ lục A: Giới thiệu một số công cụ .NETđó, bạn hãy nhấn Analyze, FxCop sẽ khảo sát assembly này và đưa ra các thông báo lỗi (xemhình A-5).FxCop nhận thấy một số vấn đề với assembly này. Bạn có thể nhắp đúp lên một lỗi để xemchi tiết, bao gồm lời mô tả quy luật và nơi mà bạn có thể tìm thấy nhiều thông tin hơn.FxCop có thể giúp bạn tạo mã lệnh tốt hơn, nhất quán hơn, nhưng nó không thể sửa chữa việcthiết kế tồi hay lập trình kém. FxCop cũng không phải là một sự thay thế cho việc kiểm tra mãlệnh (code review), nhưng vì nó có thể bắt nhiều lỗi trước khi kiểm tra mã lệnh nên bạn có thểdành nhiều thời gian cho các vấn đề hệ trọng hơn là phải lo lắng về các quy ước đặt tên. Hình A-5 FxCop đưa ra các thông báo khi khảo sát NUnitExample FxCop được phát triển bởi Microsoft và ...
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P80 681 Phụ lục A: Giới thiệu một số công cụ .NET lock(_syncRoot) { if (_instance == null) { _instance = new SingletonClass(); } } } return _instance; } }} Hình A-3 Nạp template vào CodeSmithCodeSmith tương đối dễ sử dụng và có thể sinh ra những kết quả tuyệt vời nếu được áp dụngmột cách đúng đắn. Một trong những phần phổ biến nhất cần được sinh mã là tầng truy xuấtdữ liệu. CodeSmith có một assembly đặc biệt với tên là SchemaExplorer, assembly này có thểđược sử dụng để sinh ra các template từ bảng, thủ tục tồn trữ, hay hầu như bất kỳ đối tượngSQL Server nào khác. CodeSmith được viết bởi Eric J. Smith và có thể được download (bản dùng thử) tại [http://www.ericjsmith.net/codesmith/download.aspx].A.4 Viết kiểm thử đơn vị với NUnitNUnit là bộ khung kiểm thử đơn vị được xây dựng cho .NET Framework, cho phép bạn viếtcác phương thức kiểm thử theo ngôn ngữ do bạn chọn để kiểm tra một hàm cụ thể của chương 682 Phụ lục A: Giới thiệu một số công cụ .NETtrình. Ứng dụng NUnit cung cấp một bộ khung để viết các kiểm thử đơn vị, cũng như mộtgiao diện đồ họa để chạy các kiểm thử đơn vị và xem kết quả.Ví dụ, chúng ta cần kiểm tra chức năng của lớp Hashtable trong .NET Framework để xác địnhhai đối tượng có thể được thêm vào và lấy ra hay không. Bước đầu tiên là tham chiếu đếnassembly NUnit.Framework để có thể truy xuất các thuộc tính và phương thức của bộ khungNUnit. Bước kế tiếp là tạo một lớp và đánh dấu nó với đặc tính [TestFixture] để NUnit biếtlớp này có chứa phương thức kiểm thử.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 phương thức và đánh dấu nó với đặc tính [Test] để NUnit biết đâylà phương thức kiểm thử. Trong phương thức này, chúng ta sẽ thiết lập một Hashtable và đưavào đó hai giá trị, sau đó sử dụng phương thức Assert.AreEqual để xem chúng ta có thể thulấy đúng các giá trị mà chúng ta đã đưa vào Hashtable hay không:[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 phương thức kiểm thử này, bạn cần tạo một dự án NUnit, mở assembly đã được sinhra bên trên và nhắp nút Run. Hình A-4 cho thấy kết quả. 683 Phụ lục A: Giới thiệu một số công cụ .NETTrên đây chỉ là một kiểm thử đơn giản, nhưng cho thấy khả năng của NUnit. Có rất nhiều kiểukiểm thử, cũng như nhiều phương thức Assert, có thể được sử dụng để kiểm thử mọi phầntrong mã lệnh của bạn.Một kiểm thử đơn vị có thể lưu và chạy lại mỗi khi bạn sửa đổi mã lệnh, điều này giúp bạnphát hiện lỗi dễ dàng hơn và đảm bảo phát triển ứng dụng tốt hơn. NUnit là một dự án mã nguồn mở và có thể được download tại [http://www.nunit.org]. Hình A-4 NUnitCũng có một bản add-in của NUnit cho Visual Studio .NET, add-in này cho phép bạn trực tiếpchạy các phương thức kiểm thử đơn vị từ Visual Studio .NET (có thể được download tại[http://sourceforge.net/projects/nunitaddin]).Để có thêm thông tin về NUnit và vị trí của nó trong việc phát triển test-driven (vận hành theokiểm thử), bạn hãy xem bài viết “Test-Driven C#: Improve the Design and Flexibility of YourProject with Extreme Programming Techniques” trong đĩa CD đính kèm.A.5 Kiểm soát mã lệnh với FxCop.NET Framework rất mạnh, có nghĩa khả năng tạo ra những ứng dụng tuyệt vời là rất cao,nhưng khả năng tạo ra những chương trình tồi cũng là rất cao. FxCop là một trong nhữngcông cụ có thể được sử dụng để trợ giúp tạo ra những ứng dụng tốt hơn bằng việc cho phépbạn khảo sát một assembly và kiểm tra tính tương thích của nó với một số quy luật. FxCopchứa tập các quy luật do Microsoft tạo ra, nhưng bạn cũng có thể tạo ra những quy luật chomình. Chẳng hạn, nếu muốn tất cả các lớp đều có một phương thức khởi dựng mặc địnhkhông đối số, bạn có thể viết một quy luật kiểm tra phương thức khởi dựng trên mỗi lớp củaassembly. Để có thêm thông tin về việc tạo những quy luật tùy biến, bạn hãy vào[http://msdn.microsoft.com/msdnmag/issues/04/06/bugslayer].Ví dụ, chúng ta hãy xem FxCop phát hiện ra lỗi gì trong assembly NUnitExample (đã đượctrình bày mục A.4). Trước tiên, bạn cần tạo một dự án FxCop và đưa assembly này vào. Sau 684 Phụ lục A: Giới thiệu một số công cụ .NETđó, bạn hãy nhấn Analyze, FxCop sẽ khảo sát assembly này và đưa ra các thông báo lỗi (xemhình A-5).FxCop nhận thấy một số vấn đề với assembly này. Bạn có thể nhắp đúp lên một lỗi để xemchi tiết, bao gồm lời mô tả quy luật và nơi mà bạn có thể tìm thấy nhiều thông tin hơn.FxCop có thể giúp bạn tạo mã lệnh tốt hơn, nhất quán hơn, nhưng nó không thể sửa chữa việcthiết kế tồi hay lập trình kém. FxCop cũng không phải là một sự thay thế cho việc kiểm tra mãlệnh (code review), nhưng vì nó có thể bắt nhiều lỗi trước khi kiểm tra mã lệnh nên bạn có thểdành nhiều thời gian cho các vấn đề hệ trọng hơn là phải lo lắng về các quy ước đặt tên. Hình A-5 FxCop đưa ra các thông báo khi khảo sát NUnitExample FxCop được phát triển bởi Microsoft và ...
Tìm kiếm theo từ khóa liên quan:
kinh nghiệm lập trình CSharp mẹo lập trình ngôn ngữ lập trình C giáo trình lập trình CSharp lập trình java lập trình căn bản CSharpGợi ý tài liệu liên quan:
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 210 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
101 trang 199 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
161 trang 129 1 0
-
142 trang 129 0 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 116 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 109 0 0 -
Excel add in development in c and c phần 9
0 trang 107 0 0 -
78 trang 101 0 0