MSDN Magazin > Home > Ausgaben > 2009 > MSDN Magazin Januar 2009 >  Entwicklertools: Generieren von JavaScript aus ...
Toolbox
C#-JavaScript, der Blog von Eric Lippert und mehr
Scott Mitchell

Alle Preise wurden am 19. November 2008 bestätigt, Änderungen vorbehalten. Die in diesem Artikel vertretenen Meinungen sind ausschließlich die des Autors und spiegeln nicht zwangsläufig die Meinungen von Microsoft wider.


Erstellen von JavaScript für AJAX-Anwendungen mittels C# und Visual Studio
In der Vergangenheit wurde JavaScript als Spielzeugsprache angesehen, die für eine einfache Eingabeüberprüfung und die Bearbeitung des Dokumentobjektmodells (Document Object Model, DOM) von Nutzen war. Aber JavaScript ist in Wirklichkeit eine leistungsfähige und featurereiche Sprache, die den heutigen AJAX-fähigen Websites zugrunde liegt.
Obwohl die Bedeutung von JavaScript in modernen Webanwendungen in den vergangenen Jahren deutlich zugenommen hat, gibt es beim Schreiben von JavaScript-Code im Vergleich zum Schreiben von C#-Code immer noch einen sehr beträchtlichen Unterschied hinsichtlich der Entwurfszeitfunktionalität.
Visual Studio bietet IntelliSense und Debugunterstützung für JavaScript, aber viele JavaScript-Fehler und -Warnungen können bis zur Laufzeit nicht erkannt werden. Andererseits bietet C# Typüberprüfung zur Kompilierzeit, eine stabilere objektorientierte Semantik sowie Tools für die Umgestaltung, das Erstellen technischer Dokumentation und das Durchsuchen von Klassen. Außerdem sind die meisten ASP.NET-Entwickler mit C# besser vertraut als mit JavaScript.
Wäre es nicht schön, wenn Sie C#-Code statt JavaScript schreiben könnten? Dies ist mit Script# (Version 0.5.1) möglich, einer kostenlosen Kombination aus Compiler, Laufzeit und Framework, die vom Microsoft-Softwarearchitekten Nikhil Kothari erstellt wurde. Der Script#-Compiler übersetzt C#-Code in gleichwertigen JavaScript-Code.
Verwenden Sie Script#, um kurze, nicht oft benötigte JavaScript-Funktionen oder Ereignishandler sowie größere JavaScript-Bibliotheken zu erstellen. Mit Script# können Sie ASP.NET AJAX-Komponenten und Verhaltensweisen oder Windows Vista-Sidebar-Minianwendungen erstellen. Der Script#-Compiler kann .resx-Dateien verwenden, um lokalisierte Skriptdateien zu generieren, und kann dafür konfiguriert werden, Veröffentlichungs- oder Debugskripts zu erstellen. (Debugskripts enthalten zur besseren Lesbarkeit Leerzeichen und beschreibende Variablennamen, während in Veröffentlichungsskripts im Interesse der Codekompaktheit unnötige Leerzeichen sowie das Umbenennen von Variablen vermieden werden.) Kurz gesagt, bietet Script# Ihnen alle Vorteile der Arbeit mit C#-Code – Kompilierzeitfehler, vertraute C#-OOP-Syntax und -Semantik sowie bessere Toolunterstützung – und generiert dazu den JavaScript-Code, der für Ihre Webanwendungen oder Sidebar-Minianwendungen erforderlich ist.
Zusätzlich zu einem Compiler enthält Script# eine Laufzeit und ein Framework. Sowohl die Laufzeit als auch das Framework enthalten eine serverseitige Implementierung, mit der Sie beim Schreiben von C#-Code programmieren, sowie eine clientseitige Implementierung, die von dem durch Script#-Compiler generierten JavaScript-Code verwendet wird.
Die Laufzeit definiert das Typsystem und ist obligatorisch. Das Framework ist optional, bietet aber APIs zum Durchführen häufiger Aufgaben wie HTTP-Anforderungen, JSON-Serialisierung, Browsererkennung und so weiter. Das Framework enthält auch Benutzeroberflächen-Steuerelemente und APIs für die Arbeit mit dem Silverlight-Steuerelement im Browser, für den Zugriff auf den RSS-Speicher in Internet Explorer 7 und für den Zugriff auf Microsoft Virtual Earth vom Browser aus.
Denken Sie daran, dass Script# nicht dafür entworfen wurde, vorhandene C#-Anwendungen in AJAX-fähige Webanwendungen zu konvertieren. Vielmehr gibt Script# Entwicklern die Möglichkeit, Webanwendungen oder Sidebar-Minianwendungen durch Schreiben von C#-Code zu erstellen, der dann in JavaScript-Code umgewandelt wird.
Da jedoch keine 1:1-Entsprechung zwischen C# und JavaScript besteht, sind bei der Verwendung von Script# nicht alle C#-Sprachfeatures verfügbar. Zum Beispiel sind keine lesegeschützten Eigenschaften zugelassen, ebenso wie bestimmte Konstrukte und Schlüsselwörter, einschließlich „goto“, „using“, „lock“ und „sizeof“.
Preis: Kostenlos.

Wichtige Blogs
Zu den wichtigsten Merkmalen eines großartigen technischen Blogs gehört Folgendes: häufige, kenntnisreiche und themenbezogene Beiträge, detaillierte Untersuchungen wichtiger Technologien oder Konzepte sowie ein einzigartiger Stil. Sie finden diese Merkmale in genau der richtigen Mischung im Blog von Eric Lippert.
Eric Lippert arbeitet als Senior Software Design Engineer bei Microsoft und war bei den Teams für Skriptsprachen und für C# tätig. Sein Blog bietet viele großartige Beiträge, die sich auf Sicherheit, Leistung und Codequalität konzentrieren, zusammen mit Einträgen zur Sprachsemantik und Features wie Lambda-Ausdrücken, Unveränderlichkeit sowie Kovarianz und Kontravarianz. Er untersucht viele dieser Themen sehr detailliert, oft über mehrere Blogbeiträge hinweg.
Es gibt eine 5-teilige Reihe zu Lambda-Ausdrücken und anonymen Methoden, eine 11-teilige Reihe zur Unveränderlichkeit in C# sowie eine 5-teilige Reihe zur Semantik geschützter Member. Weiterhin finden Sie Beiträge mit Eric Lipperts Erfahrungen und Meinungen zu Möglichkeiten der Verwendung (oder Nichtverwendung) verschiedener Sprachfeatures. Lesen Sie in seinem Blogartikel Abenteuer Codierung etwas über seinen Standpunkt zu Arrays.
Obwohl in vielen der Einträge im Blog komplexe Themen untersucht werden, hat Eric Lippert ein Talent dafür, Konzepte und Theorie in einer einfachen Sprache zu erklären.
Eric Lippert bloggt über Codesicherheit, Leistung und Qualität (zum Vergrößern auf das Bild klicken)


Rechtschreibprüfung für Kommentare, Zeichenfolgen, Markups und Ressourcendateien
Compiler dienen als eine Art von Rechtschreibprüfung. Wenn Sie zwei Buchstaben in einem Methodennamen vertauschen oder sich bei einem Variablennamen vertippen, meldet der Compiler einen Buildfehler. Glücklicherweise sind diese Fehler leicht zu identifizieren, da Visual Studio die entsprechende Stelle mit einer Wellenlinie unterstreicht.
Der Compiler funktioniert jedoch nicht als Rechtschreibprüfung für Quellcodekommentare, für Zeichenfolgen im Code oder in Ressourcendateien oder für HTML-, XML- oder XAML-Markup. Es kann sehr leicht geschehen, dass ein Kommentar mit einem Rechtschreibfehler in die technische Dokumentation gelangt, oder schlimmer, dass eine falsch buchstabierte Zeichenfolge an der Qualitätssicherung vorbei in die Produktion gelangt.
Die gute Nachricht ist, dass es Tools gibt, um die Rechtschreibung von Zeichenfolgen, Kommentaren, Markups und sonstigen Inhalten zu prüfen, die der Compiler nicht sieht. Ein solches Tool ist IntelliSpell 2.0 von ComponentOne. IntelliSpell arbeitet ganz ähnlich wie die Rechtschreibprüfung in Microsoft Office Word. IntelliSpell unterstreicht falsch buchstabierte Wörter mit einer Wellenlinie. Klicken Sie mit der rechten Maustaste auf das falsch buchstabierte Wort, um eine Liste möglicher Korrekturen anzuzeigen. Diese Rechtschreibfehler werden auch im Aufgabenlistenfenster aufgeführt.
Sie können einen Rechtschreibfehler über die Aufgabenliste korrigieren oder zum falsch buchstabierten Wort wechseln, indem Sie in der Aufgabenliste auf das Wort doppelklicken. Die Rechtschreibprüfung kann jederzeit ausgeführt werden, indem Sie die entsprechende Menüoption aus dem Menü „Tools“ oder aus der IntelliSpell-Symbolleiste auswählen. IntelliSpell kann auch dafür konfiguriert werden, die Rechtschreibung automatisch während der Eingabe zu überprüfen und nach jedem Build eine Rechtschreibprüfung durchzuführen.
Standardmäßig prüft IntelliSpell die Rechtschreibung in allen Codedateien, Webseiten, XML-Dateien (einschließlich Konfigurationsdateien), Ressourcendateien und Textdateien. Es ignoriert Wörter mit uneinheitlicher Groß-/Kleinschreibung, Wörter mit Zahlen sowie Internet- und Dateiadressen, wobei diese Regeln und die auf Rechtschreibung zu prüfenden Dateitypen konfigurierbar sind. IntelliSpell bietet Rechtschreibwörterbücher in 16 verschiedenen Sprachen. Diese Wörterbücher können allein oder gemeinsam verwendet werden, wenn Sie eine Rechtschreibprüfung bei lokalisierten Projekten durchführen.
IntelliSpell ist in zwei Editionen verfügbar: eine kostenlose Community Edition und eine Professional Edition zum Preis von 79,99 $. Die Community Edition besitzt die wichtigsten Features – Visual Studio-Integration, Unterstreichung falsch buchstabierter Wörter, Rechtschreibvorschläge über ein Kontextmenü usw. –, enthält aber nicht so viele Features wie die Professional Edition.
Mit der Community Edition können Sie nur eine einzige Datei auf einmal prüfen. Mit der Professional Edition hingegen kann eine Rechtschreibprüfung für ein gesamtes Projekt durchgeführt werden. Auch Features wie Rechtschreibprüfung während der Eingabe, Rechtschreibprüfung lokalisierter Projekte und die Möglichkeit, benutzerdefinierte Wörterbücher zu erstellen, sind in der Community Edition nicht enthalten.
Preis: Die Community Edition ist kostenlos. Die Professional Edition kostet 79,99 $.
IntelliSpell prüft die Rechtschreibung von Zeichenfolgen, Kommentaren und Markups (zum Vergrößern auf das Bild klicken)



Das Bücherregal
Bei allen Berufen und Hobbys gibt es bestimmte Bereiche, die jeder unabhängig von der eigenen Erfahrung kennenlernen sollte. Golfspieler können sich unabhängig von ihren Fähigkeiten immer verbessern, wenn sie das Spiel über kurze Distanzen üben.
Softwareentwickler können nie zu kenntnisreich in Bezug auf die Syntax und die Features von SQL sein. Obwohl es jede Menge Onlineartikel mit Tipps und Tricks zu SQL gibt, habe ich festgestellt, dass die beste Möglichkeit, meine SQL-Fähigkeiten zu verbessern, darin besteht, ein Buch zu diesem Thema systematisch durchzuarbeiten.
Ich habe kürzlich das Buch Pro T-SQL 2008 Programmer's Guide (Apress) von Michael Coles gelesen, das eine eingehende Erörterung der T-SQL-Syntax und -sprachfeatures bietet. Das Buch beginnt mit einem Blick auf die neuen Features in T-SQL 2008, z. B. die MERGE-Anweisung sowie neue Datentypen. Der Autor befasst sich anschließend mit zentralen T-SQL-Konstrukten – benutzerdefinierten Funktionen, gespeicherten Prozeduren sowie Trigger-, XML-, XQuery- und XPath-Unterstützung. Anschließend wird u. a. auf Verschlüsselung, allgemeine Tabellenausdrücke und Fensterfunktionen, SQL-CLR-Programmierung sowie Fehlerbehandlung eingegangen. Jedem dieser Themen ist ein eigenes Kapitel mit detaillierten Erörterungen und Beispielen gewidmet. Die einzelnen Kapitel enden mit einer Reihe von Übungen, deren Antworten im Anhang bereitgestellt sind.
Mir hat besonders das Kapitel zur Leistungsoptimierung gefallen. Dieses Kapitel enthält zunächst einen Überblick darüber, wie SQL Server Ihre Daten auf Datenträgern anordnet und wie sich diese Anordnung auf die Leistung auswirkt, zusammen mit Tipps zur Einsparung von Speicherplatz und zum Speichern geringer Datenmengen. Als Nächstes erörtert Coles die Leistungsvorteile von Indizes und vergleicht gruppierte, nicht gruppierte und gefilterte Indizes. Das Kapitel endet mit einer Diskussion zur Analyse von Abfrageplänen sowie Tipps für das Optimieren von Abfragen.
Pro T-SQL 2008 Programmer's Guide setzt voraus, dass der Leser bereits mit den T-SQL-Grundlagen vertraut ist – es gibt keine für Anfänger bestimmten Erörterungen von SELECT-, INSERT-, UPDATE- oder DELETE-Anweisungen. Außerdem liegt der Schwerpunkt in diesem Buch auf T-SQL. Die Datenbankverwaltung wird nicht untersucht, obwohl es ein kurzes Kapitel zu Tools wie SQL Server, Management Studio, SQL Profiler, SQLCMD und BCP gibt. In einem weiteren Kapitel werden zwei verschiedene Möglichkeiten vorgestellt, mit SQL Server über eine Microsoft .NET Framework-Clientanwendung zu interagieren: mithilfe des ADO.NET-SqlClient-Anbieters sowie mittels LINQ to SQL.
Es ist immer eine gute Investition, sich neue SQL-Fähigkeiten anzueignen und bereits erlernte Fähigkeiten zu üben. Aufgrund der einfachen Sprache, zahllosen Beispielen sowie Übungen am Kapitelende ist Pro T-SQL 2008 Programmer's Guide eine großartige Möglichkeit, etwas über die neuen Features in SQL Server 2008 zu lernen und vorhandene SQL-Fähigkeiten zu verbessern.
Preis: $52.99.



Senden Sie Fragen und Kommentare für Scott Mitchell (in englischer Sprache) an toolsmm@microsoft.com.


Scott Mitchell, Autor zahlreicher Bücher und Gründer von 4GuysFromRolla.com, arbeitet seit 1998 als MVP mit Microsoft-Webtechnologien. Scott Mitchell ist unabhängiger Berater, Schulungsleiter und Schriftsteller. Sie erreichen ihn unter Mitchell@4guysfromrolla.com oder über seinen Blog unter ScottOnWriting.NET.

Page view tracker