![]() |
Delphi.NET Plattformunabhängig?
Durch die vielen .NET-Threads in letzter Zeit hab ich sehr viel über .NET gehört. .NET soll ja z.B. plattformunabhängig sein. Wenn ich es richtig verstanden hab, war Delphi bisher nur plattformspezifisch, weil es auf die WinAPI aufgebaut hat. Jetzt würde mich aber interessieren, ob Delphi.NET nun auch plattformunabhängig ist (bzw. wird, sobald der winAPI-Teil vollkommen abgeschafft wurde). :gruebel:
|
Re: Delphi.NET Plattformunabhängig?
Die WinAPI muss nicht "abgeschafft" werden. Es reicht wenn das .NET Framework auf entsprechenden Plattformen verfügbar wird. Verhält sich im Prinzip wie mit Java.
|
Re: Delphi.NET Plattformunabhängig?
Zitat:
Aber das heißt dann wohl, dass man seine Delphi.NET-Programme auf allen Plattformen (mit .NET-Framework) starten kann? :) |
Re: Delphi.NET Plattformunabhängig?
Zitat:
|
Re: Delphi.NET Plattformunabhängig?
Zitat:
@malo: ob das Ganze portierbar ist, hängt von dir ab. Wenn du unmanaged Code verwendest, dann nicht. Wenn du aber auf direkte API-Aufrufe, sowie DLLs verzichtest, dann ja :) Greetz alcaeus |
Re: Delphi.NET Plattformunabhängig?
Zitat:
|
Re: Delphi.NET Plattformunabhängig?
Meinst du SharpDevelop? Wenn ja, dann frage ich mich, warum man MonoDevelop ins lebengerufen hat. So lange die WinForms nicht unter anderen Platformen "fehlerfrei" implementiert ist, laufen nur Console und ASP.NET Anwendungen fast überall (wenn man nicht gerade an einen nicht vertandenen IL-Befehl vorbeikommt, wie es bei den Assemblies, die der Delphi.NET Compiler produziert, der Fall ist. Ich weiß jetzt nicht, ob Mono das jetzt schon behoben hat, müsste ich mal ausprobieren, aber vor einem viertel Jahr, gingen manche Konstrukte, die der Delphi.NET Compiler ausspuckt, nur unter MS.NET.
|
Re: Delphi.NET Plattformunabhängig?
Zitat:
.Net ist für mich eine Windows Plattform. Linux interessiert mich eigentlich nicht die Bohne. ;) @Jbg Das kann vielleicht an der 2. RTTI liegen, die einem Delphi.Net aufzwingt. (Man müsste mal die Borland.Delphi.System.dll disassemblieren...) Welche übrigens ein Grund für mich ist keine mit Delphi.Net kompilierten Assemblies zu benutzen. (Indy.Net, TMS Kompos,...) |
Re: Delphi.NET Plattformunabhängig?
Zitat:
|
Re: Delphi.NET Plattformunabhängig?
Zitat:
Zitat:
|
Re: Delphi.NET Plattformunabhängig?
Zitat:
Jede Delphi.Net Assembly braucht die Borland.Delphi.System.dll -> Warum kapiere ich beim besten Willen nicht. :gruebel: Nunja... wenn ich etwas im VS programmiere ,zum Bleistift um eben keine Borland Assemblies benutzen zu müssen*, finde ich es einfach nicht akzeptabel, dass es mir TMS oder die Indys aufzwingen wollen. Also verzichte ich einfach auf jeden, der es macht ;) *nicht weil ich nichts dazupacken will, eher weil ich diese Assembly nicht dazupacken will ;) |
Re: Delphi.NET Plattformunabhängig?
Zitat:
Im Großen und Ganzen steckt da eben wie bei nativen Code der Kern der RTL drinnen. Das das bei C# nicht notwendig ist, ist klar. Das ist wie bei C++ mit der msvcrtXX.dll, die auch auf jedem Rechner vorhanden ist und somit nicht mit ausgeliefert werden muss. So ist die C# Runtime in der System.dll integriert (besser ausgedrückt: die C# RTL ist die System.dll). Die Alternative zur Borland.Delphi.System wäre, dass der Compiler in jedes Assembly deren Code injiziert und den Unit-Klassennamen mit einer unique ID vergibt, damit es nicht zu Namenskonflikten kommt. Aber dafür hat sich Borland nicht entschieden. Die nutzen lieber ein gemeinsames Assembly, wie es sich unter .NET gehört. Der Grund warum jedes Delphi-Programm die System Unit benötigt und ein C/C++ Programm ohne alles auskommt, liegt darin, dass man in Pascal immer einen gewissen Funktionsumfang hat, wohingegen in C/C++ alles über extrene Bibliotheken statisch/dynamisch hinzugelinkt wird. Beides hat seine Vor- und Nachteile. Das eine ist leicht austauschbar, das andere verhält sich immer gleich. (Aber damit gehe ich jetzt glaube ich zu weit weg vom Thema) |
Re: Delphi.NET Plattformunabhängig?
Zitat:
Auch wenn es wieder wie eine Rumzickerei klingt: Objektiv betrachtet wirken allen Argumente, die du aufgeführt hast, wie Ausreden für eine .Net-Sprache, die eigentlich keine ist. Statische Konstruktoren sind nunmal das Mittel in .Net. Wenn Borland auf initialisierung und finalization besteht (Warum auch immer...), dann sollten sie es mit .Net Bordmitteln lösen oder einfach sein lassen. Virtuelle Konstruktoren rechtfertigen ebenfalls keine 2. RTL. Wenn man diese Funktionalität will kann man sich ganz einfach eine virtual protected Methode anlegen, die man im Konstruktor aufruft. Dadurch würde es in jeder .Net Sprache funktionieren. Aber egal... Ich produziere mal wieder nur hypothetisches Gesülze. Es ist nunmal so wie es ist: Mancheiner greift aufgrund dieser "features" zu D.Net und ich werde seine Kompilate nicht anfassen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz