MySQL und ASP.NET MVC

Nach langer Zeit schreibe habe ich mich einmal wieder dazu durch gerungen ein Tutorial zu schreiben. Diesmal jedoch nur ein kleines. Es geht darum Die MySQL-Datenbank in Visual-Studio und der .Net-Umgebung zu nutzen. Als Beispiel benutze ich dafür ein ASP.NET MVC-Projekt, da dies wahrscheinlich der häufigste Grund ist eine Webapplikation in .Net zu schreiben. Natürlich ist die Datenbankanbindung nicht auf Webseiten beschränkt. Jedes .NET-Projekt kann dies ebenso benutzen.
Für den Anfang benötigen wir eine Datenbank. Ich habe diese mit MySQL-Workbench erstellt. Das Schema hab ich asp_mysql genannt. Das Schema beinhaltet eine Table die ich test_table gennant habe. Die Table beinhaltet drei Spalten: id (INT), name VARCHAR(45) und number (INT). Damit kann man zwar nichts anfangen, aber für eine Demonstration reicht es aus. Ich habe anschließend die Tabelle noch ein wenig gefüllt. Hier die Commandos:
CREATE TABLE IF NOT EXISTS `test_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) DEFAULT NULL,
  `number` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `test_table` (`id`, `name`, `number`) VALUES
(1, 'Eins', 1),
(2, 'Acht', 8),
(3, 'Hundert', 100),
(4, 'Elf', 11);

Datenbank auslesen:

Während die Datenanbindung früher noch eher ein Problem darstellte, und einige Änderungen in den Config-Dateien nötig waren, geht das heute alles per Mausklick. Alles was dafür benötigt wird ist der MySQL-Connector/NET. Die aktuelle Version unterstützt auch ohne Probleme Visual Studio 2010.
Zum Anfang benötigen wir ein neues Projekt. Ich habe mich für eine "ASP.NET MVC 2 Web Application" entschieden. Wie schon erwähnt macht es jedoch keinen Unterschied welches Projekt genommen wird.
Als nächstes ist es wichtig Visual Studio mit der Datenbank zu verbinden. Dies geschieht unter "Tools->Connect to Database". In dem darauf folgenden Fenster sollte unter "Data source" die MySQL-Datenbank ausgewählt werden. Die weiteren Eingabefelder sind selbsterklärend. Unter "Database name" ist der Name des vorhin erstellten Schemas einzutragen. In meinem Fall also asp_mysql.
In Visual Studio wird der Server Explorer nun die soeben ausgewählte Datenbank anzeigen. In dem Projekt ist diese jedoch noch nicht enthalten. Hierfür muss dem Projekt ein "ADO.NET Entity Data Model" hinzugefügt werden. Dies ist eine edmx-Datei. In meinem Fall habe ich sie MyDatabase.edmx genannt.
In dem darauf folgenden Wizard wählt man nun "Generate from Database" und im nächsten Fenster die gewünschte Datenbank und die Tabellen aus. Durch das anklicken der Datei können die ausgewählten Tabellen betrachtet werden. Falls an den Standardeinstellungen nichts geändert wurde kann die Datenbank über den OjectContext "asp_mysqlEntities" angesprochen werden. Um die Datenbank benutzen zu können muss eventuell nochmal ein Rebuild durchgeführt werden.
Das war es auch schon. Um das ganze nun jedoch auch zu testen habe ich der HomeController.cs eine neue ActionResult-Funktion namens Database hinzugefügt. Diese tut nichts anderes als die komplette Tabelle als Liste an eine View zu übergeben.
using System.Web;
using System.Web.Mvc;

namespace ASP_MySQL_Projekt.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            return View();
        }

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

        public ActionResult Database()
        {
            asp_mysqlEntities db = new asp_mysqlEntities();

            var entities = from m in db.test_table
                           select m;

            return View(entities.ToList());
        }
    }
}
Um die dafür passende View zu erstellen muss nichts weiter getan werden, als in die Funktion zu klicken und "Add View..." auszuwählen. In dem darauf folgenden Wizard muss die anzuzeigende Klasse nun ausgewählt werden. Zudem muss eingetragen werden, dass diese als Liste übergeben wird. Fertig.
Alles nötige wird von selbst generiert. Falls alles richtig gemacht wurde kann unter der URL: .../Home/Database der Inhalt der Datenbank bewundert werden.

Benutzer- und Rollenverwaltung:

Die Benutzerverwaltung, und alles was dazugehört, ist eine immer wieder kehrende Aufgabe für Programmierer. Viele haben sich im Laufe der Zeit natürlich selber ein paar Bibliotheken dafür geschrieben. Um diese Arbeit jedoch zu erleichtern bietet Visual Studio bereits eine fertige Benutzerverwaltung an. Um diese jedoch nutzen zu können ist eine Datenbank erforderlich. Alle dafür nötigen Einstellungen werden in der Web.config-Datei vorgenommen. Dank dem MySQL-Connector ist es jedoch nicht mehr nötig selbst Einträge in die XML-Datei zu schreiben. Alles kann bequem über einen Wizard gelöst werden. Dieser befindet sich unter dem Button "MySQL Website Configuration" im Solution Explorer.
Hier kann die Datenbank für jede Aufgabe separat Eingestellt werden. Alles wichtige steht im Connection-String. Dieser kann auch per Copy-Paste einfach in die anderen Dialogfenster kopiert werden. Mit dem Button Edit lässt er sich bequem verändern. Die wichtigsten Angaben um mit der Datenbank zu kommunizieren sind: Server, Schemaname, Benutzer, und Passwort. Mit einem Häkchen bei "Autogenerate Schema" werden nach erfolgreichem Verbindungsaufbau automatisch die nötigen Tabellen erzeugt.
Nach einem Rebuild sollten die Tabellen dann angelegt werden und die Benutzerverwaltung sollte funktionieren.
Bookmark and Share

0 Kommentare:

Kommentar veröffentlichen