.NET und Unmanaged Code



  • Hallo,

    da es für Windows unvermeidbare Zukunft zu werden scheint, habe ich angefangen, mich über Sinn und Unsinn von .NET zu informieren. Das meiste leuchtet mir auch ein (übersichtlicher, sicherer etc. als Win32), nur beim Argument der Plattformunabhängigkeit ergibt sich ein Widerspruch:
    eigentlich sind .NET-Programme zwar unabhängig von Prozessorarchitektur, sonstiger Hardware und OS (naja...), doch gerade eine der mächtigsten .NET-Sprachen, C++/CLI, erlaubt das Mischen von nativem mit .NET-Code. Damit geht die Plattformunabhängigkeit aber doch eigentlich flöten, oder? Oder ist "unmanaged" nur ein Legacy-Keyword, das den Umstieg erleichtern soll und in absehbarer Zukunft zugunsten der Konsistenz von .NET entfernt wird?

    Und weiter: wenn Windows nicht mehr auf der NT-Architektur, sondern auf .NET basiert (was AFAIK mit Vienna bereits der Fall sein soll), wird es weiterhin möglich sein, native Anwendungen zu entwickeln? Wird das Win32-API einfach auf seinen Nachfolger gewrappt, oder landen alle bisherigen Anwendungen dann in so etwas wie der "Classic"-Umgebung von OS X?



  • audacia schrieb:

    eigentlich sind .NET-Programme zwar unabhängig von Prozessorarchitektur, sonstiger Hardware und OS (naja...), doch gerade eine der mächtigsten .NET-Sprachen, C++/CLI, erlaubt das Mischen von nativem mit .NET-Code. Damit geht die Plattformunabhängigkeit aber doch eigentlich flöten, oder?

    Genau. Deswegen "erblaubt" es ja die mächtigste Sprache dies zu tun, Du musst es aber nicht tun...
    Das gleiche gilt auch für C#: Sobald Du P/Invoke verwendest, hast Du (oft) verloren...

    audacia schrieb:

    Oder ist "unmanaged" nur ein Legacy-Keyword, das den Umstieg erleichtern soll und in absehbarer Zukunft zugunsten der Konsistenz von .NET entfernt wird?

    Wenn ich die Zukunft vorhersehen könnte, würde ich nicht mehr arbeiten 😉

    audacia schrieb:

    Und weiter: wenn Windows nicht mehr auf der NT-Architektur, sondern auf .NET basiert

    Das wird es nicht geben. Das wird dann ein ganz separates OS (bisher gibt es nur ein Forschungsprojekt "Singularity").



  • Jochen Kalmbach schrieb:

    audacia schrieb:

    Oder ist "unmanaged" nur ein Legacy-Keyword, das den Umstieg erleichtern soll und in absehbarer Zukunft zugunsten der Konsistenz von .NET entfernt wird?

    Wenn ich die Zukunft vorhersehen könnte, würde ich nicht mehr arbeiten 😉

    Das hab ich jetzt auch nicht direkt erwartet 😉 Hätte ja sein können, daß Microsoft in dieser Hinsicht öffentliche Verlautbarungen gemacht hat. Wenn nicht, scheint mir das ein nicht unbeträchtlicher Unsicherheitsfaktor zu sein...

    Jochen Kalmbach schrieb:

    audacia schrieb:

    Und weiter: wenn Windows nicht mehr auf der NT-Architektur, sondern auf .NET basiert

    Das wird es nicht geben. Das wird dann ein ganz separates OS (bisher gibt es nur ein Forschungsprojekt "Singularity").

    Hmm, wie sieht denn dann die Roadmap für jenseits von Vista aus? Wird weiter auf NT gebaut? Dann müßte es ja eigentlich in jedem Fall ein natives API geben, oder? Irgendwie kann ich mir .NET als einzige Schnittstelle zum OS nicht so recht vorstellen...



  • audacia schrieb:

    Hätte ja sein können, daß Microsoft in dieser Hinsicht öffentliche Verlautbarungen gemacht hat.

    Mir ist zumindest nichts bekannt...
    Aber es ist zumindest schon mal ein Zeichen, dass Vista jetzt das erste OS ist, welches mit vorinstalliertem .NET-Framework daherkommt.
    Aber trotzdem ist das OS komplett native. Auch enthält die .NET-API nur ein bruchteil der Win32-API. Also für anspruchsvolle Dinge wirst Du immer noch nicht um P/Invoke rumkommen...

    audacia schrieb:

    Hmm, wie sieht denn dann die Roadmap für jenseits von Vista aus? Wird weiter auf NT gebaut?

    Mir ist keine Roadmap bekannt, welche nicht mehr auf NT basieren sollte. NT ist und bleibt für die nächsten Jahre/Jahrezehnte die Basis.

    Das Nachfolge OS ist wie gesagt nur als Research-Studie vorhanden:
    http://research.microsoft.com/os/singularity/
    Und ob es wirklich der Nachfolger wird ist noch nirgends verlautet worden...

    audacia schrieb:

    Dann müßte es ja eigentlich in jedem Fall ein natives API geben, oder?

    Alle bisherigen und min. die nächsten beiden OS-Versionen sind reine Win32-API OSs; mit Wrappern für .NET.

    audacia schrieb:

    Irgendwie kann ich mir .NET als einzige Schnittstelle zum OS nicht so recht vorstellen...

    Mit Singularity wäre dies vorstellbar.



  • Jochen Kalmbach schrieb:

    Aber trotzdem ist das OS komplett native. Auch enthält die .NET-API nur ein bruchteil der Win32-API. Also für anspruchsvolle Dinge wirst Du immer noch nicht um P/Invoke rumkommen...

    audacia schrieb:

    Hmm, wie sieht denn dann die Roadmap für jenseits von Vista aus? Wird weiter auf NT gebaut?

    Mir ist keine Roadmap bekannt, welche nicht mehr auf NT basieren sollte. NT ist und bleibt für die nächsten Jahre/Jahrezehnte die Basis.

    [...]

    Alle bisherigen und min. die nächsten beiden OS-Versionen sind reine Win32-API OSs; mit Wrappern für .NET.

    Das klingt doch sehr gut. Dann wird Win32 (bzw. Win64) wohl bis auf weiteres auch die Hauptschnittstelle darstellen. Und daß das Windows-API "deprecated" wird, ist somit auch nicht in Aussicht, oder?

    Jochen Kalmbach schrieb:

    audacia schrieb:

    Irgendwie kann ich mir .NET als einzige Schnittstelle zum OS nicht so recht vorstellen...

    Mit Singularity wäre dies vorstellbar.

    Ich bezog das allerdings auf NT 😉



  • audacia schrieb:

    Das klingt doch sehr gut. Dann wird Win32 (bzw. Win64) wohl bis auf weiteres auch die Hauptschnittstelle darstellen. Und daß das Windows-API "deprecated" wird, ist somit auch nicht in Aussicht, oder?

    Mir ist sowas nicht bekannt und der Zeitraum läuft mit Vista jetzt für min. 8 Jahre so weiter...


Log in to reply