Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#27

AW: Was ist eure Meinung zu MS .Net

  Alt 9. Dez 2012, 16:02
Was ich noch nicht ganz einordnen kann, ist Prism bzw. Oxygene.
Hat wer Erfahrungen damit oder ist man bei Net so dicht an C#, das man dieses besser gleich nutzt?
Was mich interessiert ist die Möglichkeit für net und Java VM zu kompilieren.
Gibt es eigentlich ein brauchbares Tool um eine VCL Form (.dfm) in Winforms zu konvertieren?
Oxygene ist Sprachlich viel weiter als C#.

Was bei C# erst mit .NET 4 dazu kam, sind z.B. Class Contracts. Die sind schon seit der ersten Version von Oxygene (hiess damals noch Chrome) drin gewesen und dort zudem deutlich eleganter umgesetzt. In .NET wurden hier ungeschickte Krücken gebaut.

Alles was Aspektorientierte Programmierung (AOP) betrifft, muss in C# mit extra Tools gemacht werden, die nach der eigentlichen Kompilierung nochmal über die eigentlich schon fertigen Assemblies laufen müssen (z.B. PostSharp). Bei Java genauso. Oxygene hat mit Cirrus AOP direkt im Compiler eingebaut und kann das in einem Schritt machen. Zudem bietet Cirrus nicht nur reine AOP, sondern zudem auch eine Plugin-Schnittstelle in den Compiler. Damit lässt sich zur Compilezeit code ausführen und auch Code generieren, der am Schluss im Programm landet.

Es gibt noch mehr Besonderheiten: Dadurch, dass mit Java und Cocoa zusätzliche Plattformen als Ziele für Oxygene nativ unterstützt werden, fliessen von dort natürlich einzelne Features in die Sprache, die plötzlich überall zur Verfügung stehen. Ein kleines Beispiel: Da Java keine Events und Delegaten kann, wie man sie als Delphianer oder .NETler versteht, sondern alles über Interfaces realisiert, kennt Java das Konzept von Inline Interfaces. Diese stehen damit auch in .NET und Cocoa zur Verfügung.

Alles in allem ist Oxygene also deutlich fortgeschrittener, aber natürlich derzeit eine sehr kleine Nische. Man bekommt auf dem freien Markt defakto keine Oxygene-Entwickler, das heisst die Teamaufstpckung gestaltet sich schwierig. Wobei man dazu sagen muss, dass man einen .NET'ler / Java / Cocoa-Entwickler nur auf eine andere Synatx (Object-Pascal) hieven und ein paar Specialties zu den Sprachfeatures erläutern muss. Das Wissen um die jeweilige Plattform und die verwendeten Bibliotheken (z.B. Hibernate bei Java, Entity Framework bei .NET, Core Data bei Cocoa) lassen sich ja durch die jeweils native Plattformunterstützung 1:1 weiter anwenden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat