WinAPI vs. .NET



  • Foxx90 schrieb:

    ähmm, ok also demnach ist es sinnvoll .NET zu lernen , aber man kann demnach immernoch für die nächsten jachre mit den WinAPI programmieren ?

    Microsoft wird vermutlich nie den Bruch machen und sagen "ab jetzt geht WinAPI nicht mehr". Denn der riesen Vorteil von Windows ist einfach der: du hast ein Programm und das laeuft einfach. Wenn es auf Win95 laeuft, dann laeuft es genauso auf Windows Vista. Diese Kompatibilitaet hat Microsoft sehr viel gekostet - wuerde mich stark wundern wenn sie es aufgeben wuerden.

    Was dir aber passieren kann ist, dass die WinAPI nciht mehr weiterentwickelt wird. Du also zB neue Funktionen des OS nicht mehr ansprechen kannst.



  • Soso, kennt jemand gute Tutorials für VC# ??



  • Foxx90 schrieb:

    Soso, kennt jemand gute Tutorials für VC# ??

    C#?

    willst du jetzt ne neue Sprache lernen weil du das Toolkit wechselst?
    Kannst auch weiter C++ programmieren... Nennt sich dann C++/CLI



  • nene ich will schon auf der WinAPI schiene bleiben, aber trotzdem will ich mich da mal kurze zeit einarbeiten um mitreden zu können 😉
    DAs was ich damals gemacht hatte mit VC# begrentzte sich auf grafik programmeirung...mit managed DirectX...aber nichst in bezug auf steuer elemente oder ähnlichem 😉

    mfg



  • nochmal:

    du kannst auch mit C++ .NET anwendungen schreiben



  • Shade Of Mine schrieb:

    Was dir aber passieren kann ist, dass die WinAPI nciht mehr weiterentwickelt wird. Du also zB neue Funktionen des OS nicht mehr ansprechen kannst.

    Mir ist noch keine Funktion bekannt die nur via CLR und nicht via WinAPi erreichbar wäre... bitte mal Beispiele!

    @Foxx90: Wenn Du rein .NET machst, rate ich Dir zu C#
    C++/CLI kann ich nur empfehlen, wenn Du Dich schon *gut* mit C++ auskennst, sonst wirst Du sehr schnell frustriert, weil Du die Unterschiede nicht kennst und Dich nur darüber aufregst, warum ein "String" kein "string" ist...



  • Mir ist noch keine Funktion bekannt die nur via CLR und nicht via WinAPi erreichbar wäre... bitte mal Beispiele!

    Lies dir einfach den Satz noch ein paar Mal durch, denn vielleicht fällt dir dann ja auf, warum du gerade, bzw. dass du gerade Blödsinn geschrieben hast. Als kleine Hilfestellung: Achte auf die Zeit. 🙄



  • PS: Das lässt sich aktuell ganz einfach nachweisen, dass weder .NET 1.0 / 1.1 / 2.0 noch 3.0 irgend eine native API direkt verwendet: die mscroee.dll hat keine Referenz auf ntdll.dll...



  • @ Shade Of Mine:
    Schon klar das man damit auch Anwendungen in C++ schreiben kann... 😉

    Und was ist (wenn man einen job findet) am häufigsten vertreten ? WinAPI oder doch schon die .NET Bibliothek, oder dann doch Avalon?

    mfg



  • Jochen Kalmbach schrieb:

    Shade Of Mine schrieb:

    Was dir aber passieren kann ist, dass die WinAPI nciht mehr weiterentwickelt wird. Du also zB neue Funktionen des OS nicht mehr ansprechen kannst.

    Mir ist noch keine Funktion bekannt die nur via CLR und nicht via WinAPi erreichbar wäre... bitte mal Beispiele!

    Noch gibt es sowas nicht. Aber je nachdem welche Strategie Microsoft verfolgt werden die vielleicht nicht 2 oder mehr System APIs konstant erweitern wollen und die WinAPI irgendwann einfrieren.

    Deshalb ja auch "was dir passieren kann" - moeglich aber auch dass das nicht passiert. Ich wuerde dennoch langfristig nicht auf WinAPI setzen.

    @Foxx90:
    nochmal:
    die WinAPI ist zum lernen und besser kennenlernen von Windows da. Effektiv programmiert wird fast nirgends. Deshalb wirst du eher einen Job als .NET Entwickler finden als als WinAPI programmierer. Aber du wirst des oefteren WinAPI kenntnisse noetig haben um mit anderen Tools Windows Programme zu schreiben - oder zumindest helfen sie.



  • hi, reichen für die Programmierung mit .NET die VS 2005 EXPRESS versionen, oder muss man sich die standart versionen kaufen ?

    mfg



  • Für .NET reicht die EE aus. Hier würde ich aber eher zu C# raten als zu C++/CLI (ausser Du machst viel Interop).



  • Hi,

    @Jochen Kalmbach: Soweit ich das mitbekommen habe, wird die WinAPI nicht mehr weiterentwickelt, allerdings weiter unterstützt. Wie man an der Tatsache sehen kann, dass selbst 16-Bit Anwendungen noch in den allermeisten Fällen unter heutigen Microsoft Betriebssystem lauffähig sind, bemüht sich Microsoft sehr um Abwärtskompatibilität. Somit wird die WinAPI vermutlich noch in zehn Jahren Teil der Windows Betriebssysteme sein, aber dass du mittels dieser Schnittstelle dann noch auf die neuesten Betriebssystemfunktionalitäten zugreifen kannst, das bezweifle ich. Man möge mich korrigieren sofern ich mich irre.

    Ferner sind die WinAPI und .NET überhaupt nicht vergleichbar.
    .NET ist ein modernes Unternehmensframework, und die WinAPI bietet eben die rohen Schnittstellen. Genausowenig wie die Systeme kann man die Entwicklung darin vergleichen:
    Das .NET Framework ist extrem umfangreich, mit sicheren Konzepten zur Windows- und Webentwicklung. Vollständige Internationalisierungskonzepte, eine hohe Datenabstraktion, automatisiertes Data Binding sind nur ein paar der Features, die .NET in meinen Augen so wertvoll macht.
    Wie bereits gesagt wurde wäre es nicht sinnvoll, in der heutigen Zeit mit der WinAPI effektiv größere Geschäftslösungen programmieren zu wollen.

    @Foxx90: .NET ist optimiert auf die Entwicklung von Geschäftslösungen und gängigen Desktopanwendungen sowie Webanwendungen. Wenn du in einem dieser Bereiche weiterkommen willst, wäre die WinAPI zumindest als primäre Entwicklungsplattform die falsche Wahl. Allerdings wäre es für dich vllt. recht interessant, die interne Struktur von Windows durch die WinAPI besser kennenzulernen.
    Falls du eher schnelle Echtzeitanwendungen die auf Hochleistungsgrafik setzen entwickeln willst, würde ich an deiner Stelle die WinAPI verwenden in Kombination mit OpenGL bzw. DirectX.
    Wobei ich um ehrlich zu sein keine Erfahrung mit Managed DirectX habe was Performance angeht.



  • marco.b schrieb:

    @Jochen Kalmbach: Soweit ich das mitbekommen habe, wird die WinAPI nicht mehr weiterentwickelt, allerdings weiter unterstützt.

    Woher hast Du das mitbekommen? Es gibt keinerlei Quellen dazu, ausser das kommende Vista und dort wurde sie selbstverständlich weiterentwickelt, was Du ja auch selber sehen kannst wenn Du Vista installeirst...

    marco.b schrieb:

    Man möge mich korrigieren sofern ich mich irre.

    In Zeiten wie "10 Jahre" will ich gar nie reden.

    marco.b schrieb:

    Ferner sind die WinAPI und .NET überhaupt nicht vergleichbar.

    Was glaubst Du was .NET-Fenster sind? Genau: Win32-Fenster. Mit der Glass-Oberfläche bleiben es auch Win32-Fenster, obwohl sie durch DirectX gerendert werden...

    marco.b schrieb:

    .NET ist ein modernes Unternehmensframework, und die WinAPI bietet eben die rohen Schnittstellen.

    Endlich mal 100% richtig!

    marco.b schrieb:

    Wie bereits gesagt wurde wäre es nicht sinnvoll, in der heutigen Zeit mit der WinAPI effektiv größere Geschäftslösungen programmieren zu wollen.

    Full ack!



  • Woher hast Du das mitbekommen? Es gibt keinerlei Quellen dazu, ausser das kommende Vista und dort wurde sie selbstverständlich weiterentwickelt, was Du ja auch selber sehen kannst wenn Du Vista installeirst...

    Ich glaube es war eine Seite wie heise oder Golem. Ich bin mir nicht zu 100% sicher, aber ich google mal danach, falsche Tatsachen will ich auch nicht in den Raum stellen. Ich bin mir aber wie gesagt ziemlich sicher.

    Was glaubst Du was .NET-Fenster sind? Genau: Win32-Fenster. Mit der Glass-Oberfläche bleiben es auch Win32-Fenster, obwohl sie durch DirectX gerendert werden...

    Was haben denn Win32-Fenster mit der jetzigen WinAPI zu tun?
    Es könnte genauso gut eine modernere Lowlevelschnittstelle implementiert werden die ebenso Win32 Fenster darstellen kann. Das wäre dann ebenso eine Entwicklerschnittstelle, aber wir sprechen ja von der jetzigen WinAPI wie sie mit aktuellen Betriebssystemen ausgeliefert wird.
    Tatsache ist dass es keinen Grund der Welt gibt der Microsoft daran hindern würde die jetzige WinAPI über Board zu kicken. Ob dies letztendlich getan wird steht auf einem anderen Blatt.

    Endlich mal 100% richtig!

    🙄



  • Windows Vista contains over 4000 new Win32 style APIs so it's safe to assume that Microsoft will continue to support and possibly expand Win32 for years to come.

    Lori Pearce

    Windows SDK Team

    Ich glaub die bisherige NT-Windowssysteme werden immer Win32-API haben, erst wenn Microsoft experiementelles OS erfolgsversprechend wird, dann kann Microsoft sich überlegen Win32-Api in den Grab zu tragen. Aber zur Zeit sieht es eher so aus, dass Microsoft lieber native System-Subsysteme über WinAPI32 anspricht und zu den Anwendungsentwickler prädigt, entwicklert auf .NET da ist eine schöne ManagedWelt und die Performance ist super,(wahrscheinlich weil .NET win32api anspricht).



  • Zeus schrieb:

    Ich glaub die bisherige NT-Windowssysteme werden immer Win32-API haben, erst wenn Microsoft experiementelles OS erfolgsversprechend wird, dann kann Microsoft sich überlegen Win32-Api in den Grab zu tragen. Aber zur Zeit sieht es eher so aus, dass Microsoft lieber native System-Subsysteme über WinAPI32 anspricht und zu den Anwendungsentwickler prädigt, entwicklert auf .NET da ist eine schöne ManagedWelt und die Performance ist super,(wahrscheinlich weil .NET win32api anspricht).

    100% Ack. (wurde im übrigen gerade durch ein privates MVP Chat mit dem PSDK-Team bestätigt).



  • marco.b schrieb:

    Soweit ich das mitbekommen habe

    Soweit, so schlecht. 😃 😉

    Wie bereits gepostet wurde, sind massig Win32-API-Funktionalitäten in Vista neu implementiert wurden.

    wird die WinAPI nicht mehr weiterentwickelt, allerdings weiter unterstützt.

    Ja, und damit liegst du, wie viele andere auch, falsch. Hier mal ein einfaches Tutorial wie man über natives C++ schöne Aero-Fenster gestalten kann:
    http://www.codeproject.com/winfx/VGGlassIntro.asp

    Und dann sollte man sich das Vista Windows SDK anschauen:
    http://windowssdk.msdn.microsoft.com/en-us/library
    Die gesamte Liste auf der linken Seite, ist bis auf den letzten .NET3.0-Punkt, alles C und C++!!! .NET ist ganz unten und hat fast ein Schattendasein. Nein, natürlich ist .NET ein Framework das seine Daseinsberechtigung hat, aber ersetzt noch laaange nicht die Win-API. Das wird sie erst tun, wenn die gesamte linke Seite .NET-Punkte sind, und ganz unten ein letzter Punkt "Native Win32-API" heißt. 😉



  • @marco b. :
    Denkst du dass es nötig ist jemanden,den Microsoft als MVP VC++ einstuft, den Unterschied zwischen WinAPI und .NET zu erklären ?
    Das erscheint mir gerade doch etwas bizzar 🙄 .
    Abgesehen davon wurde das Thema mit der (theoretischen) alternativen WinAPI schon durchgekaut.



  • Artchi schrieb:

    Ja, und damit liegst du, wie viele andere auch, falsch. Hier mal ein einfaches Tutorial wie man über natives C++ schöne Aero-Fenster gestalten kann:
    http://www.codeproject.com/winfx/VGGlassIntro.asp

    Artchi! Du bist der beste...
    Ich bräuchte auch nur mal so viel Zeit um Vista/PSDK und Glass zu testen... 😞


Anmelden zum Antworten