Links zu vorherigen Tutorials: Eins, Zwei, Drei und Vier.


In meinem vorigen Blogeinträgen haben wir Pi Passport Maschinen als eigenständige Systeme erstellt – sämtliche Daten zum Benutzer sowie alle Aktivitäten werden auf dem Pi gespeichert. Wenn Sie nicht wollen, dass Ihre Daten von einer anderen Stelle aus zugänglich sind, dann ist das völlig in Ordnung so. Für dieses Projekt ist es jedoch besser, wenn uns die Daten online zur Verfügung stehen – so können Sie anderen ganz einfach mitteilen, dass Sie an einem Jam teilgenommen haben, Ihren Freunden Ihre Aktivitäten zeigen usw.
Hierfür müssen wir etwas erstellen, dass sich REST Web-API nennt. Diese REST Web-API ermöglicht es uns, einen Request an eine URL zu schicken, um Daten abzurufen oder anzupassen. Und wie funktioniert das Ganze? Das ist eigentlich ziemlich einfach: Es gibt vier Arten von HTTP-Requests, über die eine Webseite erkennen kann, was wir machen wollen und ob wir Daten anpassen oder einfach nur abrufen. Diese entsprechen den CRUD-Methoden (Erstellen, Prüfen, Aktualisieren und Löschen) – POST (Erstellen), GET (Prüfen), PUT (Aktualisieren) und DELETE (Löschen).
In diesem Fall verwende ich Azure. Sie können aber natürlich auch einen anderen Dienst nutzen. Ich verwende Azure, weil ich Visual Studio habe (das war für mich als Studentin kostenlos), und die Erstellung von Code für eine einfache Aufgabe ist auch nicht schwierig. Also machen Sie sich keine Sorgen, wenn Sie nicht mit C# vertraut sind – das Meiste von dem, mit dem wir uns hier beschäftigen, wird sowieso automatisch erstellt. Sie können Azure auch in einer anderen Programmiersprache verwenden, da Azure Ihnen quasi keine Grenzen setzt, was den Server angeht.
Ach, und noch etwas – Azure kann man einen Monat lang kostenlos nutzen.
Wenn Sie diesen Schritt lieber überspringen möchten, dann gehen Sie einfach zum nächsten Schritt über. Requests werden sowieso immer gleich behandelt, unabhängig davon, für welchen Server Sie sich entscheiden. Eventuell stelle ich zu einem späteren Zeitpunkt nochmal eine kürzere Version dieses Tutorials bereit.


Schritt 1: Die Einrichtung von Azure
Gehen Sie als Erstes auf die Azure Webseite und klicken Sie ganz unten auf „Free Trial“ (Auf der deutschen Webseite: „Kostenlos testen“). Geben Sie hier Ihre persönlichen Daten ein (wenn Sie kein Microsoft- oder kein Hotmail-/Outlook-E-Mail-Konto besitzen, müssen Sie vorab noch eines erstellen). Klicken Sie nach der Registrierung auf das Portal ganz oben auf der Azure Startseite.
web_trial.png
Sobald der Ladevorgang abgeschlossen ist, sollten Sie das hier sehen:
web_portal.png
Klicken Sie unten links auf „New“ und wählen Sie anschließend eine der hervorgehobenen Optionen:
custom_create.png
Geben Sie alle erforderlichen Informationen ein:
create_website.png
Stellen Sie sicher, dass der Name Ihrer Webseite richtig ist und nicht von anderen Benutzern verwendet wird – da es sich hierbei um einen Shared Hosting-Plan handelt, kann theoretisch jeder Nutzer, der den gleichen Namen wie Sie hat, in Azure auf Ihre Webseite zugreifen ...
Klicken Sie auf den Pfeil unten rechts und geben Sie alle erforderlichen Informationen zur Datenbank ein:
create_database.png
Klicken Sie auf das Häkchen – und schon haben Sie eine neue Webseite und eine Datenbank erstellt, in der Sie alle Informationen speichern können.
Jetzt können wir mit dem Schreiben von Code loslegen. Wenn Sie Visual Studio nicht haben, können Sie alle erforderlichen Daten im Download-Bereich herunterladen:
downloads.png
So bekommen Sie zumindest VS express.
Ich selbst verwende VS2013 – wenn Sie noch Student bzw. Studentin sind und über Ihre Uni an Dreamspark herankommen, dann sollten Sie auch diese Version kostenlos herunterladen können. Diejenigen unter Ihnen, die ein Upgrade benötigen, müssen mindestens mit der Version 2012 arbeiten.


Schritt 2: Erstellung des Projekts & Hochladen in Azure
Wenn Sie VS jetzt öffnen und entweder im Dateimenü oder auf der Hauptstartseite auf „New Project“ klicken, wählen Sie unter „Templates -> Visual C#“ bitte „Web“. Jetzt sollte Ihnen nur die ASP.NET Web App-Option zur Verfügung stehen. Geben Sie Ihre Daten ein und klicken Sie auf „OK“.
Jetzt sollte ein neues Pop-Up erscheinen – klicken Sie hier auf „Change Authentication“.
no_auth.png
Der Einfachheit halber entscheiden wir uns jetzt gänzlich gegen eine Authentifizierung. Bei Release-Versionen ist es wahrscheinlich angebrachter, hier eine sicherere Variante zu wählen, aber für den Anfang lassen wir das jetzt einfach so stehen.
Zusätzlich dazu müssen Sie folgende Optionen wählen:
other_options.png
Klicken Sie erst auf „OK“ und in der nächsten Box dann auf „Cancel“.
Machen Sie einen Rechtsklick auf das Projekt im Solution-Explorer und wählen Sie „Publish“:
click_publish.png
Klicken Sie jetzt auf „Windows Azure Websites“ – hier finden Sie Ihr Webseitenprofil in einer Dropdown-Liste.
So sollten Sie Ihr Profil laden können. Sollte die Dropdown-Liste leer sein, klicken Sie auf „Import“ und geben Sie Ihre Anmeldedaten für Azure ein. Klicken Sie in der nächsten Ansicht auf „Validate Connection“:
publish.png
Jetzt sollte rechts neben der Schaltfläche ein gelber Haken angezeigt werden.
Klicken Sie nun zweimal auf Weiter.
Anschließend klicken Sie bitte auf „Start Preview“:
preview.png
Die Liste wird nun mit allen Daten, die hochgeladen werden, befüllt. Jetzt schauen wir uns einmal die URL an:
asp.png
Wir haben eine Webseite – die nichts kann.


Schritt 3: Aufbau der Infrastruktur
Übrigens erstellen wir hier eine MVC-Anwendung – „MVC“ steht dabei für Model View Controller. So wird die Anwendung quasi in verschiedene Ebenen aufgeteilt. Dabei erstellt sich das „Model“ selbst anhand der Daten aus der Datenbank und verwaltet sämtliche Updates und Änderungen. Der „Controller“ verwaltet die Interaktionen zwischen „Model“ und „View“, und „View“ ist die Benutzerschnittstelle, die uns die Anpassung von Daten ermöglicht.
Jetzt erstellen wir unser erstes Modell, also klicken Sie mit rechts auf den Modellordner und anschließend auf „Add -> Class“:
model.png
Im nächsten Pop-Up wählen Sie den ersten Eintrag aus der Liste (Class – also Klassifizierung) und benennen ihn in „Person.cs“ um – in C# ist es üblich, dass Klassifizierungen mit Großbuchstaben und Variablen mit Kleinbuchstaben anfangen.
Wählen Sie die neue Klassifizierung im Modellordner aus und geben Sie Folgendes ein: Gar nicht mal so anders als Python. Einzüge? Ach ja, die kann man natürlich auch noch einfügen. (Das ist ernst gemeint, denn so sieht das Ganze wesentlich übersichtlicher aus – mehr können Einzüge aber auch nicht.)

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5.  
  6. namespace Passport.Models 
  7.     public class Person 
  8.     { 
  9. public string ID { get; set; } 
  10. public string name { get; set; } 
  11.     } 


Und hier ein kurzer Tipp von mir als Python-Benutzerin zu C#: „Using“ in Python wäre in diesem Fall „Import“. Weiterhin können wir innerhalb eines Projekts verschiedene Klassifizierungen mit dem gleichen Namen erstellen, ohne Sorge haben zu müssen, dass wir sie verwechseln könnten. „Public“ bedeutet, dass auf die Klassifizierung und die Variablen auch von außerhalb des Bereichs zugegriffen werden kann, in dem sie erstellt wurden.
Jetzt richten wir hierfür einen Controller ein, indem wir mit rechts auf „Controllers -> Add -> Controller“ klicken.

Wählen Sie den Befehl „Web API 2 Controller with actions using Entity Framework“.

controller.png
Im nächsten Fenster können Sie Ihre neue Personenklassifizierung auswählen:
con_2.png
Klicken Sie auf die Schaltfläche mit einem Plus, die sich neben „Data Context“ befindet. Lassen Sie dies als Standard stehen und klicken Sie anschließend auf „OK“ und „Add“.
Befolgen Sie die obenstehenden Schritte noch zwei weitere Male, jetzt allerdings für die Aktivitäten und einen Join Table. Jede Aktivität wird über folgende Eigenschaften verfügen:
Eine ID
Eine Beschreibung
Jeder „Join“-Eintrag wird über folgende Eigenschaften verfügen:
Eine ID
Die ID des Benutzers, der die Aktivität ausgeführt hat
Die ID der ausgeführten Aktivität
Ich hoffe, dass ich den Prozess einigermaßen verständlich erklären konnte.
Sobald Sie alles erstellt haben, führen Sie Ihr Projekt aus (F5 oder die große Schaltfläche mit einem grünen Pfeil):
run.png
So überprüfen Sie, ob alles passt. Jetzt sollte sich ein Web-Browser öffnen, in dem der lokale Host sowie eine Port-Nummer angezeigt wird. Geben Sie nach dem Slash „/api/People“ ein:
Jetzt sollte das Ganze so aussehen.
api.png
Sie können den Vorgang auch anhalten, indem Sie zurück auf Visual Studio gehen, hier auf „Stop“ klicken und anschließend neu laden:
republish.png
Wenn in Ihren Datenbanken nichts angezeigt wird, gehen Sie noch einmal in die Einstellungen und passen Sie diese wie folgt an:
sett.png
Überprüfen Sie wieder, ob es online funktioniert – und dann sind wir auch schon fertig. Im nächsten Tutorial zeige ich Ihnen, wie wir dieses Projekt mit Python auf dem Pi verbinden.
Die Erstellung der Webseite, auf der Sie Ihre Aktivitäten anzeigen und mit anderen teilen können, ist etwas aufwändiger. Aus diesem Grund werde ich darauf in dieser Tutorial-Reihe nicht weiter eingehen.