2008-12-14 10 views
3

Nous essayons de trouver notre standard client et serveur et il y a un grand débat. Une école de pensée est C# client et les serveurs Java utilisant un certain type de bibliothèque de messsage propriétaire pour partager des objets de données (pensez structure XML comme.)Mono - code de partage sur le client et le serveur. .

Le problème avec ce modèle est qu'il y a beaucoup de code qui doit être dupliqué (validation, parsing) qui pourrait simplement être réutilisé si vous alliez avec C# sur le serveur aussi. S'il y a un gros effort pour utiliser la machine Linux, cela ne suffirait pas à soutenir votre objectif. .

quelqu'un d'autre a ce dilemme?

Répondre

4

Il existe des cadres pour cela. Par exemple, l'implémentation de mes tampons de protocole (protobuf-net) fonctionne sur mono, MS .NET, CF, Silverlight etc. - et le format binaire est compatible avec un gamme de langues (Java, etc.). Si vous démarrez à partir d'un .proto (un langage de définition sur mesure), vous pouvez l'utiliser pour générer la couche d'objet dans chaque langue dont vous avez besoin.

+0

+1 pour l'utilisation du mot sur mesure –

0

Je voudrais essayer de garder le client et le serveur le même temps d'exécution (Java ou CLR). Nous avons eu beaucoup de succès en utilisant un mélange de client/serveur Mono et .Net.

1

Dans tous les cas j'utiliserais des tampons de protocole ou quelque chose d'autre défini dans un langage neutre pour les communications, pour m'assurer que vous ne serez pas restreint dans le futur.

Une fois que vous avez fait cela, vous pouvez commencer avec C# sur Mono. Et si cela s'avère impossible, vous pouvez changer de langue.

1

Je suggère que vous utilisiez un vieux mais bon standard pour le transfert de données entre les deux, SOAP et XML-RPC me viennent en tête comme exemples. Si l'une ou l'autre est possible ou réalisable, vous pouvez essayer JSON ou écrire votre propre format XML. Les tampons de protocole ont été mentionnés beaucoup récemment mais je n'ai pas examiné la question, donc je ne peux rien dire à ce sujet.

Questions connexes