Autor Beitrag
Ares
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128



BeitragVerfasst: Di 23.11.10 12:34 
Hallo!

Ich arbeite gerade an einem kleinen Buchhaltungsprogramm. Das Ganze soll später mal unter Windows und auch MacOS verwendet werden können. Da es .NET für den Mac (noch?) nicht gibt, muss ich mir dort etwas anderes überlegen.

Das Programm wird zwar nicht allzu komplex, dennoch wäre es auf Dauer keine Lösung zweimal den gleichen Code zu pflegen. Ich habe mir daher überlegt GUI und Logik des Programms strikt von einander zu trennen. Die GUI kann ich dann unter Windows mit WinForms oder WPF und unter MacOS mit Cocoa erstellen. Die Logik entwickle ich hingegen nur einmal und muss dann "nur" die jeweilige GUI an diese "ankoppeln".

Unter Windows wäre es ja kein Problem die Logik in eine DLL auszulagern und auf diese aus einem Programm heraus zuzugreifen. MacOS verwendet auch Bibliotheken die ähnlich zu DLLs sind. Diese haben dort soweit ich weiß z.B. die Endungen .dylib.

Ich habe noch keine genaueren Informationen dazu gefunden, aber ich vermute stark, dass eine Windows DLL nicht einfach in .dylib umbenannt und unter MacOS verwendet werden kann. Vielmehr wird es wohl so sein, dass der Quelltext mit einem Windows-Compiler zu einer DLL und mit einem Mac-Compiler zu einer DyLIB übersetzt werden kann. Korrekt?

Damit wären wir bei dem Problem, dass es für den Mac kein .NET und somit sicherlich auch keinen C# Compiler gibt. Ist es also möglich auf Basis von C# eine Bibliothek zu schreiben die zu einer DLL und einer DyLIB compiliert wird? Dafür müssten ja zwei Dinge möglich sein:
1. Mit C# Code schreiben, der von .NET unabhängig ist. Keine Ahnung ob das möglich ist. Für Buchhaltungsfunktion wie Mittelwertberechnung, etc. brauche ich theoretisch kein .NET Framework, aber ist so eine Trennung möglich?
2. Ein Mac Compiler der das ganze übersetzt.

Geht das?

Oder führt in diesem Fall kein Weg an C/C++ vorbei? Hierfür gibt es ja Compiler für Windows und den Mac, weshalb das Vorhaben hiermit möglich sein sollte, oder?


Wie man sieht stehe ich noch am Anfang der Planung und muss noch einige Grundlagen klären. Jede Hilfe und jeder Tipp ist daher sehr willkommen!
Vielen Dank für eure Meinung zu diesem Thema!

Besten Dank
Ares
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 23.11.10 14:07 
Hallo!

Du kannst auf dem Mac das Mono-Framework benutzen. Das ist ein Implementierung von .NET für Windows, Linux und Mac und ist kompatibel mit dem .NET-Framework (bis zu welcher Version weiß ich gerade nicht, aber höher als 2.0 war es schon), sodass Du Deine .NET-Assemblies dort problemlos benutzen kannst. Ein C#-Kompiler ist auch dabei, falls Du doch mal auf dem Mac kompilieren möchtest.

Welches GUI-Framework da gerade die bevorzugte Wahl ist, weiß ich nicht, dafür kenne ich mich mit Mac zu wenig aus.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 23.11.10 20:17 
Die bisherigen Cocoa-Binding von Mono waren afaik nicht ganz das Gelbe vom Ei, aber mit dem von MonoTouch inspirierten MonoMac soll sich das eindeutig zum Positiven gewandelt haben :) .

PS: Silverlight war keine Option?

_________________
>λ=