2009-03-19 7 views
4

Ich bin ein wenig beschämt für diese Frage, weil, Sie wissen, ich bin seit langem sehr Anti-MS. Ich hatte das Glück, meinen Lebensunterhalt außerhalb von Visual Studio zu verdienen. Als ich älter wurde, gab es "einige" Dinge, die ich gerne ausprobieren würde, und um ehrlich zu sein, diese Q & A-Seite hat mich inspiriert und mir ist klar, dass VS und Windows-Entwicklung nicht so schlecht ist. Hey, nachdem alles C# nach Java entworfen wurde, kopiert Java jetzt einige Funktionen aus der untergeordneten Sprache. Und Windows Vista ist die erste vernünftige Version, seit Windows ans Licht kam.Windows-Entwicklung für Hardcore-Java-Typ

Wie auch immer, zu jedem Benutzer +3.000 im Publikum, können Sie alle oben genannten Mist löschen und halten die folgenden:

Haben Sie, Links, Ressourcen, Tutorial soll auf Windows-Entwicklung kommt von der starken Java Hintergrund lernen ?

Ich bin sehr interessiert an Windows-Manipulation (das ist das eigentliche Fenster, den Rahmen, den Namen zu bekommen, erhalten Sie App usw., Größe ändern Sie es programmatisch, etc.) und in Windows Search API unter anderen kleineren APIs. Mein Interesse ist es schließlich, sie über JNI oder JNA in meine Java-Apps zu integrieren.

Ich habe viele Tutorials und Links über die MSDN gelesen, und ich verstehe die API selbst. Ich habe mir eine Kopie von C# und C++ Express geschnappt und tatsächlich ein paar grundlegende Beispiele laufen lassen.

Mein Problem ist, ich bekomme nicht das große Bild der gesamten Architektur (weil, nun, es ist big). Die Klassen haben Hunderte von Methoden, und mir ist nicht klar, wer sie anruft. (Ich hatte die gleiche Meinung, wenn ich zuerst die Javadoc-API von Java anschaue.) Ich kenne einige grundlegende allgemeine Objekte nicht, zum Beispiel HWCD (oder etwas Ähnliches), das sich als der Fensterhandler herausstellte, aber jeder einzelne Tutorial Ich lese das als selbstverständlich (als ob WHCD oder was auch immer es ist, war ein sehr beschreibender Name).

Ich weiß nicht genau den Unterschied zwischen Win32, COM, COM +, DCOM, Windows SDK ADO und einige andere Technologien. Ich meine, ich kenne sie zu einem gewissen Grad und aus gesundem Menschenverstand, aber während ich die Tutorials oder die API lese, bin ich verwirrt. Ich habe versucht, einige „Anfänger“ Tutorials zu greifen, aber sie sind für absolute 0 Programmierer mit Visual Basic richtet (yiak!, DASS der Hauptgrund war ich weg seit so vielen Jahren in erster Linie von MS gehalten.)

Ich verstehe .NET Framework, verwalteten Code, nicht verwalteten Code, C# Grundlagen, CLR und verwandte Sachen, denn sie sind so ähnlich wie die Java-Plattform, dass es fast transparent ist.

So, nachdem all meine Tiraden und ehrlichen Meinungen über MS Entwicklung:

Was ist der beste Weg, um Windows-Entwicklung für einen nicht absoluten Anfänger (in der Programmierung), aber absolut neu in Windows APIs selbst zu lernen? Was wäre ein guter Weg?

Antwort

2

The Petzold ist Ihr neuer bester Freund, und MSDN ist Ihr neuer Javadocs. Stellen Sie sicher, dass Sie ein gutes Verständnis von C haben, bevor Sie sich jedoch damit beschäftigen. The Forger hat eine tolle beginner tutorial auch wenn Sie interessiert sind. Ein großartiger Ort, um während des Lernens abzuhängen ist #WinProg auf efnet irc, viele win32 Gurus bereit zu helfen.

+0

Ich denke, dass Petzold sollte weitgehend irrelevant sein, wenn Sie sich auf. NET-Entwicklung konzentrieren. Ich stimme der Empfehlung von MSDN obwohl –

+0

Ich weiß, C (oder zu verwenden) hoffentlich ich Katze durch diese MSDN-Seite wieder (http://msdn.microsoft.com/en-us/library/bb266518(VS.85). aspx) Ich kann nicht herausfinden, wie man JNA benutzt, um das zu nennen. : S: S –

+0

@John T: Ich habe vergessen, dir zu danken. –

1

Ich werde einen alternativen Pfad (mit weniger Widerstand) vorschlagen. Hast du WPF schon angeschaut? Es ist das neue GUI-Toolkit, mit dem Sie sexy Schnittstellen (wie in Vista) erstellen können.

Das könnte genug, um Sie interessiert zu halten, während in fortgeschrittenere Entwicklung zu erleichtern.Von dort können Sie in den Dschungel der Win-APIs springen (wenn Sie möchten).

Nur ein Gedanke, wie dieser Weg für mich interessanter wäre. Ihre Laufleistung kann natürlich variieren.

1

Ich empfehle dringend, sich eine Kopie von "Win32 Programming". Es erklärt die grundlegende DNA von WINDOWS - und das ist gültig, wenn Sie mit dem alten C++ Win32, den neuen C# WinForms und auch der zukünftigen Windows Presentation Foundation programmieren.

Kurz gesagt, ein Windows-Programm besteht aus einem WinMain. Beim ersten Start registriert die App ihre Fensterklasse beim System, initialisiert und startet dann eine Nachrichtenschleife, die bis zum Auftreten von WM_QUIT fortgesetzt wird. Das System (OS) pumpt Nachrichten wie Tastatur- oder Mausklick usw. in die Nachricht Q der Anwendung. In Windows gibt es zu jedem Zeitpunkt nur ein aktives Fenster - das Betriebssystem weiß also, an wen die Nachricht gesendet werden soll.

Gut Dinge wie diese sind im oben genannten Buch ausführlich beschrieben.

COM (COM +, DCOM) sind nicht wirklich mit Windows verwandt. Als Word, Excel populär wurde und es notwendig war, auf Excel von Word zuzugreifen (viceversa), kamen sie auf die AcitveX-Technologie, die eine Art Wurzel für COM usw. ist. Sie können mit "Essential COM" von Don Box beginnen .

Eine Warnung: In der Microsoft-Welt gibt es zwei Möglichkeiten zu programmieren - um den Kesselplatte Weg zu gehen (schreibe alles selbst) oder verwenden Sie Frameworks (MFC, ATL-COM ....). Es wird empfohlen, ein bisschen Kesselplatte zu machen, damit Sie die Grundlagen kennen.

+0

Tolle Antwort, danke –

0

Nachdem ich die gleiche Konvertierung vor einem Jahr gemacht habe, kann ich sagen, dass es eine Menge Literatur speziell zum Lernen von C# aus einem Java-Hintergrund gibt. Dies war meine erste, in die ich für das Erlernen der wichtigen Unterschiede/Features von C# wirklich nützlich gefunden:

C# from a Java developer's perspective

Und es gibt auch Bücher, die es wert sein kann, ist ein Blick auf (google 'C# für Java-Programmierer) . Wie JohnT sagte MSDN-Bibliothek ist das Äquivalent von JavaDocs API, aber ich fand es wirklich frustrierend zu verwenden. Der beste Weg zu lernen ist, sich eine Kopie von Visual Studio Express zu schnappen und herumzuspielen. Verwenden Sie intellisense, um Klassen und Methoden zu erkunden. Suchen Sie ein kleines Programm, das Sie in Java geschrieben haben, und versuchen Sie, es in C# zu reproduzieren. Beginnen Sie mit einfachen Problemen, verwenden Sie Google, um sie zu lösen. Sie werden es in der ersten Woche schwer haben, aber vertrauen Sie mir, es wird überraschend schnell zu Ihnen kommen!

+0

Ja, ich finde es sehr frustrierend. Sobald ich dachte, Javadoc wäre zu einfach, jetzt sehe ich den Vorteil davon, ist es einfach zu bedienen. Nun, das ist sowieso ein kleines Detail. :) C# ist nicht so schwer für mich, mein Problem kommt die Windows-Technologie insgesamt zu gewinnen. Danke der Antwort –

Verwandte Themen