dotnetpro 03/2010
Hier finden Sie alle bisher erschienenen Ausgaben und Artikel der dotnetpro.
Als Abonnenent können Sie alle Artikel online abrufen und die zugehörigen
Quelltexte herunterladen.
Sie sind noch kein Abonnent? Dann wird es aber Zeit!
Weiter zur Abo-Bestellung.
Sie haben bereits ein Abonnement? Dann
registrieren Sie es jetzt online!
Zahlreiche kostenlose Online-Artikel finden Sie
hier.
Einzelheft bestellen
Schwerpunkt: Mit NoSQL und .NET Daten speichern
(Seite
10)
Sie hören „Persistenz“ und denken „relationales Datenbanksystem und O/R-Mapper“. Für viele Einsatzszenarien
ist das richtig so.Aber es geht auch viel einfacher. Im Lounge Repository legen Sie einfach Objekte ab.
Im Dateisystem.MitWiederkehr.
(Seite
20)
Webanwendungen mit „User Generated Content“ (UGC) sind überall anzutreffen. Eine geeignete Methode, die riesigen
Datenmengen zu speichern, existiert derzeit noch nicht. StupidDB löst das Problem, ist als Open Source veröffentlicht
und enthält mittlerweile auch Funktionen einer schemalosen Datenbank.
(Seite
29)
Heute sind mit dem Begriff Datenbank meist relationale Datenbanken gemeint. Doch gibt es auch Einsatzzwecke für
Datenbanken, die ohne SQL auskommen. Hier wird ein zurzeit populärer Vertreter dieser Gattung vorgestellt: CouchDB.
(Seite
36)
Einfacher als mit db4o kann man Objekte kaum sichern. Dabei taugt die Objektdatenbank für viele Einsatzzwecke.
Die duale Lizenz erlaubt das kostenlose Entwickeln von Open-Source-Anwendungen, aber auch den kommerziellen
Einsatz gegen entsprechende Gebühren.
Aktuell
Das Herz macht’s
(Seite
3)
So führen Sie Ihr Projekt zum Misserfolg. Heute: Suchen Sie die Mitarbeiter nach den Abschlussnoten aus. Erfolg gibt es
nur mit den Besten.“
AKTUELL
(Seite
6)
Visual Studio 2010 wird deutlich flotter - GraphDB speichert objektorientierte Daten auf Mietbasis - Konferenz-Highlights für Entwickler im Jahr 2010 - Beta von SharpDevelop 3.2 etc.
Architektur
Singularität im Kern
(Seite
132)
Mit LightCore steht ein Microkernel zur Verfügung, der quasi nebenbei auch als Dependency-Injection-Container dient:
Er ist leichtgewichtig, kompakt und vor allem schnell – ohne dass man dabei Features vermissen würde.
Bücher
VIP-Tipp: Unbedingt lesen!
(Seite
42)
Im VIP-Tipp stellt ein Experte Bücher vor, die er persönlich für besonders lesenswert hält. Der VIP-Tipp soll
als Entscheidungshilfe für Softwareentwickler bei der Auswahl der passenden Fachlektüre dienen.
Die Aktion ist eine Kooperation zwischen der Fachbuchhandlung Lehmanns (www.lob.de/viptip), dem Seminaranbieter
Professional Developer College (www.prodevcollege.de) und der dotnetpro (www.dotnetpro.de).
Warten auf die Reader
(Seite
44)
Auf der Consumer Electronics Show im Januar in LasVegas wurden wieder etliche Lesegeräte für E-Books vorgestellt. Besonders interessant: der Skiff Reader.
CD-Inhalt
DVD-Inhalt
(Seite
34)
Tools
Nur in den allerseltensten Fällen reicht für die Softwareentwicklung ausschließlich die Entwicklungsumgebung.
In vielen anderen Situationen ist der Entwickler auf Tools angewiesen. Sei es, um Stringkonstanten in einer
Ressourcendatei anzupassen oder um Fehler zu erfassen und mitzuprotokollieren. Sei es, um Unittests zu
machen oder um Geschwindigkeiten zu messen.Wir haben diesmal mehr als 60 Tools für Sie zusammengetragen,
die in vielen Situationen weiterhelfen können.
dotnetpro.dojo
Wer übt, gewinnt
(Seite
118)
Der Spruch „Übung macht den Meister“ ist abgedroschen, weil oft bemüht, weil einfach richtig. Deshalb finden Sie künftig in jeder dotnetpro einen Dojo, also eine Übungsaufgabe.
Fortbildung
Getestete Tester
(Seite
136)
Sie wollen sich als Softwaretester bewerben? Dann sollten Sie eine Zertifizierung zum Certified Tester nach ISTQB
vorweisen können. Denn diese Qualifizierung setzen viele Unternehmen mittlerweile für ihr Testpersonal voraus.
Doch es gibt auch Kritik, insbesondere am Advanced Level. dotnetpro hat nachgehakt.
Grundlagen
Welchen Typ hat null?
(Seite
130)
Eine weitverbreitete Behauptung besagt, alle Typen in .NET seien von object abgeleitet. Da null nicht nur für alle Referenztypen verwendet werden kann, sondern auch explizit in diese Typen konvertiert werden kann, scheint die Behauptung zu stimmen – wären da nicht einige Sonderfälle, die nicht so recht ins Bild passen.Welchen Typ hat also null?
Mono
Gleichrichter
(Seite
120)
So einfach die plattformübergreifende Softwareentwicklung mit Mono auch ist – die Eigenheiten der Betriebssysteme
lassen sich nicht immer verleugnen. Mono bietet aber eine elegante Möglichkeit an, um Differenzen beizulegen.
Praxis
Das Dependency Inversion Principle (DIP)
(Seite
108)
Eine Hilfsklasse stellt eine Methode zur Verfügung. Die übergeordnete Klasse ruft die Methode auf. Resultat: Die übergeordnete Klasse ist von der untergeordneten Klasse abhängig. So sollte es aber gerade nicht sein.Abhilfe schafft das
Dependency Inversion Principle. Durch die Einführung expliziter Schnittstellen bleiben übergeordnete Klassen unabhängig.
Aus Fehlern lernen
(Seite
112)
Zeitplanung und Aufwandschätzung gehören zu den wenig geliebten Pflichten vieler Softwareentwickler.
Doch zumeist sind sie unumgänglich, weil sie gefordert werden.Aber wenn man nicht umhinkommt, solche Schätzungen durchzuführen, warum sich die Arbeit dann nicht wenigstens so einfach wie möglich machen?
dotnetpro stellt Evidence-Based Scheduling vor.
Auf heißer Spur
(Seite
116)
Logging, Tracing, Caching – alles Dinge, die man braucht, die aber nicht den Kern einer Applikation ausmachen.
Daher lagern Entwickler den hierfür benötigten Code gerne aus, aber wohin? Am besten in einen Aspekt. Dann muss
man nur noch ein Attribut zuweisen. dotnetpro startet eine kleine Serie zur aspektorientierten Programmierung.
Feuer im Griff
(Seite
50)
Mithilfe desWindows-APIs IMAPIv2 lassen sich Daten-CDs und -DVDs brennen. Um die Funktionen dieses APIs
bequem zu verwenden, leistet einWrapper gute Dienste. Er ermöglicht nicht nur das einfache Kopieren von Dateien
und Verzeichnissen, sondern auch Multisessions, das Löschen von CDs und DVDs und Fortschrittsanzeigen beim
Füllen eines Images.
Sicher ohne Hardware
(Seite
56)
Programme kann man heute schützen, ohne dafür auf Hardwareschlüssel zurückzugreifen. Dazu kombinieren
Sie Lizenzschlüssel mit rechnerspezifischen Hardwareinformationen und sichern Programme samt Lizenzierungsdaten
durch Verschlüsselung.
Lizenzierung im Dialog
(Seite
58)
Um die unrechtmäßige Nutzung Ihrer Software zu unterbinden, müssen Sie diese mit Lizenzierungsfunktionen
absichern. Der License Creator arbeitet rein softwarebasiert und greift auf eine .NET-Klassenbibliothek zu,
die ihrerseits anwendungsspezifische Lizenzdateien verwendet.
Sicherer Softwareschutz
(Seite
62)
Um .NET-Anwendungen und -Komponenten vor unrechtmäßiger Nutzung zu schützen, sind nicht nur sichere firmenund
produktspezifische Zugriffsschlüssel und Lizenzen nötig, sondern auch eine nicht umgehbare Codeverschlüsselung.
InishTech bietet eine solche Lösung an.
Die reine Funktion
(Seite
66)
Ein eigenesWPF-UserControl entwickeln? Nichts leichter als das. Die Entwicklungsumgebungen bieten hierfür
reichhaltige Unterstützung an. UmWPF-konform zu sein, müssen die Steuerelemente Funktion und
Darstellung jedoch komplett voneinander trennen. Und das erfordert dann doch ein wenig mehr Aufwand.
URLs verschönern
(Seite
76)
Sowohl Anwender als auch Suchmaschinen mögen einfache URLs, die den Inhalt der jeweiligen Seite klar bezeichnen.
Entwickler hingegen erzeugen mit Vorliebe kryptische URLs, die wenig oder nichts über deren Inhalt verraten.
Die Lösung liegt im URL-Rewriting: Der Anwender erhält einen einfachen und klaren URL, derWebserver übersetzt
ihn in das interne, kryptische Format.
Gezähmte Giganten
(Seite
84)
Data-Warehouse-Tabellen können gigantisch groß werden. Tabellen mit einer Anzahl von Datensätzen im dreistelligen
Millionenbereich sind keine Seltenheit.Aber wie soll man mit solchen Tabellenungetümen performant arbeiten?
Seit dem SQL Server 2005 gibt es eine Lösung:Man teilt sie auf in mehrere Partitionen.
Zusatzkräfte
(Seite
92)
In Windows 7 und Windows Server 2008 R2 verfügt die neue PowerShell über zahlreiche Module, die ihren
Leistungsumfang erheblich erweitern. Die neuen Funktionen erleichtern hauptsächlich das Verwalten
von zentralen Systemteilen wie Active Directory.
WCF synchronisieren
(Seite
98)
Asynchrone Aufrufe von WCF-Diensten sind häufig vorteilhafter als synchrone, weil die jeweiligen Vorgänge
eine gewisse Zeit benötigen und die Oberfläche der Anwendung währenddessen blockieren können.
Silverlight gestattet sogar ohnehin nur asynchrone Dienstaufrufe. Das Problem ist die Synchronisierung
der Ergebnisse. Angepasste Dienstproxies lösen es.
Sandbox
Parasit Support
(Seite
48)
Menschen verändern sich wohl nur, wenn sie Widerstand begegnen.
Erst wenn sie auf ihrem Lebensweg an eine Wand stoßen, ändern sie ihren Kurs. Und selbst dann nicht unbedingt.
Tipps und Tricks
Codierte Zeichenketten
(Seite
121)
Unterschiedliche Formen strukturierter und unstrukturierter Daten und Datentypen gehören zumEntwickleralltag, allen voran Strings.
Kochen mit Patrick
(Seite
122)
Nach den theoretischen Grundlagen im vorangegangenen Heft geht es nun um die Frage, ob und wie man den View State optimieren kann. Zur Belohnung gibt’s danach gefüllte Filokörbchen.
Einzelinstanz-Anwendungen und Prozessoranalyse
(Seite
126)
Benötigen Sie in einem Programm Informationen zu den verfügbaren Prozessoren sowie deren Eigenschaften?
.NET hilft dann kaum weiter, aber die Windows Management Instrumentation (WMI). Die hier beschriebenen Methoden vereinfachen und optimierenWMI-Abfragen.