2 Stimmen

Kann Silverlight mit einer statischen C++-Bibliothek verknüpft werden?

Ich recherchiere derzeit für ein neues Projekt. Dieses Projekt wird aus 2 Teilen bestehen, einem Light Client (wahrscheinlich Konsole) und einem Heavy Client mit Silverlight. Der leichte Client muss plattformübergreifend sein.

Sie werden jedoch beide denselben Kern verwenden (der Kern muss übrigens die Sockel verwenden).

Ich möchte C++ verwenden, um den Light-Client zu erstellen, aber da der Kern für beide Anwendungen gleich ist, wäre es sehr zu begrüßen, wenn es der gleiche Code sein könnte.

Die Frage ist also ganz einfach: Kann Silverlight mit einer statischen C++-Bibliothek kompiliert werden? Und wenn es möglich ist, wie sieht es mit plattformübergreifenden Problemen (mit Moonlight) aus?

Wenn das nicht möglich ist. Welche Sprache kann ich verwenden, um mit Silverlight zu arbeiten und gleichzeitig plattformübergreifend zu sein? Wegen der Leistung wird eine kompilierte Sprache besser sein!

Vielen Dank für Ihr Fachwissen :)

3voto

Jason Jackson Punkte 16792

Nein.

Silverlight ist nicht nur ausschließlich verwalteter Code, sondern no die Standard-CRL verwenden, sondern eine spezielle CRL, die als CoreCLR . Silverlight-Assemblies sind real .Net-Assemblies, sondern werden gegen eine begrenzte Teilmenge der Core .Net-Bibliotheken kompiliert. Bei der Ausführung im CoreCLR (in Ihrem Browser) sind Silverlight-Assemblies aus Sicherheitsgründen in mehrfacher Hinsicht eingeschränkt. Sie können Silverlight-Assemblies nicht einmal mit C++ schreiben, und kein Silverlight-Code kann als unsicher markiert werden (ich gebe zu, dass es vielleicht einen Hack gibt, der diese Einschränkung umgeht).

Diese Antwort gilt nur für Silverlight 2 und 3, und obwohl ich nicht viel Erfahrung mit Silverlight 4 habe, ist mir nichts bekannt, was Ihnen diese Fähigkeit browserübergreifend mit SL4 bietet.

Ich glaube, Sie werden enttäuscht sein, wenn Sie sich auf Moonlight für die Linux-Kompatibilität verlassen. Mein Team hat sich für Silverlight entschieden, da es unter Firefox, IE und bald auch Chrome und inoffiziell Opera unter Windows sowie Firefox und Safari auf dem Mac läuft.

Edit: Beachten Sie das Datum des Autors dieses Beitrags, dies ist vor SL4.

2voto

Reed Copsey Punkte 536986

Nein. Silverlight ist nur verwalteter Code.

Silverlight 4 wird jedoch COM-Interop unterstützen, wenn es mit erhöhten Rechten außerhalb des Browsers ausgeführt wird. Dies wird nicht auf anderen Plattformen funktionieren - es ist eine Funktion nur für Windows. Justin Angel erwähnte dies in seinem Blogbeitrag über die (nicht ganz) plattformübergreifende Nutzung von Silverlight .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X