2010-03-24 6 views
2

Je suis actuellement en train de faire des recherches pour démarrer un nouveau projet. Ce projet sera en 2 parties un léger client (probablement console) et un lourd en utilisant silverlight. Le client léger doit être multi-plateforme.Silverlight peut-il être lié à une bibliothèque statique C++?

Cependant, ils utiliseront tous deux le même Core (en passant, le noyau devra utiliser les sockets). Je voudrais utiliser C++ pour construire le client léger mais étant donné que le noyau est commun aux deux applications, il serait très apprécié que ce soit le même code. Par conséquent, la question est assez simple: Silverlight peut-il être compilé avec une bibliothèque statique C++? Et si c'est possible, qu'en est-il des problèmes multi-plateformes (avec clair de lune)?

Si ce n'est pas possible. Quelle langue puis-je utiliser pour travailler avec Silverlight tout en étant multi-plateforme? A cause de la performance, un langage compilé sera meilleur!

Merci pour votre expertise :)

+1

C'est un mélange étrange d'une application de console multi-plateforme légère et une application Silverlight, pouvez-vous expliquer un peu plus? Comme vous pouvez le voir à partir des réponses déjà C++ dans SL est un non-go. – AnthonyWJones

Répondre

3

No.

Non seulement Silverlight que le code managé, il ne pas utiliser la norme CRL, mais une liste de révocation spéciale connue sous le nom CoreCLR. Les assemblages Silverlight sont réels assemblages .Net, mais sont compilés contre un sous-ensemble limité des bibliothèques .Net de base. Lors de l'exécution dans le CoreCLR (dans votre navigateur), les assemblys Silverlight sont limités de plusieurs manières pour des raisons de sécurité. Vous ne pouvez même pas écrire des assemblys Silverlight en C++, et aucun code Silverlight ne peut être marqué comme dangereux (j'avoue qu'il y a peut-être un moyen de contourner cette limitation).

Cette réponse ne s'applique qu'à Silverlight 2 & 3, et même si je n'ai pas beaucoup d'expérience avec Silverlight 4, je ne suis pas au courant de quoi que ce soit qui vous offre cette fonctionnalité cross-browser avec SL4.

Je pense que vous allez être déçu si vous comptez sur la compatibilité Moonlight pour Linux. Mon équipe a choisi Silverlight car il fonctionne sur Firefox, IE, et bientôt Chrome et officieusement Opera sur Windows, et Firefox et Safari sur Mac.

Editer: Note Auteur Date de ce message, ceci est pré-SL4.

+0

Ce n'est pas correct pour> = SL 4. Vous pouvez P/Invoke avec un privilège élevé OOB app. – xanadont

+0

Je n'étais pas exactement correct non plus. SL 5 vous donne un accès P/Invoke sur une application privilégiée élevée (elle ne nécessite pas d'installation OOB). – xanadont

2

Non Silverlight est un code géré uniquement. Toutefois, Silverlight 4 prend en charge l'interopérabilité COM, lorsqu'il est exécuté avec des autorisations élevées en dehors du navigateur. Cela ne fonctionnera pas sur d'autres plates-formes - c'est une fonctionnalité de Windows uniquement. Justin Angel a mentionné ceci dans son blog post regarding the (not quite) cross-platform of Silverlight.

+0

Il existe des moyens de "forcer" la cohabitation entre C# géré et non géré C++! Mais merci pour l'article de blog je vais regarder dans :) –

Questions connexes