Sie sind hier
E-Book

C# mit Methode

Lernen - Verstehen - Anwenden

VerlagC & L Computer- und Literaturverlag GmbH
Erscheinungsjahr2004
Seitenanzahl730 Seiten
ISBN9783936546125
FormatPDF
KopierschutzDRM
GerätePC/MAC/eReader/Tablet
Preis15,00 EUR

Software-Entwickler, die der Roadmap von Microsoft folgen wollen, sollten die neue Programmiersprache C# lernen. Der Umstieg von anderen Sprache fällt nicht schwer - die Klassenbibliothek ähnelt der von Delphi, ihre Struktur und die Bezeichner sind denen von C/C++ und Java verwandt. Wegen der starken Komponentenorientierung ist C# ideal für alle Projekttypen geeignet.

Dieses umfassende Buch ist für den Ein- und Umsteiger geschrieben. Es erklärt das Schreiben verteilter, mehrschichtiger Anwendungen, wobei nicht allein auf Windows und die Entwicklung für .NET eingegangen wird, sondern auch in einem extra Abschnitt die Programmierung für Unix erläutert ist.

Begonnen wird der Einführung in C#: Klassen, Schnittstellen und Strukturen. Besonderheiten wie der Umgang mit Dateien, die Ereignisbehandlung, die Serialisierung und Threading sind in einem gesonderten Kapitel dokumentiert. Weil nichts ohne Bibliotheken geht, enthält das Buch auch entsprechende Anleitungen, wie man Benutzeroberflächen mit Windows Forms schreibt oder Daten aus einer Datenbank mit ADO.NET ermittelt. Die Interaktion über COMInterop mit Microsoft Office wird genauso wie der Aufruf beliebiger Funktionen aus DLLs über P/Invoke gezeigt. Natürlich kommt auch das Erstellen von Web-Applikationen nicht zu kurz, dem Leser werden wichtige Techniken wie ASP.NET und Web Services vermittelt.

Zu moderner Programmierung gehört auch die Ansprache mobiler Endgeräte wie Telefone oder PDAs. Das notwendige Wissen wird dem Leser im Buchkapitel zum .NET Compact Framework weitergegeben.

Die Themen:

* Die verschiedenen Entwicklungsumgebungen
* Die Grundlagen der Sprache
* Bibliotheken: Windows Forms, ADO.NET, ASP.NET, .NET Remoting
* Dienste über das Internet mit Web Services
* Win-API-Aufrufe mit P/Invoke
* Anwendungen für mobile Endgeräte mit dem .NET Compact Framework
* Die .NET-eigene Assemblersprache MSIL zum Schutz des geistigen Eigentums
* C#-Anwendungen installieren und verteilen
* Die Open-Source-Implementierungen des .NET Frameworks

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

KAPITEL 8: MSIL/CIL, DIE .NET-ASSEMBLER-SPRACHE (S. 644-645)

von Michael Steil

o Tools
o Überblick über MSIL
o Der Stack
o Verwenden der Klassenbibliothek
o Decompiler
o Obfuscation (Verschleierung)

C#-Programme werden nie direkt in die Assemblersprache der Maschine, also x86 oder PowerPC und so weiter übersetzt, sondern zunächst immer in die Zwischensprache MSIL (Microsoft Intermediate Language, auch CIL, Common Intermediate Language). Erst zur Laufzeit wird der Zwischencode dann wie auch bei Java in die jeweilige Assemblersprache der Maschine gewandelt. MSIL ist also in gewisser Weise die Assemblersprache des .NET-Systems.

Sie fragen sich nun vielleicht, wieso es heute noch wichtig sein sollte, eine Assemblersprache zu können. Haben Sie in den letzten fünf Jahren einmal Assembler programmieren müssen? Wahrscheinlich nicht. Sofern Sie über (grundlegende) x86-Assemblerkenntnisse (oder welche auch immer) verfügen: Haben Ihnen diese bei der C/C++-Entwicklung genützt? Gut möglich. Kenntnisse in Assembler helfen bei der Abschätzung des Aufwands einer Operation, beim Debugging, sowie beim Reverse-Engineering. Und vergessen Sie nicht, daß man allein durch gutes Reverse Engineering auch abschätzen kann, wie aufwendig es für Ihre Konkurrenz sein wird, Ihre Algorithmen zu verstehen oder anders gesagt: wie offen die Algorithmen in Ihrem Produkt liegen.

In .NET gibt man nämlich sehr viel mehr von seinen Implementierungsdetails preis, als wenn man nach einer echten Assemblersprache wie x86 kompiliert. Das Dekompilieren und Verstehen des Codes ist um ein Vielfaches einfacher und mit den richtigen Tools sogar trivial. Mit Hilfe des Wissens über die Funktionsweise von MSIL sollen Sie daher in diesem Kapitel ein Gespür für all dies bekommen.

8.1 TOOLS

Das .NET Framework enthält bereits alle Werkzeuge, die benötigt werden, um mit MSIL zu arbeiten, nämlich einen Assembler (ilasm.exe) und einen Disassembler (ildasm.exe), der neben dem Batch- und Befehlszeilenbetrieb auch das grafische Erforschen von Assemblies ermöglicht. Assembler und Disassembler sind dabei zudem so aufeinander abgestimmt, daß es möglich ist, Assemblies zu disassemblieren, die Assemblerdatei zu editieren und die Datei wieder zu assemblieren (Roundtrip).

Der Aufruf beider Tools ist naheliegend. In den allermeisten Fällen genügt es, den Assembler (ilasm.exe) einfach mit dem Namen der Assemblerquelltext- Datei aufzurufen. Der Disassembler (ildasm.exe) startet ohne die Angabe von Parametern im grafischen Modus, in dem man interaktiv mit der Anwendung arbeiten kann. Die Hilfe erhält man, wenn man ihn mit ildasm /? aufruft. Um eine Assembly direkt zu disassemblieren, gibt man also den Namen der Assembly und über die Option /out= den Namen der zu erstellenden Assemblerdatei an. Über Optionen wie /bytes, /tokens und /linenum lassen sich noch weitere Informationen aus der Assembly als Kommentare dem Assemblerquelltext hinzufügen.

Inhaltsverzeichnis
Inhalt6
1 Vorwort12
2 Entwicklungsumgebungen für C#16
2.1 VISUAL STUDIO.NET18
2.2 BORLAND C# BUILDER50
2.3 VISUAL C# – STANDARD75
2.4 SHARPDEVELOP75
2.5 ASP.NET WEB MATRIX77
2.6 SCHLUßWORT78
3 Einführung in die Programmiersprache C#80
3.1 GRUNDLAGEN81
3.1.1 Hallo Welt81
3.1.2 Operatoren83
3.1.3 Grundkonzepte85
3.1.4 Programme und Assemblies89
3.2 AUSNAHMEBEHANDLUNG (EXCEPTIONS)92
3.2.1 Exceptions auslösen93
3.2.2 Exceptions abfangen94
3.2.3 Die Syntax des try-catch-finally-Blocks97
3.2.4 Exceptions bei Überlauf98
3.3 TYPEN, VARIABLEN PARAMETER99
3.3.1 Wert- und Referenztypen99
3.3.2 Variablen101
3.3.3 Parameter103
3.3.4 Der typeof-Operator106
3.3.5 Primitive Typen107
3.3.6 Zeigertypen109
3.4 ZEICHENKETTEN (STRINGS)111
3.4.1 String-Literale112
3.4.2 String-Literale mit Zeilenumbruch112
3.4.3 Optimierungen durch den Compiler113
3.4.4 Veränderbare Strings (StringBuilder)113
3.4.5 Zeichenketten formatieren114
3.5 ARRAYS115
3.5.1 Eindimensionale Arrays115
3.5.2 Mehrdimensionale Arrays116
3.5.3 Parameter-Arrays118
3.6 TYPKONVERTIERUNG121
3.6.1 Einführung121
3.6.2 Implizite Konvertierung122
3.6.3 Explizite Konvertierung123
3.6.4 Der is-Operator127
3.6.5 Der as-Operator127
3.6.6 Boxing und Unboxing128
3.6.7 Konvertierung von Zeigertypen129
3.7 ANWEISUNGEN130
3.7.1 if-Abfrage130
3.7.2 switch-Anweisung130
3.7.3 Die while-Schleife132
3.7.4 Die do-while-Schleife133
3.7.5 Die for-Schleife133
3.7.6 Die foreach-Schleife134
3.7.7 Schleifenablauf verändern137
3.7.8 Die Sprunganweisung (goto)138
3.7.9 Die using-Anweisung139
3.7.10 Die lock-Anweisung140
3.8 KLASSEN141
3.8.1 Konstanten141
3.8.2 Felder142
3.8.3 Konstruktoren146
3.8.4 Destruktoren148
3.8.5 Kapselung und Sichtbarkeit149
3.8.6 Vererbung und Versionsverwaltung151
3.8.7 Methoden überschreiben153
3.8.8 Operatoren überladen157
3.8.9 Eigenschaften160
3.8.10 Indexer167
3.9 STRUKTUREN168
3.9.1 Strukturen deklarieren168
3.9.2 Besonderheiten bei der Initialisierung169
3.10 SCHNITTSTELLEN172
3.10.1 Zugriff auf Schnittstellen-Mitglieder172
3.10.2 Schnittstellen implementieren175
3.10.3 Schnittstellen-Implementierung und Vererbung178
3.10.4 Schnittstellen erneut implementieren179
3.10.5 Abstrakte Klassen und Schnittstellen181
3.11 AUFZÄHLUNGEN181
3.11.1 Aufzählungstypen deklarieren181
3.11.2 Implizite und explizite Numerierung183
3.12 DELEGATEN EREIGNISSE185
3.12.1 Delegaten deklarieren und instanziieren185
3.12.2 Multicast-Delegaten187
3.12.3 Feld-ähnliche Ereignisse190
3.12.4 Ereigniseigenschaften192
3.13 NAMESPACES195
3.13.1 Namespaces deklarieren195
3.13.2 Namespaces importieren196
3.13.3 Aliase199
3.14 PRÄPROZESSOR-DIREKTIVEN200
3.14.1 Bedingungsdirektiven200
3.14.2 Weitere Präprozessor-Direktiven201
3.15 ATTRIBUTE202
3.15.1 Attribute verwenden203
3.15.2 Das Conditional-Attribut205
3.15.3 Das Obsolete-Attribut206
3.15.4 Das DllImport-Attribut207
3.15.5 Benutzerdefinierte Attribute207
3.15.6 Attribute auslesen (Reflektion)210
3.16 DOKUMENTATIONSKOMMENTARE211
3.16.1 Einführung211
3.16.2 Empfohlene XML-Elemente213
3.17 ZUSAMMENFASSUNG216
4 Bibliotheken218
4.1 WINDOWS FORMS219
4.1.1 Methoden und Eigenschaften eines Formulars220
4.1.2 Die Entwicklung mit Windows Forms224
4.1.3 Sicherheit mit Windows Forms246
4.1.4 Weitere Komponenten von Windows Forms…250
4.2 ADO.NET – DATENBANKSCHNITTSTELLE254
4.2.1 Das DataSet255
4.2.2 … und die DataTable257
4.2.3 Die manuelle Erstellung und Verwendung einer DataTable257
4.2.4 Constraints262
4.2.5 Das DataView264
4.2.6 Der .NET-DataProvider266
4.2.7 Unabhängigkeit (von Datenbanken) durch Interfaces278
4.2.8 Transaktionen283
4.2.9 Typisierte DataSets284
4.2.10 Stored Procedures mit ADO.NET287
4.2.11 Fazit291
4.3 WEB SERVICES291
4.3.1 Verwandte Technologien292
4.3.2 SOAP, XML und Web Services293
4.3.3 Ein erstes Beispiel294
4.3.4 Die Protokolle HTTP-GET, HTTP-POST299
4.3.5 Web Service via IDE301
4.3.6 UDDI-Wegweiser durch den Web-Service-Dschungel305
4.3.7 Dynamisches Einbinden der Web-Service-URL306
4.3.8 Asynchroner Aufruf eines Web Service307
4.3.9 Der Status eines Web Service310
4.3.10 Web Services und Transaktionen312
4.3.11 Die Web Services Enhancements 1.0315
4.4 COMINTEROP AUTOMATISIERUNG MS OFFICE318
4.4.1 Das erste Beispiel: C# ruft COM320
4.4.2 Das zweite Beispiel: Excel ruft C#322
4.4.3 Word per Fernsteuerung324
4.4.4 Serienbriefe mit C# und MailMerge329
4.4.5 Excel per Fernsteuerung332
4.4.6 Outlook per Fernsteuerung335
4.4.7 Der Internet Explorer als Steuerelement339
4.4.8 Fazit340
4.5 .NET-REMOTING341
4.5.1 Die Struktur von .NET-Remoting341
4.5.2 Proxy und SoapSuds345
4.5.3 Dynamische Konfiguration durch XML347
4.5.4 SAOs und CAOs351
4.5.5 CAO (Client Activated Objects)359
4.5.6 Transportable Objekte363
4.5.7 Internet Information Service als Host369
4.5.8 TCP-Channel und Binary-Formatierer371
4.5.9 Fazit372
4.6 ASP.NET372
4.6.1 Die Struktur373
4.6.2 Codebehind, der Code dahinter376
4.6.3 ASP.NET-Anwendungen378
4.6.4 ASP.NET-Anwendungen entwickeln mit einer IDE388
4.6.5 Sicherheit in ASP.NET-Anwendungen404
4.6.6 Vorlagen mit ASP.NET415
4.6.7 Upload von Dateien mit ASP.NET419
4.6.8 Fazit420
5 Das .NET Compact Framework422
5.1 DAS .NET COMPACT FRAMEWORK DETAIL424
5.2 DER ENTWICKLUNGSPROZEß ANWENDUNG426
5.2.1 Die Projekttypen in Visual Studio.NET427
5.2.2 »Hallo Welt« – die erste Compact-Framework-Anwendung429
5.2.3 Erweiterungen in Visual Studio.NET, der CF-ToolBar431
5.2.4 Testen mit dem Emulator431
5.2.5 Deployment auf einen Pocket PC433
5.2.6 Die zur Verfügung stehenden Komponenten434
5.2.7 Der Einsatz von Steuerelementen437
5.3 DATENZUGRIFF MS SQL SERVER439
5.3.1 Der Namespace System.Data.SqlClient439
5.3.2 Das InputPanel-Steuerelement447
5.3.3 Der SQLCE Server 2.0448
5.4 DEPLOYMENT453
5.5 KOMMUNIKATION WEB SERVICE458
5.6 EIGENE STEUERELEMENTE461
5.7 POCKET PC464
5.7.1 Fazit465
6 Techniken in C#466
6.1 KOMPONENTEN C#467
6.1.1 Die erste Komponente468
6.1.2 Konfiguration der Komponente im Designer471
6.1.3 Entwurfszeitattribute473
6.1.4 Eine Komponente, mehreren Klassen und Namespaces475
6.1.5 Ableitung von Steuerelementen476
6.1.6 Das UserControl480
6.1.7 Fazit483
6.2 EVENTS483
6.2.1 Events auslösen489
6.3 MULTITHREADING491
6.3.1 Warum Threads?491
6.3.2 Threads und Application Domains493
6.3.3 Threads erzeugen494
6.3.4 Thread-Status verändern494
6.3.5 Threads abbrechen495
6.3.6 Datenaustausch mit Threads498
6.3.7 Lokaler Thread-Speicher500
6.3.8 Synchronisation mit lock503
6.3.9 Auf eine Bedingung warten510
6.3.10 Synchronisation hausgemacht516
6.3.11 Typische Synchronisationsprobleme518
6.3.12 Synchronisation im Komplettpaket520
6.3.13 Prozeß-übergreifende Synchronisation521
6.3.14 Ereignis-basierte Synchronisation522
6.3.15 Synchronisation mit Windows Forms525
6.3.16 Der Thread-Pool528
6.4 SERIALISIERUNG OBJEKTEN532
6.4.1 Standard-Serialisierungsformate des .NET-Framework533
6.4.2 Zugriffsmodifizierer in der Serialisierung534
6.4.3 Die Schlüsselwörter Serializable und NonSerialized534
6.4.4 Serialisierung in der praktischen Anwendung535
6.4.5 Das Interface ISerializable545
6.5 DATEIVERARBEITUNG550
6.5.1 Auf Dateiinhalte zugreifen552
6.5.2 Verwendung der Streamklassen555
6.5.3 Isolierte Speicherung566
6.6 DELEGATEN568
6.6.1 Der sinnvolle Einsatz von Delegaten569
7 C# und der Rest der Welt574
7.1 VON JAVA C#578
7.1.1 C#-Einführung für Java-Programmierer578
7.1.2 Konvertierung von Java-Programmen nach .NET601
7.2 C++ C#611
7.2.1 Grundsätzliches611
7.2.2 Syntaktische Änderungen612
7.2.3 Typsystem612
7.2.4 Was es nicht mehr gibt615
7.3 MISCHEN C# NICHT-C#616
7.3.1 Das allgemeine Typsystem621
7.3.2 Mischen von C# und VB.NET623
7.3.3 VB.NET ruft C# ruft J#626
7.3.4 Sprachübergreifendes Debugging630
7.3.5 Mehr als eine Sprache in einem Assembly?632
7.4 C# WINDOWS635
7.4.1 Windows-Version ermitteln637
8 MSIL/CIL, die .NET-Assemblersprache646
8.1 TOOLS647
8.2 ÜBERBLICK MSIL648
8.3 DER STACK654
8.4 VERWENDEN DER KLASSENBIBLIOTHEK655
8.4.1 Arithmetik658
8.4.2 Exceptions658
8.4.3 Logik und Vergleiche660
8.4.4 Rückgabe von Werten661
8.5 DECOMPILER662
8.6 OBFUSCATION (VERSCHLEIERUNG)664
9 Anwendungen verteilen und installieren666
9.1 VERTEILUNG EINER ANWENDUNG ÜBER XCOPY667
9.1.1 GAC, StrongName & Co.668
9.2 CAB-DATEIEN671
9.3 DIE INSTALLER-KLASSE672
9.4 SETUP-PROJEKTE674
9.4.1 Windows-Setup-Projekt674
9.4.2 Web-Setup-Projekt678
9.4.3 Merge-Modul-Projekt679
9.5 NO-TOUCH DEPLOYMENT679
9.6 DEPLOYMENT .NET FRAMEWORKS681
9.6.1 Die Bootstrapper-Option682
9.6.2 Die Installation des Frameworks683
10 C# auf Unix und Mac686
10.1 ÜBERBLICK ÜBER DIE CLIS688
10.1.1 SSCLI688
10.1.2 Mono689
10.1.3 Portable.NET690
10.3.1 Klassenbibliothek – das Dateisystem693
10.3.2 Native Calls695
10.4.2 Windows.Forms auf den unterschiedlichen Systemen709
11 Befehlszeilentools712
11.1 DER C# COMPILER (CSC.EXE)713
11.2 DER IL ASSEMBLER (ILASM.EXE)717
11.3 IL DISASSEMBLER (ILDASM.EXE)718
Stichwortverzeichnis722

Weitere E-Books zum Thema: Sonstiges IT

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Home Networking

E-Book Home Networking
Format: PDF

Home Networking - das bedeutet die Verbindung der unterschiedlichsten im Haushalt vorhandenen elektronischen Geräte, sei es per Kabel oder drahtlos per Funk. Das beginnt meist mit der Vernetzung von…

Weitere Zeitschriften

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

Berufsstart Gehalt

Berufsstart Gehalt

»Berufsstart Gehalt« erscheint jährlich zum Sommersemester im Mai mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

Gastronomie Report

Gastronomie Report

News & Infos für die Gastronomie: Tipps, Trends und Ideen, Produkte aus aller Welt, Innovative Konzepte, Küchentechnik der Zukunft, Service mit Zusatznutzen und vieles mehr. Frech, offensiv, ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...