Visual Studio und Umbraco (Teil 1)

Dieser Artikel wurde von Do, Hoang Viet am Sonntag, 21. Oktober 2012 verfasst. Aktualisiert: 28.01.2014 18:46:17

Umbraco ist ein flexibles und weitverbreitetes Open-Source-CMS auf Basis von ASP.net. Eine der großen Stärken ist die konsequente und weitestgehende Nutzung von Standardlösungen wie etwa Masterpages, User Controls, Razor Templates usw. Der folgende Artikel bietet eine kleine SetUp Hilfe, wie ihr über Visual Studio die Entwicklung durchführen könnt anstelle des Backend.

Falls ihr die Möglichkeit habt, solltet ihr das Projekt vor dem Start des CMS - also der Webseite - erstellen. In unserem Fall hatten wir Umbraco bereits in Produktion und gehen in diesem Tutorial von einer gleichen Situation aus. Bei einer "Neuinstallation" müssen noch diverse Einrichtungsarbeiten wie SQL-Server vorgenommen werden.

Wir benutzen für die Einrichtung:

  • Entwicklung-PC: Windows 8 und Visual Studio 2012
  • Server: Serverseitig kommt ein Windows 2008R2 mit IIS7.5 und SQL Server 2012 zum Einsatz

Das Tutorial sollte aber auch für andere Versionen laufen.

Motivation

Vielleicht fragt ihr euch, warum wir uns den Aufwand machen, obwohl über das Backend im Grunde alle nötigen "Tools" vorliegen.

Eines der Hauptargumente dürfte die Anbindung an einer Source Version Control sein. Das paralle Arbeiten wird hierdurch möglich, die Versionierung der selbstgeschriebenen Makros und Templates (CSSs, Masterpages, etc.). Zudem können neue Module und Änderungen lokal auf dem Rechner getestet werden, bevor sie im Produktionsserver zum Einsatz kommen.

Weitere Vorteile sind:

  • Code Completion
  • IntelliSense

Visual Studio Projekt erstellen

Als Erstes öffnen wir Visual Studio und erstellen ein neues Projekt vom Typ

ASP.NET Empty Web Application

Dieser ist in der Kategorie Web zu finden. Der Name ist im Grunde frei wählbar. Er sollte aber nicht umbraco, cms oder nach irgendeinem Modul im "bin"-Ordner von Umbraco benannt werden. Wir haben uns für dph_umbraco entschieden.

Anschließend fügen wir dem Projekt den ASP.NET Ordner:

  • App_Browsers
  • App_Code
  • App_Data

hinzu. Hierzu klicken wir im Menü Project > Add ASP.NET Folder > App Browser (analog für die anderen Ordner).

Ordner und Dateien ins Projekt übertragen

Nun laden wir die komplertte Webseite über einen FTP-Client auf den PC in einem Ordner unsere Wahl herunter, der fortfolgend als %OldPage% bezeichnet wird. Wenn ihr eine Neuinstallation durchführt, müsst ihr Umbraco (externe Link) runterladen und entpacken.

Nun kopieren wir über Drag & Drop den Inhalt von App_Browsers und App_Code in die jeweligen Ordner des neuen Projekts. Anschließend kopieren wir folgende Ordner und Dateien in das neue Projekt

  1. config
  2. css
  3. install
  4. macroScripts
  5. masterpages
  6. media
  7. scripts
  8. umbraco
  9. umbraco_client
  10. usercontrols
  11. xslt
  12. default.aspx
  13. web.config

Falls ihr (so wie bei uns der Fall) eigene Ordner und Dateien im Hauptverzeichnis erstellt habt, müsst ihr diese auch ins neue Projekt übertragen.

Falls Visual Studio euch fragt, ob ihr Web.config überschreiben wollt, drückt ihr bitte auf Ja. Wir haben beim Projekt noch die Datei Web.Release.config und Web.Debug.config gelöscht. Diese beiden Dateien werden von Visual Studio genutzt, um die Web.config an die beiden Buildkonfiguration "Release" und "Debug" anzupassen.

Libraries einbinden

Alle notwendigen Bibliotheken von Umbraco sind im Ordner bin untergebracht. Um diese in das neue Projekt zu übertragen, erstellt ihr einen Ordner namens lib und kopiert über Drag & Drop den Inhalt vom bin Ordner ins lib Verzeichnis. Im Grunde müsst ihr nur die Dateien mit der Endung *.dll kopieren.

Anschließend müsst ihr alle *.dll als Referenzen hinzufügen. Überprüft anschließend im References Ordner, dass bei allen *.dlls, die im lib-Ordner die Option "Copy Local" im Properties-Fenster auf "True" gesetzt ist.

vs2012_copy_locale.pngAlle, die eine Neuinstallation anstreben, können nun das Projekt kompilieren und ausführen. Fertig!

App_Data: Program Cache

In den App_Data Ordner lagert Umbraco seinen Cache. Weiterhin nutzen diverse Packages diesen Ordner, um Ihre Dateien zu lagern.

Wir hatten das Problem, dass der vollständige App_Data Ordner auf dem Entwicklungs-PC zu Fehlern geführt hat, die ein Betrieb von Umbraco nicht möglich machten. Daher hatten wir nur den Ordner packages im App_Data ins neue Projekt eingebunden. In diesem Ordner ist die installed/installedPackages.config Datei untergebracht. In ihr werden alle installierten Packages verbunden mit den Dateien gelistet.

Ein Blick hinein verrät uns, dass wir keine Packages haben, die auf App_Data gelagert sind. So konnten wir getrost den restlichen Inhalt ignorieren. Falls ihr Packages dieser Art installiert habt, müsst ihr die jeweiligen Dateien übernehmen.

Konfigurationsanpassungen

Gegebenenfalls müsst ihr die Web.config Datei anpassen. Insbesondere die Credential für den SQL-Server

<add key="umbracoDbDSN" value="abcde" />

Das Projekt sollte nun kompilieren und ausführbar sein. Nun kann das Projekt problemlos ins TFS oder ein andere SVC System commited werden.

Keine Synchronisation

Bitte beachtet, dass neue Macros, Bilder und Dateien, die das Backend (server oder lokal) erstellt, nicht automatisch mit ins Projekt eingebunden werden. Diese müssen manuell eingebunden werden.

Im nächsten Artikel zeigen wir, wie das Deployment automatisiert werden kann.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network