Es gibt eine Menge zu C # & amp; ASP.net. Wo soll ich anfangen? Worauf sollte ich mich nicht konzentrieren?
Sollte ich Winforms dann WPF lernen? Dito für Webformulare / Silverlight? Soll ich ASP.MVC oder klassisches ASP.NET lernen? Wenn beide, welche zuerst?
In den beiden Fällen - was wird mehr Sinn machen, wenn man den anderen zuerst kennt?
Welche wichtigen .NET-Funktionen sollte ich im Voraus lernen, um die Türen zum Verständnis für das zu öffnen, was vor mir liegt?
Ich erwähne absichtlich nicht die Grundlagen wie Wert- / Referenztypen, Klassen, objektorientierte Konzepte usw., da sie zuerst kommen sollten, bevor sie spezifisch sind. Hier bin ich an Details interessiert.
[Bearbeiten - Details zu meinen Zielen] Gute Punkte angesprochen - "Was möchte ich schreiben"?
Grundsätzlich eine Intranet-Anwendung, die eine Reihe von Dokumenten überwacht und einen Workflow als Änderungskontrollprozess implementiert. Die App wird auch die Dokumente prüfen und Probleme melden, um häufige Fehler zu korrigieren. Viele der Parameter müssen vom Endbenutzer definierbar und steckbar sein. Das Dokumentformat muss an verschiedene proprietäre Formate angepasst werden können, obwohl sie im Wesentlichen gleich sind. Die App wird sehr modular sein.
Ich lehne mich an ein Web-Interface, weil die Client-Spezifikationen & amp; Admin-Rechte variieren - ein Browser ist wirklich das einzige, worauf ich zählen kann.
Wie Sie sehen können, ist es ein bisschen von allem.
Ich hatte die gleiche Frage, als ich von Classic ASP zu .NET 2.0 wechselte ... .NET ist riesig: Wo soll ich anfangen?
Was ich getan habe, war meine schmutzige Hand und begann langsam, nahm ein Projekt (in meinem Fall war ein sehr wichtiges Projekt - eine Finanz-Web-App, die alle 4 Personen abdecken und automatisieren würde) und Beginne zu implementieren, jedes Mal, wenn ich nicht wusste, wie ich etwas bewerkstelligen sollte oder ich eine Idee in ASP hatte, aber nicht in ASP.NET, würde ich nach www.asp.net oder 4GuysFromRolla Website und suchen Sie nach Beispielen Kopiere / kopiere, verstehe, was ich getan habe und ... gehe zur nächsten Wand.
Nahm mich 6 Monate um alles in Gang zu bringen, aber es war am schlimmsten! Jetzt, da fast 3 Jahre vergangen sind, weiß ich, dass ich die richtige Wahl getroffen habe, aber damals ... hatte ich Angst!
jetzt ... Sie verweisen auf .NET 3.5, es hat eine Menge neuer Dinge wie Erweiterungen, linq, etc ... Ich würde mit dem einfachen Teil gehen und wenn die Zeiten kommen, "vielleicht kann ich LINQ hier verwenden, lass mich suchen, wie man es in diesem Teil verwendet "
hoffe, dass du deinem eigenen Weg folgst und ein Nachschlagewerk kaufst , damit du etwas Neues lesen und eine Referenz haben kannst, wenn du "ahhh, ich lese das irgendwo im Buch, lass mich suchen ... . Wo war es?"
Ich habe Professional ASP.NET von Wrox als Nachschlagewerk gekauft, und selbst heute gehe ich dorthin, um es zu sehen Neue Dinge, selbst wenn ich .NET 3.5 benutze, ist die Idee da, es gibt nur einen neuen Weg, es zu erreichen.
Was möchten Sie schreiben? Wenn Sie eine Windows clientseitige App schreiben möchten, schauen Sie sich WinForms und WPF an (keine wirkliche Notwendigkeit, WinForms vor WPF zu lernen, abgesehen davon, dass viele Tutorials / Bücher wahrscheinlich WPF-Konzepte mit WinForms-Konzepten vergleichen). Wenn Sie eine Webanwendung betrachten, dann ASP.NET oder ASP.MVC - ich weiß nicht, ob Sie wirklich das "normale" ASP.NET vor MVC benötigen.
Silverlight ist ein bisschen von beiden, in gewisser Weise - ein reicher Client, der wahrscheinlich mit einem Server für interessante Daten usw. redet.
Bevor ich jedoch eine davon erfahre, schlage ich vor, dass Sie die Grundlagen lernen, die einen Schritt weiter sind als die von Ihnen erwähnten Themen - Dinge wie Text in .NET (einschließlich Kodierungen und reguläre Ausdrücke), I / O, vielleicht Threading. Oh, und LINQ :) Es gibt ein paar Bücher, die an dieser Front sehr gut sind:
Ich würde empfehlen, zu lernen, was immer Sie interessiert. Wählen Sie ein "Haustier-Projekt" und versuchen Sie, es mit einer der Technologien zu erstellen, die Sie aufgelistet haben. Wenn Sie gerne Windows Desktop-Anwendungen erstellen, dann gehen Sie mit WPF oder WinForms. Wenn Sie die Idee haben, Rich-Desktop-Anwendungen im Web zu erstellen, dann sollten Sie sich für Silverlight entscheiden. Es wird eine Menge Überschneidungen geben.
Aber in Bezug auf Kern-.NET-Entwicklung, würde ich empfehlen, zuerst ASP.NET MVC zu lernen, wenn ich neu anfangen würde, da es Ihnen eine gute Grundlage für Dinge wie: Entwerfen für Testbarkeit, Codieren ohne ViewState, SEO-freundliche URLs, etc ..
Werden Sie Windows Forms entwickeln? Sie erwähnen C # und ASP.NET, also klingt es für mich wie Sie Web-basierte Programmierung tun. Überspringen Sie Winforms und WPF jetzt.
Silverlight ist eine Überprüfung wert, aber es ist immer noch ziemlich neu, also würde ich es zu einer zweiten Priorität machen.
Nun zur MVC- oder Webformular-Frage. MVC gibt Ihnen die totale Kontrolle über die ausgegebenen HTML, CSS und Javascript, erfordert aber mehr Arbeit, während Web-Formulare Ihnen die Entwicklung erleichtern, aber ohne 100% Kontrolle über das ausgegebene Markup. Sie können mit Webformularen viel anfangen und die Einführung von MVC gefährdet nicht die Zukunft von Webformularen. MVC ist sehr neu, also ändern sich die Dinge, aber schließlich sehe ich, dass beide glücklich nebeneinander leben.
Was das Lernen von .NET im Allgemeinen betrifft, habe ich großartige Dinge über ein Buch namens CLR über C # gehört, das alle Grundlagen und inneren Abläufe von .NET behandeln wird.
Erlernen Sie auf jeden Fall die Grundlagen (wie Sie bereits erwähnt haben), wie die CLR Typen, Garbage Collection, Sicherheit, "AppDomains", Threading, etc.
behandeltFür ASP.NET ist das Erlernen des "Seitenlebenszyklus" und "Kontrolllebenszyklus" von wesentlicher Bedeutung. Sitzungsstatus und Datenbindung sind wahrscheinlich auch gut zu verstehen.
Ich würde mir im Moment keine Sorgen um WinForms, WPF oder Silverlight machen. Sie werden nicht direkt mit ASP.NET helfen und sind relativ leicht zu erlernen, nachdem Sie die Grundlagen von CLR und .NET Framework gelernt haben.
Was ist Ihr oberstes Ziel - Lernen zum Spaß oder zur Verleihmöglichkeit? Wenn Sie ein Student sind und sich jahrelang keine Gedanken über eine Karriere als Programmierer machen, dann werde ich die Idee, ein Projekt über etwas relativ Einfaches, an dem Sie interessiert sind, auszuwählen und dann einfach zu machen.
Angenommen, Sie möchten eine Anwendung erstellen, die Ihre Sammlung von Videospielen verfolgt. Zuerst benötigen Sie eine Möglichkeit, die Informationen zu speichern - dies ist eine Kombination aus c # und einigen Persistenzstrategien wie mySql oder SQL Server oder XML.
Dann müssen Sie Ihre Sammlung präsentieren und mit ihr interagieren - Objekte hinzufügen, löschen und bearbeiten und die Änderungen beibehalten. Verwenden Sie in diesem Schritt alle Präsentationstechnologien, an denen Sie interessiert sind - WPF, WinForms, Asp.net, asp.net mit MVC, Silverlight - was auch immer Sie interessieren. Wenn Sie lernen, einen zu tun, werden Sie Techniken erlernen Sie müssen im nächsten verwenden.
Wählen Sie nicht nur eins aus - spielen Sie mit all denen, mit denen Sie überhaupt Interesse haben.
Nun, wenn Sie in erster Linie daran interessiert sind, welche Fähigkeiten Sie am schnellsten anwerben, würde ich sagen, dass Sie sich Ihren Markt anschauen, aber es werden wahrscheinlich gerade ASP.Net-Fähigkeiten sein, die am meisten nachgefragt werden - oder so sieht es zumindest aus meiner Sicht aus. In ein paar Jahren kann es ASP.Net MVC Fähigkeiten sein. In einigen Märkten haben Sie jedoch eine leichtere Chance, VB6 arbeiten zu lassen. Es hängt alles davon ab, wo und wann Sie suchen.
Ich empfehle die folgenden Bücher, um mehr über das Neue in ASP.NET 3.5 zu erfahren.