Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 17 Projektmanagement und Visual Studio 2012
Pfeil 17.1 Der Projekttyp »Klassenbibliothek«
Pfeil 17.1.1 Mehrere Projekte in einer Projektmappe verwalten
Pfeil 17.1.2 Die Zugriffsmodifizierer »public« und »internal«
Pfeil 17.1.3 Friend Assemblys
Pfeil 17.1.4 Einbinden einer Klassenbibliothek
Pfeil 17.2 Assemblys
Pfeil 17.2.1 Ein Überblick über das Konzept der Assemblys
Pfeil 17.2.2 Allgemeine Beschreibung privater und globaler Assemblys
Pfeil 17.2.3 Die Struktur einer Assembly
Pfeil 17.2.4 Globale Assemblys
Pfeil 17.3 Konfigurationsdateien
Pfeil 17.3.1 Die verschiedenen Konfigurationsdateien
Pfeil 17.3.2 Die Struktur einer Anwendungskonfigurationsdatei
Pfeil 17.3.3 Eine Anwendungskonfigurationsdatei mit Visual Studio 2012 bereitstellen
Pfeil 17.3.4 Einträge der Anwendungskonfigurationsdatei auswerten
Pfeil 17.3.5 Editierbare, anwendungsbezogene Einträge mit <appSettings>
Pfeil 17.4 Versionsumleitung in einer Konfigurationsdatei
Pfeil 17.4.1 Die Herausgeberrichtliniendatei
Pfeil 17.5 XML-Dokumentation
Pfeil 17.5.1 Das Prinzip der XML-Dokumentation
Pfeil 17.5.2 Die XML-Kommentartags
Pfeil 17.5.3 Generieren der XML-Dokumentationsdatei
Pfeil 17.6 Der Klassendesigner (Class Designer)
Pfeil 17.6.1 Ein typisches Klassendiagramm
Pfeil 17.6.2 Hinzufügen und Ansicht von Klassendiagrammen
Pfeil 17.6.3 Die Toolbox des Klassendesigners
Pfeil 17.6.4 Das Fenster »Klassendetails«
Pfeil 17.6.5 Klassendiagramme als Bilder exportieren
Pfeil 17.7 Refactoring
Pfeil 17.7.1 Methode extrahieren
Pfeil 17.7.2 Bezeichner umbenennen
Pfeil 17.7.3 Felder einkapseln
Pfeil 17.8 Code-Snippets (Codeausschnitte)
Pfeil 17.8.1 Codeausschnitte einfügen
Pfeil 17.8.2 Die Anatomie eines Codeausschnitts
Pfeil 17.9 »ClickOnce«-Verteilung
Pfeil 17.9.1 Allgemeine Beschreibung
Pfeil 17.9.2 Erstellen einer ClickOnce-Anwendung
Pfeil 17.9.3 Die Installation einer ClickOnce-Anwendung

Rheinwerk Computing - Zum Seitenanfang

17.7 RefactoringZur nächsten Überschrift

Mit Refactoring wurde in Visual Studio 2005 erstmals eine Technik eingeführt, die bisher nur durch das Einbinden zusätzlicher Tools zu nutzen war. Refactoring ist hauptsächlich dann sinnvoll einzusetzen, wenn die Software bereits fertig ist. Sie können mit dieser Technik Änderungen am Code vornehmen, ohne dass sich das Verhalten der Anwendung ändert.

Sie werden mir beipflichten, dass während des Entwicklungsprozesses insbesondere größerer und komplexerer Software oft der Überblick über den Code verloren geht. Codepassagen wiederholen sich, Methoden werden zu komplex, weil der Modularisierung des Programmcodes zu wenig Aufmerksamkeit geschenkt wird, Variablennamen sind unpassend vergeben – typische Phänomene bei vielen Projekten. Mit der Technik des Refactorings können Sie dazu beitragen, dass der Code überschaubarer und klarer strukturiert wird. Dazu bieten sich mehrere Verfahren an:

  • Methode extrahieren
  • Bezeichner umbenennen
  • Felder einkapseln
  • Schnittstellen extrahieren
  • Lokale Variable auf Parameter heraufstufen
  • Parameter entfernen
  • Parameter neu anordnen

In den deutschsprachigen Versionen von Visual Studio 2012 werden Sie den Begriff »Refactoring« nicht finden. Er wurde – bedauernswerterweise – in »Umgestaltung« übersetzt. Unter der deutschen Übersetzung sollten Sie nach Bedarf auch in der .NET-Dokumentation nachschlagen.

Ich möchte hier nicht auf jede der aufgeführten Möglichkeiten detailliert eingehen, sondern nur die am häufigsten benutzten vorstellen.


Rheinwerk Computing - Zum Seitenanfang

17.7.1 Methode extrahierenZur nächsten ÜberschriftZur vorigen Überschrift

Der Sinn der Modularisierung ist es, viele kleine Methoden zu haben, die leichter zu überblicken und besser zu verstehen sind als lange und bildschirmfüllende. Der Methodenbezeichner sollte zudem so gewählt werden, dass man sofort weiß, was die Aufgabe der Methode ist. Gerät Ihnen bei der Entwicklung mal eine Methode »aus den Fugen«, müssen Sie die Codezeilen finden, die zusammengehören. Anschließend schneiden Sie diese aus und setzen sie in eine neue Methode ein. An die Stelle der Codezeilen, die Sie ausgegliedert haben, setzen Sie den Aufruf der neuen Methode.

Diese Abfolge wird mit Methode extrahieren von Visual Studio 2012 übernommen. Dazu markieren Sie die Codezeilen, die in eine eigene Methode überführt werden sollen, im Menü Umgestalten Methode extrahieren oder über das Kontextmenü des markierten Codes. Die neue Methode wird mit dem ausgewählten Code erstellt, und der im vorhandenen Member ausgewählte Code wird durch einen Aufruf der neuen Methode ersetzt.

Als anschauliches Beispiel soll uns die folgende Methodendefinition dienen:

public static double TestProc() {
int intVar;
intVar = 10;
double result = Math.Pow(2, intVar);
Console.WriteLine("Das Ergebnis lautet: {0}", result);
return result;
}

In Abbildung 17.18 ist das Szenario des Auslagerns von Code zu erkennen. Zu Demonstrationszwecken ist hier bis auf die Deklaration der lokalen Variablen intVar der gesamte Code markiert. Der Dialog öffnet sich, sobald Sie der Entwicklungsumgebung mitgeteilt haben, dass Sie die markierten Codezeilen extrahieren wollen. Tragen Sie hier nur noch einen passenden Bezeichner für die neue Methode ein. Eine Vorschau zeigt die Signatur der Methode. Der Rest wird von Visual Studio erledigt.

Das Ergebnis ist wie folgt:

public static double TestProc() {
int intVar;
return NewMethod(out intVar);
}
private static double NewMethod(out int intVar) {
intVar = 10;
double result = Math.Pow(2, intVar);
Console.WriteLine("Das Ergebnis lautet: {0}", result);
return result;
}

Abbildung

Abbildung 17.18 In diesem Dialog geben Sie den Namen der neuen Methode ein.

Die ausgeschnittenen Codezeilen werden durch den Aufruf der neuen Methode ersetzt. Ich habe mit Absicht die Anweisung zur Deklaration der lokalen Variablen nicht mit extrahiert. Wie sehr schön zu erkennen ist, berücksichtigt der Umgestaltungsprozess, dass intVar in der neuen Methode gesetzt und zur Berechnung einer Potenzzahl ausgewertet wird. Da intVar nur deklariert, jedoch nicht initialisiert ist, erwartet die extrahierte Methode einen out-Parameter. Wäre die Initialisierung vor dem Aufruf der extrahierten Methode erfolgt, wäre der Parameter ohne out erzeugt worden.


Rheinwerk Computing - Zum Seitenanfang

17.7.2 Bezeichner umbenennenZur nächsten ÜberschriftZur vorigen Überschrift

Der erste Schritt zu einem verständlichen und gut interpretierbaren Code ist eine Namensgebung, die bereits Rückschlüsse auf den Einsatzzweck des betreffenden Mitglieds zulässt. Eine Methode namens CreateDatabase verrät bereits sehr viel, TestProc hingegen gar nichts.

Am Ende eines Projekts, wenn man den geschriebenen Code noch einmal durchsieht, fallen oft Bezeichner ins Auge, die möglicherweise besser hätten gewählt werden können. Früher hätten Sie wahrscheinlich darauf verzichtet, den unpassenden Bezeichner durch einen besser beschreibenden zu ersetzen, denn im Anschluss daran hätten Sie den gesamten Code durchforsten müssen, um ihn an allen Stellen auszutauschen. Abgesehen davon, dass sich dabei Fehler durch Versäumnisse einschleichen können, kann die dafür benötigte Zeit anders investiert werden.

Auch für diese Fälle bietet das Refactoring durch Umbenennung eine Lösung. Umbenannt werden können Felder, Eigenschaften, lokale Variablen, Methoden, Namespaces und Typdefinitionen. Der Umbenennungsprozess erfasst dabei nicht nur Deklarationen und Aufrufe, er kann auch auf Kommentare und in Zeichenfolgen angewandt werden. Er ist zudem intelligent genug, alle Vorkommen des Elements zu erfassen.

Positionieren Sie den Cursor in dem betreffenden Bezeichner, und klicken Sie im Menü Umgestalten auf Umbenennen. Es öffnet sich ein Fenster, in dem Sie den neuen Namen eintragen. Zudem legen Sie hier auch fest, ob ebenfalls in Kommentaren und Zeichenfolgen nach dem alten Bezeichner gesucht werden soll.

Vorausgewählt ist im Dialog die Option Vorschau der Verweisänderungen. Dahinter verbirgt sich ein Fenster, in dem alle Änderungen im Projekt farblich gekennzeichnet sind. Sie können im oberen Teil des Fensters die Änderungsvorschläge annehmen oder auch verwerfen. Das kann unter Umständen erforderlich sein, wenn Sie innerhalb des Codes zwei gleichnamige Bezeichner für verschiedene Elemente verwenden.

Visual Studio unterstützt die Umbenennung über die Projektgrenzen hinweg. Wenn Sie beispielsweise eine Konsolenanwendung entwickeln, die auf eine Klassenbibliothek verweist, werden beim Umbenennen eines Typs in der Klassenbibliothek auch die Verweise auf den Typ der Klassenbibliothek in der Konsolenanwendung aktualisiert.


Rheinwerk Computing - Zum Seitenanfang

17.7.3 Felder einkapselnZur vorigen Überschrift

Nach den Paradigmen der Objektorientierung sollten alle Felder gekapselt werden. .NET-Anwendungen lösen das mit Hilfe von Eigenschaften, die einen get- und einen set-Accessor haben. Nicht immer werden Sie sich an die objektorientierten Grundsätze halten, Sie müssen es auch nicht. Daher kann es vorkommen, dass Sie eine Variable als public definiert haben, aber zu einem späteren Zeitpunkt feststellen, dass die Kapselung in einer Eigenschaft unbedingt erforderlich ist. Über das Menü Umgestalten Feld kapseln ist das sehr schnell möglich, wenn Sie den Cursor vorher in die Codezeile des betreffenden Feldes gesetzt haben. Weil mit der Kapselung möglicherweise auch eine Änderung des Aufrufs verbunden ist, werden im Code auch die Anweisungen herausgefiltert, die von der Änderung betroffen sind.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual C# 2012

Visual C# 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: C/C++






 C/C++


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern