2010-09-27 3 views
9

Existe-t-il de bons cadres ou modèles pour développer des services Windows? Je n'écris généralement pas les services Windows et j'espère que quelqu'un a partagé son expertise via un projet d'api ou d'exemple.Windows Services Framework?

Je travaille sur un projet avec les exigences suivantes:

    ** Un service de fenêtres: **
  • effectue 1..many indépendamment des tâches planifiées
  • rapports sur le succès ou l'échec de ces tâches par email/log/sms/??
  • permet d'ajouter/suppression des tâches
  • permet de modifier des horaires

MISE À JOUR

réponse marc_s m'a rappelé this 2005 article Visual Studio Magazine par Luther Miller que je lis.

+0

Quelle langue? C#? –

+0

C# est préféré. Certainement prêt à regarder des solutions non C# aussi. –

+0

Qu'entendez-vous par cadre/modèle? Vous voulez travailler avec d'autres codes et utiliser leur APi? – jimplode

Répondre

0

Le cadre est .Net! :-) WCF pour la communication et WF pour la mise en œuvre. Dans .Net 4, ils sont regroupés en un service de flux de travail WCF.

+0

Désolé, mais les services de workflow (WF + WCF) ne sont pas la même chose que Windows Services :-) WCF est pour des choses comme les services Web, et est généralement hébergé dans IIS. Les services Windows sont quelque chose d'autre. Un exemple d'un cadre de service Windows est [Topshelf] (https://github.com/Topshelf/Topshelf) –

+0

@ G.Lombard, désolé, mais vous êtes un peu un canard –

+0

Vous avez peut-être raison :-) Mais il ne change pas le fait que WCF et WF et Workflow Services n'ont rien à faire à propos de la question initiale ([Windows Services] (http://msdn.microsoft.com/fr-fr/library/y817hyb6 (v = vs.110) .aspx)), ou êtes-vous en désaccord? –

1

Si c'est un type de planificateur que vous cherchez, alors vous pouvez regarder Quartz.net. Ceci est un système de planification de travail open source. Il serait plus facile d'utiliser un outil existant plutôt que d'en réécrire un à partir de rien (à moins que ce soit à des fins académiques).

4

Je sais que c'est une vieille question, mais pour les occasionnels Googler venir à travers cela, comme je l'ai:

Topshelf est un cadre de services Windows agréable.

La création de services Windows à l'aide du modèle de service Windows standard dans Visual Studio est assez simple, vous n'avez vraiment besoin d'aucune infrastructure particulière. Cependant, dans VS Express, vous n'avez peut-être pas le modèle winservice et ensuite Topshelf le rend très facile en utilisant le modèle de projet Windows -> Console Application.

Il n'y a pas de cadre unique qui fournira toutes les exigences énumérées dans la question initiale, mais voici quelques suggestions:

  • de nombreuses tâches indépendamment programmées
  • permet d'ajouter/suppression des tâches
  • permet de modifier des horaires

You'r Vous êtes probablement assez seul ici, mais il est assez facile de le faire avec un (des) timer (s) et une configuration simple dans votre App.config. Ou, si vous voulez être chic, en utilisant l'injection de dépendance ou un mécanisme de plugin, peut-être en utilisant MEF.

  • rapports sur le succès ou l'échec de ces tâches par courrier électronique/log/sms/??

Examinez log4net ou NLog. Topshelf a un support pour les deux. (Après avoir utilisé Windows Workflow Foundation (WF), je ne suis pas convaincu du tout par les réponses WF à cette question.J'apprécierais si quelqu'un est en mesure de fournir des références à des exemples d'applications de bonne réputation qui montrent comment WF pourrait éventuellement répondre à l'une de ces exigences dans la question initiale.)

+1

Ceci est la réponse la plus appropriée à la question initiale - comme vous l'avez dit, TopShelf (https://topshelf.readthedocs.org/en/latest/index.html) semble génial et que combiné avec Quartz.NET + NLog serait à peu près toutes les bases. – dotnetguy