Donnerstag, 20. Dezember 2007

Umbraco - ein .NET OpenSource CMS

Umbraco? Noch nie gehört? Keine Angst, es handelt es sich dabei nicht um eine neue, hochansteckende Krankheit, sondern um ein auf Microsofts ASP.NET basierendes OpenSource CMS.
Das Potential, jemanden zu infizieren hat das System aber dennoch. Ich finde das System macht schon einen recht erwachsenen Eindruck und hat einiges auf der Pfanne. Allerdings muss man das System zunächst schon verstehen um zu ersten Erfolgserlebnissen zu kommen.
Das System verfügt natürlich über ein ausgeklügeltes Templatesystem, das den Masterpages in ASP.NET ähnelt.
Über Templats und Dokumententypen können die Eigenschaften einer Seite definiert werden, das Anlegen und Pflegen einer entsprechenden Seite ist danach sehr einfach.
Aber wie gesagt, den Durchblick der Zusammenhänge was die Dokumententypen und Templates angeht muss man erst mal haben, dann ist allerdings schon sehr viel geschafft und es wird klar wie das System tickt.
Im Prinzip kann man sich beliebig viele eigene Datentypen und auch Dokumententypen anlegen (zu den standarmäßig vorhadenen) womit eine maximale Flexibilität gegeben ist. Eigentlich kann man sagen, dass eine Dokumententyp aus einem oder mehreren Datentyen besteht, womit man sich beliebige Dokumententypen erzeugen kann (das könnte dann zum Beispiel ein Newsbeitrag mit Headline, Teaser, Text und ein Bild sein). Über ein News-Template könnten dann die entsprechenden Daten angezigt werden.

Damit aber nicht genug: Über ein Macro-System ist es möglich weitere Funktionalitäten (z.B. Listen) zu integrieren. Derzeit können diese Macros mit XML-Stylesheets (XSLT), .NET Usercontrols, .NET Customconmtrols (z.B. aus Assemblies) oder per Python umgesetzt werden; womit eigentlich keine Wünsche mehr offen bleiben
dürften.

Mein vorl. Fazit:
Auch wenn ich selbst erst vor Kurzem mal einen Blick auf Umbraco geworfen habe, bin doch positiv überrascht und von der Vielfalt der Möglichkeiten angetan. Dennoch schätze ich, dass wenn eine ernsthafte und tiefergehende Verwendung angestrebt werden sollte, doch einiges an Einarbeitungszeit nötig sein wird um in der Lage zu sein, komplexere Anwendungen umsetzen zu können.
Aber Trotzdem:
Wer ein cooles (freies) CMS auf .NET-Basis sucht, sollte sich Umbraco auf jeden Fall mal etwas näher anschauen. Das System kann unter Umbraco.org runtergeladen werden.

Anbei ein paar Screenshot des Adminbereiches



Mittwoch, 19. Dezember 2007

Subsonic - ein kleiner Erfahrungsbericht (Teil 1)

Seit gut einem halben Jahr verwende ich nun hin und wieder SubSonic. Darauf gekommen bin ich eigentlich mehr durch Zufall über das PayPal-Starterkit (inzwischen dashCommerce), welches mit Hilfe von SubSonic umgesetzt wurde.
Inzwischen habe ich SubSonic "lieb gewonnen ;-)" und möchte in kuzer Form meinen Eindruck vermitteln.

Mich überzeugt vor allem die einfache Verwendung und Einbindung von Subsonic in Projekten.
Nach nur wenigen Handgriffen (Subsonic-DLL referenzieren, web.config anpassen) und schon kann SubSonic verwendet werden.
Interessant ist auch, das Subsonic inzwischen auch in Winforms-Anwendungen verwendet werden kann. Meine Erfahrungen mit Subsonic beschränken sich bisher allerdings auf
die Verwendung mit ASP.NET.

Es gibt zwei wesentliche Methoden Subsonic zu verwenden.

a) Codegenerierung durch Subsonic
b) Zugriff auf die Datenquelle über die Subsonic-Querytool

Mit Hilfe der Codegenerierung erzeugt Subsonic den Quellcode für die Datenzugriffsschicht.
Über die web.config kann dabei festgelegt werden auf welche Art und Weise der Quellcode generiert werden soll.
Das bedeutet, dass man z.B. definieren kann, welchem Namespace die erzeugten Klassen zugeordnet werden sollen.
Auch kann festgelegt werden, ob abhängige Tabellen als Properties generiert werden sollen, ob für Stores Procedures ebenfalls Code erzeugt werden soll und und und ...
Prinzipiell wird für eine Tabelle eine Klasse erzeugt, die alle Spalten als Eigenschaften implementiert, und natürlich auch Methoden zur Bearbeitung der Daten bietet (Speichern, Hinzufügen löschen ...)
Zudem wird eine Controller-Klasse erzeugt, die verschiedene Methoden bietet, über die Datensätze in Form einer typisierten Collection zurückgegeben werden können.
Die Methode FetchAll() z.B. gibt eine Collection aller Datensätze der betreffenden Tabelle zurück.
Der generierte Code kann natürlich über ein Templatesystem beeinflusst werden.

Die Code-Erzeugung kann dabei über ein Webinterface der Beispielanwendung (wird weiter unten noch erwähnt), die Sonic.exe bzw. direkt aus VisualStudio erfolgen.

Prinzipiell folgt Subsonic dem Designpattern "ActiveRecord", d.h. pro Tabelle eine Klasse, pro Datensatz ein Objekt.

Neben der Codegenerierung bietet Subsonic mit dem Querytool die Möglichkeit durchaus auch komplexe Abfragen ohne das Schreiben von SQL-Befehlen zur Laufzeit auszuführen.
Intern verwendet SubSonic das SQlCommand-Objekt. Somit ist das Tool auch gegen böse Absichten per SQL-Injection gewappnet.

Ein weiteres, nettes Feature sind die Webtools und ASP.NET-Cntrols die mit Subsonic zur Verfügung stehen.
Die Beispiel-Webanwendung verfügt z.B. über einen Codegerator, der über ein Webinterface bedient werden kann. Dabei kann festgelegt werden, für welche Tabellen die Zugriffsklassen
erzeuigt werden sollen und in welchem lokalen Verzeichnis die erzeugten Klassen gespeichert werden sollen. Es ist dabei auch möglich auszuwählen, ob für die Stored Procedures ebenfalls
Code generiert werden soll. Dazu bieted die Beispielanwendung auch ein Interface, über das alle Daten aller Tabellen (sofern sie die Voraussetzungen erfüllen - z.B. über einen Primary Key verfügen)
angezeigt und auch bearbeitet werden können. Diese Seite verwendet dabei das in Subsonic enthaltene ASP.NET-Cntrol "Scaffold".

Derzeit gibt es folgende Controls, die einfach über die Referenzierung der Subsonic.dll verwebdet werden können:

  • Scaffold

  • QuickTable

  • ManyManyList

  • DropDown

  • RadioButtons


Mit dem Scaffold-Control können alle Daten einer Tabelle schnell und editierbar in einem Gridview dargestellt werden. Im Editiermodus werden dabei verknüpfte LookUp-tabellen berücksichtigt und die möglichen
Auswahlwerte in einer DropDownListe dargestellt.

Damit aber noch nicht genug. Subsonic kann ins VisualStudio integriert werden. Damit lässt sich per Knofdruck der Code generieren, das Datenbankschema und auch ein Sql-Script über das die vorhanden Daten (z.B. Standardwerte)
importiert werden können.

Mein persönliches Fazit:
Daumen hoch! Ich finde das Tool sehr gelungen und insbesondere in kleineren Projekten sehr sehr hilfreich und zeitsparend. Vor allem die einfache Integration und Verwendung
überzeugt meiner Meinung nach. Ein wenig Erfahrung mit .NET vorausgesetzt und man kann ohne große Einarbeitung und Hürden mit Subsonic produktiv werden. Die vom Codegenerator
erzeugten Klassen sind ebenfalls einfach aufgebaut und lassen sich intuitiv verwenden. Ich bin gespannt, was zukünftige Versionen noch mit sich bringen.

Demnächst möchte ich auf meinem Blog noch etwas detailierter auf Subsonic eingehen - mit Codebeispielen etc. // to be continued

Hier findet Ihr alles weitere zuum Thema SubSonic

Mittwoch, 12. Dezember 2007

Microsoft Live Labs - Volta

"The Volta technology preview is a developer toolset that enables you to build multi-tier web applications by applying familiar techniques and patterns. First, design and build your application as a .NET client application, then assign the portions of the application to run on the server and the client tiers late in the development process. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together."
Quelle: http://labs.live.com/volta/

Mit der Veröffentlichung von"Live Labs mit dem Volta Technology Preview" stellt Microsoft ein Toolset zur Verfügung, mit dem mehrschichtige Webanwednungen mit vertrauten Werkzeugen und Techniken erstellt werden können.
Mit dem integrierten End-to-end-Profiling-Mechanismus Rotunda können Entwickler die gesamte Performance ihrer Applikation überblicken und Engpässe aufdecken.

Mehr über Volta ...

Ich hab mir das Teil mal runtergeladen und ausprobiert. Ich muss sagen meine Begeisterung hält sich zunächst noch in Grenzen. Irgendwie war die Anwendung schwerfällig und träge (ich möchte aber nicht ausschließen, dass das an meiner VS 2008 Beta-Installation gelegen hat).
Allerdings brachten drei der Beipielprojekte meine(n) Browser zum Absturz bzw. benötigten eine eeeeeeewiiiiiigeeeee Ladezeit um dann nicht flüssig laufen zu wollen.
Aber ich will nicht meckern, ist ja bis jetzt nur ein "Technology Preview", und tut dem interessanten Ansatz keinen Abbruch.

Ready for take off - Microsoft Produktvorstellung

Der Countdown läuft – bis zur Produkteinführung von Microsoft Windows Server 2008, SQL Server 2008, Visual Studio 2008 und der Deutschen SharePoint Konferenz 2008.

Vom 19. – 21. Februar 2008 in Frankfurt am Main

Melden Sie sich an und erleben Sie mit einem Ticket zwei hochkarätige Veranstaltungen, auf denen Sie nicht nur die neuesten Microsoft-Produkte kennenlernen, sondern in dessen Eintrittspreis auch hochwertige Softwareprodukte* enthalten sind.

Mehr ...

Montag, 3. Dezember 2007

Visual Studio 2008 (Beta 2) deinstallieren

Wie man Visual Studio 8 (Beta 2) rückstandslos von seinem System deintstalliert, erklärt Scott Guthrie auf seinem Blog in seiner Schritt-für-Schritt-Anleitung (" Steps to Uninstall VS 2008 Beta2 before installing the VS 2008 Final Release").
Die Beta-Version sollte vor der Installation der Release-Version deinstalliert werden.

zur Anleitung ...

Samstag, 1. Dezember 2007

Strato Windows-Server - ein Update

Über ein halbes Jahr ist inzwischen vergangen, seit dem ich einen Windows Server bei Strato in Betrieb genommen habe. Nun möchte ich meine durchweg positiven Erfahrungen am Anfang ergänzen.

Der Server läuft einwandfrei und war noch kein einziges mal down oder nicht erreichbar (zumindest habe ich keinen Ausfall mitbekommen).
Die Performance und Erreichbarkeit lässt keine Wünsche offen.
Den Support habe ich einmal in Anspruch genommen, als ich den Server einmal nichterreichen konnte (was aber an unserer Firmen-Firewall lag, wie sich später herausstellte).
Ich hatte sofort einen kompetenten Ansprechpartner am Telefon, der auch das nötige Fachwissen hatte um weiterhelfen zu können.
Insgesamt bin ich also auch jetzt noch positiv von den Leistungen Stratos angetan.
Einzig die Web-Verwaltungs-Oberfläche kommt ein wenig "angestaubt" daher, nichtsdestotrotz lassen sich natürlich alle nötigen Aufgaben durchführen.
Leichte Kritik kann ich somit eigentlich nur an der Onlinehilfe und den FAQ anbringen. Die Menuführung ist meiner Meinung nach etwas unübersichtlich, und bestimmte Anleitungen und Hilfen habe ich nur nach einer Recherche über Google bekommen.

FAZIT:
Nach wie vor kann ich jedem mit ruhigem Gewissen einen Windowsserver bei Strato empfehlen. Das Preis-Leitungsverhältnis ist meiner (subjektiven) Meinung nach absolut super.