Websiteentwicklung mit ASP.NET/ ASP.NET auf Linux-Basis

Aus Wikibooks

ASP.NET auf Linux-Basis[Bearbeiten]

Übersicht[Bearbeiten]

Mono ist eine zu Microsofts .NET Framework kompatible Laufzeitumgebung. So kann man viele .NET Anwendungen unter Mono laufen lassen.

Mono deckt nicht nur weite Teile Microsofts .NET Framework ab, sondern bietet zusätzlich Schnittstellen zu Linux eigenen Bibliotheken wie z.B. Avahi, GTK+ und Cairo. Des Weiteren findet man Interpreter für weitere Sprachen wie PHP.

Die Unterstützung verschiedener "Linux eigener" Bibliotheken macht Mono daher zu einem guten Kandidaten, um auch nur-Linux-Software in einer der durch Mono unterstützen Sprachen zu schreiben.

Aktuelle Distributionen wie Fedora, OpenSUSE oder auch Ubuntu liefern zumindest die Mono Runtime von Haus aus mit. Inklusive der notwendigen Compiler und Klassenbibliotheken.

Konkret zu ASP.NET ist noch zu sagen, dass Mono CodeBehind (auch die ASP.NET 2.0 Variante ) unterstützt, welche bei der Entwicklung von apsx-Seiten zu empfehlen wäre.

Im Grunde zum jetzigen Zeitpunkt sind die Installation und der Gebrauch kein großer Akt mehr.


Vorteile von Mono[Bearbeiten]

  • Freie Software
  • Unter GNU/Linux, anderen UNIX-Artigen Platformen und Micrsoft Windows lauffähig
  • GNU spezifische Erweiterungen (gettext, gtk, cairo, ...)
  • Ein breiteres Spektrum an Sprachen wird unterstützt
  • Implementation folgt der Microsofts, so das auch deren Dokumentation verwendet werden kann

Nachteile von Mono[Bearbeiten]

  • Deckt Microsoft .NET Framework nicht komplett ab
  • Zum Teil nicht trivial einzurichten


Patentrechtliches[Bearbeiten]

Prinzipiell muss man zwischen zwei Teilen unterscheiden: Der ECMA/ISO CLI Spezifikation und den darauf aufbauenden Bibliotheken wie z.B. ADO.NET, ASP.NET und Windows.Forms. So gibt es beim ersten Teil fast keine und zum zweiten Teil nur wenig Bedenken in hinsicht auf Patentansprüche durch Microsoft. Mehr dazu findet man auch auf http://mono-project.org oder dem entsprechenden Wikipedia Artikel zu Mono.

Installation[Bearbeiten]

Prinzipiell müssen zuerst alle notwendigen Mono-Runtimes und Bibliotheken installiert werden. Danach dann wahlweise Apaches mod_mono Modul oder Monos xsp Webserver, um die Arbeit an ASP.NET Seiten zu testen.

Unter beiden Webservern ist die Bearbeitung der Beispiele in diesem Buch möglich.

Installation unter Fedora 7[Bearbeiten]

Die Standard-Installation von Fedora 7 beinhaltet bereits die Mono CLI. D.h. .NET Code kann ausgeführt werden. Möchte man selbst Code Compilieren so sollte man mono-devel nicht vergessen.

# yum install mono-core mono-devel

Um Apaches httpd Mono Unterstützung beizubringen wird mindestens das Paket mod_mono benötigt, optional kann auch mono-web installiert werden.

# yum install mod_mono mono-web

Möchte man nicht gleich in Apaches httpd einsteigen, so bietet sich auch Monos xsp an. Dabei handelt es sich um einen schlanken .NET Webserver der für Testzwecke gedacht ist. Zu finden ist dieser in dem Paket xsp. Das Paket enthält zwei Webserver xsp für .NET 1.x und xsp2 für .NET 2.0.

# yum install xsp

Um GTK+ Anwendungen schreiben zu können bietet es sich an das Paket gtk-sharp2 zu installiern.

# yum install gtk-sharp2


Wie gehabt kann man auch einfach nach mono suchen:

# yum search mono

Mono Linux Installer[Bearbeiten]

In früherer zeit gab es weitaus größere Hürden zu überwinden, daher wurde der Mono Installer entwickelt. Ein kleines Tool welches eine stabile und aktuelle Version von Mono und benachbarten Tools (MonoDoc, Monodevelop) lokal installiert.

Dazu sollte man zuerst den Installer von [1] beziehen. Danach kann er über die Console ausgeführt werden:

# wget ftp://www.go-mono.com/archive/1.2.6/linux-installer/6/mono-1.2.6_6-installer.bin
# sh mono-1.2.6_6-installer.bin

Im Zuge der Installation wird auf dem Desktop ein Symbol angelegt, durch welches man zu weiteren Tools gelangt.

Erste Schritte[Bearbeiten]

Console[Bearbeiten]

Mono stellt zur Zeit zwei Compiler bereit: mcs und gmcs. mcs kann verwendet werden um Code gegen 1.x Profile zu bauen. gmcs hingegen baut gegen 2.0 (mit ausnahme von Generics und nullable tpes).

Der Aufruf

# gmcs my_app.cs

sollte die Assemblie my_app.exe erzeugen. Solange dein Code fehlerfrei ist.

Danach kann die Assembly mit

# mono my_app.exe

ausgeführt werden.

Wie unter Linux gewohnt hilft man bei Parameter Fragen zu mcs/gmcs und mono weiter.

# man mcs
# man mono


Monos xsp[Bearbeiten]

Hierbei handelt es sich um einen schlanken Webserver, der das aktuelle Arbeitsverzeichniss über das Port 8080 bereitstellt.

Am einfachsten ist es in das entsprechende Verzeichniss zu wechseln und den Server durch die Eingabe von xsp2 zu starten. Danach sind die eigenen Seiten über http://localhost:8080/ zu erreichen.

# cd /home/bender/work/mono/aspx
# xsp2
xsp2
Listening on port: 8080 (non-secure)
Listening on address: 0.0.0.0
Root directory: /home/bender/work/mono/aspx
Hit Return to stop the server.

Unterstützung biete auch hier wieder man:

# man xsp

Apaches httpd[Bearbeiten]

Nach der Installation der mod_mono und mono-web Pakete sollten alle relevanten Einstellungen an Apaches httpd vorgenommen worden sein. Es ist jedoch darauf hinzuweisen, das der übliche /home/*/public_html nicht für die Entwicklung genutzt werden sollte, da der Compiler unter vielen Distributionen dann Fehler wirft. Daher: httpds document_root Pfad zur Entwicklung verwenden.

Befindet man sich in httpds DocumentRoot, so können dort alle Beispiele dieses Buchs getestet werden.

Entwicklungsumgebungen[Bearbeiten]

Monodevelop[Bearbeiten]

Monodevelop ist in Ansätzen mit Microsofts VisualStudio Express zu vergleichen. Bietet bisher jedoch nur rudimentäre Unterstützung für ASP.NET Anwendungen.

Links[Bearbeiten]

link=../ Hoch zu Inhaltsverzeichnis | [[{{{vorlink}}}|Vor zu der nächsten Seite]] link={{{vorlink}}}