Einblicke in C# 6.0
Von Rainer Stropek, Oliver Sturm, Thomas Claudius Huber und
()
Über dieses E-Book
Mehr von Rainer Stropek lesen
shortcuts SharePoint Kompendium - Bd. 20 Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 21 Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Einblicke in C# 6.0
Titel in dieser Serie (100)
TFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5UX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenEclipse meets Java FX Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Software Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Bewertung: 0 von 5 Sternen0 BewertungenKompaktkurs C# 5.0 Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenNext Level JavaScript: Schlagworte Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenMit Scratch 3 programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenAufsetzen, Testen und Betrieb einer Android-App Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und TypeScript für C#-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 1: Grundlagen und erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenKompaktkurs C# 7 Bewertung: 0 von 5 Sternen0 BewertungenJavaScript Performance Bewertung: 0 von 5 Sternen0 BewertungenHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Bewertung: 2 von 5 Sternen2/5Effektiv Objective-C 2.0 programmieren: 52 Profi-Lösungen für bessere iOS- und OS-X-Programmierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenWicket: Komponentenbasiert und objektorientiert - das alternative Java-Webframework Bewertung: 0 von 5 Sternen0 BewertungenAgile Softwareentwicklung mit C# (Microsoft Press): Best Practices und Patterns für flexiblen und adaptiven C#-Code Bewertung: 0 von 5 Sternen0 BewertungenSprachenkompendium: Vala, Go und Rust Bewertung: 0 von 5 Sternen0 BewertungenAndroid mit Kotlin – kurz & gut: Inklusive Android 8 und Android Studio 3.0 Bewertung: 0 von 5 Sternen0 BewertungenDas Microservices-Praxisbuch: Grundlagen, Konzepte und Rezepte Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform-Entwicklung mit HTML und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenASP.NET Core: Eine Einführung Bewertung: 0 von 5 Sternen0 BewertungenLanglebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen Bewertung: 0 von 5 Sternen0 BewertungenGeräteübergreifende Entwicklung mit RAD Studio Bewertung: 0 von 5 Sternen0 BewertungenBlackBerry-10-Entwicklung mit der Momentics IDE Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5GraphQL: Eine Einführung in APIs mit GraphQL Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
SQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Programmieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Git kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5JavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Die nicht zu kurze Kurzeinführung in MATLAB: Erste Schritte in MATLAB Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenC von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5Python programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenMicrosoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Einblicke in C# 6.0
0 Bewertungen0 Rezensionen
Buchvorschau
Einblicke in C# 6.0 - Rainer Stropek
GmbH
1 Wie das Projekt „Roslyn" im Hintergrund C# revolutioniert
Der Compiler für die C#-Entwicklung ist ein unverzichtbares Werkzeug. Quellcode geht rein, ein Assembly kommt heraus. Solange kein Fehler im Compiler steckt – was äußerst selten der Fall ist – ist er eine im Alltag relativ uninteressante Black Box. Was, wenn der Compiler sich plötzlich öffnen würde? Was, wenn der Quellcode Open Source wird und alles als .NET-Klassenbibliothek zur Verfügung steht? Diesen Schritt hat Microsoft mit dem Projekt „Roslyn" gewagt. In Visual Studio 2015 hat Roslyn die Betaphase verlassen, wurde in .NET Compiler Platform umbenannt und hat den alten C#-Compiler ersetzt. Lassen Sie uns gemeinsam über die Konsequenzen nachdenken und einen genaueren Blick auf die Plattform werfen.
Es gibt unzählige Einsatzbereiche von .NET: Full Clients, Apps, Webseiten, Web Services, Kommandozeilentools, Installer, Datenbanklogik etc. In diesen Bereichen gibt es spezifische Frameworks, Bibliotheken oder NuGet-Pakete. Eine Komponente haben aber alle diese C#-Programme gemeinsam: den Compiler. Er ist das Arbeitspferd aller C#-Entwicklerinnen und -Entwickler.
Der C#-Compiler im Wandel
Der C#-Compiler hat sich im Laufe der Zeit gewandelt. In den ersten Versionen war er ziemlich schlank, da die Funktionen von C# ziemlich nahe an den Möglichkeiten waren, die die zugrunde liegende Plattform – die Common Language Runtime (CLR) und die Microsoft Intermediate Language (MSIL) – bot. Viel von der Arbeit, die in anderen Programmiersprachen der Compiler machen musste, erledigt in .NET der nachgeschaltete Just in Time-Compiler (kurz JIT oder „jitter"), der in .NET sprachenunabhängig ist. Im Laufe der Zeit wurden aber mehr und mehr wichtige Funktionen in die Sprache C# integriert, die kein unmittelbares Gegenstück in der CLR haben. Beispiele dafür sind Lambda-Ausdrücke, Linq und Expression Trees oder async/await. Es ist Aufgabe des C#-Compilers, solche Sprachelemente in IL zu übersetzen. Wenn Sie einmal sehen möchten, was der C#-Compiler der aktuellen Version alles zu tun hat, schreiben Sie ein paar Zeilen asynchronen Code mit Lambdas und async/await. Anschließend verwenden Sie ein Tool wie ILDasm.exe oder .NET-Reflector, und sehen Sie sich den generierten IL-Code an. Sie werden überrascht sein, wie stark der entstehende IL-Code von Ihrem C#-Quellcode abweicht.
Ein Compiler reichte nicht
Neben den funktionalen Erweiterungen der Sprache C# gab es eine wichtige Parallelentwicklung. Die Erwartungen von uns Programmiererinnen und Programmierern an die Entwicklungsumgebung Visual Studio stiegen von Version zu Version. Wir wurden verwöhnt mit Funktionen wie
der Anzeige von Compilerfehlern schon während des Tippens
IntelliSense
der intelligenten Umbenennung
den mächtigen Such- und Navigationsfunktionen wie Find all References oder Call Tree
Tooltips, die eine komplexe, semantische Analyse des C#-Codes zur Editierzeit erfordern und vieles mehr
Diese Features erscheinen aus Sicht der Anwenderinnen und Anwender simpel. Ihre Umsetzung erfordert jedoch tiefgreifendes Verständnis des C#-Codes und der zugehörigen Solution- und Projektstruktur. Der ursprünglich in C++ entwickelte C#-Compiler war dafür nie entworfen worden. Er enthält zwar intern alles, um Funktionen wie die oben genannten umzusetzen, dieses Wissen ist jedoch in einer Black Box verborgen und steht außen nicht zur Verfügung. Als Konsequenz musste Microsoft eine zweite Compilerinfrastruktur für die Entwicklungsumgebung nachbauen.
Diese Notwendigkeit war nicht auf Microsoft beschränkt. Wollte man bisher ein Tool schreiben, das C#-Code analysiert und vielleicht sogar automatische Verbesserungen des Quellcodes anbietet, musste man ebenfalls zumindest einen Teil des C#-Compilers nachbauen. Das war ein Unterfangen, das sich nur wenige große, spezialisierte Teams in der Vergangenheit leisten konnten.
Zeit für einen Neustart
Aus eigener Erfahrung weiß jede C#-Entwicklerin und jeder C#-Entwickler, dass Code, dessen Aufgabe sich im Laufe der Zeit stark erweitert und verändert, nicht besser wird. Auch der Code eines Compilers ist nicht immun gegen das Phänomen von historisch gewachsenem Spaghetticode. Vor einigen Jahren entschied das C#-Team bei Microsoft daher, dass es an der Zeit war, aufzuräumen. Das Projekt mit Codenamen „Roslyn" war geboren. Roslyn sollte nicht nur eine kleine Verbesserungsmaßnahme werden. Microsoft hatte für dieses Projekt weitreichende Ziele:
Der neue C#-Compiler sollte nicht mehr in