2011-12-15 8 views
14

Tôi thực sự thích những gì tôi đã thấy về MvcMiniProfiler. Tôi rất thích sử dụng các tính năng giám sát SQL trên các ứng dụng không phải web (các dịch vụ cửa sổ, các bài kiểm tra đơn vị, v.v.). Điều này có thể thực hiện được hay không yêu cầu một môi trường HTTP? Sự khác biệt rõ ràng sẽ là kết quả phân phối, nhưng nếu tôi có thể tuần tự hóa kết quả thành JSON hoặc somesuch, điều đó sẽ ổn thôi.Liệu MvcMiniProfiler có yêu cầu một ứng dụng web để làm việc hay nó có thể được sử dụng trong các thư viện thuần túy, chẳng hạn như trong các thử nghiệm đơn vị?

Tôi đã cùng nhau thử nghiệm một đơn vị cố gắng để làm cho nó hoạt động, nhưng MiniProfiler.Current dường như luôn luôn là null, ngay cả sau khi thực hiện MiniProfiler.Start().

Tôi có treo cây sai ở đây không?

Trả lời

12

Câu hỏi hay. lõi (phiên bản profiler và trình bao bọc kết nối) không được gắn với http. Nếu bạn có thể tạo cá thể của riêng mình, tất cả nó sẽ hoạt động. Tuy nhiên, tất cả các mã giao diện người dùng được hướng xung quanh các ứng dụng web.

Tôi biết những người sử dụng nó trong WPF, winforms, v.v. - vì vậy nó sẽ hoạt động tốt. Tuy nhiên, bạn cũng sẽ cần phải tìm ra một "đơn vị điều hợp lý để tôi đo". Trong một ứng dụng web, điều hiển nhiên là: một yêu cầu. Lưu ý rằng MiniProfiler.Current hoàn toàn là một tiện lợi (bạn có thể đặt một thể hiện ở bất kỳ đâu), nhưng tôi khá chắc chắn chúng tôi đã tạo ra khả năng trừu tượng của riêng bạn (chứ không phải là ngữ cảnh http).

(đi vào kiểm tra mã)

ah vâng, ở đây chúng tôi đi:

public static MiniProfiler Current 
{ 
    get 
    { 
    MiniProfiler.Settings.EnsureProfilerProvider(); 
    return MiniProfiler.Settings.ProfilerProvider.GetCurrentProfiler(); 
    } 
} 

vì vậy bạn có thể cung cấp riêng của bạn và sau đó ProfileProvider.Current nên làm việc.

+0

Tuyệt vời nhất. Tôi thấy bây giờ nó không phải là cho đến khi WebRequestProfilerProvider mà chúng ta thấy một tham chiếu đến bối cảnh HTTP, và đó là bên dưới một số trừu tượng cha mẹ mà không thực hiện bất kỳ giả định HTTP. Cảm ơn! – CoolUserName