Win32-Api oder .net Framework?

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Win32-Api oder .net Framework?

    Hallo,

    ich wollte mir gerade das Buch Win32-Api von Charles Petzold bestellen.
    Nun hatte ich mir gerade das erstemal Visual Studio c++ gedownloadet und gesehen das man dort direkt ein Windows forms Designer hat wie in C#.


    Nun frage ich mich natürlich was mehr sinn macht, sich die win32-api beizubringen oder einfach weiter mit dem .net Framework zu arbeiten?
    Gibt es irgendwelche vor oder Nachteile?


    Gruß
    Helvete

  • Kommt darauf an was ihr vorhabt und wie intensiv ihr das mit dem Programmieren treiben wollt.

    Wenn ihr mit dem Form-Designer klar kommt und eure Anwendungen laufen, warum sollt ihr euch die Grundlage antun?

    Es wurde, wenn ich mich nicht irre, von Mircosoft auch schon mal gesagt, das das WinAPI eventuell ein Auslaufmodell sei und nur noch wegen der Abwärtskompatibilität eine Daseinsberechtigung hat. Aber ähnliche Ankündigungen hat MS auch schon zu anderen ihrer Projekte gemacht.

    Ist zwar nicht C oder C++, aber sonst vergleichbar: Ich hab damals auch erst mit Delphi Oberflächen gebaut und später erst die WinAPI direkt erlernt.

    Delphi wurde ja für Borland vom selben Projektleiter wie später C# für Microsoft entwickelt. :D

    C != C++ != C# != objective C
    Alle haben zwar die gleichen Wurzeln, aber heute unterscheiden die sich aber deutlich. Inzwischen versuchen ja einige Entwickler diese Sprachen einander wieder näher zu bringen.

    Wenn du C# machen willst, würde ich .net empfehlen.
    Wenn du C oder C++ machen willst kommt es darauf an welche Zielsetzung ihr habt.
    objective C hat sich unter Windows nicht so durchgesetzt - das ist bei Apple eher gefragt und da ist weder WinAPI noch .net angesagt.

    MfG bcc-fan
  • Tut mir leid, wenn ich mich jetzt in den Thread so einmische. Wenn ihr wollt erstell ich einen Extra-Thread, jedoch dachte ich,
    ich könne themennahe Fragen zusammenhalten.

    bcc-fan danke für die Antwort. Eine paar Fragen habe ich aber noch.

    Was ist, wenn man bereits die Grundkenntnisse gelernt hat? Sollte man dann doch auf WinAPI wechseln?

    Was ist, wenn die Richtung in Programme anstatt in die Spieleprogrammierung geht?

    Kann man den mit c++ und .net Framework auch Programme programmieren, die die Windows-Form nicht benutzen.
    So eine Art Stylesheet?
  • C++ ist unabhängig von Windows und .net. Unter anderen Betriebssystemen wird mit C++ ohne .net aber eventuell mit anderen Werkzeugen auch z.B. ein Office-Packet, also Textverarbeitung, Tabellenkalkulation und Grafikprogramme geschrieben. Auch unter Windows gibt es so was ohne .net. Aber aktuelle Microsoft-Progrmme werden zur Zeit oft mit .net geschrieben.

    Welche Grundkenntnisse meinst du?
    Von wo auf die WinAPI wechseln?

    Wenn die Schule/ das Studium es fordert oder, wenn ein beruflicher Anlass dir nahelegt, sich mit der WinAPI zu beschäftigen würde ich das machen. Kann ja auch sein, das du Spass dran hast oder was für das Gehirnjogging brauchst ;)

    Aber sonst kannst du dich auch noch mit vielen anderen Dingen programmiertechnisch beschäftigen. Wie schon geschrieben ist halt abhängig von deiner Zielsetzung.

    Mfg bcc-fan
  • Was ist, wenn die Richtung in Programme anstatt in die Spieleprogrammierung geht?

    Mit .net geht beides sehr gut. Für Spiele ist das XNA-Framework sehr geeignet; für normale Programme einfach nur .NET.
    Wenn du aufwändige grafische Oberflächen machen willst würde ich dir WPF ([wikipedia]Windows_Presentation_Foundation[/wikipedia]) ans Herz legen. (WPF lässt sich in xaml, eine Art xml programmieren; in VS ist auch ein GUI-Editor dafür eigebaut)

    Meiner Meinung nach ist das .NET-Framework abstrakter als die WinAPI und braucht viel weniger Zeit sich einzuarbeiten. Sobald du jedoch wieder was auf der Hardware machen willst, oder was sehr spezielles brauchst - geht das teilweise nur mit der WinAPI (welche auch innerhalb des .NET-Frameworks benutzt werden kann).
    Außerdem kannst du wenn du ein Programm mit dem .NET-Framework schreibst, mehrere verschiedene Sprachen verwenden(gleichzeitig - in einem Programm !) (VB, C#, VC++ und diese komische funktionale .NET Sprache - mir fällt gerade der Name nicht ein :D)
  • Da ja schon Basics vorhanden sind, ist es am einfachsten sich einfach mal mit beiden Dingen zu beschäftigen.

    Wenn man ein Fenster mit einem Button und einem darauffolgendem "Hallo Welt" Fenster erstellt, dann wird man die Unterschiede, sowie Vor- und Nachteile recht schnell feststellen ;)

    Die WinApi wird auch kein Ausläufer sein. Klar wird der Schwerpunkt auf .NET gelegt, aber mit der WinApi hat man mehr Freiheiten in der Gestaltung und Programmierung von Anwendungen. Wobei die "Freiheit" mit einem enormen Aufwand verbunden ist (Das merkt man schon, wenn man nur ein Fenster erstellen möchte ;) )

    Alternativen wären QT oder GTK.
    Für Spieleprogrammierung bietet sich als .NET Pendant XNA, DirectX an, wo dann aber das arbeiten mit der Win32 Api zu den Basics gehört.

    Das auf .NET ausschließlich auf Win funktioniert, hat sich mit monoauch geändert.


    Das Buch von Charles Petzold ist echt klasse, nur funktionieren die ganzen Beispiele alle leider nicht mehr so, dass es mit recht viel Aufwand verbunden ist, sich durchzuarbeiten. Der Inhalt ist immernoch aktuell und grade das Hintergrundwissen ist genial da so in die Tiefe gegangen wird, dass man spätere Dinge einfach selbstverständlich versteht und nicht einfach so hinnimmt (weil darum....), aber es haben sich einige Kleinigeiten in der API getan, die dann leider an manchen Punkten ausschlaggebend sind und man manchmal verzweifelt.
    Ich kann dir den Tipp geben, das du das Buch teoretisch durcharbeitest und für praktische Beispiele ein anderes Buch holst.
  • Danke dir Vince für die Buchempfehlung.

    Würde mich interessiern, was du von WPF hälst? Geht WPF auch c#? Ist jetzt WPF ein Ersatz für .net oder ein Werkzeug wie WinAPI, GTK und QT?

    Aber langsam blick ich vor lauter Bezeichnungen gar nicht mehr so richtig durch. :D

    Mit freundlichen Grüßen

    Sheldon
  • bcc-fan wrote:

    WPF mit Maus markieren -> Mausklick rechts ( Rechtshändermaus ;) ) und schauen:
    z.B. der z.Z. erste Beitrag: Wiki zu WPF: WPF = Teilmenge von .net ;)

    Und da C# und .net zur Zeit bei Mircosoft angesagt sind kannst du das im Team nutzen.

    MfG bcc-fan


    Vielen Dank :)
    Brauch immer ein paar Gedankengänge bis Klarheit herrscht :P
  • Vielen Danke für die Antworten und Sorry das ich den Thread wieder ausgrabe habe da aber noch eine frage.

    @vince
    Du sagtest das dass Buch von Charles Petzold sehr gut geeignet ist zum Lernen aber nur theoretisch. Gibt es denn noch aktuellere Win32 Api Bücher?


    Ich hatte immer mal wieder danach gesucht aber nix gefunden was Aktuell ist.
  • Helvete wrote:

    @vince
    Du sagtest das dass Buch von Charles Petzold sehr gut geeignet ist zum Lernen aber nur theoretisch. Gibt es denn noch aktuellere Win32 Api Bücher?


    es ist länger her, dass ich "richtig" geschaut habe, aber eine wirkliche Alternative hab ich selber nicht gefunden.

    Ich würde mich nicht abschrecken lassen. Wenn du weißt was du da tust, dann sollte dir die MSDN alles weitere erklären können.

    msdn.microsoft.com/de-de/library/ee663266.aspx