20 Stimmen

Bewährte Praktiken für portables C#

Ich bin auf der Suche nach einigen C#-Code für Linux/Windows/Mac/jede andere Plattform zu schreiben, und bin für Best Practices für portablen Code suchen.

Projekt . hat einige großartige Portierung Ressourcen.

Was sind die besten Praktiken für portables C#?

3voto

Ubiguchi Punkte 3056

Vor ein paar Jahren hätte ich Ihnen noch geraten, sich ein Exemplar meiner Buch über plattformübergreifendes .NET, aber da das Buch inzwischen etwas veraltet ist, müssen Sie sich wirklich an die Informationen auf der Mono-Website halten.

El Mono-Migrations-Analysator (MoMA) Tool ist ziemlich gut, um eine bestehende .NET-Anwendung zu analysieren und Sie vor Portabilitätsproblemen zu warnen, aber für neuen Code ist es am besten, die neueste stabile Version von Mono für Ihre Entwicklungsarbeit zu verwenden.

Wie Orion sagte, müssen Sie vorsichtig sein, wenn Sie DLLs von Drittanbietern verwenden, obwohl mein Co-Autor eine NativeProbe Tool zur Analyse von DLLs auf P/Invoke-Abhängigkeiten, wenn Sie Software von Drittanbietern schnell überprüfen möchten.

Wenn Sie entschlossen sind, auf MS.NET zu entwickeln, dann sollten Sie versuchen sicherzustellen, dass Sie auch auf Mono bauen und testen, und Sie sollten auch auf eine Reihe von Windows-spezifischen Namespaces achten, wie z.B. die Microsoft.Win32 und System.Management Namespaces.

1voto

Eric Z Beard Punkte 36325

Wenn Sie möchten, dass der Code portabel ist, müssen Sie sich die Liste der abgeschlossenen Funktionen auf der Mono-Website genau ansehen. Dort werden die einzelnen Klassen des Frameworks und der Grad der Vollständigkeit genau beschrieben. Sie müssen diese Dinge während des Entwurfsprozesses berücksichtigen, damit Sie nicht zu weit gehen und feststellen, dass eine wichtige Funktion noch nicht implementiert wurde.

1voto

Cory Foy Punkte 7112

Es gibt noch einige andere einfache Dinge. Zum Beispiel sollte man keine Pfadzeichen annehmen. Oder Zeilenumbrüche .

Ich bin einer der Leute, die regelmäßig NUnit auf Mono unter Linux oder OSX kompilieren.

Gehen Sie auch nicht davon aus, dass die Compiler genau gleich funktionieren. Wir haben vor kurzem ein Problem gefunden, bei dem der MS C#-Compiler anscheinend Dinge einbezieht, die der Mono-Compiler nicht einbezieht, was zusätzliche Referenzen in unserem Build-Skript erfordert.

Abgesehen davon war es ziemlich unkompliziert. Ich erinnere mich an das erste Mal, als wir die GUI läuft unter Mono/Linux - es war ziemlich aufregend (auch wenn es war ziemlich hässlich)

1voto

Jacksonh Punkte 377

Ein Element fehlt: Stellen Sie sicher, dass bei den Dateinamen zwischen Groß- und Kleinschreibung unterschieden wird. File.Open ("MyFile.txt"); wird unter Unix nicht funktionieren, wenn Ihre Datei myfile.txt heißt.

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