Beginne mit .NET - ASP.NET, WPF, Silverlight oder Command Line C #?

8

Wenn jemand mit dem .NET Framework anfängt, wozu ist das am besten geeignete Template geeignet? Und mit dem Machbaren meine ich diejenige, die die geringste Lernkurve und die höchsten Gewinne hat.

Beginnen Sie mit:

  • Eingabeaufforderung Anwendungen in C #?
  • Webanwendungen mit ASP.NET?
  • Silverlight-Anwendungen in XAML / C #?
  • WPF / Winforms Desktop-Anwendungen?

Ich möchte mich im Moment nicht zu sehr auf eine bestimmte Domäne konzentrieren, sondern stattdessen ein wenig von allem in .NET Framework 4.0 lernen. In welcher Reihenfolge wäre es besser .NET zu lernen?

    
Sahat Yalkabov 19.06.2010, 21:33
quelle

10 Antworten

12

Konsolenanwendungen sind offensichtlich der Ausgangspunkt: Die Benutzerschnittstelle ist ein riesiger Wald, und es hat keinen Sinn, sie zu überwinden, bis du die Fähigkeit entwickelt hast, Wege in der Wildnis zu finden. Außerdem gibt es nichts, was Sie bei der Konsolenanwendung lernen werden, die in allem, was Sie in C # tun, nicht anwendbar ist.

Im nächsten Schritt lernen Sie, wie Sie Benutzeroberflächen erstellen. Ich würde mich mit denen befassen, die darauf hindeuten, dass Sie WinForms abholen: Ja, es gibt eine Menge Informationen darüber, wie man sie benutzt, und es gibt viele Werkzeuge, und im einfachsten Fall ist es ziemlich einfach zu verstehen. Aber es gibt zwei Probleme mit WinForms.

Erstens sind viele der Dinge, die WinForms so einfach macht, eigentlich extrem schlechte Programmierpraxis. Das Mischen von Geschäfts- und Präsentationslogik in der gleichen Klasse ist die Norm in der WinForms-Programmierung, und es bedarf einiger Anstrengungen, um diese Gewohnheit zu brechen, zumal die Datenbindung - ein Schlüsselwerkzeug bei der Entkopplung des Datenmodells von der Präsentation - nur marginal ist WinForms, während es für die Architektur von WPF von zentraler Bedeutung ist. Es gibt noch viel mehr zu lernen mit WPF - ein viel mehr - aber Sie schreiben am Ende viel bessere Programme.

Zweitens nähert sich WinForms dem Ende seines Lebens. Sie werden nicht sehen, dass Microsoft mehr Ressourcen dafür bereitstellt, es zu verbessern. Sie sind fertig. Das bedeutet kaum, dass es in der Zukunft nicht sinnvoll sein wird - es ist - aber seine Gesamtdurchdringung im Software-Entwicklungs-Ökosystem ist im Moment so groß, wie es jemals sein wird.

Ein weiterer Grund für WPF ist, dass das meiste von dem, was Sie mit WPF lernen, auch auf Silverlight anwendbar ist, was eine Tür öffnet, die für WinForms für immer geschlossen bleibt.

Soweit es ASP.NET betrifft, ist es etwas, das Sie nicht lernen möchten, bis Sie es brauchen.

    
Robert Rossney 19.06.2010, 23:16
quelle
3

Die Eingabeaufforderung ist wahrscheinlich die einfachste, da Sie Nachrichten und ähnliche Dinge ignorieren können, aber Sie sind natürlich sehr eingeschränkt. Als nächstes wäre WinForms, die ziemlich einfach ist, da Sie den Zustand leicht verfolgen können.

Aber es hängt wahrscheinlich von Ihren aktuellen Erfahrungen ab, wenn Sie bereits über Web-Erfahrung verfügen, können WebForms für Sie sinnvoller sein als beispielsweise WinForms

    
Hans Olsson 19.06.2010 21:38
quelle
2

Haben Sie eine Anwendung, die Sie benötigen oder entwickeln möchten?

Wenn Sie es getan haben, versuchen Sie, es etwas genauer zu definieren, und dann haben Sie eine Reihe von Zielen, die Sie erreichen müssen.

Sobald Sie diese Ziele haben, können Sie dann herausfinden, welche die beste Technologie ist, um das Problem zu lösen.

Wenn Sie zum Beispiel eine ziemlich statische Benutzeroberfläche haben, werden WinForms wahrscheinlich in Ordnung sein, aber wenn Sie Animationen und andere visuelle Effekte integrieren wollen, sollten Sie sich WPF / Silverlight ansehen.

    
ChrisF 19.06.2010 21:42
quelle
2

Beginnen Sie mit command line / console Anwendungen.

warum?

Als allererstes ist die Implementierung für Ihre objektorientierten Konzepte, die die Basis bilden, aber ohne in die Komplexität von Webanwendungen / Windows-Anwendungen / -Diensten oder was auch immer zu kommen.

Die Programmierung mit einer Console application Vorlage wird dich von unnötigen Komplexitäten abhalten und du könntest dich auf die inneren Funktionen von Framework und Feature konzentrieren.

Wenn Sie damit fertig sind und Features / Bibliotheken erkundet haben, sagen Sie System.Collections usw. sollten Sie dann aus den umfangreichen Entwicklungsbereichen auf der Basis Ihres Interesses und Ihrer früheren Entwicklungserfahrung auswählen.

i-e Web-Anwendungsentwicklung / Desktop entwickelt oder sonst.

Dies wird Ihnen helfen zu entscheiden, welche Technologie parallel zu Ihren Interessen weiter untersucht werden soll. Wenn Sie an der Entwicklung von Webanwendungen interessiert sind, können Sie sich für Asp.Net WebForms / Asp.Net MVC etc entscheiden und brauchen keine Zeit mit Windows Forms or WPF

zu verschwenden

hoffe das hilft

    
Asad Butt 19.06.2010 23:46
quelle
1

Wenn ich jemanden neu unterrichten würde (völlig neu in der Programmierung), würde ich mit Konsolenanwendungen beginnen. Dies gibt Ihnen die Möglichkeit, grundlegende OO-Programmierkonzepte ohne die Komplexität der GUI-Entwicklung oder die Komplexität des ASP.Net-Seitenlebenszyklus zu vermitteln.

Ich würde dann in die WinForms-Entwicklung einsteigen und an ereignisgesteuerter Programmierung und GUI arbeiten.

    
Toby 19.06.2010 21:39
quelle
1

Welche Programmierumgebungen kennen Sie schon?

Ich würde mit einer Standard-Windows-Anwendung (WinForms) beginnen, da Sie visuelle Komponenten einfach per Drag-and-Drop in ein Fenster ziehen und etwas Interaktivität schnell und einfach erstellen können.

Obwohl die meisten Projekte einfach erstellt und sofort ausgeführt werden können, benötigen Webanwendungen ein wenig mehr Infrastruktur und Wissen über das Internet.

    
Mark Redman 19.06.2010 21:39
quelle
1

"Und unter den besten verstehe ich diejenige, die die geringste Lernkurve und die höchsten Gewinne hat. Ich möchte mich im Moment nicht zu sehr auf ein bestimmtes Gebiet konzentrieren, sondern stattdessen ein wenig von allem in .NET Framework 4.0 lernen. "

Wenn Sie eine Weile in .NET programmiert haben, wissen Sie, dass die obigen zwei Sätze ein Oxymoron sind, wenn ich jemals einen LOL gesehen habe.

Das letzte Mal, als ich überprüft habe, dass .NET enthalten ist: Baugruppen y = 15,1x + 17,3 108

Namensraum y = 51,6x + 51 361

Typen y = 2249.3x + 626.9 14123

Mitglieder y = 21343x + 7951,3 136009

Selbst wenn Sie eine ganze Weile mit .NET Vollzeit programmiert haben, werden Sie kaum die Oberfläche kratzen! Sie haben nicht einmal erwähnt, ob Sie C # noch beherrschen, aber wenn nicht, können Sie das kostenlose Petzold-Ebook lesen, um auf dem neuesten Stand zu sein, da dies die am häufigsten verwendete Sprache für Silverlight, ASP, WinForms-Programmierung ist. Wenn die Befehlszeile Sie langweilt, wie es mir gefällt, dann schlage ich Ihnen das Buch "Head First C #" vor , das Ihnen ein sanftes Intro geben wird zu C # und was .NET kann.

    
daveangel 19.06.2010 22:07
quelle
0

Für die allerersten Schritte würde ich Befehlszeilenanwendungen empfehlen.

Für alles andere folgen Sie den WinForm-Apps. Sie haben eine breite Webabdeckung in Turorials usw. und bieten eine breite Palette von Problemen und Lösungen, die grundlegende und fortgeschrittene C # -Features abdecken.

ASP.NET, Silverlight und WPF sind weitere Erweiterungen dieser Grundlagen (Console und Winforms), die tatsächlich einen weiteren Satz von Framework-Bibliotheken hinzufügen. Das sind die Sahnehäubchen des Kuchens, die Sie ansprechen können, sobald Sie die Grundlagen geschafft haben.

Versteh mich nicht falsch, du kannst auch die Grundlagen mit Silverlight- oder WPF-Apps lernen. Aber WinForm ist fast jedem bekannt, der jemals in C # entwickelt hat, so dass Sie viel eher gute Antworten auf schwierige Probleme finden, die Sie im Internet (SO oder anderswo) finden können. Es gibt eine Menge Leute, die hier viel besser informiert sind als ich, die Ihnen helfen können, die Tiefe des .NET-Frameworks zu erkunden

Wenn Sie diese Teile gemeistert haben, können Sie neue Gebiete erkunden - und bald werden Sie meine Fragen zu WPF beantworten, von denen ich nichts weiß ;-)

    
Treb 19.06.2010 22:14
quelle
0

Hier ist meine Bewertung basierend auf den von Ihnen angegebenen Kriterien:

  • Die Befehlszeile ist sehr schnell zu erlernen, aber Sie können nicht viel tun, außer Text zu drucken. Nachdem Sie mit ein paar einfachen Programmen gespielt haben, wollen Sie schnell weitergehen.

  • WPF / Silverlight ist die zweit-einfachste After-Befehlszeile, solange Sie mit einigen Beispielen arbeiten, die DataTemplates und ItemsControl verwenden. Sobald Sie mit diesen Funktionen vertraut sind, können Sie sich auf die Feinheiten von C # und den NET Framework-Basisklassenbibliotheken konzentrieren oder die grafischen Elemente von WPF erkunden.

  • WinForms ist zu vermeiden, weil es schwieriger zu verstehen ist als WPF / Silverlight: In WPF / Silverlight erstellen Sie Ihre Datenobjekte und erstellen dann eine Ansicht, in der sie angezeigt werden, und WPF / Silverlight übernimmt die gesamte Positionierung und Layout. In WinForms müssen Sie Daten manuell zwischen Ihren Datenobjekten und Ihren UI-Objekten übertragen und Sie müssen alles explizit positionieren. Andere Angriffe gegen WinForms sind, dass es schnell obsolet wird, und es zwingt Sie in einige sehr schlechte Programmierpraktiken.

  • Zweifellos hat ASP.NET die höchste Lernkurve aller von Ihnen gelisteten Technologien, und ich würde meinen größten Abstand davon so lange wie möglich vermeiden!

Wenn Sie bereit sind, die Befehlszeile zu beenden (was wahrscheinlich innerhalb einer Woche sein wird), ist es nicht wirklich wichtig, ob Sie WPF oder Silverlight abholen. WPF ist etwas einfacher zu implementieren, und die Fähigkeiten übertragen sich gut, also würde ich wahrscheinlich dort anfangen.

Beginnen Sie mit der Erstellung einer einfachen WPF-Anwendung, die ein einzelnes Fenster mit einer Schaltfläche, einer ListBox und einer oder zwei TextBoxen enthält. Erstellen Sie Eigenschaften in Ihrem Benutzersteuerelement, und binden Sie sie. Dann fang an zu spielen. Es gibt viele Schritte, die Ihnen den Einstieg erleichtern. Ich habe Adam Nathans Buch "WPF Unleashed" als fantastische Quelle für Anfänger gefunden.

Holen Sie sich eine Kopie von Expression Blend, wenn Sie können. Es gibt eine 30-Tage-Testversion, die Sie herunterladen können. Es ist sehr hilfreich, wenn Sie mit den UI-Aspekten von WPF spielen und lernen, wie sie funktionieren, insbesondere Ressourcen, Vorlagen und Animationen.

Ein letzter Tipp: Wenn Sie jemals ein Buch oder Blog finden, das Code wie diesen enthält, führen Sie Ihr Leben aus:

%Vor%

(Es sei denn, der Autor verwendet nur solchen Code, um Ihnen zu zeigen, was Sie NICHT tun sollten.)

    
Ray Burns 20.06.2010 01:25
quelle
0

Ich würde empfehlen, einfache Befehlszeilenprogramme zu erstellen, nur um das Gefühl für die Sprache + .NET Framework zu bekommen. Dies kann jedoch in einer von der Benutzeroberfläche gesteuerten Welt ein wenig unbefriedigend sein. Viele der UI-basierten Technologien führen Sie in das Konzept der Integration mit einem externen Framework ein, das eine Schlüsselerfahrung darstellt. Das ist oft sehr lohnend, da jemand anderes die harte Arbeit erledigt hat und man einfach Spaß haben kann.

Persönlich würde ich ASP.NET zuletzt empfehlen - es ist nur ein bisschen komisch und Sie werden schlechte Angewohnheiten entwickeln.

Basierend auf dieser Empfehlung würde ich WinForms als nächstes empfehlen, es wird Ihnen mehr über Ereignisse und UI-Interaktion beibringen, aber es gibt immer noch kein strenges Kodierungsmuster. In meinen frühen Tagen schrieb ich einige schockierende WinForms Code. Du hast viel Kraft, aber wenig Führung.

Ich habe einige gute Arbeit mit WPF gesehen, aber es erfordert viel Vorlesen. Als Ausgangspunkt können Sie zumindest einige fortgeschrittene Designs mit wenig Code erstellen - es gibt weniger zu schieflaufen und Sie können hineinwachsen.

Meine erste UI-Empfehlung wäre nach dem Abspielen mit einer Konsolenanwendung das ASP.NET MVC-Framework. Es ist einfach zu programmieren, hat ein relativ strenges Designmuster, so dass man nicht falsch liegen kann, und man kann in relativ kurzer Zeit ziemlich gute Webseiten erstellen. Ich habe es im Vergleich zu den anderen Technologien sehr schnell aufgenommen, habe aber die Erweiterbarkeitspunkte gefunden, um mich weiter zu interessieren.

    
Brad R 24.06.2010 17:41
quelle

Tags und Links