2010-09-27 20 views
9

Có bất kỳ khung hoặc mẫu tốt nào để phát triển các Dịch vụ Windows không? Tôi thường không viết các dịch vụ windows và hy vọng ai đó đã chia sẻ kiến ​​thức chuyên môn của họ thông qua một dự án api hoặc ví dụ.Windows Services Framework?

tôi đang làm việc trên một dự án với các yêu cầu sau:

    ** Một dịch vụ cửa sổ: **
  • Thực hiện 1..many độc lập dự kiến ​​nhiệm vụ
  • báo cáo về sự thành công hay thất bại của những công việc này qua email/log/sms/??
  • cho phép thêm/loại bỏ các nhiệm vụ
  • phép thay đổi của lịch

CẬP NHẬT

marc_s câu trả lời nhắc nhở tôi về this 2005 trực quan bài viết Magazine Studio bởi Luther Miller mà tôi đọc.

+0

Ngôn ngữ nào? C#? –

+0

C# được ưu tiên. Chắc chắn sẵn sàng xem xét các giải pháp không C#. –

+0

Ý nghĩa của khung công tác/khuôn mẫu là gì? Bạn muốn làm việc trong mã khác và chỉ sử dụng APi của họ? – jimplode

Trả lời

0

Khuôn khổ là .Net! :-) WCF cho giao tiếp và WF để thực hiện. Trong .Net 4 này đến với nhau như một WCF Workflow Service.

+0

Xin lỗi, nhưng Dịch vụ luồng công việc (WF + WCF) không giống với Windows Dịch vụ :-) WCF dành cho những thứ như Dịch vụ Web và thường được lưu trữ trong IIS. Windows Services là một thứ khác. Một ví dụ về khung dịch vụ Windows là [Topshelf] (https://github.com/Topshelf/Topshelf) –

+0

@ G.Lombard, xin lỗi, nhưng bạn là một chút của một duckhead –

+0

Bạn có thể đúng :-) Nhưng nó không thay đổi thực tế WCF và WF và Workflow Services không có gì để làm về câu hỏi ban đầu ([Windows Services] (http://msdn.microsoft.com/en-us/library/y817hyb6 (v = vs.110) .aspx)), hay bạn không đồng ý? –

1

Nếu đó là loại lịch trình mà bạn đang tìm kiếm, thì bạn có thể muốn xem Quartz.net. Đây là một hệ thống lập lịch biểu công việc nguồn mở. Nó sẽ dễ dàng hơn để sử dụng một công cụ hiện có hơn là viết lại một từ đầu (trừ khi nó là dành cho mục đích học tập).

4

Tôi biết đây là một câu hỏi cũ, nhưng đối với người thường xuyên Googler đến đây, như tôi có:

Topshelf là một khung công tác dịch vụ Windows tốt đẹp.

Tạo Dịch vụ Windows bằng Mẫu Dịch vụ Windows tiêu chuẩn trong Visual Studio đủ đơn giản, bạn không thực sự cần bất kỳ khung đặc biệt nào. Tuy nhiên, trong VS Express bạn có thể không có mẫu winservice và sau đó Topshelf làm cho nó khá dễ dàng bằng cách sử dụng Windows -> Console Application project template.

Không có khuôn khổ duy nhất mà sẽ cung cấp tất cả các yêu cầu nêu trong câu hỏi ban đầu, nhưng đây là một số gợi ý:

  • nhiều nhiệm vụ lên kế hoạch một cách độc lập
  • cho phép thêm/loại bỏ các nhiệm vụ
  • cho phép thay đổi lịch biểu

You'r e có lẽ khá nhiều trên của riêng bạn ở đây, nhưng nó dễ dàng, đủ để thực hiện với bộ đếm thời gian (s) và cấu hình đơn giản trong App.config của bạn. Hoặc, nếu bạn muốn được ưa thích, sử dụng tiêm phụ thuộc hoặc một cơ chế plugin, có thể sử dụng MEF.

  • báo cáo về sự thành công hay thất bại của các tác vụ này qua email/log/sms/??

Nhìn vào log4net hoặc NLog. Topshelf có hỗ trợ cho cả hai.

(Có sử dụng Windows Workflow Foundation (WF), tôi không bị thuyết phục bởi các câu trả lời liên quan đến WF cho câu hỏi này Tôi sẽ đánh giá cao nếu có ai có thể cung cấp tài liệu tham khảo cho các ứng dụng mẫu có uy tín. có thể giải quyết bất kỳ yêu cầu nào trong các yêu cầu này trong câu hỏi ban đầu.)

+1

Đây là câu trả lời thích hợp nhất cho câu hỏi ban đầu - như bạn đã nói, TopShelf (https://topshelf.readthedocs.org/en/latest/index.html) trông tuyệt vời và kết hợp với Quartz.NET + NLog sẽ khá nhiều bao gồm tất cả các căn cứ. – dotnetguy

Các vấn đề liên quan