Gear up for build

Von Toni Pohl (Gastblogger) Autor Feed 16. March 2014 11:00
Nicht nur für Teilnehmer der kommenden BUILD-Conference 2014 in zwei Wochen sind die vielen Angebote in der Microsoft Virtual Academy (MVA) für Developer interessant: MVA bietet einige Jump Start series mit dem Titel “Building Blocks.” Developer erhalten hiermit kostenfreie Webcasts mit Deep Dives zu den Themen HTML5, XAML, CSS, C#, Mobile Services, Datenhandling und vieles mehr. [More]

Windows Azure im Überblick-App

Von Toni Pohl (Gastblogger) Autor Feed 24. August 2013 07:07
Normalerweise empfehle ich selten Apps. Aber diese App ist für alle an Windows Azure interessierten Benutzer wertvoll: Durch den Tipp von Oliver Michalski in seinem Blog Windows Azure Community Deutschland habe ich die neue App entdeckt. Die Windows 8 App Windows Azure im Überblick wurde von Holger Sirtl von Microsoft Deutschland erstellt und liefert Informationen und Tutorials rund um das Thema Azure. [More]

Neues in Visual Studio 2013 IDE

Von Toni Pohl (Gastblogger) Autor Feed 29. July 2013 11:00
Für Software-Entwickler ist Visual Studio das tägliche Brot. So eignet man sich im Lauf der Zeit viele Wege und Shortcuts an, die den Umgang mit der Entwicklungsumgebung sehr produktiv machen. Mit Visual Studio 2013 Preview wurden viele Dinge verbessert und es gibt auch viel Neues zu entdecken. Die Neuerungen gibt es in einem coolen Video von der Build 2013 zu sehen.
[More]

Windows Phone 8 Development for Absolute Beginners Videos

Von Toni Pohl (Gastblogger) Autor Feed 28. July 2013 12:38
Rina hat vor kurzem in "Windows Phone App Entwicklung für Anfänger" auf den laufenden Coding-Wettbewerb für Windows 8 Apps und Windows Phone Apps hingewiesen. Für alle, die sich bislang noch nicht mit der Programmierung von Windows Phone befasst haben und diejenigen, die tiefer gehen wollen, gibt es eine Reihe von interessanten Tutorials und Websites auf channel9. [More]

Microsoft Jump Start Series für Entwickler

Von Toni Pohl (Gastblogger) Autor Feed 12. May 2013 15:56
Im Mai finden eine Reihe von Jump Start Sessions der Microsoft Virtual Academy für Software-Developer statt. Die virtuellen Trainings sind kostenlos und starten in unserer Zeitzone am frühen Abend. Reinschaun! [More]

Entwicklung von Windows Azure Websites mit PHP – Teil 2.5: Frameworks - MediaWiki

Von David Hainzl (Gastblogger) Autor Feed 19. April 2013 14:50
Herzlich Willkommen bei einem weiteren Teil meiner Tutorial-Serie! Heute werden wir MediaWiki installieren. Und bei dieser Gelegenheit zeige ich euch auch gleich, wie ihr den Windows Azure Storage als Speicherort für die hochgeladenen Dateien verwendet. Ein Speicherkonto anlegen Um die Dateien der Wiki in einem Speicherkonto abzuspeichern, müssen wir dieses zuerst erstellen. Loggt euch also, wie üblich, im Windows Azure Management Portal ein. Solltet ihr noch keinen Zugang eingerichtet haben, so könnt ihr euch gratis ein 90-Tage-Testabonnement holen - siehe dazu auch den Ersten Teil meiner Tutorial-Serie "Entwicklung von Windows Azure Web Sites mit PHP - Teil 0: Allgemeines". Klickt anschließend links unten auf den Knopf "Neu", und wählt den Pfad "Datendienste –> Speicher –> Schnellerfassung" aus. Gebt anschließend eine URL für das Konto ein und wählt die Region und das Abonnement aus. Sobald das Speicherkonto erfolgreich erstellt wurde, klickt im linken Menü auf "Speicher" und besucht anschließend die Detailseite des soeben erstellen Speicherkontos. Klickt nun in der unteren Leiste auf den Knopf "Zugriffsschlüssel verwalten". Im sich öffnenden Fenster kopiert euch den Speicherkontonamen sowie den Primären Zugriffsschlüssel, diese werden wir später benötigen. Warum gibt es einen primären und einen sekundären Zugriffsschlüssel? Stellt euch vor, euer primärer Zugriffsschlüssel sei irgendwie kompromittiert worden, und ihr seid gezwungen, ihn zu ändern. Sollte es nur einen Schlüssel geben, so müsst ihr diesen Schlüssel zuerst neu generieren lassen und könnt ihn erst anschließend bei allen euren Applikationen aktualisieren - diese können, solange das nicht erledigt ist, keinen Zugriff auf die Daten und stehen so im schlimmsten Falle komplett still. Mit zwei Schlüsseln könnt ihr alle eure Applikationen auf den sekundären Schlüssel aktualisieren, diese haben mit diesem genau so viele Rechte wie vorhin und funktionieren somit genau so weiter wie zuvor. Sobald der primäre Schlüssel überall entfernt wurde kann ein neuer generiert werden. MediaWiki installieren Klickt wiederum links unten auf den Knopf "Neu", und wählt aus "Server –> Website –> Aus Katalog". Im sich öffnenden Assistenten wählt links unter den Kategorien "Wiki" und danach den Punkt "MediaWiki" aus. Gebt anschließend eine URL für das Wiki ein, wählt aus, ob ihr eine neue oder eine bereits vorhandene MySQL-Datenbank verwenden wollt (ich habe bereits eine angelegt und verwende somit eine bereits vorhandene) und wählt eine Region sowie ein Abonnement aus. Unter den Bereitstellungseinstellungen tragt ihr einen Präfix für die Tabellen (DBPrefix), einen Namen, die Sprache sowie die Administrator-Zugangsdaten ein. Wählt anschließend bei "EnableFileUpload" "True" sowie bei "UseWindowsAzure" "True" aus. Tragt unter Azurehost „http://blob.core.windows.net“, unter Azureaccount und Azurekey die vorhin notierten Zugangsdaten des Speicherkontos ein. Unter WikiID tragt noch einen, für dieses Speicherkonto eindeutigen Präfix (er muss gewisse Namenskonventionen erfüllen, siehe http://msdn.microsoft.com/de-at/library/dd135715.aspx unter Container Names) ein und klickt auf "Weiter". Wählt im nächsten Schritt noch eine Datenbank aus (bzw. erstellt eine neue MySQL-Datenbank, solltet ihr noch keine besitzen), akzeptiert die rechtlichen Bedingungen von ClearDB und klickt auf das Häckchen, um die Website zu erstellen! Und austesten! Sobald eure Website erstellt ist, besucht sie unter http://<websitename>.azurewebsites.net. Nach kurzer Ladezeit solltet ihr schon eine leere Wiki-Seite vor euch sehen. Loggt euch anschließend oben rechts ein, klickt im linken Menü auf „Datei hochladen“ und ladet eine Datei von eurem Computer hoch. Wechselt wieder zurück ins Azure Management Center, wählt die Detailseite des Speicherkontos aus und klickt auf „Container“. Es sollte hier bereits ein Container „<präfix>-local-public“ angelegt worden sein, in dem sich das hochgeladene Bild (sowie die generierten Vorschaubilder) befinden!   Und das war es auch schon wieder. So schnell kann man ein Wiki aufsetzen :) Wie üblich freue ich mich auf eure Kommentare und Rückmeldungen! Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks – Joomla! Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki (dieser Beitrag)   Ressourcen Windows Azure Management Portal MSDN – Namenskonventionen für BLOBs (Englisch) MediaWiki MediaWiki - How to Use Windows Azure Storage (Englisch)

Entwicklung von Windows Azure Websites mit PHP – Teil 2.4: Frameworks - phpBB

Von David Hainzl (Gastblogger) Autor Feed 27. March 2013 14:49
Nachdem die letzten Tutorials etwas komplizierter waren, gibt es heute mal wieder etwas „leichtere“ Kost – und zwar werde ich euch vorstellen, wie schnell und einfach man ein phpBB-Forum auf Windows Azure zum Laufen bekommt!   Los geht’s! Besucht zuerst, wie üblich, das Management Portal und erstellt eine neue Website aus dem Katalog (Klickt links unten auf „Neu“, wählt anschließend „Server“ – „Website“ – „Aus Katalog“). Im sich öffnenden Assistenten wählen wir links die Kategorie „Foren“, anschließend als App „phpBB“ und klicken unten rechts auf „Weiter“. Im nächsten Schritt vergeben wir die üblichen Einstellungen wie URL, Region, etc. Als Datenbank-Provider können wir sowohl (Azure-) SQL-Datenbanken sowie MySQL-Datenbanken verwenden. Damit wir alle Vorteile von Azure ausnutzen können (also auch die dynamische Skalierung von Datenbankgrößen, etc.) wähle ich hier also „Neue SQL-Datenbank erstellen“ aus. Wenn ihr die Datenbank mit einer anderen Applikation teilen wollt, könnt ihr hier natürlich auch „Vorhandene SQL-Datenbank verwenden“ auswählen. Einziger Unterschied ist, dass ihr im nächsten Schritt keinen Datenbanknamen und –Server auswählen müsst. Bei den Bereitstellungseinstellungen gebt ihr einen Benutzer an, der automatisch auf dem Datenbankserver erstellt wird. Klickt nun auf „Weiter“, gebt im folgenden Schritt einen Datenbanknamen sowie –Server an. Tragt außerdem noch Serverbenutzer und –Passwort ein (Damit der oben angegebene Bereitstellungsbenutzer erstellt werden kann) und schließt anschließend den Assistenten ab. Nach ein paar Sekunden ist die Website auch schon erstellt und kann (fast) verwendet werden!   phpBB konfigurieren Es sollte beim Erstellen ein Hinweis unten im Fenster auftauchen, dass die Bereitstellung erfolgreich war, inklusive einem Link „Setup“. Sollte sich dieser Hinweis nicht automatisch öffnen, so sollte ganz rechts unten, neben dem blauen „Hilfe“-Fragezeichen, ein Symbol mit drei horizontalen Balken erscheinen – wenn ihr auf dieses klickt, so öffnet sich der Hinweis. Klickt also auf „Setup“, um automatisch auf eurer Website (http://<websitename>.azurewebsites.net) weitergeleitet zu werden, und ihr werdet von einer phpBB-Willkommensseite begrüßt.   Klickt oben auf den Reiter „Install“, lest euch die Installations-Einführung durch (oder auch nicht ) und klickt anschließend auf „Proceed to next step“. Hier seht ihr eine Übersicht über alle Komponenten, die phpBB benötigt. Diese sollten – bis auf ein paar Datenbanktypen und ImageMagick, das sowieso optional ist – alle grün sein. Scrollt also bis runter und wählt „Start Install“. Jetzt muss die Datenbank konfiguriert werden. Als Database type wählt ihr „MSSQL Server 2005+ [Native]“ aus. Um den Database Server zu bekommen, wechselt zurück ins Management Center und öffnet unter „Datenbanken“ die Detailseite der soeben erstellten Datenbank. Im Reiter „Dashboard“ findet ihr rechts unter „Auf einen Blick“ den Punkt „Servername“. Kopiert euch diesen, wechselt zurück in den phpBB-Installationsassistenten und fügt ihn in das entsprechende Feld ein. Database name ist der Name der Datenbank, und als Username und Password gebt die entsprechenden Zugangsdaten des, im Assistenten erstellten, Bereitstellungsbenutzers an. Der Database server port kann leer gelassen werden. Klickt anschließend auf „Proceed to next step“. phpBB sollte jetzt die Datenbankverbindung prüfen und ein grünes „Successful connection“ ausspucken. Klickt wiederum auf „Proceed to next step“ und tragt eure Details ein. Als „Default board language“ könnt ihr momentan nur „British English“ auswählen – das deutsche Sprachpaket werden wir später installieren. Bestätigt diese und die nachfolgenden beiden Seite mit „Proceed to next step“. Bei den Advanced Settings müssen wir nichts verändern, bestätigt also auch hier mit „Proceed to next step“. Die nächste Seite lädt etwas länger, da die Tabellen erstellt werden müssen. Sobald diese erledigt ist, klickt noch ein letztes Mal auf den Knopf „Proceed to next step“ und ihr seid fertig! Im „Final Stage“-Fenster erhaltet ihr noch den Hinweis, das phpBB nur dann funktioniert, wenn der „install“-Ordner gelöscht wird. Praktischerweise findet sich in der letzten Zeile ein Link, der genau das für euch übernimmt (Click here to delete the install directory). Klickt also drauf und ihr werdet zur Hauptseite eures Forums gebracht.   Forum konfigurieren und Sprache installieren Jetzt müssen natürlich noch ein paar visuelle Einstellungen gemacht werden, außerdem gehören noch einzelne Kategorien und Unterforen angelegt. Klickt also ganz unten auf den Link „Administration Control Panel“. Forumseinstellungen, wie z.B. der Titel, der oben angezeigt wird, findet ihr im Reiter „General“ unter „Board settings“. Unterforen und Kategorien könnt ihr im Reiter „Forums“ anlegen. Da diese Einstellungen bei jedem anders aussehen, werde ich dies hier nicht im Detail durchgehen. Was aber noch wichtig ist, ist, dass wir die deutsche Sprache installieren. Besucht die entsprechende Seite auf der offiziellen phpBB-Homepage und lädt das gewünschte Sprachpaket herunter. Verbindet euch anschließend per FTP auf den Server (wie ihr an die FTP-Zugangsdaten kommt, habe ich bereits hier im Punkt „Typo3 hochladen …“ beschrieben) und kopiert die beiden Ordner „language“ und „styles“ in den Ordner „site/wwwroot“. Da diese beiden Ordner bereits existieren, werdet ihr evt. gefragt, ob ihr sie integrieren möchtet – wählt hier „Ja“. Nachdem das Sprachpaket hochgeladen wurde, muss es noch installiert werden. Wechselt also wieder in euren Webbrowser ins Administration Control Panel, klickt auf den Reiter „System“ und anschließend auf den Menüpunkt „Language packs“. Dort sollte das gerade hochgeladene Paket unter „Uninstalled language packs“ aufscheinen. Wählt also den Link „Install“ daneben aus und bestätigt die „Installation erfolgreich“-Nachricht. Um sie jetzt noch als Standard festzulegen, wechselt auf den Reiter „General“ und wählt den Menüpunkt „Board settings“. Dort gibt es eine Konfigurationsoption „Default language“, wählt dort eure installierte Sprache aus und speichert die Einstellung. Diese Sprache wird allerdings nur für neue Benutzer verwendet; Ihr selbst habt immer noch die alte Sprache eingestellt. Diese kann im Forum selbst unter „User Control Panel“ verändert werden. Das war’s für heute! Wieder einmal vielen Dank für’s mitlesen!   Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks – Joomla! Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB (dieser Beitrag) Teil 2.5: Frameworks – MediaWiki   Ressourcen Windows Azure Management Portal phpBB

Entwicklung von Windows Azure Websites mit PHP - Teil 2.3: Frameworks - phpMyAdmin

Von David Hainzl (Gastblogger) Autor Feed 20. March 2013 14:00
Herzlich Willkommen bei einem weiteren Teil meiner Tutorial-Serie! Nachdem wir beim letzten Mal die Installation von Typo3 auf Basis von MySQL durchgeführt haben, fehlt uns noch ein Tool, damit wir die Datenbank verwalten können. Für AzureSQL-Datenbanken bietet Windows Azure schon ein Tool eingebaut an, für MySQL müssen wir dies selbst installieren. Und was liegt da näher, als das wohl am weitesten verbreitetste Tool phpMyAdmin zu verwenden? Legen wir los!   Neue Website erstellen Natürlich könnt ihr phpMyAdmin auch auf einer bereits laufenden Instanz (z.B. der beim letzten Mal aufgesetzten Typo3-Website) installieren. Für dieses Tutorial werde ich allerdings eine neue Instanz anlegen. Also, loggt euch in das Management-Tool ein und erstellt eine neue Website -klickt links unten auf „Neu“, anschließend auf „Server“, „Website“ und wählt den Menüpunkt „Benutzerdefiniert erstellen“ aus. URL, Abonnement und Region könnt ihr wie gehabt frei wählen. Als Datenbank wählt ihr die MySQL-Datenbank aus, die ihr verwalten wollt (in meinem Fall ist dies dieselbe wie beim letzten Mal). Wählt außerdem anschließend noch unterhalb den Punkt „Aus der Quellcodeverwaltung veröffentlichen“ aus. Heute werden wir die Dateien nämlich nicht, wie beim letzten Mal, über FTP veröffentlichen, sondern ein noch ganz frisches Feature von Windows Azure (das gibt es erst seit gestern!) verwenden – die Veröffentlichung über Dropbox!   Dropbox!? Ganz recht. Seit gestern kann man Windows Azure mit Dropbox verknüpfen, um dort Dateien aus einem bestimmten, synchronisierten Ordner als Website zu verwenden. Ein weiterer Vorteil (außer, dass alles ganz einfach in eure Dateiverwaltung integriert ist) ist außerdem, dass hierbei die Versionierung unterstützt wird. Klickt also im Assistenten auf „Weiter“ und wählt in der folgenden Auswahlliste („Wo befindet sich Ihr Quellcode?“) „Dropbox“ aus. Nach einem Klick auf „Weiter“ öffnet sich ein Pop-Up, indem Dropbox nach fragt, ob Windows Azure auch wirklich auf die Dateien zugreifen darf.   Wählt hier „Zulassen“ und ihr kehrt ins Management-Tool zurück. Der Assistent ist einen Schritt weiter gesprungen und fragt euch nach einem Ordnernamen. Azure sucht automatisch nach Unterordnern im Pfad <Dropbox>\Apps\Azure\. Wenn ihr hier <neuer Ordner> auswählt, so wird dieser auch unter diesem Pfad erstellt. Da ich in diesem Pfad noch keine Ordner eingestellt habe, erstelle ich hier einen neuen Ordner mit dem Namen „codefest-pma“ und klicke auf „Fertigstellen“.     phpMyAdmin bereitstellen Lädt euch nun phpMyAdmin von der entsprechenden Download-Seite (http://www.phpmyadmin.net/home_page/downloads.php) herunter und entpackt das Archiv auf eure Festplatte. Kopiert euch den gesamten Inhalt und wechselt auf eure Dropbox. Dort sollte nun ein Ordner Apps\Azure\codefest-pma (wie ihr den Ordner halt benannt habt) existieren – kopiert dort alle Dateien hinein.   Wartet nun, bis alle diese Dateien auf Dropbox synchronisiert sind.   phpMyAdmin synchronisieren & konfigurieren Sobald die Dateien online sind, wechselt wieder in das Azure Management Tool, öffnet die Detailseite der Website und wechselt auf den Reiter „Bereitstellungen“. Klickt nun in der unteren Leiste auf den Knopf „Synchronisierung“, bestätigt den Dialog und und Azure kopiert eure Dateien auf die Website.   Sobald angezeigt wird, dass das soeben synchronisierte die „Aktive Bereitstellung“ ist, wurden alle Dateien kopiert und phpMyAdmin kann eigentlich schon verwendet werden. Doch er fragt euch nur nach Benutzernamen und Passwort, den Server (der ja nicht localhost ist) könnt ihr hier nicht eintragen – wir müssen ihn also zuerst konfigurieren. Wechselt also wieder in den Dropbox-Ordner eurer Website (Apps\Azure\<Name>) und erstellt hier eine neue Datei mit dem Namen „config.inc.php“. Kopiert dort folgenden PHP-Code hinein: <?php $i = 0; // Erster Server $i++; $cfg['Servers'][$i]['host'] = '<euer MySQL-Host>'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; ?> Anstatt <euer MySQL-Host> müsst ihr natürlich euren eigenen Host eintragen. Diesen findet ihr, indem ihr auf der Detailseite der Website im Management-Tool auf „Dashboard“ und dort rechts unter „Auf einen Blick“ auf den Link „Verbindungszeichenfolgen anzeigen“ klickt. Im sich öffnenden Popup findet ihr den Wert „Data Source=<xyz>;“, diesen Wert kopiert ihr dort hinein. In diesem Fenster findet ihr übrigens auch den Benutzernamen (User ID) und das Passwort für die Datenbank (und somit auch für phpMyAdmin). Solltet ihr dies noch nicht getan haben, notiert euch diese beiden Zeichenfolgen. Speichert die Datei und wartet, bis sie mit Dropbox synchronisiert wurde. Um die Datei jetzt auf die Website zu kopieren, wählt im Management-Tool den Reiter „Bereitstellungen“ und klickt wiederum auf den Knopf „Synchronisierung“. Azure erstellt nun eine neue Version der Website (ihr könnt jetzt auch theoretisch jederzeit wieder auf die unkonfigurierte Version zurückwechseln). Wechselt jetzt wieder auf eure Website und loggt euch mit den vorher notierten Login-Daten ein. Jetzt könnt ihr eure phpMyAdmin-Datenbank verwalten! Vielen Dank für’s durchlesen und mitmachen, ich freue mich wie üblich über jegliches Feedback in den Kommentaren.   Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks – Joomla! Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin (dieser Beitrag) Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki   Ressourcen Windows Azure Management Portal phpMyAdmin Dropbox

Entwicklung von Windows Azure Websites mit PHP - Teil 2.2: Frameworks - Typo3

Von David Hainzl (Gastblogger) Autor Feed 14. March 2013 18:13
Nachdem wir letzte Woche Joomla! auf Windows Azure zum Laufen gebracht haben, folgt heute auch gleich das nächste CMS: Typo3! Hierbei finden sich gleich einige Unterschiede zum letzten Mal, auf die wir im Detail eingehen werden. Also, los geht's!   Website erstellen Zuerst brauchen wir eine frische Kopie von Typo3. Da dieses, anders als beim letzten Mal, nicht in der Web-App-Gallerie vorhanden ist, müssen wir es händisch herunterladen. Besucht also die entsprechende Download-Seite (http://typo3.org/download/) und kopiert euch die entsprechende Zip-Datei auf eure Festplatte. Für dieses Tutorial werde ich Version 6.0 mit dem Introductionary-Package verwenden; Diese beinhaltet nämlich schon grundlegende Einstellungen, ein Template, etc. Für eigene Websites werdet ihr vermutlich eher das Blank Package benötigen, um dieses zum Laufen zu bekommen sind aber einige (Typo3-spezifische) Schritte nötig, auf die ich hier nicht näher eingehen möchte. Während der Download vor sich geht, können wir auch schon eine neue Website erstellen. Loggt euch also, wie gehabt, in das Windows Azure Management Center ein, klickt auf "Web Sites" und anschließend unten links auf den Knopf "Neu". Dieses Mal wählen wir den zweiten Punkt aus: "Benutzerdefiniert erstellen". URL, Abonnement und Region sind wie auch bei den letzten beiden Malen, auszufüllen. Als Datenbank wählen wir "Neue MySQL-Datenbank erstellen" aus und benennen die Verbindung. Im zweiten Schritt kann noch ein Name der Datenbank vergeben werden - hier wird automatisch ein zufälliger vorgeschlagen, der übernommen werden kann. Außerdem muss noch den rechtlichen Bedingungen von ClearDB zugestimmt werden.       Wer oder was ist ClearDB? MySQL-Datenbanken werden nicht von Microsoft selbst, sondern von einem Partner - in diesem Falle eben ClearDB - angeboten. ClearDB ist ein, auf MySQL spezialisierter, Cloud-Anbieter. Zum einen bedeutet das, dass man momentan nur eine einzige MySQL-Datenbank pro Subscription verwenden kann. Geplant ist, dass man weitere Datenbanken im Store beziehen kann - dieser ist allerdings noch nicht in Österreich verfügbar, sodass wir eben mit noch mit einer einzigen auskommen müssen. Außerdem besitzt man für MySQL-Datenbanken kein so tolles Verwaltungsinterface wie für jene mit Azure SQL.   Typo3 hochladen ... Um Typo3 hochzuladen, benötigen wir zuerst eine FTP-Verbindung. Wählt im Management Center die Website aus, wechselt auf den Reiter "Dashboard". Rechts findet ihr unter "Auf einen Blick" den FTP-Hostnamen. Wenn ihr diesen in einem FTP-Programm eurer Wahl aufruft, werdet ihr nach Benutzernamen und Passwort gefragt. Diese sind etwas versteckt: Zuerst müsst ihr das "Veröffentlichungsprofil herunterladen" (Ihr findet diesen Link auch wieder rechts unter "Auf einen Blick"). Öffnet dieses mit einem Editor eurer Wahl (Es ist eigentlich nur eine XML-Datei!). In dieser Datei gibt es den Tag <publishProfile>, der die beiden Attribute "userName" und "userPWD" besitzt - das sind eure Zugangsdaten! Der Benutzername sollte ungefähr wie "<websitename>\$<websitename>" aussehen, und das Passwort eine lange, zufällige Zeichenfolge sein.   Verbindet euch also nun mit diesen Zugangsdaten zu dem FTP-Host und wechselt in den Ordner "site/wwwroot". Dort befindet sich bereits die Datei hostingstart.html - löscht diese und kopiert anschließend den Inhalt des Typo3 Introduction-Package auf den Server, sodass die Ordner "fileadmin", "t3lib", "typo3", "typo3conf", "typo3temp" sowie "uploads" allesamt Unterordner von "wwwroot" sind (und die dazugehörigen Dateien auch in wwwroot liegen). Wenn ihr noch keine favorisierten FTP-Client habt, würde ich FileZilla empfehlen: http://filezilla-project.org/.   ... Abhängigkeiten hochladen ... Typo3 besitzt ein sogenanntes "Install-Tool", bei dem die Grundeinstellungen (wie z.B. die Datenbank) modifiziert werden können. Um auf dieses zugreifen zu können, muss eine leere Datei namens "ENABLE_INSTALL_TOOL" im Ordner typo3conf/ erstellt werden. Wenn wir nun die Website aufrufen, werden wir vom Install-Tool mit einer Fehlermeldung begrüßt: Er kann das PHP-Modul "fileinfo" nicht finden. Hier müssen wir händisch nachhelfen: Ladet euch von der PHP-Download-Seite die entsprechenden Binaries als ZIP-Datei für eure Version herunter (also je nachdem, was bei der Website im Reiter Konfiguration eingestellt ist - beim Schreiben dieses Artikels war der Standard PHP 5.3). Stellt dabei sicher, dass diese VC9 und Non Thread Safe sind. Danach erstellt auf der Website im wwwroot einen Ordner bin\ und kopiert aus dem PHP-Archiv die Datei php_fileinfo.dll (aus dem Ordner ext\) in ebendiesen bin\-Ordner.     Anschließend wechselt ihr ins Management-Center, öffnet die Website-Detailseite und klickt auf den Reiter "Konfigurieren". Fügt nun unter dem Punkt "App-Einstellungen" folgendes Schlüssel-Wert-Paar ein: Schlüssel: PHP_EXTENSIONS Wert: bin\php_fileinfo.dll   Klickt auf Speichern und anschließend auf Neustart.   ... und installieren! Ruft die Seite wie gewohnt unter http://<websitename>.azurewebsites.net auf. Das Installationstool sollte euch nun begrüßen, und mit einem Klick auf "Weiter" geht's los. Im ersten Schritt müssen die Datenbank-Zugangsdaten eingetragen werden. Benutzername und Passwort finden wir, indem wir im Management-Center auf das Dashboard der Website wechseln und dort im rechten Menü den Punkt "Verbindungszeichenfolgen anzeigen" auswählen. Im sich öffnenden Fenster finden sich User Id (Benutzername),Password und Data Source, diese müssen in die respektiven Felder im Installationsassistenten eingetragen werden.   Im nächsten Schritt wählt die angelegte Datenbank aus. Anschließend könnt ihr auswählen, ob ihr das Introduction Package installieren möchtet oder ein leeres Typo3 - hier bleiben wir beim Introduction Package und klicken auf weiter. Anschließend werden die Tabellen in der DB erstellt, etc. und im vierten Schritt muss ein Passwort für die Administration sowie eine Farbe für die Beispiel-Seite angegeben werden. Noch zwei Klicks um die Installation abzuschließen und anschließend habt ihr Typo3 fertig installiert!   Super! Aber warum funktionieren die Links nicht? Beim Introduction Package sind standardmäßig mehrere Erweiterungen installiert. Eine davon nennt sich "realurl", die dafür sorgt, dass in der Adresszeile die Seiten statt mittels "index.php?id=xx" über einen "schönen" Pfad wie zum Beispiel "/benutzer/verwaltung" angesprochen werden. Leider benötigt diese diverse .htaccess-Einstellungen, die auf Windows Azure (so) nicht funktionieren. Die gesamte Datei anzupassen, würde den Umfang dieses Tutorials sprengen - das Thema werden wir sowieso in einem späteren Teil behandeln - deshalb zeige ich euch noch, wie man die Erweiterung deaktivieren kann. Wechselt auf das Backend (http:/<websitename>.azurewebsites.net/typo3) und loggt euch dort mit dem Benutzer admin und dem bei der Installation vergebenen Passwort ein. Wechselt im Backend im Menü ganz links auf den "Extension Manager", scrollt hinunter bis zu der Erweiterung "RealURL: speaking paths for TYPO3" und klickt auf den Baustein mit dem Minus links daneben, um die Erweiterung zu deaktivieren. Löscht anschließend alle Caches (Der Blitz rechts oben -> Clear all caches), um auch wirklich sicherzustellen, dass hier nichts mehr übrig ist und die Links funktionieren wieder!   So, das war es für heute! Der Beitrag ist wohl etwas komplizierter als die bisherigen, solltet ihr also Fragen haben: Nur her damit! Ach, übrigens: Wer sich wundert, dass der Seitenaufbau relativ lange benötigt: Das ist nur beim ersten Aufruf der Seite so, da hier der gesamte HTML-Code generiert werden muss. Typo3 speichert diesen in der Datenbank und braucht so nicht immer alle Skripte durchlaufen, um eine Seite anzeigen zu lassen.   Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks – Joomla! Teil 2.2: Frameworks - Typo3 (dieser Beitrag) Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki   Ressourcen Windows Azure Management Portal Typo3 ClearDB PHP Downloads FileZilla Using Custom PHP Extensions in Windows Azure Web Sites (English)

Entwicklung von Windows Azure Websites mit PHP – Teil 2.1: Frameworks - Joomla!

Von David Hainzl (Gastblogger) Autor Feed 6. March 2013 12:00
Hallo und Willkommen zurück! Heute wollen wir wirklich losstarten – nachdem die beiden vorherigen Beiträge eher einen Überblick über die Features von Windows Azure geboten haben, erstellen wir heute unsere erste Website mithilfe eines CMS: Nämlich Joomla! Das geht einerseits wirklich schnell und andererseits können wir natürlich auch alle bereits vorher genannten Features der Cloud (wie z.B. die Skalierung des Computerspeichers) verwenden. Genug der Vorworte, legen wir los! Zuerst wollen wir die Website anlegen: Loggt euch wie gehabt in die Verwaltungs-Oberfläche von Windows Azure mithilfe eures Microsoft-Accounts ein (https://manage.windowsazure.com). Wählt links in der Menüleiste den Reiter „Websites“ aus und klickt auf den Knopf „Neu“. Nun öffnet sich der „Neu“-Assistent, in dem bereits der Pfad „Server/Website“ vorausgewählt ist. Im Gegensatz zum letzten Tutorial wählen wir dieses Mal „Aus Katalog“. Im sich öffnenden Assistenten finden wir nun eine große Auswahl an Software, die wir mit wenigen Klicks auf unserem frischen Server installieren können. Wir wählen also unter der Kategorie „CMS“ „Joomla! 2.5“ aus: Klickt anschließend auf den nach rechts zeigenden Pfeil, um auf die zweite Seite zu wechseln. (Profi-Tipp: Habt ihr gemerkt, wie die zweite Seite nach links „geflogen“ und dabei die erste an den Rand verdrängt hat? Ihr könnt jederzeit auf eine beliebige Seite am linken Rand klicken, um sofort zu diesem Schritt zurück zu gehen!) Im zweiten Schritt müssen wir nun Einstellungen vornehmen: URL: Die URL, unter der eure Website später erreichbar sein wird (http://<Name>.azurewebsites.net). Datenbank: Hier könnt ihr eine bereits vorhandene Datenbank auswählen, oder aber auch direkt eine neue erstellen. Da wir ja bisher noch keine angelegt haben, wählen wir hier „Neue SQL-Datenbank erstellen“ aus. Region und Abonnement: Wählt hier die Region aus, in der die Website laufen soll, sowie das zugeordnete Abonnement. Unter den Bereitstellungseinstellungen müsst ihr zuerst einen Benutzernamen und ein Passwort vergeben. Je nachdem, was im Punkt Datenbank eingestellt ist, sind dies die Zugangsdaten für die bestehende (die in Schritt 3 konfiguriert wird) oder für die neue Datenbank. Wenn „Load Sample Data SQL“ auf „Yes“ gesetzt ist, wird die Datenbank bereits mit Beispielsdaten gefüllt. Solltet ihr noch nie mit Joomla! gearbeitet haben, würde ich empfehlen, dieses Feld auf Yes gesetzt zu lassen. Solltet ihr es bevorzugen, mit einer frischen Joomla!-Website zu starten, könnt ihr dieses Feld natürlich auf „No“ setzen. Der Website Name wird in der Titelzeile des Browsers sowie als Titel auf der Website selbst angezeigt. Der Felder für den Site Administrator geben den Benutzername, das Passwort sowie die E-Mail-Adresse für den Seitenadministrator an; Mit diesen Zugangsdaten könnt ihr euch zum Beispiel auch in das Backend einloggen. Wenn Ihr diese Einstellungen nach euren Wünschen konfiguriert habt, gehen wir weiter zur dritten Seite des Assistenten. Hier kann der Datenbankzugang konfiguriert werden: Der Name ist der Name der Datenbank, dieser wird auf der jeweiligen Verwaltungsseite angezeigt. Standardmäßig ist dieser zufällig generiert (mit den ersten paar Buchstaben des Websitenamens vorangestellt, um es lesbarer zu halten). Hier habe ich ihn einfach verändert. Darunter könnt ihr auswählen, welchen Server ihr verwenden wollt – solltet ihr bereits welche erstellt haben, so werden diese hier angezeigt. Hier wähle ich einfach einen neuen Server aus und gebe Benutzer, Kennwort und Region. Wenn der Punkt „Erweiterte Datenbankeinstellungen konfigurieren“ angehakt ist, fügt sich dem Assistenten ein vierter Punkt hinzu, indem die Edition, die maximale Datenbankgröße sowie die Sortierung bearbeitet werden kann. Für das Tutorial benötigen wir diese Einstellungen nicht, also klicken wir einfach rechts unten auf das Häkchen, um den Assistenten abzuschließen. Die Website wird jetzt erstellt – ihr könnt euch derweil einen Kaffee holen, sobald die Seite fertig erstellt wurde gehen wir weiter mit einem kurzen Exkurs: SQL-Datenbanken in Azure Wählt nun im linken Navigationsmenü den Punkt „SQL-Datenbanken“ aus. Ihr werdet merken, dass nun ein neuer Eintrag mit dem oben angegebenen Namen in der Liste hinzugefügt wurde. Wichtig: Bei Windows Azure wird unterschieden zwischen einer „Datenbank“ und einem „Server“: Auf einem Server können mehrere Datenbanken laufen! Klickt unten auf den entsprechenden Menüpunkt, um die Ansicht zu wechseln. Server besitzen meist einen kryptischen, zufällig generierten Namen (der auch nicht verändert werden kann). Um uns anzusehen, was jetzt genau in dieser Datenbank gespeichert worden ist, wählen wir die Datenbank in der Liste aus und klicken unten auf den Link „Verwalten“. Es erscheint eine Popup-Meldung: „Die aktuelle IP-Adresse xxx.xxx.xxx.xxx ist nicht in den vorhandenen Firewallregeln enthalten. Möchten Sie die Firewallregeln aktualisieren, um „<Datenbankname>“ zu verwalten?“ Bestätigt diese Meldung. Nach kurzer Zeit erscheint eine Erfolgsmeldung – sobald diese bestätigt ist, öffnet sich ein neues Fenster, das nach Benutzernamen und Passwort fragt. Gebt hier einen der vorhin vergebenen Benutzer ein, um in ein Silverlight-basierendes Datenbank-Verwaltungs-Tool zu kommen. Firewallregeln? Was hat das damit zu tun? Um die Datenbank möglichst sicher zu halten, können nur bestimmte Benutzer (IP-Adressen) auf diese zugreifen. Auch diese Regeln können in der Azure-Verwaltungskonsole eingestellt werden: Stellt sicher, dass ihr in der linken Navigationsleiste noch „SQL-Datenbanken“ ausgewählt habt und wechselt auf dieser Seite auf den Reiter „Server“. Klickt hier auf den Namen des Servers, den ihr verwalten wollt und wählt den Reiter „Konfigurieren“. In der ersten Zeile kann man seine eigene, aktuelle IP-Adresse sehen und diese mit nur einen Klick auf „Zu den zulässigen IP-Adressen hinzufügen“ in die Liste mit aufnehmen. Darunter stehen alle bisher eingefügten Regeln (und es können auch neue hinzugefügt werden). Unter dem darunterliegenden Menüpunkt „Zulässige Dienste“ kann man auch Windows Azure-Diensten den Zugriff auf diese Datenbank verweigern – Dies wäre allerdings in unserem Fall kontraproduktiv, da dann die Website nicht mehr auf die Datenbank zugreifen kann. Ich arbeite aber lieber mit dem SQL Server Management Studio! Auch das ist kein Problem! Benutzt beim Login einfach „<servername>.database.windows.net“ und wählt als Authentifizierungsmethode „SQL Server Authentifizierung“ aus. Gebt anschließend denselben Benutzernamen wie vorhin ein und voila – ihr seid drin! Achtung Fallstrick: Wenn ihr euch nicht verbinden könnt, stellt zuallererst mal sicher, dass sich eure aktuelle IP-Adresse auch in den Firewallregeln befindet! Zurück zu Joomla! Eigentlich ist unsere Website jetzt schon fix-fertig aufgesetzt und kann verwendet werden! Surft einfach auf http://<name>.azurewebsites.net. Wenn ihr die Beispieldaten installiert habt, seht ihr schon ein Beispieltemplate mit Inhalten. Unter http://<name>.azurewebsites.net/administrator könnt ihr euch in das Verwaltungsinterface einloggen und neue Artikel hinzufügen, etc. Das war’s auch schon wieder für heute! Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks – Joomla! (dieser Beitrag) Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki Und wie üblich: Solltet ihr Anregungen oder Fragen haben, so zögert nicht, mir hier einen Kommentar zu hinterlassen! Ressourcen Windows Azure Management Portal Joomla! Getting started with SQL-Databases (Englisch) Microsoft SQL Server 2012 Express Downloads (Hier kann das SQL Management Studio Express mit x86 und x64 heruntergeladen werden)

Teil 2 Phone-Gestik erkennen: Künstliche Intelligenz für Alle!

Von Philipp Wintersberger (Gastblogger) Autor Feed 1. March 2013 17:50
Nachem ich bereits einen kleinen Einblick in das Thema Gestenerkennung gegeben habe, folgt nun die Theorie. In Teil 1 haben wir künstliche Intelligenz bereits folgend definiert: Als die Fähigkeit, neue und bisher unbekannte Herausforderungen erfolgreich zu meistern... [More]

Entwicklung von Windows Azure Websites mit PHP – Teil 1: Einführung zu Windows Azure

Von David Hainzl (Gastblogger) Autor Feed 27. February 2013 11:30
Herzlich Willkommen zurück bei meiner Tutorial-Serie! Freut mich, dass ihr wieder dabei seid. Deshalb möchte ich auch gleich losstarten:   Was kann ich mit Windows Azure jetzt alles machen? Zuerst solltet Ihr das Management Portal öffnen (https://manage.windowsazure.com). Nach dem einloggen in euren Microsoft-Account öffnet sich die Verwaltungsoberfläche. Dazu benötigt ihr natürlich ein aktives Azure-Abonnement – solltet ihr die 90-Tage-Testversion noch nicht für euren Account aktiviert haben, so erledigt dies jetzt unter https://www.windowsazure.com/de-de/pricing/free-trial/. Nach dem Einloggen findet ihr auf der linken Seite die verfügbaren Services, die ihr erstellen könnt: •    Websites – Wie der Name schon sagt, ein kompletter IIS Webspace mit Wahlweise .NET 3.5 oder .NET 4.5 sowie optional mit PHP (5.3 oder 5.4). In diesem Tutorial werden wir mit diesen arbeiten! •    Virtuelle Computer – Komplette Virtuelle Maschinen, wie man sie auch von anderen Programmen kennt. Ihr habt hier die Wahl zwischen diversen Windows- und Linux-Servern. •    Mobile Services -  Eine Schnittstelle, um Cloud-Funktionalitäten (z.B. Online-Datenspeicherung, Authentifizierungsmethoden, Push-Benachrichtigungen) zu mobilen Apps hinzuzufügen – momentan werden Windows 8, Windows Phone 8 und iOS unterstützt (an Android wird derzeit gearbeitet) Update 02.03.2013: Android ist jetzt auch verfügbar und kann für Mobile Services genutzt werden! •    Cloud-Dienste – Ein Cloud-Dienst besitzt mehrere Ressourcen; Diese können in zwei Rollen eingeteilt werden: „Web Roles“ für Webanwendungen und „Worker Roles“ für rechenintensive Aufgaben. •    SQL-Datenbanken – Auf MSSQL basierende Datenbanken (und –Server) •    Speicher – Dienen dazu, verschiedene Datenformate in der Cloud zu speichern (Blobs, Tabellen, Queues) •    Netzwerke – Zum Erstellen von Virtuellen Netzwerken, um sich mit verschiedenen Azure-Services zu verbinden •    Service Bus – Bietet verschiedene Methoden, um Cloud-Services mit den eigenen Servern kommunizieren zu lassen •    Mediendienste – Können dazu verwendet werden, um diverse Medien (z.B. Videos) On-the-fly in andere Formate zu konvertieren oder an Endgeräte zu streamen. •    Active Directory – Bietet ein Virtuelles AD in der Cloud •    Add-Ons – Dieser Punkt ist für uns momentan noch nicht relevant, da er momentan noch nicht für Österreich verfügbar ist. Es kann sein, dass manche Menüpunkte bei euch nicht aufscheinen – das liegt daran, dass manche Features momentan noch nicht final sind (Momentan sind dies Mobile Services, Virtuelle Maschinen und Netzwerke). und explizit aktiviert werden müssen. Um dies zu bewerkstelligen, besucht das Azure-Accountcenter (http://account.windowsazure.com) und klickt auf „Vorschaufeatures“. Dort kann man diese Features mit einem Klick auf „sign up“ aktivieren. Für weitere allgemeine Informationen zu Windows Azure empfehle ich (wieder einmal) die Beiträge von Toni Pohl und Martina Grom im TechNet Team Blog Austria (Schritt 1: Anmeldung, Schritt 2: Das Portal, Schritt 3: Kostenübersicht) Jetzt aber zu den Websites! Erstellen wir uns gleich einmal eine leere Website – wählt zuerst in der linken Navigationsleiste „Websites“ aus klickt anschließend links unten auf „Neu“. Dort wählt „Schnellerfassung“ (der Pfad Server/Website ist schon vorausgewählt). Hier könnt ihr einen Namen eingeben – dieser wird in der Spalte „Name“ angezeigt, außerdem kann man die Seite über diesen Namen erreichen (http://<name>.azurewebsites.net). Deshalb muss dieser auch einzigartig sein – ihr erhaltet ein kleines grünes Häckchen (wie am Screenshot unten zu sehen) neben dem Namen, wenn er noch verwendbar ist. Weiters könnt Ihr die Region und das Abonnement einstellen (Hinweis: Wenn man das Abonnement ändert, stellt sich die Region wieder auf „West US“ zurück). Klickt anschließend auf den Knopf „Website erstellen“!   Nach ein paar Sekunden ist die Website erstellt und aktiviert und ihr könnt sie schon ansurfen! Besucht http://<name>.azurewebsites.net und bewundert die tolle Beispielsseite   Klickt nun auf den Namen der Website in der Übersicht, um auf die Detailseite zu kommen. Beim allerersten Mal wird sich vermutlich die Schnellstart-Seite ( ) öffnen. Die anderen Reiter im Überblick:   •    Schnellstart – Biete grundlegende Infos für die ersten Schritte. Die dort aufgeführten Punkte sind meist auch in den anderen Reitern vorhanden. •    Dashboard – Die Startseite der Website (Wenn das Häckchen bei „Schnellstart beim nächsten Besuch überspringen“ gesetzt ist). Hier findet man auf einen Blick die aktuelle Verwendung, Verknüpfte Ressourcen (z.B. Datenbanken), Verbindungszeichenfolgen, die URL, usw. •    Bereitstellungen – Dieser Reiter ist nur verfügbar, wenn man bereits eine Bereitstellung über eine Quellcodeverwaltung im Schnellstart-Reiter eingerichtet hat. Hier kann man Verbindungszeichenfolgen anzeigen, etc. •    Überwachen – Der selbe Graph wie auf dem Dashboard, noch einmal im Detail •    Konfigurieren – Hier kann man seine .NET und PHP-Version modifizieren (Standard sind .NET V4.5 sowie PHP 5.3), eigene Domänennamen vergeben, IIS-Einstellungen sowie Startdokumente verändern, usw. •    Skalieren – Hier beginnt der Cloud-Spezifische Teil! Standardmäßig (Modus „Kostenlos“ und „Freigegeben“) werden Websites bei Azure auf einem geteilten Host ausgeführt, das heißt, dass auf einem Server mehrere Websites laufen, darunter auch meine eigene. Der Unterschied zwischen diesen beiden Modi ist, dass man pro Abonnement nur eine bestimmte Anzahl an kostenlosen Websites betreiben kann, sowie dass diese strengere Kontigente bezüglich der Nutzung haben (siehe auch den Regler „Kapazität“ darunter – diesen kann ich im Kostenlosen Modus nicht verändern). Im Modus „Reserviert“ wiederum bekomme ich meinen eigenen Server, auf dem nur meine eigenen Websites laufen (und keine anderen!). Sobald ich diesen Modus bei einer Website auswähle, werden automatisch auch alle anderen Websites, die a) in derselben Region und b) demselben Abonnement zugewiesen sind auf diesen, reservierten Server umgesiedelt. Hierbei entsteht keine Downtime! Bei reservierten Server kann ich außerdem auswählen, wie stark dieser sein soll (Anzahl der Kerne). •    Verknüpfte Ressourcen – Hier scheinen andere, mit diesem Webserver im Zusammenhang stehende, Ressourcen, wie zum Beispiel Datenbanken, auf.   So weit, so gut, aber wie bekomme ich jetzt meine Website online? Hierbei kann ich zwischen drei verschiedenen Möglichkeiten wählen: Klassisch über eine FTP-Verbindung, über TFS (Microsofts Team Foundation Service, https://tfs.visualstudio.com) oder über GIT. Wie das aber genau funktioniert, werden ich aber erst in den nächsten Tutorials behandeln, um den Rahmen hier nicht zu sprengen.   Bisherige Beiträge Teil 0: Allgemeines Teil 1: Einführung zu Windows Azure (dieser Beitrag) Teil 2.1: Frameworks - Joomla! Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki Und wie üblich: Solltet ihr Anregungen oder Fragen haben, so zögert nicht, mir hier einen Kommentar zu hinterlassen!   Ressourcen Windows Azure Management Portal Windows Azure Konto-Verwaltung Team Foundation Service

Entwicklung von Windows Azure Websites mit PHP – Teil 0: Allgemeines

Von David Hainzl (Gastblogger) Autor Feed 20. February 2013 16:00
Hallo! Wie auch schon meine Kollegen Maximilian, Valentin und Dominik bin auch ich neu hier auf codefest.at und möchte mich auch kurz vorstellen: Ich bin David Hainzl und ebenfalls Microsoft Student Partner in Österreich. Ich komme ursprünglich aus Oberösterreich, bin aber mittlerweile in unsere Bundeshauptstadt gezogen und studiere Informatik an der FH Technikum Wien. Ich werde in nächster Zeit auf diesem Blog mehrere Beiträge zu Windows Azure, der Cloud-Lösung von Microsoft, verfassen und euch diese näherbringen. Einen besonderen Fokus werde ich hierbei darauf setzen, dass die Tutorials und Beiträge auch ohne Vorwissen verständlich sind und ihr die gezeigten Lösungen auch selbst reproduzieren könnt. Was kommt also auf euch zu? Wie ihr wahrscheinlich schon aus dem Titel herausgelesen habt, werde ich in den nächsten Beiträgen von der Entwicklung von PHP-Applikationen in Windows Azure schreiben. Diese Blogbeiträge werde ich in zwei größere „Kapitel“ unterteilen: Zuerst werde ich einige Frameworks (u.a. MediaWiki, Typo3 und Joomla!) in der Cloud installieren und diese zum Laufen bringen. Hierbei werde ich auf die Spezialitäten eingehen, die für das jeweilige Framework erforderlich sind, um dort auch Inhalte publizieren zu können, etc. Im zweiten Kapitel werden wir selbst eine kleine News-Website in PHP entwicklen, um die Besonderheiten bei der Entwicklung von komplett eigenen Skripten für Windows Azure zu beleuchten. Und was benötigt man dafür? Zuallererst wird natürlich ein gültiges Windows Azure Abonnement gebraucht. Microsoft bietet hier eine 90-Tage-Testversion an, bei der man alle Funktionalitäten in der Cloud ausprobieren kann (teilweise allerdings nur mit limitierten Ressourcen). Um sich für das Angebot zu registrieren, besucht https://www.windowsazure.com/de-de/ und klickt auf einen der „Kostenlos testen“-Links. Ihr werdet anschließend aufgefordert, euch mit eurem Microsoft-Konto anzumelden und von einem Assistenten durch den Registrierungsvorgang geführt. Für eine detaillierte, bebilderte Anleitung besucht den folgenden Beitrag von Toni Pohl und Martina Grom auf dem TechNet Team Blog Austria: http://blogs.technet.com/b/austria/archive/2012/11/26/windows-azure-und-iaas-schritt-1-anmeldung.aspx?WT.mc_id=AF8D607FB Hinweis: Ihr werdet aufgefordert werden, eine Kreditkartennummer einzugeben. Aber keine Angst! Während der 90-Tage-Testversion werden euch keine Gebühren in Rechnung gestellt. Solltet Ihr über eines der Limits kommen, so wird einfach der Account für den Rest des Monats stillgelegt (natürlich mit der Option, ihn gegen Bezahlung wieder freizuschalten) Hinweis 2: Wohl vor allem für Firmen interessant: In jedem MSDN-Abonnement sind auch Windows Azure-Ressourcen inkludiert! Welche und wie viele das sind, können auf der jeweiligen Detailseite (https://www.windowsazure.com/de-de/pricing/member-offers/msdn-benefits/) nachgelesen werden. Außerdem solltet ihr auch noch eine PHP-Entwicklungsumgebung oder einen Texteditor eurer Wahl installiert haben. Ich werde fürs Erste den Texteditor Notepad++ verwenden. Auf weitere benötigte Programme werde ich im Laufe der Beitragsreihe hinweisen. Bisherige Beiträge In jedem Beitrag werde ich am Ende auf alle bisherigen Beiträge verlinken, um eine schnelle Navigation zu ermöglichen: Teil 0: Allgemeines (dieser Beitrag) Teil 1: Einführung zu Windows Azure Teil 2.1: Frameworks - Joomla! Teil 2.2: Frameworks - Typo3 Teil 2.3: Frameworks – phpMyAdmin Teil 2.4: Frameworks – phpBB Teil 2.5: Frameworks - MediaWiki Solltet ihr Anregungen oder Fragen haben, so zögert nicht, mir hier einen Kommentar zu hinterlassen. Ich bedanke mich fürs Lesen, bis zum nächsten Mal! Ressourcen Windows Azure Windows Azure Management Portal

Windows 8 App mit Backend in der Cloud – Windows Azure Mobile Services

Von Rina Ahmed Autor Feed 10. February 2013 11:26
Wenn man eine Windows 8 App schreibt und persistente Daten zum Speichern hat, stellt sich über kurz oder lang die Frage, welche Backend-Lösung man für die Daten verwenden will. Windows Azure Mobile Services bieten hierbei eine einfache Lösung, um eine Datenbank in der Cloud für Windows 8 Apps zu nutzen. In diesem Tutorial will ich anhand einer einfachen Windows 8 App, die Artikel in einer Einkaufsliste speichert, zeigen, wie man auf die Schnelle die Datenbank erstellen und für die App verwenden kann. Folgende Schritte werden wir durchgehen: Vorbereitung Einrichten eines Windows Azure Mobile Services Erstellen einer Tabelle Eine einfache Windows 8 App schreiben Direkter Zugriff auf die Datenbank in Visual Studio Vorbereitung Wir benötigen für unsere App Visual Studio und Windows Azure SDK. Falls ihr es noch nicht installiert habt, könnt ihr hier Visual Studio Express 2012 und Windows Azure SDK herunterladen. Um die Services von Windows Azure in Anspruch zu nehmen, ist auch Windows Azure Konto notwendig. Hier kann man sich für ein 90-Tage gratis Trial anmelden. Jetzt müssen wir die Mobile Services in unserem Azure Account noch aktivieren. Geht auf die Seite https://account.windowsazure.com und loggt euch mit eurer Live Id ein. Ihr klickt dann auf den Punkt Vorschaufeatures. Auf der Seite der Vorschaufeatures aktivieren wir die Mobile Services mittels Try it now. Einrichten eines Windows Azure Mobile Services Nachdem wir nun die Grundvoraussetzungen erfüllt haben, können wir mit unserer App beginnen. Wir wollen eine einfache Einkaufsliste entwickeln, in der wir Artikel eingeben können, die dann in einer Datenbank mittels Windows Azure Mobile Services gespeichert werden. So richten wir unser Windows Azure Mobile Service ein: Zuerst müssen wir uns im Windows Azure Management Portal unter http://manage.windowsazure.com mit der Live Id anmelden. In der unteren Leiste klickt Ihr auf Neu.   Danach wählt Ihr den Punkt Mobiler Service und klickt auf Erstellen. In dem Dialogfeld müsst Ihr einen Namen für das Mobile Service auswählen, der Teil der URL sein wird. Das heißt, wenn der Name bereits vergeben ist, müsst Ihr einen ähnlichen Namen wählen. Danach wählt ihr Eine neue SQL-Datenbankinstanz erstellen und North Europe als Region und klickt auf den Pfeil unten. Im zweiten Schritt wählt ihr unter Server den Punkt Neuer SQL-Datenbankserver und gebt ein Username und Passwort an. Wichtig: merkt euch den Username und das Passwort, da ihr denselben Datenbankserver für weitere Mobile Services verwenden könnt. Falls ihr bereits einen Datenbankserver erstellt habt, dann wählt ihr unter Server diesen aus und gebt eure Anmelde-Daten für den Server an. Ihr habt jetzt ein Mobile Service erstellt, dass ihr ansprechen könnt. Bevor wir uns der App widmen, müssen wir noch eine Tabelle in unserer Datenbank erstellen. Erstellen einer Tabelle In unserem Management Portal gehen wir auf Mobile Services und wählen das gerade von uns erstellte Mobile Service aus. Dort klicken wir auf Daten in der oberen Leiste. Danach gehen wir auf Eine Tabelle hinzufügen. Da wir in unserer Einkaufsliste Artikel speichern wollen, benötigen wir eine Tabelle namens Artikel. Nun haben wir in unserem Mobile Service die Tabelle für unsere Artikel Objekte erstellt. Wenn wir auf unsere Tabelle jetzt klicken und auf Spalten gehen, sehen wir, dass diese Tabelle bereits eine Spalte namens Id besitzt. Eine einfache Windows 8 App schreiben Zunächst erstellen wir uns ein neues Projekt in Visual Studio unter Datei/Neu… . Wir wählen die Kategorie Windows Store unter C# nehmen die Leere App und geben MeineEinkaufsliste als Namen an. Links im Solution Explorer klicken wir mit rechter Maustaste auf References und dann auf Add reference. Unter Extensions klicken wir Windows Azure Mobile Services Managed Client an (Das setzt voraus, dass wir in der Vorbereitungsphase Windows Azure SDK installiert haben). Im Solution Explorer auf der rechten Seite können wir alle Dateien in unserem Projekt sehen. Wir öffnen durch Doppelklick die Dateien App.xaml.cs und MainPage.xaml.cs und fügen in beiden Dateien oben folgendes Statement ein: using Microsoft.WindowsAzure.MobileServices; .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } In App.xaml.cs fügen wir folgenden Code gleich über dem Konstruktor der Klasse App hinzu: public static MobileServiceClient MobileService = new MobileServiceClient( "https://meineeinkaufsliste.azure-mobile.net/", "jdJuIxpihCodEilnMsCVIFORiMHuXm99" ); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Wir stellen hier eine Instanz für den MobileServiceClient bereit, wobei wir dem Konstruktor, die URL des Mobile Services und den Anwendungsschlüssel als Parameter übergeben. Diese zwei Werte müsst Ihr gemäß eurer App ersetzen. Die Werte findet Ihr, wenn Ihr im Azure Management Portal unter Mobile Services auf euer Mobile Service geht und oben Dashboard wählt. In der rechten Spalte befindet sich die URL des Mobile Services und in der unteren Leiste im Punkt Schlüssel Verwalten könnt ihr den Anwendungsschlüssel rauskopieren. In der Datei MainPage.xaml.cs schreiben wir eine Klasse für unsere Artikel Objekte. Ihr könnt den Code direkt oberhalb der MainPage Klasse einfügen. public class Artikel { public int Id { get; set; }   [DataMember(Name = "bezeichnung")] public string Bezeichnung { get; set; }   [DataMember(Name = "gekauft")] public bool Gekauft { get; set; } } Und dann fügen wir noch folgendes Statement oben im using Block hinzu: using System.Runtime.Serialization; .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Wir haben nun eine Klasse Artikel geschrieben, die eine Variable Bezeichnung für den Namen des Artikels und eine Variable Gekauft besitzt, um anzugeben, ob der Artikel noch ausständig ist oder bereits gekauft. Durch [DataMember(Name=”bezeichnung”)] haben wir sichergestellt, dass die Klassenvariable Bezeichnung einer Spalte in der Tabelle Artikel entspricht. Unsere Tabelle Artikel in unserem Mobile Service besitzt ein Dynamisches Schema. Wenn wir ein Artikel-Objekt an das Mobile Service schicken, werden automatisch die Spalten generiert. In der Klasse MainPage fügen wir folgende Variablen oberhalb dem MainPage()-Konstruktor: private MobileServiceCollectionView<Artikel> artikel; private IMobileServiceTable<Artikel> artikelTable = App.MobileService.GetTable<Artikel>(); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }Hier stellen wir eine Instanz der Tabelle aus unserem MobileService als artikelTable bereit und definieren eine Collection für unsere Artikel Objekte, die wir aus der Tabelle einlesen wollen. Dann fügen wir noch folgende Methoden in der Klasse hinzu. private async void InsertArtikel(Artikel art) { await artikelTable.InsertAsync(art); artikel.Add(art); }   private async void UpdateCheckedArtikel(Artikel art) { await artikelTable.UpdateAsync(art); artikel.Remove(art); }   private void RefreshArtikel() { artikel = artikelTable .Where(art => art.Gekauft == false) .ToCollectionView(); //Artikelliste.ItemsSource = artikel; } InsertArtikel und UpdateCheckedArtikel fügen das als Parameter übergebene Artikel Objekt in die Tabelle in unserem MobileService ein bzw ändern die Daten in der Update Methode. In der RefreshArtikel Methode lesen wir alle Artikel, die noch nicht gekauft wurden, aus der Tabelle in unsere Collection artikel. Wir wollen, dass diese Methode aufgerufen wird, sobald der User auf die Seite kommt, daher machen wir den Methodenaufruf in der OnNavigatedTo-Methode, die in der Vorlage bereits bereitgestellt wird. protected override void OnNavigatedTo(NavigationEventArgs e) { RefreshArtikel(); } Jetzt fügen wir noch zwei EventHandler-Methoden in der Klasse hinzu. private void SaveButton_Click(object sender, RoutedEventArgs e) { //Artikel art = new Artikel //{ Bezeichnung = Artikelbezeichnung.Text};   //InsertArtikel(art); }   private void CheckBoxComplete_Checked(object sender, RoutedEventArgs e) { CheckBox cb = (CheckBox)sender; Artikel art = cb.DataContext as Artikel; UpdateCheckedArtikel(art); } In der SaveButton_Click-Methode behandeln wir das Ereignis, in dem ein Benutzer auf den Speichern Button klickt, nachdem er einen neuen Artikel eingegeben hat. Wir erstellen ein neues Artikel-Objekt und rufen die InsertArtikel-Methode zum Einfügen in die Tabelle auf. Da wir das User Interface noch nicht erstellt haben, kommentieren wir den Code aus, nachdem wir die Controls in der MainPage.xaml definiert haben. In der CheckBoxComplete_Checked-Methode behandeln wir das Ereignis, in dem ein Benutzer die Checkbox anklickt, um anzudeuten, dass der Artikel gekauft wurde. Hier rufen wir die UpdateCheckedArtikel-Methode auf. Wir gehen nun zu der Datei MainPage.xaml und  ersetzen das Grid-Element mit folgendem Code: <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="80"/> <ColumnDefinition Width="400"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="120"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <TextBlock Grid.Column="1" Text="Einkaufsliste" Style="{StaticResource PageHeaderTextStyle}" Margin="0"/> <StackPanel Grid.Column="1" Grid.Row="2" Margin="0,50,0,0"> <TextBlock Text="Artikelbezeichnung:" Style="{StaticResource BasicTextStyle}"/> <TextBox x:Name="Artikelbezeichnung" Width="250" Height="30" HorizontalAlignment="Left"/> <Button Content="Speichern" Margin="0,10,0,0" Click="SaveButton_Click" /> </StackPanel>   <StackPanel Grid.Column="2" Grid.Row="2"> <TextBlock Text="Meine Artikel:" Margin="0,0,0,20" Style="{StaticResource BasicTextStyle}"/> <ListView x:Name="Artikelliste"> <ListView.ItemTemplate> <DataTemplate> <StackPanel> <CheckBox Name="CBgekauft" IsChecked="{Binding Gekauft, Mode=TwoWay}" Checked="CheckBoxComplete_Checked" Content="{Binding Bezeichnung}" /> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackPanel> </Grid> Jetzt fehlt noch das Auskommentieren des Codes in der SaveButton_Click-Methode in MainPage.xaml.cs, sowie das Auskommentieren der letzten Zeile (Artikelliste.ItemsSource = artikel; ) in der RefreshArtikel-Methode. Als letzten Punkt wollen wir noch den Look der App auf das helle Farbschema ändern. Dazu gehen wir in die App.xaml Datei und fügen im Application-Element das Attribut RequestedTheme mit dem Wert Light ein. Das Ganze sieht dann so aus: <Application x:Class="MeineEinkaufsliste.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MeineEinkaufsliste" RequestedTheme="Light"> Nun können wir unsere App ausprobieren. Wenn ihr in Visual Studio F5 drückt, dann wird die App kompiliert und gestartet. Ihr könnt im linken Teil Artikelbezeichnungen eingeben, die in die Datenbank mittels Mobile Service eingefügt werden und im rechten Teil werden die aus der Datenbank ausgelesenen Artikel angezeigt. Bei der Abfrage nach der Artikel werden nur jene angezeigt, die den Wert false in der Gekauft Spalte haben. Der Wert false wird dann auf der Seite mit einer leeren Checkbox dargestellt.  Direkter Zugriff auf die Datenbank in Visual Studio Wir haben bereits ein Mobile Service mit einer Datenbankinstanz eingerichtet und eine Tabelle erstellt. Weiters haben wir das aus den Eingabewerten erstellte Artikel Objekt in die Tabelle eingefügt und aus der Tabelle anhand der Spalte Gekauft selektiert ausgelesen. Wir haben also eine funktionierende Backend-Lösung, ohne eine einzige Zeile SQL geschrieben zu haben! Es kann aber Fälle geben, in denen es praktischer ist, die Datenmanipulation direkt mit SQL zu erledigen als über eine grafische Oberfläche. Wenn wir beispielsweise eine weitere Spalte namens Menge in unserer Tabelle hinzufügen wollen, genügt es in unserer Klasse Artikel in MainPage.xaml.cs ein weitere Klassenvariable (als DataMember deklariert) namens Menge hinzuzufügen und im Interface Felder für das Einlesen und Ausgeben der neuen Information vorzusehen. Wegen des dynamischen Schema wird beim nächsten Einfügen eines Artikels mit Mengenangabe automatisch eine weitere Spalte in der Tabelle hinzugefügt. Alle unsere bisherigen Daten werden allerdings Null-Werte in der neuen Spalte haben. Wenn wir sinnvollere Werte für die Spalte Menge in den bisherigen Artikel Datensätzen haben wollen, ist es am schnellsten, dies mit einem UPDATE Statement in SQL zu realisieren. Dieses Szenario wollen wir nun durchspielen, damit wir sehen können, wie wir direkt auf die Datenbank unseres Azure Mobile Services zugreifen und SQL Code ausführen können. Als erstes ändern wir die Artikelklasse in MainPage.xaml.cs und fügen eine weitere Klassenvariable Menge ein, sodass unsere Artikelklasse so aussieht: public class Artikel { public int Id { get; set; }   [DataMember(Name = "bezeichnung")] public string Bezeichnung { get; set; }   [DataMember(Name = "gekauft")] public bool Gekauft { get; set; }   [DataMember(Name = "menge")] public string Menge { get; set; } } Danach ändern wir die Methode für das Event des Buttonklicks beim Speichern. Wir wollen bei der unserem neuen Artikel Objekt, die vom Benutzer angegebene Menge miteinberücksichtigen. Unsere SaveButton_Click Methode sieht daher so aus: private void SaveButton_Click(object sender, RoutedEventArgs e) { Artikel art = new Artikel { Bezeichnung = Artikelbezeichnung.Text, Menge = Menge.Text};   InsertArtikel(art); } Nun fügen wir in der MainPage.xaml unmittelbar über die Definition für den Speichern Button die Zeilen, um ein Eingabefeld für die Artikelmenge zu erstellen. <TextBlock Text="Menge:" Style="{StaticResource BasicTextStyle}" Margin="0,15,0,0"/> <TextBox x:Name="Menge" Width="50" Height="30" HorizontalAlignment="Left"/> Gleich nach dem CheckBox Element in unserer ListView namens Artikelliste fügen wir diese Zeile ein: <TextBlock Name="Artikelmenge" Text="{Binding Menge}" Margin="27,0,0,5"/> Wenn wir jetzt unsere App starten (F5), so sehen wir dass wir jetzt Artikel mit Mengenangabe eingeben können und für alle Artikel wird die Mengenangabe anzeigt. Wenn wir jetzt auf unser Management Portal gehen und in unserer Tabelle Artikel (unter dem erstellten Mobile Services auf Daten klicken) den Tab Spalten in der oberen Leiste wählen, so sehen wir dass unsere Tabelle jetzt auch eine Spalte Menge besitzt. In unserer App sehen wir auch die neue Information der Artikelmenge. Bevor wir versuchen, auf die Datenbank direkt in Visual Studio zugreifen zu können, müssen wir noch sicherstellen, dass unsere IP als erlaubte Zugriffsquelle im Azure Management Portal gelistet ist. Zunächst wählt ihr unter Datenbanken, die DB Instanz eures Mobile Services. Dort findet ihr in der rechten Spalte den Link Zulässige IP-Adressen verwalten. Hier habt ihr nun zwei Möglichkeiten eure IP Adresse einzugeben. Entweder ihr übernimmt die vorgeschlagene IP unter Aktuelle Client-IP-Adresse, indem ihr auf den Pfeil daneben (rote Markierung) klickt oder ihr  gebt die IP bzw den IP Adressenbereich selbst ein (orange Markierung). Ich habe im Screenshot einige IP Adressen vom Screenshot entfernt, daher seht ihr dort einige leere Felder. Damit eure Eingabe übernommen wird, müsst ihr noch in der unteren Leiste auf Speichern klicken. In Visual Studio findet ihr am linken Rand den SQL Server Object Explorer. Dort klickt ihr auf das Icon, um eine neue SQL Instanz hinzuzufügen. In dem Dialogfeld gebt ihr nun den Server-Namen und die Login-Daten für eure DB ein, die ihr beim Einrichten des Mobile Services im dritten Schritt eingegeben habt. Den Server-Namen findet ihr direkt nach dem Punkt Zuständige IP-Adressen verwalten, den ihr im vorigen Schritt dieses Tutorials gesehen habt.   Jetzt wo eure Datenbank hinzugefügt ist, klicken wir im SQL Server Object Explorer auf das Icon für eine neue Query. Und dann wählen wir in der SQL Datei in der oberen Leiste im Drop Down Feld unsere Datenbankinstanz aus. Nun sind wir bereit im Fenster SQL Code zu schreiben und auszuführen. Beginnen wir mit einem einfachem SELECT Statement. Gebt im SQL Fenster den grün markierten Befehl ein. Vor dem Tabellennamen haben wir unseren Schema-Namen, der Name des Mobile Services in unserem Fall ein. Mit Strg + Shift + E können wir den Befehl ausführen oder wir klicken auf den rot markierten Pfeil. Darunter sehen wir im Ergebnisfeld unsere Ergebnisdaten, in diesem Falle alle Rows. Nun wollen wir alle Artikel, die in der Spalte Menge einen Nullwert besitzen auf einen sinnvollen Wert, beispielsweise 1, updaten. Dazu schreiben wir folgendes UPDATE Statement in das SQL Fenster und führen es wieder aus. UPDATE MeineEinkaufsliste.ArtikelSET menge = '1'WHERE menge IS NULLGO Wenn wir jetzt wieder das obige SELECT Statement aus dem vorigen Schritt ausführen, so bekommen wir das erwartete Ergebnis. Wir haben nun erfolgreich eine Windows 8 App geschrieben, die eine Backend in der Cloud hat. Wie ihr gesehen habt, ging das ganze sehr schnell und unkompliziert. Wir haben auch gesehen, wie wir die Datenbank direkt ansprechen können und unsere Daten mittels T-SQL manipulieren können. In einem späteren Teil werden wir uns anschauen, wie wir Daten validieren können, bevor wir diese in die Tabelle einfügen. Hier sind noch alle Ressourcen für dieses Tutorial aufgelistet. Ressourcen: Visual Studio Express 2012 Windows Azure SDK Windows Azure kostenlos testen Windows Azure Mobile Services Windows Store Apps Getting Started with Data in Mobile Services

Phone-Gestik erkennen: Künstliche Intelligenz für Alle!

Von Philipp Wintersberger (Gastblogger) Autor Feed 17. January 2013 21:00
Den Anwender Symbole am Touchsreen zeichnen lassen um bestimmte Aktionen auszulösen? Das Handy das von selbst erkennt, ob sein Benutzer gerade im Zug oder doch zuhause sitzt? Bei der täglichen Jogging-Session automatisch Anrufe unterdrücken? Ein Bowling Spiel bei dem das Smartphone die Rolle der Kugel einnimmt?

Apps mit derartigen (gern gesehenen) Features haben nicht nur für Developer seinen Reiz, sie wirken ausgereifter und verkaufen sich meist auch besser – nicht nur weil es „cool“ ist, sondern weil ein erweitertes Set an Inputmodalitäten auch dafür sorgt dass sich Benutzerinteraktionen natürlich anfühlen und der ohnehin schon kleine Screen nicht mit überflüssigen Buttons belastet wird. Schließlich werden die Geräte mit einer Vielzahl an Sensoren ausgeliefert - daher sollte man sie wenn möglich auch nutzen! [More]

Entwickler Wettbewerbe:

Wettbewerbe

Entwickler Events:

Developer Events

App für Windows 8, Windows Phone oder/und Azure? Diese Events zeigen Dir, wie es geht:

Mehr Information

Aktuelle Downloads

Visual Studio Downloads
 
Windows Azure Free Trial
Instagram
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork