Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

C sharp

Buch | Softcover
2004 | 1., Aufl.
C & L (Verlag)
978-3-936546-12-5 (ISBN)

Lese- und Medienproben

C sharp
CHF 55,85 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Software-Entwickler, die der Roadmap von Microsoft folgen wollen, sollten die neue Programmiersprache C sharp 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 sharp 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 sharp: 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.

Christian Bleske ist Autor, Trainer und Entwickler. Sein Arbeitsschwerpunkt liegt auf Microsoft-Technologien. Seine Fachaufsätze erscheinen in vielen namhaften Entwicklerzeitschriften. Er lebt in Witten im Ruhrgebiet.

1;Inhalt;62;1 Vorwort;123;2 Entwicklungsumgebungen für C;163.1;2.1 VISUAL STUDIO.NET;183.2;2.2 BORLAND C BUILDER;503.3;2.3 VISUAL C - STANDARD;753.4;2.4 SHARPDEVELOP;753.5;2.5 ASP.NET WEB MATRIX;773.6;2.6 SCHLUßWORT;784;3 Einführung in die Programmiersprache C;804.1;3.1 GRUNDLAGEN;814.1.1;3.1.1 Hallo Welt;814.1.2;3.1.2 Operatoren;834.1.3;3.1.3 Grundkonzepte;854.1.4;3.1.4 Programme und Assemblies;894.2;3.2 AUSNAHMEBEHANDLUNG (EXCEPTIONS);924.2.1;3.2.1 Exceptions auslösen;934.2.2;3.2.2 Exceptions abfangen;944.2.3;3.2.3 Die Syntax des try-catch-finally-Blocks;974.2.4;3.2.4 Exceptions bei Überlauf;984.3;3.3 TYPEN, VARIABLEN PARAMETER;994.3.1;3.3.1 Wert- und Referenztypen;994.3.2;3.3.2 Variablen;1014.3.3;3.3.3 Parameter;1034.3.4;3.3.4 Der typeof-Operator;1064.3.5;3.3.5 Primitive Typen;1074.3.6;3.3.6 Zeigertypen;1094.4;3.4 ZEICHENKETTEN (STRINGS);1114.4.1;3.4.1 String-Literale;1124.4.2;3.4.2 String-Literale mit Zeilenumbruch;1124.4.3;3.4.3 Optimierungen durch den Compiler;1134.4.4;3.4.4 Veränderbare Strings (StringBuilder);1134.4.5;3.4.5 Zeichenketten formatieren;1144.5;3.5 ARRAYS;1154.5.1;3.5.1 Eindimensionale Arrays;1154.5.2;3.5.2 Mehrdimensionale Arrays;1164.5.3;3.5.3 Parameter-Arrays;1184.6;3.6 TYPKONVERTIERUNG;1214.6.1;3.6.1 Einführung;1214.6.2;3.6.2 Implizite Konvertierung;1224.6.3;3.6.3 Explizite Konvertierung;1234.6.4;3.6.4 Der is-Operator;1274.6.5;3.6.5 Der as-Operator;1274.6.6;3.6.6 Boxing und Unboxing;1284.6.7;3.6.7 Konvertierung von Zeigertypen;1294.7;3.7 ANWEISUNGEN;1304.7.1;3.7.1 if-Abfrage;1304.7.2;3.7.2 switch-Anweisung;1304.7.3;3.7.3 Die while-Schleife;1324.7.4;3.7.4 Die do-while-Schleife;1334.7.5;3.7.5 Die for-Schleife;1334.7.6;3.7.6 Die foreach-Schleife;1344.7.7;3.7.7 Schleifenablauf verändern;1374.7.8;3.7.8 Die Sprunganweisung (goto);1384.7.9;3.7.9 Die using-Anweisung;1394.7.10;3.7.10 Die lock-Anweisung;1404.8;3.8 KLASSEN;1414.8.1;3.8.1 Konstanten;1414.8.2;3.8.2 Felder;1424.8.3;3.8.3 Konstruktoren;1464.8.4;3.8.4 Destruktoren;1484.8.5;3.8.5 Kapselung und Sichtbarkeit;1494.8.6;3.8.6 Vererbung und Versionsverwaltung;1514.8.7;3.8.7 Methoden überschreiben;1534.8.8;3.8.8 Operatoren überladen;1574.8.9;3.8.9 Eigenschaften;1604.8.10;3.8.10 Indexer;1674.9;3.9 STRUKTUREN;1684.9.1;3.9.1 Strukturen deklarieren;1684.9.2;3.9.2 Besonderheiten bei der Initialisierung;1694.10;3.10 SCHNITTSTELLEN;1724.10.1;3.10.1 Zugriff auf Schnittstellen-Mitglieder;1724.10.2;3.10.2 Schnittstellen implementieren;1754.10.3;3.10.3 Schnittstellen-Implementierung und Vererbung;1784.10.4;3.10.4 Schnittstellen erneut implementieren;1794.10.5;3.10.5 Abstrakte Klassen und Schnittstellen;1814.11;3.11 AUFZÄHLUNGEN;1814.11.1;3.11.1 Aufzählungstypen deklarieren;1814.11.2;3.11.2 Implizite und explizite Numerierung;1834.12;3.12 DELEGATEN EREIGNISSE;1854.12.1;3.12.1 Delegaten deklarieren und instanziieren;1854.12.2;3.12.2 Multicast-Delegaten;1874.12.3;3.12.3 Feld-ähnliche Ereignisse;1904.12.4;3.12.4 Ereigniseigenschaften;1924.13;3.13 NAMESPACES;1954.13.1;3.13.1 Namespaces deklarieren;1954.13.2;3.13.2 Namespaces importieren;1964.13.3;3.13.3 Aliase;1994.14;3.14 PRÄPROZESSOR-DIREKTIVEN;2004.14.1;3.14.1 Bedingungsdirektiven;2004.14.2;3.14.2 Weitere Präprozessor-Direktiven;2014.15;3.15 ATTRIBUTE;2024.15.1;3.15.1 Attribute verwenden;2034.15.2;3.15.2 Das Conditional-Attribut;2054.15.3;3.15.3 Das Obsolete-Attribut;2064.15.4;3.15.4 Das DllImport-Attribut;2074.15.5;3.15.5 Benutzerdefinierte Attribute;2074.15.6;3.15.6 Attribute auslesen (Reflektion);2104.16;3.16 DOKUMENTATIONSKOMMENTARE;2114.16.1;3.16.1 Einführung;2114.16.2;3.16.2 Empfohlene XML-Elemente;2134.17;3.17 ZUSAMMENFASSUNG;2165;4 Bibliotheken;2185.1;4.1 WINDOWS FORMS;2195.1.1;4.1.1 Methoden und Eigenschaften eines Formulars;2205.1.2;4.1.2 Die Entwicklung mit Windows Forms;2245.1.3;4.1.3 Si 1;Inhalt;62;1 Vorwort;123;2 Entwicklungsumgebungen für C;163.1;2.1 VISUAL STUDIO.NET;183.2;2.2 BORLAND C BUILDER;503.3;2.3 VISUAL C - STANDARD;753.4;2.4 SHARPDEVELOP;753.5;2.5 ASP.NET WEB MATRIX;773.6;2.6 SCHLUßWORT;784;3 Einführung in die Programmiersprache C;804.1;3.1 GRUNDLAGEN;814.1.1;3.1.1 Hallo Welt;814.1.2;3.1.2 Operatoren;834.1.3;3.1.3 Grundkonzepte;854.1.4;3.1.4 Programme und Assemblies;894.2;3.2 AUSNAHMEBEHANDLUNG (EXCEPTIONS);924.2.1;3.2.1 Exceptions auslösen;934.2.2;3.2.2 Exceptions abfangen;944.2.3;3.2.3 Die Syntax des try-catch-finally-Blocks;974.2.4;3.2.4 Exceptions bei Überlauf;984.3;3.3 TYPEN, VARIABLEN PARAMETER;994.3.1;3.3.1 Wert- und Referenztypen;994.3.2;3.3.2 Variablen;1014.3.3;3.3.3 Parameter;1034.3.4;3.3.4 Der typeof-Operator;1064.3.5;3.3.5 Primitive Typen;1074.3.6;3.3.6 Zeigertypen;1094.4;3.4 ZEICHENKETTEN (STRINGS);1114.4.1;3.4.1 String-Literale;1124.4.2;3.4.2 String-Literale mit Zeilenumbruch;1124.4.3;3.4.3 Optimierungen durch den Compiler;1134.4.4;3.4.4 Veränderbare Strings (StringBuilder);1134.4.5;3.4.5 Zeichenketten formatieren;1144.5;3.5 ARRAYS;1154.5.1;3.5.1 Eindimensionale Arrays;1154.5.2;3.5.2 Mehrdimensionale Arrays;1164.5.3;3.5.3 Parameter-Arrays;1184.6;3.6 TYPKONVERTIERUNG;1214.6.1;3.6.1 Einführung;1214.6.2;3.6.2 Implizite Konvertierung;1224.6.3;3.6.3 Explizite Konvertierung;1234.6.4;3.6.4 Der is-Operator;1274.6.5;3.6.5 Der as-Operator;1274.6.6;3.6.6 Boxing und Unboxing;1284.6.7;3.6.7 Konvertierung von Zeigertypen;1294.7;3.7 ANWEISUNGEN;1304.7.1;3.7.1 if-Abfrage;1304.7.2;3.7.2 switch-Anweisung;1304.7.3;3.7.3 Die while-Schleife;1324.7.4;3.7.4 Die do-while-Schleife;1334.7.5;3.7.5 Die for-Schleife;1334.7.6;3.7.6 Die foreach-Schleife;1344.7.7;3.7.7 Schleifenablauf verändern;1374.7.8;3.7.8 Die Sprunganweisung (goto);1384.7.9;3.7.9 Die using-Anweisung;1394.7.10;3.7.10 Die lock-Anweisung;1404.8;3.8 KLASSEN;1414.8.1;3.8.1 Konstanten;1414.8.2;3.8.2 Felder;1424.8.3;3.8.3 Konstruktoren;1464.8.4;3.8.4 Destruktoren;1484.8.5;3.8.5 Kapselung und Sichtbarkeit;1494.8.6;3.8.6 Vererbung und Versionsverwaltung;1514.8.7;3.8.7 Methoden überschreiben;1534.8.8;3.8.8 Operatoren überladen;1574.8.9;3.8.9 Eigenschaften;1604.8.10;3.8.10 Indexer;1674.9;3.9 STRUKTUREN;1684.9.1;3.9.1 Strukturen deklarieren;1684.9.2;3.9.2 Besonderheiten bei der Initialisierung;1694.10;3.10 SCHNITTSTELLEN;1724.10.1;3.10.1 Zugriff auf Schnittstellen-Mitglieder;1724.10.2;3.10.2 Schnittstellen implementieren;1754.10.3;3.10.3 Schnittstellen-Implementierung und Vererbung;1784.10.4;3.10.4 Schnittstellen erneut implementieren;1794.10.5;3.10.5 Abstrakte Klassen und Schnittstellen;1814.11;3.11 AUFZÄHLUNGEN;1814.11.1;3.11.1 Aufzählungstypen deklarieren;1814.11.2;3.11.2 Implizite und explizite Numerierung;1834.12;3.12 DELEGATEN EREIGNISSE;1854.12.1;3.12.1 Delegaten deklarieren und instanziieren;1854.12.2;3.12.2 Multicast-Delegaten;1874.12.3;3.12.3 Feld-ähnliche Ereignisse;1904.12.4;3.12.4 Ereigniseigenschaften;1924.13;3.13 NAMESPACES;1954.13.1;3.13.1 Namespaces deklarieren;1954.13.2;3.13.2 Namespaces importieren;1964.13.3;3.13.3 Aliase;1994.14;3.14 PRÄPROZESSOR-DIREKTIVEN;2004.14.1;3.14.1 Bedingungsdirektiven;2004.14.2;3.14.2 Weitere Präprozessor-Direktiven;2014.15;3.15 ATTRIBUTE;2024.15.1;3.15.1 Attribute verwenden;2034.15.2;3.15.2 Das Conditional-Attribut;2054.15.3;3.15.3 Das Obsolete-Attribut;2064.15.4;3.15.4 Das DllImport-Attribut;2074.15.5;3.15.5 Benutzerdefinierte Attribute;2074.15.6;3.15.6 Attribute auslesen (Reflektion);2104.16;3.16 DOKUMENTATIONSKOMMENTARE;2114.16.1;3.16.1 Einführung;2114.16.2;3.16.2 Empfohlene XML-Elemente;2134.17;3.17 ZUSAMMENFASSUNG;2165;4 Bibliotheken;2185.1;4.1 WINDOWS FORMS;2195.1.1;4.1.1 Methoden und Eigenschaften eines Formulars;2205.1.2;4.1.2 Die Entwicklung mit Windows Forms;2245.1.3;4.1.3 Si

KAPITEL 8: MSIL/CIL, DIE .NET-ASSEMBLER-SPRACHE (S. 644-645)von Michael Steilo Toolso Überblick über MSILo Der Stacko Verwenden der Klassenbibliotheko Decompilero 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 TOOLSDas .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. KAPITEL 8: MSIL/CIL, DIE .NET-ASSEMBLER-SPRACHE (S. 644-645)von Michael Steilo Toolso Überblick über MSILo Der Stacko Verwenden der Klassenbibliotheko Decompilero 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 TOOLSDas .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.

Sprache deutsch
Gewicht 1065 g
Einbandart kartoniert
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte C sharp (Programmiersprache)
ISBN-10 3-936546-12-6 / 3936546126
ISBN-13 978-3-936546-12-5 / 9783936546125
Zustand Neuware
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Grundlagen und praktische Anwendungen von Transpondern, kontaktlosen …

von Klaus Finkenzeller

Buch (2023)
Hanser (Verlag)
CHF 125,95
das umfassende Handbuch

von Marc Marburger

Buch | Hardcover (2024)
Rheinwerk (Verlag)
CHF 69,85