views:

167

answers:

5

Does anyone know of a good resource for open-source libraries for asynchronous C# (or native stuff to the language). I'm interested in anything on this topic, but I'm specifically looking for stuff pertaining to HTTP and DB calls. Maybe an event-driven framework with plugs for HTTP and DB?

Please do not buzz in with a non-C# solution or anything that does not work on mono (unless it is planned to run on mono soon).

A: 

You would probably have to use some kind of queue system. There are lots of queue engines. MSMQueue is the "standard" Microsoft solution.

ryber
A: 

Have you looked at the Linxter Internet Service Bus system? You can find some details at http://www.linxter.com and some sample apps that show how to perform database transactions distributed over the Internet.

Mark Ewer
A: 

The question is quite generic, both HTTP, DB and asynchronous could mean a lot of different things, depending on the requirements:

On codeplex you can find a more standards compliant HTTP server implementation which is event driven, compatible with Mono and has been used by others successfully.

There are a number of Asp.Net providers, as well as NHibernate

For Linq to Sql, your best option will probably be to use DbLinq although DbLinq is being included in the Mono namespace.

Anton
A: 

You probably should check NServiceBus. If it runs on mono it offers you a good framework for asynchronous calls (based on messaging). It doesn't offer DB or HTTP connectivity by default, but this should be fairly easy to integrate.

Dominik Fretz
+1  A: 

For HTTP, it kinda depends on whether you're talking about client or server. Assuming client, you could just use the *Async methods in WebClient

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

For DB, the sqlcommand (or similar) class exposes BeginExecute* methods for async calls

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

James Manning
I've chosen this as an answer, but manly to close the question. I found Remus Rusanu's comment the most applicable for scoping out the project even if yours was more useful if I had to use C#. The bottom line is what I'm seeking is totally covered in Workflow which isn't yet stable on mono.
Evan Carroll