Cross-platform open-source asychronous HTTP and DB with C#
-
05-07-2019 - |
Question
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).
Solution
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:System.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:System.Data.SqlClient.SqlCommand/*
OTHER TIPS
You would probably have to use some kind of queue system. There are lots of queue engines. MSMQueue is the "standard" Microsoft solution.
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.
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.
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.