2009-09-09 6 views
3

Est-ce que quelqu'un connaît une bonne ressource pour les bibliothèques open-source pour C# asynchrone (ou trucs natifs à la langue). Je suis intéressé par n'importe quoi sur ce sujet, mais je suis spécifiquement à la recherche de trucs concernant les appels HTTP et DB. Peut-être un cadre axé sur les événements avec des prises pour HTTP et DB?HTTP et DB asynchrone multiplateforme open-source avec C#

Veuillez ne pas utiliser une solution non-C# ou tout ce qui ne fonctionne pas en mode mono (à moins que vous ne projetiez de l'utiliser bientôt en mono).

+1

Malheureusement Windows Workflow (qui est l'essentiel de ce que vous demandez) est très loin d'être implémenté sous Mono: http://www.mono-project.com/Workflow, en pré-alpha. –

+0

Je ne suis pas sûr de ce que cela fait exactement. Je sais que C# supporte déjà les événements asynchrones, et je crois que vous pouvez obtenir une bibliothèque HTTP non bloquante qui fonctionne avec ... Que fait Workflow? Pourquoi en ai-je besoin? –

+0

Je pense que vous devez être plus précis sur ce que vous essayez de faire. Vous pouvez exécuter n'importe quoi async ou multithread en utilisant quelque chose d'aussi simple que des délégués, mais si vous avez besoin d'une messagerie, d'un workflow, d'une file d'attente ou d'autre chose ... cela dépend de vos besoins. Peut-être que certaines informations sur le problème que vous essayez de résoudre seraient utiles. –

Répondre

1

Pour HTTP, cela dépend si vous parlez du client ou du serveur. En supposant que client, vous pouvez simplement utiliser les * méthodes Async WebClient

http://www.go-mono.com/docs/index.aspx?link=T:System.Net.WebClient/ *

Pour DB, la sqlcommand (ou similaire) classe expose BeginExecute * méthodes pour appels asynchrones

http://www.go-mono.com/docs/index.aspx?link=T:System.Data.SqlClient.SqlCommand/ *

+0

J'ai choisi cela comme une réponse, mais viril pour fermer la question. J'ai trouvé le commentaire de Remus Rusanu le plus applicable pour déterminer la portée du projet même si le vôtre était plus utile si je devais utiliser C#. La ligne de fond est ce que je cherche est totalement couvert dans Workflow qui n'est pas encore stable sur mono. –

0

Vous devrez probablement utiliser un système de file d'attente. Il y a beaucoup de moteurs de files d'attente. MSMQueue est la solution Microsoft "standard".

0

Avez-vous regardé le système Linxter Internet Service Bus? Vous pouvez trouver quelques détails au http://www.linxter.com et quelques exemples d'applications qui montrent comment effectuer des transactions de base de données distribuées sur Internet.

0

La question est tout à fait générique, HTTP, DB et asynchrone pourrait signifier beaucoup de choses différentes, en fonction des besoins:

Sur codeplex vous pouvez trouver une implémentation serveur HTTP conforme plus de normes est l'événement conduit, compatible avec Mono et a été utilisé par d'autres avec succès.

Il y a un certain nombre de fournisseurs Asp.Net, ainsi que

Pour LINQ to SQL, votre meilleure option sera probablement utiliser DbLinq bien DbLinq est inclus dans l'espace de noms Mono.

0

Vous devriez probablement vérifier NServiceBus. S'il fonctionne en mono, il vous offre une bonne infrastructure pour les appels asynchrones (basés sur la messagerie). Il n'offre pas de connectivité DB ou HTTP par défaut, mais cela devrait être assez facile à intégrer.

Questions connexes