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

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 15 Projektmanagement und Visual Studio 2010
Pfeil 15.1 Der Projekttyp »Klassenbibliothek«
Pfeil 15.1.1 Mehrere Projekte in einer Projektmappe verwalten
Pfeil 15.1.2 Die Zugriffsmodifizierer »public« und »internal«
Pfeil 15.1.3 Friend-Assemblys
Pfeil 15.1.4 Einbinden einer Klassenbibliothek
Pfeil 15.2 Assemblys
Pfeil 15.2.1 Konzept der Assemblys
Pfeil 15.2.2 Allgemeine Beschreibung privater und globaler Assemblys
Pfeil 15.2.3 Struktur einer Assembly
Pfeil 15.2.4 Globale Assemblys
Pfeil 15.3 Konfigurationsdateien
Pfeil 15.3.1 Einführung
Pfeil 15.3.2 Die verschiedenen Konfigurationsdateien
Pfeil 15.3.3 Struktur einer Anwendungskonfigurationsdatei
Pfeil 15.3.4 Anwendungskonfigurationsdatei mit Visual Studio 2010 bereitstellen
Pfeil 15.3.5 Einträge der Anwendungskonfigurationsdatei auswerten
Pfeil 15.3.6 Editierbare, anwendungsbezogene Einträge mit <appSettings>
Pfeil 15.4 Versionsumleitung in einer Konfigurationsdatei
Pfeil 15.4.1 Herausgeberrichtliniendatei
Pfeil 15.5 XML-Dokumentation
Pfeil 15.5.1 Prinzip der XML-Dokumentation
Pfeil 15.5.2 XML-Kommentar-Tags
Pfeil 15.5.3 Generieren der XML-Dokumentationsdatei
Pfeil 15.6 Der Klassendesigner (Class Designer)
Pfeil 15.6.1 Ein typisches Klassendiagramm
Pfeil 15.6.2 Hinzufügen und Ansicht von Klassendiagrammen
Pfeil 15.6.3 Die Toolbox des Klassendesigners
Pfeil 15.6.4 Das Fenster »Klassendetails«
Pfeil 15.6.5 Klassendiagramme als Bilder exportieren
Pfeil 15.7 Refactoring
Pfeil 15.7.1 Methode extrahieren
Pfeil 15.7.2 Bezeichner umbenennen
Pfeil 15.7.3 Felder einkapseln
Pfeil 15.8 Code Snippets (Codeausschnitte)
Pfeil 15.8.1 Codeausschnitte einfügen
Pfeil 15.8.2 Anatomie eines Codeausschnitts


Galileo Computing - Zum Seitenanfang

15.7 Refactoring Zur nächsten ÜberschriftZur vorigen Ü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 Variablen auf Parameter heraufstufen
  • Parameter entfernen
  • Parameter neu anordnen

In den deutschsprachigen Versionen von Visual Studio 2010 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.


Galileo Computing - Zum Seitenanfang

15.7.1 Methode extrahieren Zur 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 2010 ü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 15.31 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.

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

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;
}

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.


Galileo Computing - Zum Seitenanfang

15.7.2 Bezeichner umbenennen Zur 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.

Zu Ende eines Projekts, wenn man den geschriebenen Code noch einmal durchsieht, fallen oft Bezeichner ins Auge, die möglicherweise besser gewählt worden wären. Früher hätten Sie wahrscheinlich darauf verzichtet, den unpassenden Bezeichner durch einen beschreibenderen 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 Typendefinitionen. Der Umbenennungsprozess erfasst dabei nicht nur Deklarationen und Aufrufe, er kann auch auf Kommentare und in Zeichenfolgen angewandt werden. Er ist zudem intelligent genug, um 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.


Galileo Computing - Zum Seitenanfang

15.7.3 Felder einkapseln topZur vorigen Überschrift

Nach den Paradigmen der Objektorientierung sollten alle Felder gekapselt werden. .NET-Anwendungen lösen das mithilfe 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. Da 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.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
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