Home  |  Über den Autor  |  Impressum  |  .NET Developer Group Braunschweig  |  AX Solutions

RSS 2.0 | Atom 1.0 | CDF | Send mail to the author(s)  
 Monday, March 08, 2010

Der folgende Blogeintrag stammt von Waldemar Cichon, einem Mitglied der .NET Developer Group Braunschweig. Waldemar hat bei einer unserer Verlosungen eine Lizenz vom Report Sharp-Shooter gewonnen und sich gewogen gefühlt einen Erfahrungsbericht darüber zu schreiben. Da Waldemar kein eigenes Blog hat, stelle ich seinen Artikel als Gastbeitrag in meinem Blog bereit:

 

Report Sharp-Shooter for Silverlight

von Perpetuum Software (www.perpetuumsoft.com).

Durch einen Zufall gewann ich eine Lizenz des Report Sharp-Shooters. Da meine bisherigen Erfahrungen mit Reportwerkzeugen sich auf Crystal Reports sowie aus ganz alten Tagen mit Quick Report in Delphi beschränken und ich mich nie so richtig mit ASP.NET in Verbindung mit Ajax anfreunden konnte freute ich mich. Bis zu dem Zeitpunkt habe ich schon meine ersten Erfahrungen mit Silverlight gemacht (Versionen 2. und 3.) und es gefiel mir sehr. Jedoch gehören zu den meisten kommerziellen Anwendungen Druckausgaben zwingend dazu, also kam die Report Sharp-Shooter-Lizenz wie gerufen.

Aber fangen wir mal bei Adam und Eva mal an.

Nachdem die Firma Adobe mit ihrem Flash-Plugin sehr große Erfolge als RIA-Plugin (Rich Internet Application) im Worldwide Web erzielen konnte begeben sich Microsoft mit dem eigenem Produkt Silverlight sowie SUN (oder muss man bereits Oracle schreiben?) mit Java FX auf Kriegspfad gegen Adobe. Derzeit ist die Erfolgsrate noch nicht umwerfend – gegenüber fast hundertprozentiger Anwesenheit von Flash setzt Java FX als auf Java aufsetzendes Plugin mit ca. 75% entgegen sowie Microsoft mit immerhin mittlerweile über 50%.

Silverlight ist ein kleinerer Bruder des WPF (Windows Presentation Foundation). WPF ist eine neue, auf XML basierende deskriptive Methode der GUI-Implementierung bietet. Silverlight wird als ein Plugin auf dem Client-Rechner installiert und unterstützt mittlerweile die wichtigsten Browser unter Windows und Mac-OS. Unter Linux wird von das von Microsoft unterstützte Moonlight als kompatible Alternative angeboten. Musste man noch unter der Version 1.x mit Javascript auf der Client-Seite begnügen, programmiert man seit 2.0 sowohl auf der Client- wie auf der  Serverseite in einer der beiden Haupt-DotNet-Sprachen. Somit steht einem .NET-Programmierer nichts mehr im Wege, seine Anwendungen komfortabel ins WWW zu portieren. Er muss sich nicht mehr mit HTML, Javascript und AJAX herum ärgern sondern kann die komplette Programmierung in der Sprache seiner Wahl (C# oder VB.NET) abwickeln.
Damit kann er dann sehr anspruchsvolle Internetanwendungen entwickeln, die einfacher zu programmieren und viel näher an Winforms liegen als unter ASP.Net. Diese erreichen sogar unter Einsatz von Ajax nicht den Bedienkomfort einer Silverlight-Anwendung.

Will man dem Benutzer jedoch basierend auf seinen Eingaben eine ansprechende und druckbare Ausgabe liefern, womöglich Statistiken visualisieren oder mathematische Zusammenhänge in Graphen darstellen, wird er von seinen derzeit erfolgreich eingesetzten Produkten meist im Stich gelassen. Darüber hinaus wirkte Crystal Reports, das mit Visual Studio ausgeliefert wurde, nie richtig integriert.
Eine Lösung für dieses Problem wird von der bisher noch nicht sonderlich in Erscheinung getretene Firma Perpetuum Software geboten. Sie ist vollständig in C# geschrieben und fügt sich harmonisch in die Programmumgebung ein.
Das Programmpaket gibt es in zwei Versionen – einer älteren, die für Programme unter ASP.NET  1.1 und 2.0 lauffähig sind, geschrieben wurde. Mich interessierte die neue Version, die Silverlight Version 3.0 voraussetzt. Zwar ist beim Download-Link noch die Version 2.0 von Silverlight aufgeführt, bei den Anforderungen in der Dokumentation ist aber von der aktuellen Version 3.0 die Rede.
Im Lieferumfang befinden sich außer dem Framework, das die Klassen zur Ausgabe und Formatierung von Reports und Charts beinhaltet sowie dem Report-Editor, der komfortabel aus dem Visual Studio aufgerufen wird zwei Import-Programme, die das Konvertieren von bestehenden Crystal Reports und Active Reports-Dateien in native Sharp-Report-Shooter-Dateien ermöglicht. Dadurch erspart man sich in vielerlei Fällen die erneute Editierung von bereits bestehenden Listen und Charts.

Durch die Integration des Editors in die Toolbox von Visual Studio kann man ihn schnell und ohne Aufruf von externen Programmen erreichen. Die Reports bauen direkt auf einem DataSet auf und  beinhalten die dort entnommene Tabellen und deren Felder. Somit können dort die gleichen Steuerungs- und Filtermechanismen wie auch bei der „gewöhnlichen“ Programmierung eingesetzt werden.
Die Möglichkeiten erschließen eine sehr große Bandbreite. Von üblichen Reports, die man für Angebote, Rechnungen und übliche Listen einsetzen kann, über automatische Gruppierungen sowie Master-Slave-Reports bis zu OLAP und Pivot-Tabellen sind einem alle Möglichkeiten der Datenausgabe und -konsolidierung geboten und dieses weitestgehend fast ohne Programmierung. Die Reports können durch Barcodes, Bilder, diverse 2- und 3-dimensionale Charttypen bis hin zu Instrumenten-Abbildern angereichert werden.
Natürlich möchte der Benutzer gerne auch die Ergebnisse auf Papier sehen oder sie per Mail versenden. Auch hier gibt sich das Paket keine Blöße: obwohl der Ausdruck seitens Microsoft erst ab der kommenden Version 4.0 möglich sein wird, kann der Sharp-Shooter ohne Probleme seine Bildschirmausgabe auch auf dem angeschlossenem Drucker zu Papier bringen. Benötigt man die Ausdrucke in elektronischer Form, ist der Export in alle heutzutage für den Zweck üblichen Formate möglich. Angefangen von PDF sowie deren Microsoft-Pendant XPS über HTML und RTF bis hin zur Excel sowie der rein textlichen Ausgabe in CSV oder ein Plain-Text-File.

Fazit: Die Programmierer von Pertuum-Software haben beim Report Sharp-Shooter ganze Arbeit geleistet und haben ein rundum solides Werkzeug für die Reportausgabe im Internet geschaffen.
Ob die Software auch im harten Alltag das Versprochene hält, konnte ich angesichts der Kürze des Tests nicht evaluieren. Daher erfolgt nach einiger Zeit ein weiterer Artikel, bei dem ich auf die Einzelheiten, Probleme und Lösungen eingehen werde.

posted on 3/8/2010 12:16:55 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 Monday, June 15, 2009

Aufgrund der besseren Wartbarkeit sind bei unseren Projekten die Datenbank-Skripte für die Entwickler in kleine Häppchen geteilt. Für Kunden benötigen wir aber natürlich nur ein Skript, das alle Änderungen in einer Datei zusammen fasst.

Da ich mich schon immer mal mit der Powershell beschäftigen wollte, dachte ich, das wäre mal eine gute Gelegenheit damit mal rumzuspielen.

Entstanden ist daraus das folgende Skript:

 

#    -------------------------------
#    GenerateDatabaseUpdate.ps1
#    Author: Karim El Jed
#    -------------------------------
#    Mit diesem Skript können mehrere kleine Datenbankskripte zu einer Datei zusammengefasst werden.
#
#    PARAMETER:
#            -from    Die Datenbankversion, die aktualisiert werden soll (immer in der Form "x.y" angeben!)
#
#            -to        Die Datenbankversion auf die aktualisiert werden soll (immer in der Form "x.y" angeben!)
#
#            -dir    Spezifiziert das Verzeichnis, in dem die Ordner mit den Update-Skripten sind
#
#    BEISPIEL:
#            .\GenerateDatabaseUpdate.ps1 -from 1.0 -to 1.3 -dir C:\temp\Updates
#
#    Die einzelnen Skripte müssen in Ordnern unterhalb des in dir spezifizierten Verzeichnisses in der richtigen Reihenfolge (nach Namen sortiert) liegen.
#    Beispiel: "010_Skript1.sql", "020_Skript2.sql"
#    Die Unterordner müssen der Namenskonvention "[minorversion] to [majorversion]" folgen.
#
#    c:\temp\updates
#        -> 1.0 to 1.1
#        -> 1.1 to 1.2
#        -> 1.2 to 1.3

param([string]$dir, [string]$from, [string]$to)

$directory = new-object IO.DirectoryInfo($dir)
write-host "Dir:" $directory.FullName

$fileName = $directory.FullName + "\update " + $from + " to " + $to + ".sql"

$file = new-object IO.FileInfo($filename)

write-host $file.Fullname
if($file.Exists)
{
    $file.Delete()
}

$dirs =  $directory.GetDirectories("* to *")
$nl =  [Environment]::NewLine

foreach ($d in $dirs)
{
    $s = @($d.Name.Split(" "))
    $f1 = [float]::Parse($s[0].Replace(".", ","))
    $f2 = [float]::Parse($s[2].Replace(".", ","))

    if($f1 -ge $from)
    {
        if($f2 -le $to)
        {
            $parseDir = $directory.FullName + "\" + $s[0] + " to " + $s[2]

            $nl + "-- ++++++++++++++ " + $s[0] + " to " + $s[2] + " ++++++++++++++" + $nl >> $filename
            dir $parseDir | foreach-object { Get-Content $_.FullName >> $fileName }
            write-host "$parseDir ..."
        }
    }   
}

write-host "$nl Skript saved as '$filename' $nl"

posted on 6/15/2009 9:12:38 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 Thursday, May 24, 2007

Nach dem ich es nun nach Stunden endlich geschafft habe eine BCM 2007 Datenbank auf einem reinen Server zu installieren und vom Client darauf zuzugreifen muss ich mein Erfolgserlebnis doch glatt mit Euch teilen.

Nach dem Durchforsten des Internets bin nach vielen Forumseinträgen mit gleicher Problemstellung, aber ohne Lösung auf folgendes Dokument gestoßen:

Deploying Outlook 2007 with Business Contact Manager in a Remote Database Configuration

Super, dachte ich. Eine Anleitung von Microsoft, da kann ja fast nix mehr schief gehen. Denkste ich hab zwar sowohl eine neue, als auch eine bestehende Datenbank gehabt, aber der Client konnte die entsprechende Datenbank immer nicht finden.

Zum Glück habe ich nach einiger Zeit weitergoogeln folgendes Tool gefunden:

Outlook 2007 with Business Contact Manager: Database Admin Tool

Damit war das Ganze ein leichtes. Einfach installieren, neue DB erstellen und mit dem Client verbinden....MEEP!!! Oder auch nicht :(

Das Problem war aber schnell behoben. Einfach in der Tabelle OrgTable in der Spalte LocaleID den Wert von "en-US" auf "de-DE" ändern. Dann klappt's auch mit dem Client.

Mit einer bestehenden Datenbank funktioniert das auch wunderbar:

1) Datenbankdateien auf den Server kopieren

2) Im Management Studio die Datenbank anhängen

3) Ggf. in der Tabelle OrgTable den Wert LocaleID auf "en-US" setzen

4) In der Tabelle OrgTable den Wert SharedServer auf den Namen des Rechner mit der Datenbank setzen

5) Admin-Tool starten und "Share a database" auswählen

6) Ggf. in der Tabelle OrgTable den Wert LocaleID auf "de-DE" setzen


Weiterführende Links:

Business Contact Manager Team Blog

posted on 5/24/2007 2:00:58 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [15]

 Friday, May 11, 2007

Lange hat's gedauert, aber nun ist es soweit: Die Internet Explorer Developer Toolbar ist in der Version 1.0 erschienen. Neue Features gegenüber der Beta 3 scheint es allerdings nicht zu geben, sondern nur ein paar “fit-and-finish improvements" wie es das IE Team schreibt.

Download und Releaseinfos gibt's hier.

posted on 5/11/2007 8:42:46 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 Wednesday, October 18, 2006

SQL Scripter ist ein kleines aber sehr nützliches Tool, mit dem man Daten aus einem SQL Server (7.0/2000/2005) in T-SQL Skripte verwandeln kann. Sehr nützlich, wenn man Tabelleninhalte von einer Datenbank in eine andere schaufeln muss.

Das Programm ist Shareware, aber man kann es eine ganze Weile lang kostenlos testen. Downloaden könnt Ihr es hier.

posted on 10/18/2006 8:09:02 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]