ASP.NET

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
ASP.NET
Entwickler Microsoft
Aktuelle Version 4.6
(Juli 2015)
Betriebssystem ab Windows 2000
Kategorie Web-Entwicklung
Lizenz Proprietäre Software
Deutschsprachig ja
MSDN library
ASP.NET Core
Entwickler Microsoft
Aktuelle Vorabversion 1 RC 2[1]
(16. Mai 2016[1])
Kategorie Web-Entwicklung
www.asp.net

ASP.NET (Active Server Pages .NET) ist ein Web Application Framework von Microsoft, mit dem sich dynamische Webseiten, Webanwendungen und Webservices entwickeln lassen. ASP.NET ist Nachfolger von Active Server Pages (ASP) und erschien 2002 in der ersten Version. ASP.NET ist Teil des .NET Frameworks. Parallel gibt es seit 2015 ASP.NET Core, ein quelloffenes separates Framework, das offiziell auch Linux und Mac OS X unterstützt.[2][3]

ASP.NET kommt auf ca. 16,0 % aller Websites als serverseitige Programmiersprache zum Einsatz und liegt damit nach PHP (81,7 %) und vor dem drittplatzierten Java (3,0 %) auf dem zweiten Platz der am häufigsten serverseitig verwendeten Sprachen zum Erstellen von Webseiten (Stand: 20. Jan. 2016).[4]

ASP.NET[Bearbeiten | Quelltext bearbeiten]

Überblick[Bearbeiten | Quelltext bearbeiten]

Überblick über die Funktionsweise von ASP.NET

ASP.NET gehört zum .NET-Framework und stellt eine Methode dar, um .NET-Anwendungen in IIS oder anderen mit ASP.NET kompatiblen Webservern zu verwalten („hosting“). ASP.NET stellt hierbei Klassen zur Verfügung, die allen Webanwendungen gemeinsam sind, wie etwa die Authentifizierung und Autorisierung von Benutzern. Das wichtigste Element ist hierbei die HTTP-Laufzeitumgebung, die HTTP-Anfragen bearbeitet.

Mit ASP.NET können Webanwendungen in von .NET unterstützten Sprachen (theoretisch alle CLR-kompatiblen Sprachen) erstellt werden, gebräuchlich sind nahezu ausschließlich objektorientierte Sprachen wie C# und VB.NET. Eingeschränkt wird die Sprachwahl meistens nur von der jeweiligen Entwicklungsumgebung. ASP.NET ist somit keine Programmiersprache, sondern eine Bündelung von Techniken. ASP.NET-Sprachen werden nicht interpretiert, sondern in CIL übersetzt und kompiliert.

Auf die ASP.NET-Plattform setzen die jeweiligen Verfahren, wie ASP.NET WebForms, ASP.NET AJAX, ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET WebAPI und ASP.NET SignalR auf, welche jeweils als HTTP-Handler implementiert sind.

ASP.NET Web Forms[Bearbeiten | Quelltext bearbeiten]

Die Web Forms[5] bilden den Grundbaustein der Entwicklung von Webinhalten mit ASP.NET in seiner klassischen Form. Web Forms sind in Dateien mit der Dateiendung .aspx enthalten. Die ASPX-Dateien enthalten typischerweise statisches (X)HTML Markup sowie die „Web Controls“ und „User Controls“, die gemäß der serverseitig hinterlegten Logik auf dem Webserver verarbeitet und als dynamischer (X)HTML-Code ausgegeben werden. Beispiele für Web Controls, die Microsoft standardmäßig mitliefert, sind ein Kalendercontrol oder die Gridview (Tabellenansicht von Daten).

Zusätzlich können dynamische Code-Inhalte, die vom Server ausgeführt werden sollen, innerhalb einer ASPX-Datei in der Form <% -- dynamic code -- %> hinterlegt werden. Diese Art der Einbettung ähnelt stark den Konstrukten anderer Web-Programmiersprachen wie PHP, JSP und ASP. Allerdings sollte der Entwickler möglichst auf im HTML-Code verschachtelten Programmcode verzichten, da der Compiler diesen Code erst bei Ausführung auf dem Webserver überprüft. Der Code separat verfasster “Code-Behind”-Dateien (siehe unten) wird dagegen vom Compiler vollständig überprüft, was eine höhere Laufzeitsicherheit erzielt.

Mit dem ASP.NET Framework 2.0 veröffentlichte Microsoft den neuartigen Ansatz des “Code-Behind”-Modells. Dabei verbleiben statische Inhalte in der ASPX-Datei, während der dynamische Code in eine Datei des Typs .aspx.vb oder .aspx.cs respektive .aspx.fs ausgelagert wird.[6] Der Dateityp ist dabei von der verwendeten .NET-Sprache abhängig. Entwickler, die nicht mit dem „Code-Behind“-Ansatz arbeiten möchten, können die Funktion Render überschreiben und sich hier (vollkommen unabhängig von der Design-Ansicht) HTML selbst erzeugen.

Code-Behind-Modell[Bearbeiten | Quelltext bearbeiten]

Microsoft empfiehlt die Nutzung des „Code-Behind“-Ansatzes für die dynamischen Code-Anteile. Die „Code-Behind“-Dateien tragen üblicherweise die Dateiendung .aspx.cs oder .aspx.vb. Der Dateiname der ASPX-Datei entspricht dabei stets genau dem Namen der „Code-Behind“-Datei, unterschiedlich sind nur die Dateinamensendungen. Microsoft Visual Studio und andere IDEs geben diese Art der Entwicklung standardmäßig vor. Der Code einer solchen “Code-Behind”-Datei wird bereits vor Aufruf der entsprechenden Seite kompiliert. Dies senkt die Fehlerrate gegenüber Interpretersprachen, bei denen die Überprüfung auf Fehler erst zur Laufzeit stattfindet. In der “Code-Behind”-Datei hat der Entwickler die Möglichkeit, auf unterschiedlichste Ereignisse („events“) im Lebenszyklus einer ASP-Web-Forms-Web-Seite zu reagieren, darunter nicht nur z. B. das Laden der Webseite, sondern auch Ereignisse, die sich aus Benutzerinteraktionen mit Web-Formular-Inhalten ergeben, so etwa der Klick auf eine Schaltfläche.

Das Programmmodell (mit Events, die von Controls ausgelöst werden) ist dem von .NET-Applikationen sehr ähnlich, somit ist für Entwickler, die schon Applikationen für das .NET Framework geschrieben haben, die Nutzung von ASP.NET (und C#/VB.NET) leicht möglich. Meist können für Windows-Applikationen programmierte Funktionen oder Klassen sogar ohne Änderung in ASP.NET weiterverwendet werden.

Mit diesem Ansatz unterscheidet sich ASP.NET deutlich vom klassischen ASP. Eine erste Trennung von Code zur Darstellung und den Inhalten wird dadurch erreicht. Ähnlich der Trennung zwischen „View“ und „Controller“ im MVC-Muster erlaubt diese Trennung eine bessere arbeitsteilige Entwicklung zum Beispiel durch eine Aufteilung zwischen Webdesigner, der die ASPX-Datei bearbeitet, und Programmierer, der die “Code-Behind”-Datei erstellt. Die neuere Komponente ASP.NET MVC betont konzeptionell in noch viel stärkerer Form diese Art des Separation of Concerns.

Directives[Bearbeiten | Quelltext bearbeiten]

Mit Directives ist es möglich, in einer ASPX-Datei zu deklarieren, wie ASP.NET diese Seite verarbeiten soll.[7] Die am Häufigsten genutzte Directive ist <%@ Page %>. Hiermit lassen sich diverse Einstellungen vornehmen, allen voran die Angabe, in welcher Programmiersprache der dynamische Inhalt programmiert ist. Beispielsweise enthält das Code-Beispiel in diesem Artikel die <%@ Page %> Directive in der ersten Zeile.

User Controls[Bearbeiten | Quelltext bearbeiten]

User Controls kapseln bestimmte Abschnitte aus Seiten in einer eigenen Datei mit der Endung .ascx. Diese ASCX-Dateien werden innerhalb des ASP.NET-Projekts registriert und können auf ASPX-Seiten genauso verwendet werden wie die vordefinierten „Web Controls“. Die ASCX-Dateien enthalten typischerweise (X)HTML-Code sowie serverseitige Controls. Ein „User Control“ wird kompiliert, wenn die Seite, auf der das Control eingebunden wird, aufgerufen wird. Das „User Control“ wird für mögliche nachfolgende Anfragen im Speicher gehalten. „User Control“ bringen ihre eigenen Ereignisse („events“) mit, die ebenfalls vom Entwickler individuell behandelt werden können. Alle „User Controls“ sind daran gebunden, von einer ASPX-Seite aufgerufen zu werden. Der direkte Aufruf eines „User Controls“ im Webbrowser ist nicht möglich.

Individualisierte Controls[Bearbeiten | Quelltext bearbeiten]

Programmierer können selbstdefinierte Controls („Custom Controls“) in ihren ASP.NET-Webanwendungen definieren. Im Gegensatz zu „User Controls“ werden „Custom Controls“ nicht in einer ASCX-Datei definiert, sondern ihr Code wird in eine Dynamic Link Library-Datei (DLL) kompiliert. Hat er solche „Custom Controls“ einmal definiert, kann der Entwickler diese in unterschiedlichen Webanwendungen und Visual Studio-Projekten nutzen.

Diese Möglichkeiten, eigene Controls für ASP.NET zu entwickeln, bilden die Grundlage für eine Vielzahl an Controls von Drittanbietern, die frei oder kostenpflichtig zur Verfügung stehen. Es existiert ein mittlerweile sehr umfangreicher Markt, über den eine Vielzahl von wiederverwendbaren Controls frei oder kommerziell erhältlich sind. Komplexe Anforderungen brauchen daher häufig nicht selbst entwickelt zu werden.

View State[Bearbeiten | Quelltext bearbeiten]

ASP.NET unterstützt mit der ViewState-Technik eine erweiterte Möglichkeit, Speicherinhalte zwischen einzelnen Seitenaufrufen zu erhalten. Während mit der Session-State-Technik bei Active-Server-Pages bisher nur eine von den Seitenaufrufen losgelöste Speicherverwaltung existierte, hat der Entwickler bei ASP.NET die Möglichkeit, Speicherinhalte in einer ViewState-Collection abzulegen, um beim nächsten Seitenaufruf darauf zuzugreifen. Im Gegensatz zum Session-State wird der ViewState nicht auf dem Server, sondern in der zurückgegebenen Seite gespeichert.

Mit der von ASP.NET unterstützten ViewState-Technik behalten Controls ihren Status auch über aufeinander folgende Seitenaufrufe hinweg. Das nimmt Entwicklern die Arbeit ab, dies selbst umzusetzen. Ein ähnliches Konzept verfolgt Sun mit den JavaServer Faces (JSF).

Code-Beispiel[Bearbeiten | Quelltext bearbeiten]

ASPX-Datei[Bearbeiten | Quelltext bearbeiten]

Der nachfolgende Beispielcode erzeugt bei Ausführung auf dem mitgelieferten Webserver von Visual Studio eine grundlegende Ausgabe am Bildschirm; diese folgt den Standardinhalten, die Microsoft beim Anlegen einer neuen ASPX-Seite (in ASP.NET 4) generiert.

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="ASP.NET_Beispiel._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  <source lang="XML">
    <h2>
        Welcome to ASP.NET!
    </h2>
    <p>
        To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
    </p>
    <p>
        You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
            title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
    </p>
  </source>
</asp:Content>
Code-Behind-Datei[Bearbeiten | Quelltext bearbeiten]

Zu dem gezeigten ASP-Code gehört der nachfolgend zitierte Quellcode, der in der „Code-Behind“-Datei gespeichert ist. In diesem Fall kommt die Programmiersprache C# zum Einsatz, VB.NET ist dazu wie beschrieben eine gängige Alternative.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASP.NET_Beispiel
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}
Autogenerierte ".designer.cs"-Datei

Ebenfalls erzeugt wird eine Default.aspx.designer.cs, die stets autogeneriert wird anhand der ASPX-Vorlage. Da der Programmierer an dieser Datei nichts ändert (bzw. seine Änderungen überschrieben würden), ist deren Quelltext hier nicht gezeigt.

Andere Bestandteile[Bearbeiten | Quelltext bearbeiten]

  • ASP.NET bietet das Konzept der Webparts. Mit diesen können Intranets erstellt werden, in denen jeder Benutzer selbst konfiguriert, was er an welcher Stelle der Seite sehen will.
  • ASP.NET AJAX ist ein Teil von ASP.NET, mit dem sich AJAX-Webseiten unter ASP.NET entwickeln lassen. Er umfasst Klassenbibliotheken und Steuerelemente.
  • ASP.NET Webservices ist ein Teil-Framework zum Entwickeln von Webservices auf Basis der Standards SOAP, WSDL und XSD. Es erschien erstmals als Teil von .NET Framework 2.0. Entsprechend der Dateinamenserweiterung von solchen Webservices wird ASP.NET Webservices auch als ASMX bezeichnet.[8]
  • ASP.NET Web Pages sind eine Alternative zu Web Forms und MVC.
  • ASP.NET MVC ist ebenfalls eine Alternative zu Web Forms und Web Pages.
  • ASP.NET Web Api
  • ASP.NET SignalR
  • ASP.NET Dynamic Data ist ein auf Web Forms basierendes Framework zur Erstellung von Webanwendungen, das zur Laufzeit automatisch das zugrunde liegende Datenmodell ermittelt und basierend darauf das Verhalten der Benutzeroberfläche festlegt. Es ist nur ein verhältnismäßig geringer Programmieraufwand erforderlich.[9]

SOAP Extensions[Bearbeiten | Quelltext bearbeiten]

Das ASP.NET SOAP Extension Framework ermöglicht es ASP.NET-Komponenten, SOAP-Nachrichten zu verarbeiten. Für die Erstellung von und die Verbindung mit SOAP-Webservices empfiehlt sich jedoch der Einsatz der Windows Communication Foundation (WCF).

ASP.NET Core[Bearbeiten | Quelltext bearbeiten]

Siehe auch: .NET Core

ASP.NET wurde komplett neu implementiert, sodass sich damit plattformübergreifende Anwendungen entwickeln lassen. Das neue Framework heißt seit Januar 2016 ASP.NET Core und hieß zuvor ASP.NET 5. Im Unterschied zu ASP.NET ist ASP.NET Core quelloffen verfügbar. Des Weiteren sind Anwendungen, die mit ASP.NET Core entwickelt wurden, sowohl zum klassischen .NET Framework als auch zum neuen, modularen Framework .NET Core kompatibel. Im Gegensatz dazu sind Anwendungen, die mit ASP.NET entwickelt wurden, nur zum klassischen .NET Framework kompatibel.

ASP.NET Core enthält die Frameworks ASP.NET MVC und ASP.NET Web Pages. ASP.NET Web Api wird in das MVC-Framework integriert.

Andere Bestandteile und Ergänzungen[Bearbeiten | Quelltext bearbeiten]

Diese Frameworks gibt es sowohl für ASP.NET 5 als auch für frühere Versionen.

ASP.NET MVC[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: ASP.NET MVC

Das ASP.NET MVC ist eine Implementierung des MVC-Patterns und erlaubt es, dynamische Webseiten besonders klar in die drei Bereiche Model (Datenmodell), View (Ansicht) und Controller (Steuerung) zu gliedern. Dies wird durch die zugrundeliegende Architektur eingefordert und ermöglicht klares Separation of Concerns. MVC unterstützt darüber hinaus auch in besonderer Weise den Ansatz der testgetriebenen Entwicklung, da mit ASP.NET MVC für die Unit Tests kein Webserver benötigt wird (im Gegensatz zur Situation bei WebForms).[10]

Ursprünglich wurde ASP.NET MVC als Erweiterungsmodul für Webbrowser („Plugin“) ausgeführt, welches auf WebForms aufsetzt. Mittlerweile ist ASP.NET MVC jedoch ein fester Bestandteil des ASP.NET-Frameworks und von WebForms unabhängig.

ASP.NET Web API[Bearbeiten | Quelltext bearbeiten]

ASP.NET Web API ermöglicht es, REST-Web-Dienste zu implementieren. Daten werden hierbei in Form von JSON, XML oder OData übertragen. Ein JavaScript-Skript auf einer Webseite kann mit Hilfe von AJAX oder AJAJ auf diese Services zugreifen und damit Daten im Hintergrund übertragen. Dies ermöglicht die Erstellung von hochdynamischen Rich-Client-Webseiten.

Ab der Version 5 von ASP.NET gehört Web API mit zum Framework ASP.NET MVC.

ASP.NET SignalR[Bearbeiten | Quelltext bearbeiten]

ASP.NET SignalR überträgt Daten bidirektional zwischen dem Client und dem Server und basiert auf dem Netzwerkprotokoll WebSockets. Wenn der Browser des Clients WebSockets nicht beherrscht, verwendet SignalR andere Methoden der Datenübertragung (engl.: Fallback). SignalR vereinfacht damit die Implementierungen von Echtzeitanwendungen wie Chat oder Videokonferenzen.[11]

ASP.NET Web Pages[Bearbeiten | Quelltext bearbeiten]

ASP.NET Web Pages ist ein Framework zum Erstellen dynamischer Webseiten. Zum Erstellen von solchen Seiten lässt sich das Tool Microsoft WebMatrix verwenden. Razor ist eine Syntax der Programmiersprachen C# und Visual Basic .NET, die beim Erstellen von Web Pages angewandt wird.[12]

ASP.NET WebHooks[Bearbeiten | Quelltext bearbeiten]

ASP.NET WebHooks ist ein quelloffenes Framework, das das Verfahren WebHooks implementiert und auf ASP.NET Web API basiert. Es erleichtert den Konsum von Ereignissen von Webservices.[13]

Versionsgeschichte[Bearbeiten | Quelltext bearbeiten]

ASP.NET trat 2002 mit der ersten Version die Nachfolge des in die Jahre gekommenen ASP (Active Server Pages) an, hat aber heute außer dem Namen nicht mehr viel mit der alten Technologie zu tun. ASP.NET ist seit 2002 in der Version 1.0 „final“. Seit 28. Oktober 2005 gibt es die fertige Version von ASP.NET 2.0. Mit ASP.NET 2.0 wird wesentlich weniger Code (laut Microsoft bis zu 70 Prozent)[14] benötigt, um eine dynamische Web-Site zu erstellen. Mit Version 3.5 wurde ASP.NET um Unterstützung für Ajax und LINQ erweitert. Die Version 4.5 erschien zeitgleich mit der Version des .NET-Frameworks am 15. August 2012.

Version korrespondierende Visual-Studio-Version Veröffentlichung
Ältere Version; nicht mehr unterstützt: 1.0 Microsoft Visual Studio .NET Januar 2002
Ältere Version; nicht mehr unterstützt: 1.1 Microsoft Visual Studio .NET 2003 April 2003
Ältere Version; nicht mehr unterstützt: 2.0 Microsoft Visual Studio 2005 November 2005
Ältere Version; nicht mehr unterstützt: 3.0 n/a November 2006
Ältere Version; nicht mehr unterstützt: 3.5 Microsoft Visual Studio 2008 November 2007
Ältere Version; noch unterstützt: 4.0 Microsoft Visual Studio 2010 April 2010
Ältere Version; noch unterstützt: 4.5 Microsoft Visual Studio 2012 August 2012
Aktuelle Version: 4.6 Microsoft Visual Studio 2015 Juli 2015
Vorabversion: 5 RC Microsoft Visual Studio 2015 November 2015
Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Entwicklungsumgebungen[Bearbeiten | Quelltext bearbeiten]

Tool unterstützte ASP.NET-Version Lizenz Plattform
Microsoft Visual Studio 2015 2.0, 3.5, 4.0, 4.5, 4.5.1, 4.6, 5 kommerziell Windows
Microsoft Visual Studio 2013 2.0, 3.5, 4.0, 4.5, 4.5.1
Microsoft Visual Studio 2012 2.0, 3.5, 4.0, 4.5
Microsoft Visual Studio 2010 2.0, 3.5, 4.0
Microsoft Visual Studio 2008 2.0, 3.5
Microsoft Visual Studio 2005 2.0
Visual Web Developer Express 2010 4.0 kostenlos
Visual Web Developer Express 2008 2.0, 3.5
SharpDevelop 1.1, 2.0, 3.5, 4.0, 4.5 open-source
MonoDevelop 1.1, 2.0 Windows, hauptsächlich Linux, BSD
Embarcadero Delphi kommerziell Windows
Borland C# Builder
Microsoft WebMatrix kostenlos

Für kleinere Firmen und unabhängige Entwickler steht seit dem 12. November 2014 das kostenlose Visual Studio Community 2013 zur Verfügung, welches keine Funktionsbeschränkungen zur ehemaligen „Professional“-Version hat.

Nur noch von historischem Interesse ist das von Microsoft unterstützte Community-Projekt ASP.NET Web Matrix, eine Entwicklungsumgebung für ASP.NET 1.0 und 1.1. Für neuere ASP.NET-Versionen empfiehlt Microsoft stattdessen den Einsatz von Visual Web Developer Express als kostenloser Entwicklungsumgebung oder das für Einsteiger geeignete Microsoft WebMatrix.[15][16]

Webserver[Bearbeiten | Quelltext bearbeiten]

  • Microsoft Visual Studio .NET und Visual WebDeveloper Express enthalten ab der Version 2005 einen eigenen Webserver, weshalb zum Entwickeln mit diesen Produkten kein IIS mehr benötigt wird.
  • Internet Information Services (IIS 5.0/6.0/7.0) ab Windows 2000 (für Windows NT 4 und älter, sowie für Windows 9x gibt es keine Unterstützung). Im Gegensatz zu den IIS der Version 5 ist ASP.NET unter IIS 6 ab Windows Server 2003 direkt implementiert, wodurch deutliche Leistungsverbesserungen erreicht werden konnten. Die IIS sind – in eingeschränkter Form – auch in manchen nichtprofessionellen Versionen von Windows enthalten (Windows XP Professional, Vista ab Edition Home Premium).
  • Apache-Webserver Mit den Apache-Modulen mod_aspdotnet und mod_mono kann ASP.NET in den Apache-Webserver eingebunden werden.[17] Diese funktioniert auch unter Linux oder BSD.
  • XSP-Webserver (Teil des Mono-Projektes). Dieser Server steht für Windows und Linux zur Verfügung und kann über das Apache-Modul mod_mono an den Apache-Webserver angebunden werden. XSP ist in C# geschrieben, steht unter einer Open Source-Lizenz und unterstützt ASP.NET 2.0 (ohne Webparts).
  • Cassini-Webserver. Dieser Webserver wurde von Microsoft als schlankes Beispielprogramm zur Verfügung gestellt und soll Entwicklern Einblicke in die Funktionsweise des “ASP.NET Hosting” geben. Cassini ist in C# implementiert und steht unter einer Shared-Source-Lizenz.

Beurteilung[Bearbeiten | Quelltext bearbeiten]

Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

Vorteile[Bearbeiten | Quelltext bearbeiten]

  • Da das .NET-Framework selbst viele Funktionen zur Verfügung stellt, sind viele Anforderungen (wie etwa Bildbearbeitung oder XML-Verarbeitung) im Gegensatz zu beispielsweise PHP ohne Installation von zusätzlichen Libraries möglich.
  • Durch die Abstraktion der auf einer Webseite verwendeten Funktionalitäten (von Textbox über Buttons bis vollständigen Kalender-Control) in Servercontrols können browserunabhängige Webseiten erstellt werden. Zusätzlich kann mit den CSS Friendly Adaptors auf den generierten HTML-Code (auch browserspezifisch) von Standardcontrols Einfluss genommen werden, so dass diese standardkonformes HTML erzeugen, das etwa keine Tabellen zur Layoutgestaltung verwendet. Durch die Abstraktion kann zum Beispiel eine vollständige Rechteverwaltung (User/Roles) – mitsamt Nutzeranmeldung, „Passwort vergessen“, und Ähnlichem – fast ohne selbstgeschrieben Code, zumindest aber mit vorgefertigten Klassen in die eigene Seite implementiert werden. Auch ein Schutz von Dateien kann damit implementiert werden.

Nachteile[Bearbeiten | Quelltext bearbeiten]

  • Mit ASP.NET ist man bisher an einen unter Betriebssystemen der Firma Microsoft laufenden Server gebunden. Es gibt zwar freie .NET (und ASP.NET)-Implementierungen, diese sind aber (noch) nicht hundertprozentig kompatibel, und hinken daher neuen .NET-Versionen immer zumindest einige Monate hinterher. Weil jedoch PHP mit Abstand die meistverwendete Skriptsprache für Webprogrammierung ist, haben sich viele Webhoster, speziell im Bereich “Shared Hosting”, eher auf PHP/MySQL-Hosting auf Linux-Plattformen konzentriert. Dies schränkt die Wahlfreiheit beim Hosting ein.
  • Für das Hosting auf Windows Servern werden Lizenzgebühren für das Serverbetriebssystem fällig, die Provider in irgendeiner Form an den Kunden weitergeben müssen. Für die Entwicklungsumgebung gilt dies ebenfalls, sofern die Kriterien für die kostenfreie Visual Studio Community-Edition nicht erfüllt sind.

Silverlight[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Microsoft Silverlight

In Ergänzung zu den etablierten Verfahren, auf die ASP.NET zurückgreift – also HTML, CSS und JavaScript – hat Microsoft Silverlight entwickelt. Silverlight (vormals WPF/E) ist ähnlich Flash ein Browserplugin, das die Restriktionen von HTML zu umgehen versucht. Im Gegensatz zu Flash wird allerdings der Inhalt (Oberfläche, Animation oder Skript) des Applets in XML zum Browser geschickt (WPF, Windows Presentation Foundation). Dies hat zur Folge, dass solche Seiten auch problemlos mit serverseitigem Code generiert werden können, wenngleich hierfür Programme (Expression Blend) verwendet werden. Wie bei ASP.NET ist auch die Silverlight-Entwicklung im SDK Microsoft Visual Studio die von Microsoft empfohlene Art der Programmierung.

Mono-Implementierung[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Mono-Projekt

Im Zusammenhang mit Linux ist das Mono-Projekt hervorzuheben, das ASP.NET (bzw. das .NET-Framework ganz allgemein) plattformunabhängig macht. Derzeit sind ASP.NET 2.0, ASP.NET MVC und ASP.NET AJAX implementiert.[18]

Moonlight ist die Entsprechung von Silverlight im Mono-Projekt.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Matthew MacDonald: Beginning ASP.NET 4.5 in C#. Apress, 2012, ISBN 978-1-4302-4251-2.
  • Adam Freeman, Matthew MacDonald, Mario Szpuszta: Pro ASP.NET 4.5 in C#. Apress, 2013, ISBN 978-1-4302-4254-3.
  • Adam Freeman: Pro ASP.NET MVC 4. Apress, 2012, ISBN 978-1-4302-4236-9.
  • Jamie Kurtz: ASP.NET MVC 4 and the Web API: Building a REST Service from Start to Finish. Apress, 2013, ISBN 978-1-4302-4977-1.
  • Jamal Baydaoui: Webseiten entwickeln mit ASP.NET. Hanser, 2013, ISBN 978-3-446-43723-4.
  • Holger Schwichtenberg: Microsoft ASP.NET 4.0 mit Visual C# 2010. Microsoft Press Deutschland, Unterschleißheim 2011, ISBN 978-3-86645-530-6.
  • Jana Frank, Patrick A. Lorenz: ASP.NET 3.5 mit AJAX. Carl Hanser Verlag, München 2008, ISBN 978-3-446-41199-9.
  • Chris Hart, John Kauffman, Dave Sussman, Chris Ullman: Beginning ASP.NET 2.0. Wiley Publishing, 2006, ISBN 0-7645-8850-8 (englisch).
  • Hannes Preishuber: ASP.NET 2.0 Crash Kurs. Microsoft Press, 2006, ISBN 3-86063-988-9.
  • Holger Schwichtenberg: ASP.NET 2.0 – Das Entwicklerbuch. Microsoft Press, 2006, ISBN 3-86063-544-1 (VB) und ISBN 3-86063-546-8 (C#).
  • Christian Wenz, Andreas Kordwig, Christian Trennhaus: Jetzt lerne ich ASP.NET. Markt und Technik, Oktober 2004, ISBN 3-8272-6813-3.

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Wikibooks: Websiteentwicklung mit ASP.NET – Lern- und Lehrmaterialien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b [1]
  2. Introduction to ASP.NET 5 Konzeptioneller Überblick zu ASP.NET 5.
  3. Roadmap ASP.NET 5, Roadmap ASP.NET 5.
  4. Usage of server-side programming languages for websites. Abgerufen am 16. Januar 2016.
  5. Overview of ASP.NET and Web Forms. Microsoft Developer Network. November 2001. Abgerufen am 5. Juni 2011.
  6. Code Behind vs. Code Inline. In: Microsoft .NET Framework. Microsoft. Abgerufen am 22. November 2010.
  7. ASP.NET Web Page Syntax Overview. In: Microsoft .NET Framework. Microsoft Developer Network. Abgerufen am 22. November 2010.
  8. Jürgen Mauerer: Web Services mit .NET Framework 2.0 und Visual Studio 2005. In: MSDN vom 17. Juni 2005, abgerufen am 2. Dezember 2015.
  9. Übersicht über ASP.NET Dynamic Data. In: MSDN, abgerufen am 2. Dezember 2015.
  10. msdn.microsoft.com
  11. Patrick A. Lorenz: Zwischen allen Fronten. in: dotnetpro Nr. 11/2015, S. 134 ff.
  12. Introducing ASP.NET Web Pages – Getting Started. In: ASP.NET, abgerufen am 1. Dezember 2015.
  13. Patrick A. Lorenz: Unterwegs mit Captain Hook. In: dotnetpro Nr. 12/2015, S. 134 ff.
  14. webplatform.mspx
  15. asp.net
  16. microsoft.com
  17. mod_aspdotnet. sourceforge.net, abgerufen 23. Mai 2012.
  18. ASP.NET