CodeFest.at Feed – Mario Meir-Huber

In dieser Kategorie befinden sich alle Beiträge, welche von Mario Meir-Huber im Auftrag der Microsoft Developer and Platform Group (DPE) Österreich erstellt wurden. Die Beiträge sind im Original auf www.codefest.at auffindbar.

Im Tutorial #2 habe ich einige Controller-Aktionen vorgestellt, bis dato jedoch noch keinen Quellcode im Controller gezeigt. Sehen wir uns zu allererst mal den HomeController an. Hier haben wir die Methode “Index”, welche auf den gleichnamigen View verweist. Außerdem geben wir dem View noch Daten mit. Dies kann man über mehrere Möglichkeiten erreichen. In unserem Beispiel verwenden wir ViewData. In einem späteren Post werde ich noch weitere Möglichkeiten vorstellen.

public ActionResult Index()
{
    ViewData["Message"] = "Welcome to ASP.NET MVC!";

    return View();
}

Dies hat dann folgenden Output als Effekt:

image

Im Home-Controller befindet sich auch noch die Methode “About”. Hier wird ebenfalls wie in der Index-Methode “return View” angegeben. Diese Methode gibt jetzt einen View mit den Namen “About” zurück. Es ist auch möglich, andere Views anzugeben.

public ActionResult About()
{
    return View();
}

Der View “About” ist im Ordner unter “Views/Home/” zu finden.

image

Will man einen anderen Controller aufrufen – in meinem Fall den Controller “ForceController” so wird auch hier der Default Route mit Index aufgerufen. Ein Aufruf von “/Force” landet demnach auf Index.

public ActionResult Index()
{
    return View();
}

image

Asp.NET MVC stellt uns jedoch auch noch wesentlich mehr Möglichkeiten zur Verfügung, Daten zurückzugeben. Bis jetzt hatten wir immer “return View()” verwendet. Es ist jedoch auch möglich, einfachen Content zurückzugeben. Dies funktioniert mit “return Content”.

public ActionResult HelloWorld()
{
    return Content("Hello World");
}

In diesem Fall wird der Content ausgegeben. Im Tutorial 2 habe ich auch auf Nullable Types als Parameter hingewiesen. Hierfür muss man dies nur in der Methode so definieren:

public ActionResult GetSomeId(int? id)
{
    if (id.HasValue)
        return Content(string.Format("Hello Number {0}", id.Value));
    else
        return Content("No value specificed");
}

Wird die Methode ohne Parameter aufgerufen, so gibt diese “No value specified” zurück. Asp.NET MVC erlaubt es uns auch, auf andere Controller/Actions zu verlinken. Dies geschieht beispielsweise mit “RedirectToAction”. Wenn man sich ein standard-CRUD System vorstellt, so macht dies durchaus Sinn.

public ActionResult NoWay()
{
    return RedirectToAction("Index");
}

In diesem Beispiel wird auf die Action Index am selben Controller verlinkt. Außerdem kann man beispielsweise sehr einfach ein Datum zurückgeben. Hierbei wird es in “Content” gewrappt. Today kann auch vom Controller aufgerufen werden.

public DateTime Today()
{
    return DateTime.Now;
}

image

Besonders interessant ist jedoch die Möglichkeit, weiter Typen wie Dateien oder JSON zurück zu geben. Vor allem JSON eignet sich hervorragend für JScript/jQuery Interaktionen.

public ActionResult JSONGoesToHell()
{
    return Json(new { Id = 1, Content = "Hello JSON" }, JsonRequestBehavior.AllowGet);
}

image

Dies gibt folgendes aus:

image

Im nächsten Post werden wir uns CustomRoutes mal ansehen und was die so alles schönes für uns machen können.

Erstellt man ein neues Projekt mit Asp.NET MVC, so fällt sehr schnell auf das dies mit einigen Ordnern kommt. Im folgenden Bild ist die Ordnerstruktur eines neu erstellten MVC Projektes dargestellt.

image

Im ersten Unterordner Namens “Content” befindet sich die Datei “Site.css”. Hier werden typischerweise die statischen Inhalte wie Stylesheets oder ähnlichem abgelegt.

image

Der Ordner “Controllers” ist, wie könnte es auch anders sein, für die Controller bestimmt. Der AccountController ist für Login/Logout und Benutzerinteraktion da. Der “HomeController” ist der Controller für die Startseite.

image

Im Ordner “Scripts” befinden sich verschiedene JavaScript Dateien. Hier ist vor allem die jQuery Integration von Interesse. jQuery ist gut in Asp.NET MVC integriert und wir werden gegen Ende dieser Tutorial-Reihe noch stärker auf jQuery eingehen.

image

Im Ordner “Views” sind nun die Views geschachtelt. Wenn ein Controller einen View aufruft, so sucht dieser entweder im Ordner “Shared” oder im dafür zuständigen Ordner. Dies ist für den HomeController der Ordner “Home”.

image

Dazu kommen noch die Dateien “Global.asax” und “Web.config” im Root-Verzeichnis. Im nächsten Beitrag werden wir uns mal etwas Code im Controller ansehen.

Gemeinsam mit einigen anderen habe ich in den letzten Jahren die .NET Community in Österreich versucht, neu aufzustellen. Daraus sind ausgehend von den .NET Open Space die Open Space Pirates in Wien entstanden. Ein sehr ähnliches Konzept verfolgt Georg mit seiner informellen UserGroup in Graz. Derzeit arbeite ich auch an einer neuen Niederlassung der Open Space in Linz. Die Erfolge sind beeindruckend: In Wien fand seit Dezember 2009 JEDES MONAT ein treffen statt – das bedeutet das die Community sehr aktiv ist.

Doch man muss sich natürlich auch fragen, wohin man mit der Community will. Die Marschrichtung ist klar: es geht Richtung Professionalisierung. Die Planung der Community Aktivitäten erfordern seitens der Organisatoren sehr viel Zeit. Dies ist Zeit, die niemand bezahlt bekommt. Daher haben wir die letzten Wochen und Monate einige strategische Sitzungen hinter verschlossenen Türen wo wir uns überlegt haben wie die Community weiter funktionieren soll. Das Endergebnis möchte ich an dieser Stelle präsentieren:

1. Community Mitgliedschaft

Der Betrieb der Website und Marketing wie auch die Organisation und Abhaltung der Events fordert viel Aufwand und kostet Geld. Dadurch wird die Community-Mitgliedschaft ab 01. April 2011 kostenpflichtig sein. Mitglieder werden einen Jahresbeitrag von 200€ zahlen, damit die Kosten gedeckt werden können. Damit wird eine Teilzeitkraft finanziert, die alltägliche Aufgaben erledigt. An Community Treffen können nur Personen Teilnehmen, die auch zahlende Mitglieder sind. Allen anderen wird zukünftig der Zutritt zur Community verwehrt. Innerhalb der Community gilt natürlich das Prinzip des OpenSpace weiterhin. Außerdem ist zusätzlich eine Teilnahmegebühr pro Treffen von 20€ zu bezahlen, damit ein gutes Catering bestellt werden kann. Da es bei solchen Veranstaltungen immer eine sehr hohe No-Show Rate gibt (Personen, die sich zwar anmelden aber dann nicht erscheinen) ist diese “Grundgebühr” pro Veranstaltung gerechtfertigt. Mitglieder haben die Verpflichtung, an 8 von 12 Community Treffen teilzunehmen. Sollte dies nicht erfüllt werden, wird eine individuelle Pönale verhängt. Dies kann jedoch durch immaterielle Leistungen wie etwa dem Aufräumen nach dem Treffen oder dem Bereitstellen von belegten Brötchen vor dem Meeting abgeleistet werden. Die Community Mitgliedschaft ist auf 24 Monate festgelegt und ist zu Laufzeitende unter Einhaltung einer 3-monatigen Kündigungsfrist auflösbar. Die bereits bestehenden Community-Mitglieder die im letzten Jahr an einem Treffen teilgenommen haben sind bereits automatisch Mitglied und werden die Zahlscheine nächste Woche erhalten.

2. Sponsoring seitens Unternehmen

Da die Mitgliedsbeiträge nur teile der Kosten abdecken gibt es auch vielfältige Sponsoring Möglichkeiten für Unternehmen. Pro Event wird es genau einen Hauptsponsor geben. Der Hauptsponsor hat für die Bereitstellung einer geeigneten Location zu sorgen. Neben dem Hauptsponsor gibt es 2 Gold-Sponsoren. Bevor ein Vortrag beginnt hat jeder der beiden Gold-Sponsoren die Möglichkeit, einen 30-sekündigen Werbevortrag zu halten. Dies wird meist über Videos durchgeführt. Alle 30 Minuten ist danach eine Werbepause, welche 1 Minuten andauert. Bei einem 2-stündigen Meeting, welches der Normalfall ist, kann man somit 3 Werbepausen einbinden. Jede Werbepause bietet die Möglichkeit, 2 Unternehmen zu präsentieren. Unsere Erfahrung und die aktuell vorliegenden Anfragen haben gezeigt das hier seitens der Unternehmen ein erhöhtes Interesse besteht. Außerdem wird den Unternehmen der Zugang zu den E-Mail Adressen und den persönlichen Daten der Mitglieder gegeben – natürlich gegen sehr gute Bezahlung. Ein 2-wöchentlich Herausgegebener Newsletter kann ebenfalls mit Werbung belegt werden. Bei Anfragen seitens Unternehmen bitte mit unseren Kundenberater für Community-Werbung unter till.eulenspiegel@hoax.com in Verbindung setzen.

Wir sind uns sicher das somit die Qualität der .NET Community in Österreich noch weiter verbessert wird. Dies betrifft natürlich nur die .NET Community, nicht von Microsoft selbst durchgeführte Veranstaltungen. Bevor es jetzt ans Kampfposten geht, möchte ich jeden bitten sich das Datum dieses Beitrages noch einmal genau anzusehen.

Sprache

SharePointTrench Latest