Thứ Ba, 25 tháng 9, 2012

Sử dụng ELMAH và MiniProfiler với ASP.NET MVC 4

Nếu bạn mới tập làm quen với ASP.NET MVC, bạn có thể chưa biết về ELMAH và MiniProfiler. Đây là hai dự án mã nguồn mở mà bạn có thể cài đặt dễ dàng với NuGet, và cả hai đều nhằm giúp lập trình viên có thể gỡ rối và chuẩn đoán lỗi của ứng dụng. Bài viết này nhằm giới thiệu sơ lược về hai phần mềm này.

ELMAH

<ELMAH là thư viện giúp log (ghi lại) tất cả các lỗi đã xảy ra với ứng dụng. Bạn có thể log và xem tất cả các lỗi mà không cần phải thay đổi bất kỳ dòng code nào. Tất cả bạn cần phải là đó là gọi câu lệnh "install-package" ở ứng dụng Package Manager Console của Visual Studio và ELMAH sẽ được dự án tham chiếu và được cấu hình để hoạt động. Bạn chỉ cần điều hướng đến địa chỉ /elmah.axd trong ứng dụng của bạn, và bạn sẽ thấy tất cả các lỗi (tuy nhiên, bạn chỉ thấy danh sách lỗi nếu đó là các request cục bộ, vì elmah đã được cấu hình mặc định như vậy).

imagetitle


ELMAH giữ tất cả các lỗi trong bộ nhớ, do đó, nếu ứng dụng bị khởi động lại, tập tin log sẽ bị xóa. Nếu bạn mong muốn thông tin log vẫn được lưu lại, bạn có thể cấu hình ELMAH để lưu thông tin log vào một nơi có thời gian sống lâu hơn, ví dụ như trong một database. Bạn có thể cấu hình cho elmah để lưu log lỗi trong database của SQL Compact hoặc SQL Server, hay thậm chí với MongoDB, và hơn thế nữa.

ELMAH và HandleErrorAttribute

Với các dự án ASP.NET MVC, banh nên cài đặt gói elmah.mvc trên NuGet. Khi đó elmah.mvc sẽ tạo ElmahController cho dự nên bạn có thể truy xuất vào địa chỉ /elmah. Quan trọng hơn, elmah.mvc sẽ cài đặt một action filter để log các lỗi cho dù chúng bị đánh dấu là "handled" (đã được quản lý) bởi HandleErrorAttribute. Nếu bạn chỉ cài elmah, các lỗi này sẽ bị bỏ qua, nhưng với elmah.mvc thì tất cả sẽ được log lại.

MiniProfiler

<MiniProfiler là một công cụ giúp tìm các vấn đề về tốc độ thực thi và hiện tượng thắt cổ chai một cách đơn giản và dễ dàng. Để bắt đầu với MiniProfiler, bạn có thể cài đặt gói MiniProfiler.MVC3 trên NuGet (gói này cũng hoạt động được trên ASP.NET MVC 4). Sauk hi cài đặt xong, thêm một dòng mã lệnh ở các template _Layout ngay trước thẻ </body>:

@StackExchange.Profiling.MiniProfiler.RenderIncludes()  

Ngoài ra bạn cần một handler để giúp MiniProfiler có thể lấy về các tập tin script mà nó cần, bạn thêm cấu hình như sau vào tập tin web.config tại thư mục gốc của dự án:

<system.webServer>   ...   <handlers>     <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*"           type="System.Web.Routing.UrlRoutingModule"          resourceType="Unspecified"           preCondition="integratedMode" />   </handlers> </system.webServer> 

Một khi mọi thứ đã sẵn sàng, bạn sẽ thấy kết quả mà MiniProfiler sẽ cung cấp trên góc trên trái của cửa sổ trình duyệt (theo cấu hình mặc định thì thông tin này chỉ xuất hiện ở các request cục bộ). Bạn click vào "time measurement" để xem chi tiết:

imagetitle

Dựa vào MiniProfiler, bạn có thể biết là action mất bao nhiêu thời gian để được thực thi và views mất bao nhiêu thời gian để được tạo ra từ view template, và MiniProfile cũng cung cấp API để nếu bạn cần thông số của một số mã lệnh cụ thế nào đó. Khi MiniProfiler được cài, nó cũng sẽ thêm vào tập tin MiniProfiler.cs trong thư mục App_Start. Tập tin này chứa phần lớn các cấu hình của MiniProfiler, và do đó bạn sẽ dễ dàng cấu hình tùy thuộc vào trạng thái đăng nhập, và lưu thông thin profiling vào database nếu muốn.

Đây là hai dự án đáng để cho bạn quan tâm và sử dụng nếu bạn là lập trình viên ASP.NET.

Không có nhận xét nào:

Liên kết quảng cáo :