Glorf.it

Glorf IT

Bedenkliches aus dem IT-Alltag

30. November 2007 um 21:10

Stored-Procedure-Generator

In seinem Artikel "SqlProcedure – Improve Database Performance, Eliminate Errors and Reduce Code" stellt "adambl" ein Werkzeug vor mit dem man automatisiert Stored-Procedures für seine Datenzugriffsschicht generieren lassen kann.

This article includes a utility to generate wrappers for stored procedures that improve performance and eliminate certain run-time errors, and a Framework for unit testing of the wrappers.

Background

If you are using an ORM Framework for managing data persistence (like NHibernate), then you don't have the problem this article tackles, but if your code has a hand-crafted data access layer and executes stored procedures with SqlDataReader, then read on.

In der Vergangenheit musste ich leider sehr oft erleben, dass generierter Code häufig genug suboptimal war. Andererseits sollte eine mittelmäßige Prozedur für 80% der Fälle reichen, vielleicht sogar für 95%, je nach Anforderungen. Wir bedienen beispielsweise eher kleine und mittlere Büros, da sind es bestimmt 90%. Wenn man an die Fälle geht, die den Hotspot bedienen, dann kann man ja immer noch Hand anlegen. Sollte man allerdings Anwendungen für massive-parallele Bearbeitungen schreiben, dann empfehle ich für alles durchdachte Handarbeit…

Ein unschätzbarer Vorteil: Wenn man bei Änderungen in der Datenbank nur auf das Knöpfchen drücken muss und die meisten Prozeduren sind automatisch angepasst, dann ist das natürlich ein riesen Produktivitätsgewinn.

Wer sowas braucht, der sollte sich das Teil mal ansehen, bevor er sich selber ans Werk macht. Vielleicht ist es ja parametrisierbar oder über Templates steuerbar (geht aus dem Artikel nicht hervor). "Not invented here" ist mega-out. 😉

Da geht lang.

29. November 2007 um 23:33

Reguläre Ausdrücke in TSQL

Eigentlich finde ich alle Artikel von Robyn Page und Phil Factor (ein Pseudonym) von sehr gut. Sie sind gut durchdacht und bieten gerne unkonventionelle Ansätze. Erst neulich las ich den Artikel A T-SQL Regular Expression Library for SQL Server 2005 in dem Steve Abraham eine TSQL-Funktion beschreibt, um damit reguläre Ausdrücke in TSQL zu ermöglichen. Schon zu dem Zeitpunkt nahm ich mir vor das mal zu testen.
Robyn und Phil machen das gleiche einfach über OLE-Automation. Natürlich hat das den Nachteil, dass man das am Server erlauben muss, aber es ist einfach und flexibel. Die Performance habe ich nicht gemessen, nach deren Aussage sollte CLR aber schneller sein. Dennoch gefällt mir der Ansatz sehr gut. Egal für welches der beiden Modelle man sich entscheidet, der Artikel ist für beide lehrreich.

Ein Beispiel für eine schon recht komplexe Abfrage mittels TSQL:

--A valid email address?
SELECT dbo.RegexMatch('^(([a-zA-Z0-9!#\$%\^&\*\{\}''`\+=-_\|/\?]+(\.[a-zA-Z0-9!#\$%\^&
\*\{\}''`\+=-_\|/\?]+)*){1,64}@(([A-Za-z0-9]+[A-Za-z0-9-_]*){1,63}\.)*(([A-Za-z0-9]+[A
-Za-z0-9-_]*){3,63}\.)+([A-Za-z0-9]{2,4}\.?)+){1,255}$','Phil.Factor@simple-Talk.com')

Wer gerne solche Dinge machen würde, der sollte unbedingt den Artikel "TSQL Regular Expression Workbench" lesen…

28. November 2007 um 23:37

AddIns für das Management-Studio

Passend zu der Diskussion neulich über die AddIn-Programmierung des Visual-Studio kann man noch tiefer in die Trickkiste greifen und AddIns für das SQL-Server-Management-Studio schreiben. Wenn man sich nicht davon abschrecken lässt, dass es weder supported noch dokumentiert ist, dann scheint es ganz gut zu klappen.

  • In dem Artikel "The Black Art of Writing a SQL Server Management Studio 2005 Add-In" beschreibt Joseph Cooney ganz gut , wie man selber so ein AddIn schreiben kann. Wenn ich mal irgendetwas in dem Tool vermissen sollte, dann probiere ich das mal aus. Meinen besten Dank schon mal vorab an Joseph.
    Das dort beschriebene AddIn sieht auch ganz nützlich aus. Das werde ich sicher dienstlich nutzen können.
  • Wenn man gerne ein Datenbank-Snapshots mit dem Management-Studio anlegen will, dann kann man sich bei Sean Price ein AddIn laden.
  • Dateien in einem Projekt sortieren kann man mit einem AddIn von Jasper Smith. OK, es ist eigentlich ein externes Tool, aber trotzdem nützlich.
  • Mit dem AddIn Data-Scripter kann man sich für Tabelle die Daten "skripten" lassen. Das Ergebnis ist ein SQL-File mit vielen INSERTs.

Kennt jemand noch weitere AddIns?

Kostenpflichtige AddIns, wie z.B. SQL-Prompt habe ich übrigens absichtlich weggelassen, weil es mit hier eher darum geht die Community an dieser Stelle zu fördern.

27. November 2007 um 14:01

Spielzeugkauf: keine Wunschlisten von Kindern erwünscht?

Ich durfte letzte Woche einen Kurs belegen, der uns nahe bringt, wie wichtig unsere Kunden für uns sind. Genaugenommen ging es um den Umgang mit Reklamationen. Nun habe ich zwar eigentlich nicht viel mit Kunden zu tun, in Wirklichkeit aber dauernd: immer wenn es Probleme gibt, die unsere Hotline nicht lösen kann, z.B. eigenwillige Fehler im Zusammenhang mit Datenbanken oder auch gleich völlig defekte Datenbanken. Dann versuchen wir alles, um dem Kunden zu helfen, ganz egal ob "wir" das Problem verursacht haben oder nicht. Ich finde unsere Firmenpolitik an dieser Stelle richtig gut. Das es auch anders geht, musste ich privat jetzt selber erleben.

Wegen der Einstimmung war ich gestern ganz geschockt als mir meine Mutter von Ihrem Erlebnis mit dem Versand "Walz-Kids" berichtete. Der Hintergrund ist ganz einfach: Meine jüngere Tochter hat heuer erstmalig eine echte Wunschliste gemacht. Weil vor Kurzem ein Weihnachtskatalog von "Walz-Kids" kam, forschte sie den auch gleich durch und schrieb gewissenhaft ihre Wünsche mit Name und Seitenzahl auf. Sie war zu recht sehr stolz darauf.
Einige Wünsche gaben wir dann mit der Telefonnummer der Bestellhotline an meine Mutter weiter. Ist ja eigentlich optimal: Sie kann es von daheim bestellen und weiß sicher, das es genau das Gewünschte ist. Alle könnten somit zufrieden sein.

Mit der genauen Bezeichnung und der Seitenzahl konnte meine Mutter aber dort nicht punkten. Man muss schon die exakte Bestellnummer wissen. Weil meine Mutter den Katalog nicht bekam, wusste sie die freilich nicht. Auf die Bitte meiner Mutter doch mal in dem Katalog nachzusehen, wurde sie von der Versandmitarbeiterin so abgefertigt, dass sie sicher keine Lust mehr hat dort etwas zu bestellen. Weil es doch so viele Kataloge von der Firma gäbe und es womöglich doch nicht im aktuellen Katalog sei und das ja auch viel zu lange dauere und sie dann ja nie fertig würde, müsse meine Mutter sich von der Enkelin schon die Bestellnummern durchgeben lassen, sonst würde daraus nichts. Interessant, dass man an solchen Dingen gut erkennen kann, wie eine Firma für sich "Service" definiert.

Da wir von unserer Kleinen nicht erwarten, dass sie die langen Bestellnummern exakt schreibt oder diktiert, haben wir sie meiner Mutter dann durchgegeben. Aber der Anspruch irritiert mich sehr: ich hatte erwartet, dass eine Firma, die einen Spielzeugkatalog vor Weihnachten verschickt, davon ausgeht, dass Kinder ihn sehen und sich daraus Sachen wünschen. Wenn sie davon ausgehen, dass Kinder auf den Wunschzettel die genaue Bestellnummer schreiben, dann ist dass meiner Ansicht nach eine völlig überzogene Erwartung. Diese Nummer ist ein firmeninternes Ordnungskriterium mit dem der Kunde rein gar nichts zu tun hat, sie ist zudem fehleranfällig und überhaupt nicht erwartungskonform, die Artikelbezeichnung und die Seitenzahl sollten allemal reichen. Aber offensichtlich will die Firma keine Käufe, die allein auf der Wunschliste eines Kindes basieren.

Unser Resümee: Rechtzeitig vor der nächsten Geschenkezeit werden wir unserer Tochter sagen, dass sie von der Firma nichts auf den Wunschzettel schreiben soll, was es nicht auch woanders gibt.

26. November 2007 um 20:36

Webdesign in verschiedenen Browsern ansehen

ScreenshotsWenn man seine Webseite mal mit einem ganz anderen Browser unter einem anderen Betriebssystem ansehen will, der kann unter browsershots.org frei wählen was man sehen will. Von der angegebene Seite wird dann ein Screenshot mit dem Browser angefertigt. Neben den Browsern kann man auch noch vorgeben, ob Java/JavaScript/… erlaubt wird oder eine bestimmte Bildschirmauflösung. Echt klasse.

Manchmal ist die Warteschlange recht lang. Dann würde ich es einfach später versuchen.

24. November 2007 um 00:00

Visual-Studio-2008-Features

Auf dem Blog "Microsoft .NET Support" findet man eine ganze Liste von netten Features für das frisch freigegebene Visual-Studio-2008, die der Autor besonders wichtig findet. Viele von denen machen richtig Lust damit zu arbeiten.

Schau mal da: "22 New Features of Visual Studio 2008 for .NET Professionals at Microsoft .NET Support"

22. November 2007 um 22:58

SQL Server 2008: Transparent data encryption

Nachdem der CTP5 des SQL-Servers-2008 frisch draußen ist, kommt mir der Artikel von Laurentiu Cristofor über eines der ganz großen Features ganz gelegen: "Transparent data encryption".

Dazu muss man lediglich pro Datenbank festlegen, dass die Datenbank verschlüsselt werden soll und schon muss man sich um weiter nichts kümmern. Naja, fast nichts…

ALTER DATABASE SET ENCRYPTION [ON | OFF].

Sehr schade, dass das nicht schon im SQL-Server-2005 drin war…

Update: Mein Kollege Markus machte mich darauf aufmerksam, dass dieses schicke Feature nur in der Enterprise-Edition (und der Developer-Edition) verfügbar sein soll. Echt schade.

22. November 2007 um 19:02

XPath Syntax

Für den Abendschulkurs letzten Samstag musste ich mir im Schnelldurchlauf mal wieder die XPath-Syntax ansehen. Dazu eignet sich die Seite "XPath Syntax" auf w3schools.com sehr gut.

Um sich mal die Wirkung von XPATH-Ausdrücken vor Augen zu führen (ohne gleich ein teures Tool kaufen zu müssen), eignet sich der XPATH-Visualizer besonders gut.

21. November 2007 um 20:01

beabsichtigte Design-Schwächen

Irgendwie muss ich immer wieder an den Artikel über beabsichtigte Designschwächen denken seitdem ich ihn das erste Mal las. Die Idee ist so einfach und bestechend. Wenn die Becher die Form von Eistüten haben (keine Stellfläche) dann bleiben die Leute nicht zu lange an den Tischen – ein Nutzen für das Stehcafe. Wenn das Lesepult eine schräge Fläche hat, dann verschlabbert niemand seine neben die Bücher gestellten Getränke – ein Nutzen für die Bibliothek. Der Nachteil darf halt nicht so groß sein, dass die "Kunden" unzufrieden werden.

Ich bin sicher, dass es davon auch sehr viele Beispiele in der Software gibt. Blöderweise fällt mir keines ein. OK, im Artikel wird das Beispiel genannt, dass es bei Google-Mail sehr umständlich ist, wenn man etwas löschen will. Man kann sicher versuchen durch gezieltes Erschweren den Kunden davon abzuhalten bestimmte Dinge zu tun. Kennt da jemand Beispiele?

Aber kann man eine Software auch so schreiben, dass es umständlich ist, wenn man keine Datensicherung einrichtet? Wahrscheinlich nicht, weil man es dazu erschweren müsste etwas nicht zu tun… 😉

21. November 2007 um 19:54

kostenlose Werkzeuge für den SQL-Server

Die von Mladen Prajdić zusammengetragene Liste mit kostenlosen Werkzeugen für den SQL-Server ist wirklich lang. Für mich waren vorwiegend die Tools in der Rubrik "Non MS stuff" interessant. Einige davon scheinen für meine tägliche Arbeit nützlich zu sein. Bzw. adressieren Probleme von denen mir Kollegen berichteten…

Schau mal da: Free SQL Server tools that might make your life a little easier

20. November 2007 um 21:27

Enterprise-Wallpapers

Jetzt musste ich doch erst wieder mühsam den Link auf die Enterprise-Wallpapers raussuchen. Der Link ist schon etwas ältlich, aber ich lege ihn mal hier ab, dann finde ich ihn beim nächstem Mal wenigstens sofort…

Da ist er: StarTrekDesktopWallpaper.com
(Meine Favoriten sind die drei NX-01-Bilder 1. Reihe Mitte, 2. Reihe Mitte und links)

19. November 2007 um 19:28

Die Mitarbeiter sind die Stars

Bei uns wird gerade eine Aktion durchgezogen, die die Mitarbeiter dazu bewegen soll sich wieder stärker mit der Firma zu identifizieren (nachdem einige Jahre lang mit verschiedenen Maßnahmen genau das zerstört wurde). Die Firma wird dabei ins Zentrum gerückt, OK, eigentlich die Marke. Das findet ein paar begeisterte Anhänger, die meisten warten erst mal ab, wie sich die Arbeitsbedingungen oder Netto-Gehälter in nächster Zeit entwickeln… 😉

Das es auch ganz anders geht, beweist der Artikel "Hamburger im Sammelrausch". Hier wird nicht die Firma ins Zentrum gerückt, sondern die Mitarbeiter. Die Firma identifiziert sich mit den Angestellten und beweist damit sowohl Vertrauen als auch Selbstbewusstsein.

"Unsere Busfahrer sind Stars zum Anfassen", betont Unternehmenssprecher Kay Goetze.
Zitat „Unsere Busfahrer leisten eine tolle Arbeit und verdienen Anerkennung.“
Die Verkehrsbetriebe Hamburg-Holstein haben die Aktion "Ein Herz für Busfahrer" im März dieses Jahres ins Leben gerufen. Die Idee zu einem Sammelalbum ist im letzten Jahr während der Fußball-Weltmeisterschaft entstanden. Mit dem Sammelalbum rückte der Nahverkehrsbetrieb seine Mitarbeiter ins Rampenlicht. Das hat es zuvor noch nie gegeben.

Die Bilder würde ich vermutlich auch sammeln. Naja, OK, allerdings nicht gerade die Bilder von Lokführern. 😉