Programmierkurs C-Sharp: Vorwort

Aus Wikibooks

Wechseln zu: Navigation, Suche
Regal: Programmierung Programmierkurs C#Bild:Wikibooks buchseite.svg Vorwort


Inhaltsverzeichnis

[Bearbeiten] Lesehinweise

Anfänger & Einsteiger:
Für dich gibt es zwei Varianten, dieses Buch zu lesen:

  1. Der harte Weg: Lies dieses Buch von Anfang bis Ende. oder
  2. Die Alternative: Nimm dir die C#-Spielwiese her, starte deine Entwicklungsumgebung durch und teste ein bisschen herum.
    Und immer wenn du Fragen hast, schaust du in das Buch. Die meisten Dinge werden dir in den Grundlagen-Abschnitten erklärt.

Und weil du dir schon lobenswerterweise die Lesehinweise anschaust, gleich noch zwei Tipps für den Fall, dass du dich entschließt, das Buch "durchzulesen":

  • Tipp 1: Lasse das erste Kapitel Grundlagen I - Das notwendige Übel einfach aus. Das ist langweilig und staubtrocken. Benutze es stattdessen als Referenz, wenn du unsicher wirst, was mit Kommentaren, Datentypen, Typkonvertierungen, structs, enums oder Modifizierern gemeint ist.
  • Tipp 2: Die Autoren dieses Buches haben kein Interesse daran, noch mehr Gesundheitsabgaben zu bezahlen, nur weil du gleich alle Grundlagen überspringst und direkt zu den Fortgeschrittenen Programmiertechniken wechselst --- und dir bei den dort dargestellten Techniken einen Nervenzusammenbruch einhandelst, oder - schlimmer noch - auf einmal meinst, C# wäre doch nichts für dich, weil es zu kompliziert wäre.
    Die Fortgeschrittenen Programmiertechniken setzen alle Grundlagen-Kapitel zwingend als selbstverständlich und bekannt voraus. Dort wirst du keine Hinweise mehr finden, warum etwas so oder anders funktioniert, oder wo es genau erklärt wird. Überfliege die Grundlagen-Kapitel wenigstens, damit du weißt, was dort steht und es im Zweifel noch einmal genauer nachlesen kannst.


In jedem Fall solltest du aber alle praktischen Beispiele der einzelnen Abschnitte ausprobieren.
So entwickelst du leichter ein Gefühl für die Sprache C# und kommst wesentlich schneller voran.


Fortgeschrittener & Umsteiger:
Für dich wurde das Buch mit vielen Praxisbeispielen geschrieben. Sicher findest du in den jeweiligen Abschnitten zu den Themen, die dich interessieren, noch das eine oder andere Beispiel, das dir beim Verständnis der Sprache hilft.

Profi:
Sorry dudes, euch kann man nur noch wenig erklären, was nicht mit ellenlangen Abhandlungen beschrieben werden muss. Allerdings werdet ihr vielleicht die Programmierbeispiele und praktischen Umsetzungen der Design Patterns interessant finden. Ansonsten schaut in die Weblinks. Dort findet ihr Communities und vielleicht auch das eine oder andere Buch, das euch interessieren könnte.

[Bearbeiten] Gliederung des Buches

Dieses Buch versucht den gewagten Spagat, vom Einsteiger über den Umsteiger bis hin zum Fortgeschrittenen alle Ansprüche zu befriedigen. Deshalb ist die normalerweise homogene Gliederung solcher "Fachbücher" vollständig aufgebrochen worden:

  • Die Kapitel Grundlagen sind in Form von didaktischen Lektionen gruppiert und in sich mehr oder weniger geschlossen. Dabei baut jedes Grundlagen-Kapitel auf den vorhergehenden Grundlagen auf.
  • Die Kapitel Fortgeschrittene Programmiertechniken sind hingegegen thematisch geordnet. Hier ist es primäres Ziel, zusammenhängende Probleme auch zusammenhängend darzustellen; respektive zusammengehörige Themen gemeinsam darzustellen.
  • Die Programmierbeispiele stellen wiederum eine lose Zusammenstellung von praxisbezogenen Exempeln dar, die lediglich, entsprechendes Wachstum vorausgesetzt, im Laufe der Zeit thematisch gruppiert werden sollten.
  • Die Design Patterns dienen schließlich als reines Referenzwerk, wie spezielle Patterns in C# realisiert werden können.

[Bearbeiten] Projektbeschreibung

Dieses Buch hat nicht die Absicht, noch ein trockenes Lehrbuch zu sein, wie man C# richtig lernt. Die Programmierung - insbesondere im .NET - ist viel zu lebendig und spannend, als dass man seine Zeit mit irgendwelchen theoretischen oder gar akademischen Trockenübungen verschwenden muss.

Wer Schwimmen lernen will, der muss ins Wasser gehen!


Deshalb ist der Text in diesem Buch sehr knapp gehalten und musste an vielen Stellen praktischen Beispielen weichen, die wir für den produktiven Einsatz häufig nur minimal anpassen müssen. So lernen wir direkt im Wasser, wie man richtig schwimmt.

Gleichzeitig verzichtet dieses Buch darauf, das übliche durchgängige Beispiel durchzuexerzieren, also eine komplette Anwendung zu entwickeln. Dabei käme letzten Endes nur die 27.125ste "CD-Verwaltung" oder der 5.873ste "Webshop" - kurz gesagt, Dinge, die sowieso keiner mehr braucht, weil es davon bereits haufenweise gibt - heraus. Wir widmen uns lieber in jedem Abschnitt einem mehr oder weniger typischen Problem, bei dessen Lösung die angesprochenen Dinge zum produktiven Einsatz kommen könnten. Zugleich sollen die unterstützenden Praxisbeispiele zeigen, wie nahe die tägliche Arbeit der Programmierer an diesen Problemen ist, ... und wie man sie mehr oder weniger elegant lösen kann.

Allerdings ist die Programmierung im Allgemeinen - und erst recht die Programmierung mit .NET - viel zu umfangreich, als dass dieses Buch den Anspruch erheben könnte, auch nur im Ansatz vollständig zu sein. Und weil es für die erfahrenen Profis unter uns bereits zahlreiche Communities und Webdokumentationen für C# gibt, lassen wir sie einfach gänzlich außen vor. Vielmehr richtet sich dieses Buch vor allem an Um- und Einsteiger und solche, die es werden wollen.


Oh, by the way: Ihr lest ein offenes Wikibook.
Ergänzungen, Erweiterungen, Änderungen, Korrekturen und - ganz besonders - eure praktischen Erfahrungen in Form von Quellcode-Auszügen, sind mehr als willkommen. Zeigt den Jungs und Mädels da draußen, wie spannend Programmierung sein kann! Helft ihnen über die ersten Hürden beim Einstieg in die atemberaubend fantastische Welt des .NET! Demonstriert ihnen, wie ihr das eine oder andere Problem angegangen seid, und welche Lösungen ihr euch dafür ausgedacht habt! Und vielleicht schaffen wir es eines Tages gemeinsam, aus diesem Buch ein Referenzwerk für alle Gruppen, vom Einsteiger bis zum Profi, zu machen.


[Bearbeiten] Themenwünsche

Dieses Buch wächst mit, durch, wegen und für euch!
Es ist schlicht unmöglich, all die schier unendlichen Möglichkeiten von .NET - insbesondere C# - in allen Details aufzuzeigen. Deshalb lasst uns einen unorthodoxen Weg gehen: Wer ein bestimmtes Thema zeitnah beleuchten möchte, klickt einfach auf [Themenwünsche bearbeiten] und hängt seine Wünsche an diese Liste an. Sobald sich jemand findet, sich dieses Themas anzunehmen, wird ein entsprechender Artikel geschrieben werden. --- Vielleicht kannst du ja selbst schon den Anfang machen und das - für dieses Buch typische - "Problem", mit dem jeder Abschnitt beginnt, beschreiben?


Themenliste

  • Allgemeine Themen
    • Programmsteuerung über eine externe Konfigurationsdatei
  • Datenbank-Themen
    • Datenbank-Anbindung
  • Sicherheit
    • Code Access Security
    • Kryptographie
  • Hier kann dein Wunschthema stehen




[Bearbeiten] Vorwort

Jedes gute Buch beginnt mit einem Vorwort, das keiner liest. Deshalb will auch dieses Buch nicht mit der alten Tradition brechen.


Here it comes...


Wikipedia
Wikipedia hat einen Artikel zum Thema:
Wikipedia
Wikipedia hat einen Artikel zum Thema:

Die Programmiersprache C# ist eine eigens für das .NET entwickelte Sprache. Deshalb ist es durchaus üblich, den, anderen Programmiersprachen, wie etwa VB.NET oder Delphi.NET, eigenen Zusatz ".NET" wegzulassen. Und weil sie so mächtig ist, hat Microsoft sie auch gleich selbst genutzt, um das .NET-Framework zu entwickeln, das wir zwingend brauchen, um Programme im .NET zu schreiben.

Dabei versucht C# eine Synthese der beliebtesten Programmiersprachen zu bilden und gleichzeitig das Beste aus ihnen zu übernehmen. Insbesondere Java-Programmierer werden sich sofort heimisch fühlen. Aber auch VB.NET-Umsteiger werden feststellen, dass diese beiden Sprachen sich nicht mehr allzu sehr unterscheiden. Und auch an die C/C++-Programmierer wurde gedacht: Direktzugriff auf C/C++-Bibliotheken, unsicherer Code, ... ja selbst die berühmt-berüchtigten Pointer sind immer noch Bestandteil von .NET, wenn auch wegen ihrer exorbitanten Gefährlichkeit nur noch sehr beschränkt einsetzbar.

Wikipedia
Wikipedia hat einen Artikel zum Thema:
Wikipedia
Wikipedia hat einen Artikel zum Thema:

Die wesentliche Aufgabe von C# ist es aber, den Aufwand der Programmierung drastisch zu reduzieren, so dass wir schneller und effektiver Software entwickeln können, indem wir uns auf die wirklich wichtigen Dinge konzentrieren und .NET den zeitraubenden Part überlassen, sich mit den nebensächlichen Dingen zu befassen. Zu diesem Zweck werden zahlreiche langweilige und nebensächliche Aufgaben bereits von internen "Agenten" übernommen. Beispielsweise hat .NET eine eingebaute "Müllabfuhr", den sogenannten Garbage Collector, der sich selbständig darum kümmert, dass der Speicher nach der Benutzung wieder bereinigt wird.

Zu den ausgesprochenen Stärken von .NET- und insbesondere C# - gehört jedoch die Verwaltung von Daten jeder Art. Gleichgültig, ob wir eine Oracle-Datenbank, eine MS SQL-Datenbank, eine MySQL-Datenbank, eine XML-Datenbank oder sogar eine proprietäre selbstentwickelte Datenbank anbinden wollen: Wenige Zeilen Programmcode reichen aus, sichere Datenverbindungen herzustellen und zu verwalten. Und die Erstellung einer kompletten Benutzer-Oberfläche zur Datennavigation und -pflege kann man mit ein paar wenigen Klicks und ganzen drei Zeilen Programmcode in weniger als fünf Minuten realisieren. ... Kennt jemand noch eine Umgebung oder Sprache in der so effizientes Programmieren möglich ist?

Wikipedia
Wikipedia hat einen Artikel zum Thema:

Eine andere Zielstellung, die plattformübergreifende Softwareentwicklung, wie Java sie bereits erfüllt, wurde allerdings bis heute noch nicht wirklich gelöst. Es gibt zwar mit dem Mono-Projekt durchaus interessante Ansätze auch diese Aufgabe zu lösen, allerdings klemmt es da noch an vielen Ecken und Kanten. Lediglich die Entwicklung von Konsolenanwendungen läuft derzeit wirklich stabil auf den gängigen Plattformen Windows und Linux. Alles andere, insbesondere die Entwicklung lauffähiger Windows-Anwendungen, wird wohl noch einige Zeit auf sich warten lassen.

Wikipedia
Wikipedia hat einen Artikel zum Thema:

Dennoch gehört C# mittlerweile zu den gebräuchlichsten Programmiersprachen der dritten Generation; und die Gemeinde der C#-Entwickler wächst täglich.

Das ist wohl vor allem auf den Umstand zurückzuführen, dass man mit .NET keinen Unterschied mehr zwischen der Windows- und der Webentwicklung macht. Für beide kann man mit den gleichen Sprachen fast den gleichen Programmcode schreiben. Man muss dabei lediglich einige wenige, jeweils spezifische Dinge beachten; aber eine Umstellung auf eine andere Sprache, wie etwa C++ für Windows- und PHP für Webanwendungen ist nicht mehr erforderlich.

Es gibt also viele Gründe, sich diese Sprache einmal genauer anzuschauen und vielleicht sogar die Entscheidung zu treffen, darauf umzusteigen...




Regal: Programmierung Programmierkurs C# Bild:Wikibooks buchseite.svg Vorwort



Persönliche Werkzeuge