HTTP e DB asicroni open source multipiattaforma con C #
-
05-07-2019 - |
Domanda
Qualcuno conosce una buona risorsa per le librerie open source per C # asincrono (o roba nativa nella lingua). Sono interessato a qualsiasi cosa su questo argomento, ma sto specificatamente cercando cose relative alle chiamate HTTP e DB. Forse un framework basato sugli eventi con plug-in per HTTP e DB?
Non entrare in contatto con una soluzione non C # o qualsiasi cosa che non funziona su mono (a meno che non sia pianificato per essere eseguito su mono presto).
Soluzione
Per HTTP, dipende dal fatto che tu stia parlando di client o server. Supponendo che client, potresti semplicemente usare i metodi * Async in WebClient
http: // www. go-mono.com/docs/index.aspx?link=T:System.Net.WebClient/ *
Per DB, la classe sqlcommand (o simile) espone i metodi BeginExecute * per le chiamate asincrone
http: // www.go-mono.com/docs/index.aspx?link=T:System.Data.SqlClient.SqlCommand/ *
Altri suggerimenti
Probabilmente dovresti usare un qualche tipo di sistema di coda. Esistono molti motori di coda. MSMQueue è lo "standard" Soluzione Microsoft.
Hai guardato il sistema Linxter Internet Service Bus? Puoi trovare alcuni dettagli su http://www.linxter.com e alcune app di esempio che mostrano come eseguire transazioni di database distribuite su Internet.
La domanda è piuttosto generica, sia HTTP, DB che asincroni potrebbero significare molte cose diverse, a seconda dei requisiti:
Su codeplex è possibile trovare un'implementazione del server HTTP più conforme agli standard guidata dagli eventi, compatibile con Mono ed è stato usato da altri con successo.
Esistono numerosi provider Asp.Net, nonché NHibernate
Per Linq to Sql, l'opzione migliore sarà probabilmente quella di utilizzare DbLinq sebbene DbLinq sia incluso in lo spazio dei nomi Mono.
Probabilmente dovresti controllare NServiceBus . Se funziona su mono offre un buon framework per chiamate asincrone (basato sulla messaggistica). Non offre connettività DB o HTTP per impostazione predefinita, ma dovrebbe essere abbastanza facile da integrare.