(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Neues in ASP.NET 4 und Visual Web Developer

.NET Framework, Version 4 bietet Verbesserungen für ASP.NET 4 in bestimmten Bereichen. Visual Studio 2010 und Microsoft Visual Web Developer Express enthalten ebenfalls Weiterentwicklungen und neue Features für eine verbesserte Webentwicklung. Dieses Dokument bietet eine Übersicht über viele der neuen Funktionen, die in der zukünftigen Version enthalten sind.

Dieses Thema enthält folgende Abschnitte:

ASP.NET 4 enthält viele neue Funktionen, durch die ASP.NET-Basisdienste wie Ausgabecache und Sitzungszustandsspeicher verbessert werden.

Umgestaltung der Web.Config-Datei

Die Web.config-Datei, die Konfigurationsinformationen für eine Webanwendung enthält, hat seit den letzten Versionen von .NET Framework erheblich an Größe zugenommen, da neue Funktionen hinzugefügt wurden. In .NET Framework 4 wurden wichtige Konfigurationselemente in die Datei machine.config verschoben, und Anwendungen erben nun diese Einstellungen. Die Web.config-Datei in ASP.NET 4-Anwendungen darf daher leer sein bzw. es genügt, lediglich anzugeben, welche Version von .NET Framework als Ziel für die Anwendung festgelegt wurde (siehe folgendes Beispiel).

<?xml version="1.0"?> 
<configuration> 
  <system.web> 
    <compilation targetFramework="4.0" /> 
  </system.web> 
</configuration>

Erweiterbares Ausgabecaching

Seit der Veröffentlichung von ASP.NET 1.0 haben Entwickler die Möglichkeit, die generierte Ausgabe von Seiten, Steuerelementen und HTTP-Antworten im Arbeitsspeicher zu speichern. Bei nachfolgenden Webanfragen kann ASP.NET Inhalt schneller bereitstellen, indem die generierte Ausgabe aus dem Arbeitsspeicher abgerufen anstatt neu erstellt wird. Bei diesem Ansatz gibt es jedoch eine Einschränkung – generierter Inhalt muss immer im Arbeitsspeicher gespeichert werden. Auf Servern mit starkem Datenverkehr kann es vorkommen, dass die Arbeitsspeicheranforderungen für Ausgabecaching um andere Teile einer Webanwendung mit Arbeitsspeicheranforderungen konkurrieren.

ASP.NET 4 erweitert Ausgabecaching so, dass Sie die Möglichkeit haben, einen oder mehrere benutzerdefinierte Ausgabecacheanbieter zu konfigurieren. Ausgabecacheanbieter können HTML-Inhalte mithilfe eines beliebigen Speichermechanismus beibehalten. Diese Speicheroptionen können lokale oder Remotedatenträger, Wolkenspeicher und verteilte Cachemodule einschließen.

Mithilfe der Erweiterbarkeit für Ausgabecacheanbieter in ASP.NET 4 können Sie aggressivere und intelligentere Ausgabecachingstrategien für Websites entwickeln. Sie können z. B. einen Ausgabecacheanbieter erstellen, der die "Top 10"-Seiten einer Site im Arbeitsspeicher zwischenspeichert, während Seiten mit niedrigerem Datenverkehr auf dem Datenträger gespeichert werden. Alternativ können Sie jede beliebige Kombination für eine gerenderte Seite zwischenspeichern, jedoch einen verteilten Cache verwenden, damit die Arbeitsspeichernutzung auf den Front-End-Webservern reduziert wird.

Sie erstellen einen benutzerdefinierten Ausgabecacheanbieter als Klasse, die sich vom OutputCacheProvider-Typ ableitet. Sie können dann den Anbieter in der Web.config-Datei mit dem neuen Unterabschnitt des outputCache-Elements konfigurieren.

Weitere Informationen und Beispiele, die anzeigen, wie der Ausgabecache konfiguriert wird, finden Sie unter outputCache-Element für caching (ASP.NET-Einstellungsschema). Weitere Informationen zu den Klassen, die das Zwischenspeichern unterstützen, finden Sie in der Dokumentation zur OutputCache-Klasse und zur OutputCacheProvider-Klasse.

Standardmäßig wird in ASP.NET 4 für alle HTTP-Antworten, gerenderten Seiten und Steuerelemente der Ausgabecache im Arbeitsspeicher verwendet. Das defaultProvider-Attribut für ASP.NET ist AspNetInternalProvider. Sie können den für eine Webanwendung verwendeten standardmäßigen Ausgabecacheanbieter ändern, indem Sie für das defaultProvider-Attribut einen anderen Anbieternamen angeben.

Außerdem können Sie verschiedene Ausgabecacheanbieter für einzelne Steuerelemente und Anforderungen auswählen und programmgesteuert angeben, welcher Anbieter verwendet werden soll. Weitere Informationen finden Sie unter der HttpApplication.GetOutputCacheProviderName(HttpContext)-Methode. Die einfachste Möglichkeit, einen anderen Ausgabecacheanbieter für andere Webbenutzersteuerelemente auszuwählen, besteht darin, dies deklarativ mit dem neuen providerName-Attribut in einer Page- oder Steuerdirektive zu tun, wie im folgenden Beispiel dargestellt:

<%@ OutputCache Duration="60" VaryByParam="None" 
    providerName="DiskCache" %>

Automatisches Starten von Webanwendungen

Einige Webanwendungen müssen vor dem Behandeln der ersten Anforderung große Datenmengen laden oder eine teure Initialisierungsverarbeitung ausführen. Für diese Situationen mussten Sie in früheren Versionen von ASP.NET benutzerdefinierte Ansätze entwickeln, um eine ASP.NET-Anwendung zu aktivieren, und dann während der Application_Load-Methode in der Datei "Global.asax" ausführen.

Für dieses Szenario ist eine neue Autostartfunktion verfügbar, wenn ASP.NET 4 mit IIS 7.5 unter Windows Server 2008 R2 ausgeführt wird. Die Funktion stellt einen gesteuerten Ansatz zum Starten eines Anwendungspools, Initialisieren einer ASP.NET-Anwendung und anschließenden Akzeptieren von HTTP-Anforderungen bereit. Sie können damit vor der Verarbeitung der ersten HTTP-Anforderung die teure Anwendungsinitialisierung ausführen.

Weitere Informationen zur neuen Autostartfunktion finden Sie im What's New for ASP.NET 4 White Paper.

Dauerhaftes Umleiten einer Seite

Inhalt in Webanwendungen wird häufig im Verlauf der Lebensdauer der Anwendung verschoben. Dies kann dazu führen, dass Links veraltet sind, z. B. die Links, die von Suchmodulen zurückgegeben werden.

In ASP.NET wurden Anforderungen an veraltete URLs von Entwicklern gewöhnlich mit der Redirect-Methode behandelt, um eine Anforderung an die neue URL weiterzuleiten. Die Redirect-Methode gibt jedoch die Antwort "HTTP 302 (Found)" aus (die für eine temporäre Umleitung verwendet wird). Dies führt zu einem zusätzlichen HTTP-Roundtrip.

ASP.NET 4 fügt eine RedirectPermanent-Hilfsmethode hinzu, die das Ausgeben der Antworten "HTTP 301 (Moved Permanently) wie im folgenden Beispiel erleichtert.

RedirectPermanent("/newpath/foroldcontent.aspx");

Suchmaschinen und andere Benutzer-Agents, die permanente Umleitungen erkennen, speichern die neue URL, die dem Inhalt zugeordnet ist. Dadurch wird der unnötige Roundtrip durch den Browser für temporäre Umleitungen verhindert.

Sitzungszustandskomprimierung

Standardmäßig stellt ASP.NET zwei Optionen zum Speichern des Sitzungszustands in einer Webfarm bereit. Die erste Option ist ein Sitzungszustandsanbieter, der einen prozessexternen Sitzungszustandsserver aufruft. Die zweite Option ist ein Sitzungszustandsanbieter, der Daten in einer Microsoft SQL Server-Datenbank speichert.

Da beide Optionen Zustandsinformationen außerhalb des Arbeitsprozesses einer Webanwendung speichern, muss der Sitzungszustand serialisiert werden, bevor er an den Remotespeicher gesendet wird. Wenn eine große Datenmenge im Sitzungszustand gespeichert wird, können die serialisierten Daten sehr groß werden.

ASP.NET 4 enthält eine neue Komprimierungsoption für beide Arten von prozessexternen Sitzungszustandsanbietern. Mithilfe dieser Option können Anwendungen, die über Ersatz-CPU-Zyklen auf Webservern verfügen, eine beträchtliche Reduzierung der Größe serialisierter Sitzungszustandsdaten erzielen.

Sie können diese Option mit dem neuen compressionEnabled-Attribut des sessionState-Elements in der Konfigurationsdatei festlegen. Wenn die compressionEnabled-Konfigurationsoption auf true festgelegt ist, komprimiert (und dekomprimiert) ASP.NET den serialisierten Sitzungszustand mit der GZipStream-Klasse von .NET Framework.

Erweitern des Bereichs zulässiger URLs

ASP.NET 4 führt neue Optionen zum Erweitern der Größe von Anwendungs-URLs ein. In früheren Versionen von ASP.NET war die Länge von URL-Pfaden aufgrund der NTFS-Dateipfadbeschränkung auf 260 Zeichen beschränkt. In ASP.NET 4 besitzen Sie die Möglichkeit, diese Beschränkung für Ihre Anwendungen nach Bedarf zu erweitern oder zu verringern. Verwenden Sie dazu zwei neue Attribute des httpRuntime Konfigurationselements. Im folgenden Beispiel werden diese neuen Attribute gezeigt.

<httpRuntime maxRequestPathLength="260" maxQueryStringLength="2048" />

Mit ASP.NET 4 können Sie auch die Zeichen konfigurieren, die von der URL-Zeichenprüfung verwendet werden. Wenn ASP.NET ein ungültiges Zeichen im Pfadteil einer URL erkennt, lehnt es die Anforderung ab und gibt einen HTTP-400-Statuscode (ungültige Anforderung) aus. In früheren Versionen von ASP.NET waren die URL-Zeichenkontrollen auf einen festen Satz von Zeichen beschränkt. In ASP.NET 4 können Sie den Satz gültiger Zeichen mithilfe des neuen requestPathInvalidChars-Attributs des httpRuntime-Konfigurationselements anpassen (siehe folgendes Beispiel).

<httpRuntime requestPathInvalidChars="&lt;,&gt;,*,%,&amp;,:,\,?" />

(In der Zeichenfolge, die requestPathInvalidChars standardmäßig zugewiesen wird, sind die Zeichen für kleiner als (<), größer als (>) und das kaufmännische Und-Zeichen (&) codiert, da es sich bei der Web.config-Datei um eine XML-Datei handelt.) Standardmäßig definiert das requestPathInvalidChars-Attribut acht Zeichen als ungültig.

HinweisHinweis

ASP.NET 4 lehnt immer URL-Pfade ab, die Zeichen im ASCII-Bereich von 0x00 bis 0x1F enthalten, da es sich dabei im ungültige URL-Zeichen handelt, die in RFC 2396 der IETF (siehe http://www.ietf.org/rfc/rfc2396.txt auf der IETF-Website definiert sind). Bei Versionen von Windows Server, auf denen IIS 6 oder höher ausgeführt wird, lehnt der http.sys- Protokollgerätetreiber URLs, die diese Zeichen enthalten, automatisch ab.

ASP.NET-Anforderungsvalidierung durchsucht eingehende HTTP-Anforderungsdaten nach Zeichenfolgen, die in der Regel in websiteübergreifenden Skriptangriffen (XSS) verwendet werden. Wenn potenzielle XSS-Zeichenfolgen gefunden werden, kennzeichnet Anforderungsvalidierung die verdächtige Zeichenfolge und gibt einen Fehler zurück. Die integrierte Anforderungsvalidierung gibt nur einen Fehler zurück, wenn sie die am häufigsten in XSS-Angriffen verwendeten Zeichenfolgen findet. Frühere Versuche, die XSS-Validierung aggressiver zu gestalten, hatten zu viele falsch positive Ergebnisse zur Folge. Möglicherweise wünschen Sie jedoch eine aggressivere Anforderungsvalidierung. Im Gegensatz dazu möchten Sie XSS-Überprüfungen für bestimmte Seiten oder Anforderungstypen ggf. bewusst lockern.

In ASP.NET 4 wurde die Anforderungsvalidierungsfunktion als erweiterbar konfiguriert, damit Sie benutzerdefinierte Anforderungsvalidierungslogik verwenden können. Um die Anforderungsvalidierung zu erweitern, erstellen Sie eine Klasse, die von der neuen System.Web.Util.RequestValidator-Klasse abgeleitet wird, und konfigurieren Sie die Anwendung für die Verwendung des benutzerdefinierten Typs (im httpRuntime-Abschnitt der Web.config-Datei). Weitere Informationen finden Sie unter System.Web.Util.RequestValidator.

Objektzwischenspeicherung und Erweiterung der Objektzwischenspeicherung

Seit der ersten Version verfügt ASP.NET über einen leistungsstarken Objektcache (System.Web.Caching.Cache) im Arbeitsspeicher. Die Cacheimplementierung erfreute sich so großer Beliebtheit, dass sie auch in nicht webbezogenen Anwendungen verwendet wurde. Für eine Windows Forms- oder WPF-Anwendung ist es jedoch wenig sinnvoll, nur wegen der Möglichkeit der Verwendung des ASP.NET-Objektcaches einen Verweis auf die Datei System.Web.dll einzuschließen. Um die Möglichkeit zur Zwischenspeicherung für alle Anwendungen verfügbar zu machen, werden in .NET Framework 4 eine neue Assembly, ein neuer Namespace, einige Basistypen und eine konkrete Zwischenspeicherungsimplementierung eingeführt. Die neue System.Runtime.Caching.dll-Assembly enthält im System.Runtime.Caching-Namespace eine neue Zwischenspeicher-API. Der Namespace enthält zwei Kernsätze von Klassen:

  • Abstrakte Typen, die die Grundlage für die Erstellung jedes beliebigen Typs benutzerdefinierter Cacheimplementierung bilden.

  • Eine konkrete Objektcacheimplementierung im Arbeitsspeicher (die MemoryCache-Klasse).

Die neue MemoryCache-Klasse ist eng an den ASP.NET-Cache angelehnt, und sie hat wesentliche Bestandteile mit der internen Cachemodullogik von ASP.NET gemein. Obwohl die öffentlichen Zwischenspeicher-APIs im System.Runtime.Caching-Namespace im Hinblick auf die Unterstützung der Entwicklung von benutzerdefinierten Caches aktualisiert wurden, wenn Sie das Cache-Objekt in ASP.NET verwendet haben, wurden in den neuen APIs auch bekannte Konzepte umgesetzt.

Erweiterbare HTML-, URL- und HTTP-Headercodierung

In ASP.NET 4 können Sie benutzerdefinierte Codierungsroutinen für die folgenden allgemeinen Textcodierungsaufgaben erstellen:

  • HTML-Codierung.

  • URL-Codierung.

  • HTML-Attributcodierung.

  • Codieren von ausgehenden HTTP-Headern.

Sie können einen benutzerdefinierten Encoder durch Ableitung vom neuen System.Web.Util.HttpEncoder-Typ und anschließende Konfiguration von ASP.NET für die Verwendung des benutzerdefinierten Typs im httpRuntime-Abschnitt der Web.config-Datei erstellen (siehe folgendes Beispiel).

<httpRuntime encoderType="Samples.MyCustomEncoder, Samples" />

Nach der Konfiguration eines benutzerdefinierten Encoders ruft ASP.NET automatisch die benutzerdefinierte Codierungsimplementierung auf, wenn öffentliche Codierungsmethoden der HttpUtility-Klasse oder der HttpServerUtility-Klasse aufgerufen werden. Damit kann ein Teil eines Webentwicklungsteams einen benutzerdefinierten Encoder erstellen, der eine aggressive Zeichencodierung implementiert, während das restliche Team weiterhin die öffentlichen ASP.NET-Codierungs-APIs verwendet. Durch die zentrale Konfiguration eines benutzerdefinierten Encoders im httpRuntime-Element wird sichergestellt, dass alle Textcodierungsaufrufe von den öffentlichen ASP.NET-Codierungs-APIs über den benutzerdefinierten Encoder weitergeleitet werden.

Leistungsüberwachung für einzelne Anwendungen in einem einzelnen Arbeitsprozess

Um die Anzahl von Websites zu erhöhen, die auf einem einzelnen Server gehostet werden können, führen zahlreiche Hoster mehrere ASP.NET-Anwendungen in einem einzelnen Arbeitsprozess aus. Wenn jedoch mehrere Anwendungen einen einzelnen freigegebenen Arbeitsprozess verwenden, ist es für Serveradministratoren schwierig, eine einzelne Anwendung zu identifizieren, in der Probleme auftreten.

ASP.NET 4 nutzt neue von der CLR eingeführte Ressourcenüberwachungsfunktion. Um diese Funktionalität zu aktivieren, können Sie der Konfigurationsdatei aspnet.config den folgenden XML-Konfigurationsausschnitt hinzufügen.

<?xml version="1.0" encoding="UTF-8" ?> 
<configuration> 
  <runtime> 
    <appDomainResourceMonitoring enabled="true"/> 
  </runtime> 
</configuration> 

(Die Datei aspnet.config befindet sich in dem Verzeichnis, in dem .NET Framework installiert ist. Es handelt sich nicht um die Web.config-Anwendungsdatei.) Wenn die appDomainResourceMonitoring-Funktion aktiviert wurde, sind in der Leistungskategorie "ASP.NET-Anwendungen" zwei neue Leistungsindikatoren verfügbar: % Verwaltete Prozessorzeit und der verwendete verwaltete Arbeitsspeicher. Beide Leistungsindikatoren verwenden die neue Verwaltungsfunktion für CLR-Anwendungsdomänenressourcen, um geschätzte CPU-Zeit und verwaltete Arbeitsspeicherauslastung einzelner ASP.NET-Anwendungen zu verfolgen. Infolgedessen erhalten Administratoren mit ASP.NET 4 nun einen detaillierten Einblick in den Ressourcenverbrauch einzelner Anwendungen, die in einem einzelnen Arbeitsprozess ausgeführt werden.

jQuery in Web Forms und MVC enthalten

Die Visual Studio-Vorlagen für Web Forms und MVC beinhalten die jQuery-Bibliothek, eine Open Source-Anwendung. Wenn Sie eine neue Website oder ein Projekt erstellen, wird ein Skriptordner erstellt, der die folgenden Dateien enthält:

  • jQuery-1.4.1.js – Die lesbare, vollständige Version der jQuery-Bibliothek. (Bei einer Verkleinerung werden nicht erforderliche Zeichen aus dem Code entfernt, um die Größe zu verringern, wodurch die Lade- und Ausführungszeiten verbessert werden.)

  • jQuery-14.1.min.js – Die verkleinerte Version der jQuery-Bibliothek.

  • jQuery-1.4.1-vsdoc.js – Die IntelliSense-Dokumentationsdatei für die jQuery-Bibliothek.

Schließen Sie die unverkleinerte Version von jQuery ein, während Sie eine Anwendung entwickeln. Schließen Sie die verkleinerte Version von jQuery für Produktionsanwendungen ein.

Unterstützung für Inhaltszustellungsnetzwerk

Das Microsoft-Inhaltszustellungsnetzwerk (CDN) ermöglicht das problemlose Hinzufügen von ASP.NET Ajax- und jQuery-Skripts zu den Webanwendungen. Sie können die jQuery-Bibliothek z. B. einfach durch Hinzufügen eines script-Elements zu der Seite verwenden, die auf Ajax.microsoft.com zeigt (siehe folgendes Beispiel).

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script>

Sie können die Leistung der AJAX-Anwendungen bedeutend verbessern, indem Sie das Microsoft AJAX-CDN nutzen. Der Inhalt des Microsoft AJAX-CDNs wird auf Servern zwischengespeichert, die über die ganze Welt verteilt sind. Außerdem ermöglicht das Microsoft AJAX-CDN Browsern die erneute Verwendung von zwischengespeicherten JavaScript-Dateien für Websites, die sich in verschiedenen Domänen befinden. Das Microsoft AJAX-CDN unterstützt SSL (https://), falls Sie eine Webseite mithilfe des Secure Sockets Layers bereitstellen müssen.

Das ScriptManager-Steuerelement in ASP.NET unterstützt das Microsoft AJAX-CDN. Legen Sie die EnableCdn-Eigenschaft entsprechend dem folgenden Beispiel fest, um alle ASP.NET Framework-JavaScript-Dateien aus dem CDN abzurufen:

<asp:ScriptManager ID="sm1" EnableCdn="true" runat="server" />

Wenn die EnableCdn-Eigenschaft auf true festgelegt wird, ruft das ASP.NET-Framework alle ASP.NET Framework-JavaScript-Dateien aus dem CDN ab, einschließlich aller JavaScript-Dateien, die zur Validierung und für das UpdatePanel-Steuerelement verwendet werden. Dies kann dramatische Auswirkungen auf die Leistung der Webanwendung haben.

Sie können den CDN-Pfad für Ihre eigenen JavaScript-Dateien mit dem WebResourceAttribute-Attribut festlegen. Die neue CdnPath-Eigenschaft gibt den Pfad zu dem CDN an, das beim Festlegen der EnableCdn-Eigenschaft auf true verwendet wird (siehe folgendes Beispiel).

[assembly: WebResource("Example.js", "application/x-javascript", CdnPath ="http://contoso.com/app/site/Example.js")]

Weitere Informationen zum Microsoft AJAX-CDN finden Sie im Thema zum Microsoft Ajax Content Delivery Network auf der ASP.NET-Website (möglicherweise in englischer Sprache).

Explizite Skripts in ScriptManager

Wenn Sie ScriptManager für ASP.NET in früheren Versionen von ASP.NET verwendet haben, musste die Webanwendung die gesamte ASP.NET AJAX-Bibliothek laden. Mithilfe der neuen AjaxFrameworkMode-Eigenschaft können Sie genau bestimmen, welche Komponenten der ASP.NET Ajax-Bibliothek geladen werden. Weitere Informationen finden Sie unter der AjaxFrameworkMode-Eigenschaft.

Web Forms ist seit der Veröffentlichung von ASP.NET 1.0 eine Kernfunktion von ASP.NET. In diesem Bereich wurde für ASP.NET 4 eine Vielzahl von Erweiterungen vorgenommen, z. B. Folgendes:

  • Die Möglichkeit, meta-Tags festzulegen.

  • Bessere Kontrolle über den Ansichtszustand.

  • Unterstützung für vor kurzem eingeführte Browser und Geräte.

  • Einfachere Möglichkeiten zum Arbeiten mit Browserfunktionen.

  • Unterstützung für das Verwenden von ASP.NET-Routing mit Web Forms.

  • Bessere Kontrolle über generierte IDs.

  • Die Möglichkeit, ausgewählte Zeilen in Datensteuerelementen beizubehalten.

  • Bessere Kontrolle über den vom FormView-Steuerelement und ListView-Steuerelement gerenderten HTML-Code.

  • Filterunterstützung für Datenquellensteuerelemente.

  • Verbesserte Unterstützung für Webstandards und Barrierefreiheit.

  • Änderungen der Projektvorlage.

Festlegen von Meta-Tags mit der Page.MetaKeywords-Eigenschaft und der Page.MetaDescription-Eigenschaft

Der Page-Klasse wurden zwei Eigenschaften hinzugefügt: MetaKeywords und MetaDescription. Diese beiden Eigenschaften stellen entsprechende meta-Tags im für eine Seite gerenderten HTML-Code dar, wie im folgenden Beispiel dargestellt:

<head id="Head1" runat="server">
  <title>Untitled Page</title>
  <meta name="keywords" content="keyword1, keyword2' />
  <meta name="description" content="Description of my page" />
</head>

Diese beiden Eigenschaften funktionieren wie die Title-Eigenschaft und können in der @ Page-Direktive festgelegt werden. Weitere Informationen finden Sie unter Page.MetaKeywords und Page.MetaDescription.

Aktivieren des Ansichtszustands für einzelne Steuerelemente

Der Control-Klasse wurde eine neue Eigenschaft hinzugefügt: ViewStateMode. Sie können diese Eigenschaft verwenden, um den Ansichtszustand für alle Steuerelemente auf einer Seite zu deaktivieren, mit Ausnahme derjenigen, für die Sie den Ansichtszustand explizit aktivieren.

Ansichtszustandsdaten sind im HTML-Code einer Seite enthalten und verlängern die Zeit, die das Senden einer Seite an den Client sowie das Zurücksenden dauert. Das Speichern von mehr Ansichtszustandsdaten als notwendig kann die Leistung erheblich beeinträchtigen. In früheren Versionen von ASP.NET konnten die Auswirkungen des Ansichtszustands auf die Leistung einer Seite durch Deaktivieren des Ansichtszustands für bestimmte Steuerelemente reduziert werden. Manchmal ist es jedoch einfacher, den Ansichtszustand für ein paar Steuerelemente zu aktivieren, für die dieser erforderlich ist, anstatt ihn für viele Steuerelemente zu deaktivieren, die ihn nicht benötigen.

Weitere Informationen finden Sie unter Control.ViewStateMode.

Unterstützung für vor kurzem eingeführte Browser und Geräte

ASP.NET beinhaltet eine Funktion mit dem Namen Browserfunktionen, mit der Sie die Funktionen des Browsers bestimmen können, den ein Benutzer verwendet. Browserfunktionen werden durch das HttpBrowserCapabilities-Objekt dargestellt, das in der HttpRequest.Browser-Eigenschaft gespeichert ist. Informationen zu den Funktionen eines bestimmten Browsers werden von einer Browserdefinitionsdatei definiert. In ASP.NET 4 wurden die Browserdefinitionsdateien aktualisiert und enthalten Informationen zu vor kurzem eingeführten Browsern und Geräten, z. B. Google Chrome, Research in Motion BlackBerry-Smartphones und Apple iPhone. Vorhandene Browserdefinitionsdateien wurden ebenfalls aktualisiert. Weitere Informationen finden Sie unter Gewusst wie: Aktualisieren einer ASP.NET-Webanwendung auf ASP.NET 4 und ASP.NET-Webserversteuerelemente und Browserfunktionen.

In der folgenden Liste sind die Browserdefinitionsdateien aufgeführt, die in ASP.NET 4 enthalten sind:

•blackberry.browser

•chrome.browser

•Default.browser

•firefox.browser

•gateway.browser

•generic.browser

•ie.browser

•iemobile.browser

•iphone.browser

•opera.browser

•safari.browser

Eine neue Möglichkeit zur Definition von Browserfunktionen

ASP.NET 4 umfasst eine neue als Browserfunktionsanbieter bezeichnete Funktion. Wie der Name schon sagt, können Sie damit einen Anbieter erstellen, mit dem Sie wiederum benutzerdefinierten Code schreiben können, um Browserfunktionen zu bestimmen.

In ASP.NET, Version 3.5, Service Pack 1, werden Browserfunktionen in einer XML-Datei definiert. Diese Datei befindet sich in einem Ordner auf Computerebene oder in einem Ordner auf Anwendungsebene. Die meisten Entwickler müssen diese Dateien nicht anpassen, aber für diejenigen Entwickler, die eine Anpassung vornehmen müssen, kann der Ansatz über einen Anbieter möglicherweise leichter als der Umgang mit komplexer XML-Syntax. Der Ansatz über einen Anbieter erleichtert den Prozess, indem eine allgemeine Browserdefinitionssyntax, eine Datenbank, die aktuelle Browserdefinitionen enthält, oder sogar ein Webdienst für eine solche Datenbank implementiert wird.

Weitere Informationen zu dem neuen Browserfunktionsanbieter finden Sie im What's New for ASP.NET 4 White Paper.

Routing in ASP.NET 4

ASP.NET 4 fügt integrierte Unterstützung für das Routing mit Web Forms hinzu. Bei Routing handelt es sich um eine Funktion, die mit ASP.NET 3.5 SP1 eingeführt wurde, und mit der Sie eine Anwendung so konfigurieren können, dass URLs verwendet werden, die für Benutzer und Suchmaschinen aussagekräftig sind, da sie keine physischen Dateinamen angeben müssen. Auf diese Weise wird Ihre Site benutzerfreundlicher, und der Siteinhalt kann von Suchmaschinen leichter gefunden werden.

Die URL für eine Seite, auf der Produktkategorien in der Anwendung angezeigt werden, könnte beispielsweise wie das folgende Beispiel aussehen:

http://website/products.aspx?categoryid=12

Mit Routing können Sie die folgende URL verwenden, um dieselben Informationen zu rendern:

http://website/products/software

Die zweite URL teilt dem Benutzer mit, womit er rechnen kann und kann in Suchmodulergebnissen zu deutlich verbesserten Bewertungen führen.

Zu den neuen Funktionen gehören:

  • Die PageRouteHandler-Klasse ist ein einfacher HTTP-Handler, den Sie zum Definieren von Routen verwenden. Sie müssen keinen benutzerdefinierten Routenhandler mehr schreiben.

  • Die HttpRequest.RequestContext-Eigenschaft und Page.RouteData-Eigenschaft erleichtern das Zugreifen auf Informationen, die in URL-Parametern übergeben werden.

    • Der RouteUrl-Ausdruck bietet eine einfache Möglichkeit, in Markup eine weitergeleitete URL zu erstellen.

    • Der The RouteValue-Ausdruck bietet eine einfache Möglichkeit, URL-Parameterwerte in Markup zu extrahieren.

  • Die RouteParameter-Klasse erleichtert das Übergeben von URL-Parameterwerten an eine Abfrage für ein Datenquellensteuerelement (ähnlich wie FormParameter).

  • Sie müssen nicht mehr die Datei "Web.config" ändern, um das Routing zu aktivieren.

Weitere Informationen über Routing finden Sie unter den folgenden Themen:

Festlegen von Client-IDs

Die neue ClientIDMode-Eigenschaft erleichtert das Schreiben von Clientskript, das auf für Serversteuerelemente gerenderte HTML-Elemente verweist. Eine verstärkte Verwendung von Microsoft AJAX führt zu einem erhöhten Bedarf hierfür. Möglicherweise haben Sie ein Datensteuerelement, das eine lange Liste von Produkten mit Preisen rendert, und Sie möchten Clientskript verwenden, um einen Webdienstaufruf auszuführen und einzelne Preise in der Liste aktualisieren, wenn diese sich ändern, ohne die ganze Seite aktualisieren zu müssen.

In der Regel erhalten Sie mit der document.GetElementById-Methode einen Verweis auf ein HTML-Element in Clientskript. Übergeben Sie den Wert des id-Attributs des HTML-Elements, auf das Sie verweisen möchten, an diese Methode. Das Rendern von Elementen für ASP.NET-Serversteuerelemente war in früheren Versionen von ASP.NET schwierig oder sogar unmöglich. Es konnte nicht immer vorhergesagt werden, welche ID-Werte von ASP.NET generiert werden würden, und manchmal wurden von ASP.NET sehr lange ID-Werte generiert. Das Problem war besonders schwerwiegend bei Datensteuerelementen, die mehrere Zeilen für eine einzelne Instanz des Steuerelements im Markup generierten.

In ASP.NET 4 wurden zwei neue Algorithmen zum Generieren von id-Attributen hinzugefügt. Diese Algorithmen können id-Attribute generieren, die das Arbeiten mit Clientskripts vereinfachen, da sie besser vorhersagbar und einfacher sind. Weitere Informationen zur Verwendung der neuen Algorithmen finden Sie in den folgenden Themen:

Beibehalten der Zeilenauswahl in Datensteuerelementen

Mit dem GridView-Steuerelement und dem ListView-Steuerelement können Benutzer eine Zeile auswählen. In früheren Versionen von ASP.NET basierte die Zeilenauswahl auf dem Zeilenindex auf der Seite. Wenn Sie zum Beispiel das dritte Element auf Seite 1 auswählen und dann auf Seite 2 wechseln, wird das dritte Element auf Seite 2 ausgewählt. In den meisten Fällen ist es vorteilhafter, wenn keine Zeilen auf Seite 2 ausgewählt werden. ASP.NET 4 unterstützt die persistente Auswahl, eine neue Funktion, die anfänglich nur in Dynamic Data-Projekten im .NET Framework 3.5 SP1 unterstützt wurde. Wenn diese Funktion aktiviert ist, basiert das ausgewählte Element auf dem Zeilendatenschlüssel. Dies bedeutet, dass wenn Sie die dritte Zeile auf Seite 1 auswählen und auf Seite 2 wechseln, auf Seite 2 nichts ausgewählt ist. Wenn Sie auf zurück zu Seite 1 wechseln, ist die dritte Zeile immer noch ausgewählt. Dies ist ein viel natürlicheres Verhalten als das Verhalten in früheren Versionen von ASP.NET. Die persistente Auswahl wird jetzt für das GridView-Steuerelement und ListView-Steuerelement in allen Projekten unterstützt. Sie können diese Funktion im GridView-Steuerelement aktivieren, z. B. durch Festlegen der EnablePersistedSelection-Eigenschaft, wie im folgenden Beispiel gezeigt:

<asp:GridView id="GridView2" runat="server" PersistedSelection="true">
</asp:GridView>

Verbesserungen am FormView-Steuerelement

Das FormView-Steuerelement wurde derart verbessert, dass der Inhalt des Steuerelements mit CSS leichter entworfen werden kann. In früheren Versionen von ASP.NET wurde der Inhalt des FormView-Steuerelements mit einer Elementvorlage gerendert. Dadurch wurde das Formatieren im Markup erschwert, da unerwartete Tabellenzeilen- und Tabellenzellentags vom Steuerelement gerendert wurden. Das FormView-Steuerelement unterstützt RenderOuterTable, eine Eigenschaft in ASP.NET 4. Wenn diese Eigenschaft auf false festgelegt ist, wie im folgenden Beispiel dargestellt, werden die Tabellentags nicht gerendert. Dadurch wird die Übernahme des CSS-Formats für den Inhalt des Steuerelements erleichtert.

<asp:FormView ID="FormView1" runat="server" RenderTable="false">

Weitere Informationen finden Sie unter Übersicht über das FormView-Webserversteuerelement.

Verbesserungen am ListView-Steuerelement

Das ListView-Steuerelemente, das in ASP.NET 3.5 eingeführt wurde, weist die gesamte Funktionalität des GridView-Steuerelements auf, bietet Ihnen jedoch eine vollständige Kontrolle über die Ausgabe. Dieses Steuerelement ist in ASP.NET 4 einfacher zu verwenden. Für die frühere Version des Steuerelements musste eine Layoutvorlage angegeben werden, die ein Serversteuerelement mit einer bekannten ID enthielt. Das folgende Markup zeigt ein typisches Beispiel zur Verwendung des ListView-Steuerelements in ASP.NET 3.5.

<asp:ListView ID="ListView1" runat="server">
    <LayoutTemplate>
        <asp:PlaceHolder ID="ItemPlaceHolder" runat="server"></asp:PlaceHolder>
    </LayoutTemplate>
    <ItemTemplate>
        <% Eval("LastName")%>
    </ItemTemplate>
</asp:ListView>

In ASP.NET 4 wird für das ListView-Steuerelement keine Layoutvorlage benötigt. Das im vorherigen Beispiel gezeigte Markup kann durch das folgende Markup ersetzt werden:

<asp:ListView ID="ListView1" runat="server">
    <ItemTemplate>
        <% Eval("LastName")%>
    </ItemTemplate>
</asp:ListView>

Weitere Informationen finden Sie unter Übersicht über das ListView-Webserversteuerelement.

Filtern von Daten mit dem QueryExtender-Steuerelement

Eine häufige Aufgabe für Entwickler, die datengesteuerte Webseiten erstellen, ist die Datenfilterung. Dies wurde bisher durch Erstellen von Where-Klauseln in Datenquellensteuerelementen durchgeführt. Dieser Ansatz kann sich als schwierig erweisen, und in einigen Fällen können Sie aufgrund der Where-Syntax nicht die volle Funktionalität der zugrunde liegenden Datenbank nutzen.

Um die Filterung zu erleichtern, wurde ein neues QueryExtender-Steuerelement zu ASP.NET 4 hinzugefügt. Dieses Steuerelement kann dem EntityDataSource-Steuerelement oder dem LinqDataSource-Steuerelement hinzugefügt werden, um die von diesen Steuerelementen zurückgegebenen Daten zu filtern. Da das QueryExtender-Steuerelement von LINQ abhängig ist, müssen Sie nicht wissen, wie LINQ-Abfragen geschrieben werden, um den Abfrageextender zu verwenden.

Das QueryExtender-Steuerelement unterstützt eine Vielzahl von Filteroptionen. Nachfolgend sind QueryExtender-Filteroptionen aufgeführt.

Begriff

Definition

SearchExpression

Durchsucht ein Feld oder mehrere Felder nach Zeichenfolgenwerten und vergleicht sie mit einem angegebenen Zeichenfolgenwert.

RangeExpression

Durchsucht ein Feld oder Felder für Werte in einem Bereich, der von einem Wertpaar angegeben wurden.

PropertyExpression

Vergleicht einen angegebenen Wert mit einem Eigenschaftswert in einem Feld. Wenn der Ausdruck als true ausgewertet wird, werden die überprüften Daten zurückgegeben.

OrderByExpression

Sortiert Daten nach einer angegebenen Spalte und Sortierreihenfolge.

CustomExpression

Ruft eine Funktion auf, die einen benutzerdefinierten Filter in der Seite definiert.

Weitere Informationen finden Sie unter QueryExtenderÜbersicht über das QueryExtender-Webserversteuerelement.

Verbesserte Unterstützung für Webstandards und Barrierefreiheit

Frühere Versionen von ASP.NET-Steuerelementen rendern manchmal Markup, das nicht HTML, XHTML- oder Barrierefreiheitsstandards entspricht. In ASP.NET 4 wurden die meisten dieser Ausnahmen beseitigt.

Weitere Informationen dazu, wie der HTML-Code, der von den einzelnen Steuerelementen gerendert wird, Barrierefreiheitsstandards entspricht, finden Sie unter Steuerelemente und Barrierefreiheit von ASP.NET.

CSS für Steuerelemente, die deaktiviert werden können

Wenn in ASP.NET 3.5 ein Steuerelement deaktiviert wird (siehe WebControl.Enabled), wird dem gerenderten HTML-Element ein disabled-Attribut hinzugefügt. Das folgende Markup erstellt beispielsweise ein Label-Steuerelement das deaktiviert ist:

<asp:Label id="Label1" runat="server"

  Text="Test" Enabled="false" />

In ASP.NET 3.5 wird durch die vorherigen Steuerelementeinstellungen der folgende HTML-Code generiert:

<span id="Label1" disabled="disabled">Test</span>

In HTML 4.01 wird das disabled-Attribut in span-Elementen nicht als gültig betrachtet. Es ist nur in input-Elementen gültig, da es angibt, dass auf diese nicht zugegriffen werden kann. In Nur-Anzeige-Elementen wie span-Elementen unterstützen Browser in der Regel das Rendern für eine deaktivierte Darstellung, aber eine Webseite, die von diesem nicht standardmäßigen Verhalten abhängig ist, wird gemäß Barrierefreiheitsstandards als nicht robust betrachtet.

Für Nur-Anzeige-Elemente sollten Sie CSS verwenden, um ein deaktiviertes Erscheinungsbild anzugeben. Standardmäßig generiert ASP.NET 4 daher den folgenden HTML-Code für die zuvor angezeigten Steuerelementeinstellungen:

<span id="Label1" class="aspNetDisabled">Test</span>

Sie können den Wert des class-Attributs ändern, der standardmäßig gerendert wird, wenn ein Steuerelement deaktiviert wird, indem die DisabledCssClass-Eigenschaft festgelegt wird.

CSS für Validierungssteuerelemente

In ASP.NET 3.5 rendern Validierungssteuerelemente eine Standardfarbe von red als Inlineformat. Das folgende Markup erstellt beispielsweise ein RequiredFieldValidator-Steuerelement:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"

  ErrorMessage="Required Field" ControlToValidate="RadioButtonList1" />

ASP.NET 3.5 rendert den folgenden HTML-Code für das Validierungssteuerelement:

<span id="RequiredFieldValidator1"

  style="color:Red;visibility:hidden;">RequiredFieldValidator</span>

Standardmäßig rendert ASP.NET 4 kein Inlineformat, um die Farbe auf Rot festzulegen. Ein Inlineformat wird nur verwendet, um das Validierungssteuerelement auszublenden oder einzublenden, wie im folgenden Beispiel dargestellt:

<span id="RequiredFieldValidator1"

  style"visibility:hidden;">RequiredFieldValidator</span>

Daher werden in ASP.NET 4 Fehlermeldungen nicht automatisch in Rot angezeigt. Informationen zum Verwenden von CSS, um für ein Validierungssteuerelement einen visuellen Stil anzugeben, finden Sie unter Überprüfen der Benutzereingabe in ASP.NET-Webseiten.

CSS für das div-Element der ausgeblendeten Felder

ASP.NET verwendet ausgeblendete Felder, um Zustandsinformationen wie den Ansichtszustand und den Steuerelementzustand zu speichern. Diese ausgeblendeten Felder sind in einem div-Element enthalten. In ASP.NET 3.5 verfügt dieses div-Element nicht über ein class-Attribut oder ein id-Attribut. Daher könnten CSS-Regeln, die alle div-Elemente betreffen, unbeabschtigt verursachen, dass das div-Element sichtbar ist. Um dieses Problem zu vermeiden, rendert ASP.NET 4 das div-Element für ausgeblendete Felder mit einer CSS-Klasse, mit der Sie das div-Element der ausgeblendeten Felder von anderen unterscheiden können. Im folgenden Beispiel ist der -Wert der neuen Klasse dargestellt:

<div class="aspNetHidden">

CSS für das Table-, Image- und ImageButton-Steuerelement

Standardmäßig wird in ASP.NET 3.5 das border-Attribut von gerendertem HTML-Code von einigen Steuerelementen auf 0 (null) festgelegt. Im folgenden Beispiel ist HTML-Code dargestellt, der vom Table-Steuerelement in ASP.NET 3.5 generiert wird:

<table id="Table2" border="0">

Das Image-Steuerelement und das ImageButton-Steuerelement haben die gleiche Funktion. Da dies nicht notwendig ist und dadurch visuelle Formatierungsinformationen bereitgestellt werden, die mit CSS bereitgestellt werden sollen, wird das Attribut nicht in ASP.NET 4 generiert.

CSS für das UpdatePanel-Steuerelement und das UpdateProgress-Steuerelement

In ASP.NET 3.5 unterstützen das UpdatePanel-Steuerelement und das UpdateProgress-Steuerelement keine Expando-Attribute. Daher ist es nicht möglich, eine CSS-Klasse in den HTML--Elementen festzulegen, die diese rendern. In ASP.NET 4 wurden diese Steuerelemente so geändert, dass Expando-Attribute akzeptiert werden, wie im folgenden Beispiel gezeigt:

<asp:UpdatePanel runat="server" class="myStyle">

</asp:UpdatePanel>

Der folgende HTML-Code wird für dieses Markup gerendert:

<div id="ctl00_MainContent_UpdatePanel1" class="expandoclass">

</div>

Entfernen nicht benötigter äußerer Tabellen

In ASP.NET 3.5 wird der HTML-Code, der für die folgenden Steuerelemente gerendert wird, in einem table-Element umschlossen, dessen Zweck darin besteht, Inlineformate auf das gesamte Steuerelement anzuwenden:

Wenn Sie die Darstellung dieser Steuerelemente mithilfe von Vorlagen anpassen, können Sie CSS-Formate im Markup angeben, das Sie in den Vorlagen bereitstellen. In diesem Fall ist keine zusätzliche äußere Tabelle erforderlich. In ASP.NET 4 können Sie verhindern, dass die Tabelle gerendert wird, indem Sie die neue RenderOuterTable-Eigenschaft auf false festlegen.

Layoutvorlagen für Wizard-Steuerelemente

In ASP.NET 3.5 generieren das Wizard-Steuerelement und CreateUserWizard-Steuerelement ein HTML-table-Element, das für visuelle Formatierung verwendet wird. In ASP.NET 4 können Sie das Layout mithilfe eines LayoutTemplate-Elements angeben. In diesem Fall wird das HTML-table-Element nicht generiert. In der Vorlage erstellen Sie Placeholder-Steuerelemente, um anzugeben, wo Elemente dynamisch in das Steuerelement eingefügt werden sollen. (Dies ist mit der Funktionsweise des Vorlagenmodells für das ListView-Steuerelement vergleichbar.) Weitere Informationen finden Sie im Abschnitt zur Wizard.LayoutTemplate-Eigenschaft.

Neue HTML-Formatierungsoptionen für die CheckBoxList- und RadioButtonList-Steuerelemente

In ASP.NET 3.5 wird die Ausgabe für die CheckBoxList- und RadioButtonList-Steuerelemente mithilfe von HTML-Tabellenelementen formatiert. Als Alternative, bei der keine Tabellen für die visuelle Formatierung verwendet werden, fügt ASP.NET 4 der RepeatLayout-Enumeration zwei neue Optionen hinzu:

  • UnorderedList . Diese Option bewirkt, dass die HTML-Ausgabe mit dem ul-Element und dem li-Element anstatt einer Tabelle formatiert wird.

  • OrderedList . Diese Option bewirkt, dass die HTML-Ausgabe mit dem ol-Element und dem li-Element anstatt einer Tabelle formatiert wird.

Beispiele für HTML-Code, der für die neuen Optionen gerendert wird, finden Sie in den Ausführungen zur RepeatLayout-Enumeration.

Header-Element und Footer-Element für das Table-Steuerelement

In ASP.NET 3.5 kann das Table-Steuerelement so konfiguriert werden, dass das thead-Element und das tfoot-Element durch Festlegen der TableSection-Eigenschaft der TableHeaderRow-Klasse und der TableFooterRow-Klasse gerendert wird. In ASP.NET 4 werden diese Eigenschaften standardmäßig auf die entsprechenden Werte festgelegt.

Unterstützung für CSS und ARIA für das Menu-Steuerelement

In ASP.NET 3.5 verwendet das Menu-Steuerelement HTML-table-Elemente für die visuelle Formatierung, und in einigen Konfigurationen ist der Zugriff über die Tastatur nicht möglich. In ASP.NET 4 werden diese Probleme behandelt und die Barrierefreiheit folgendermaßen verbessert:

  • Der generierte HTML-Code wird als ungeordnete Liste (ul-Element und li-Element) strukturiert.

  • CSS wird für die visuelle Formatierung verwendet.

  • Das Menü verhält sich in Übereinstimmung mit ARIA-Standards für Tastaturzugriff. Sie können Pfeiltasten verwenden, um in Menüelementen zu navigieren. (Weitere Informationen zu ARIA finden Sie unter Barrierefreiheit in Visual Studio und ASP.NET).

  • Dem generierten HTML-Code werden ARIA-Rollen- und Eigenschaftsattribute hinzugefügt. (Attribute werden mit JavaScript anstelle des eingeschlossenen HTML-Codes hinzugefügt, sodass kein HTML-Code generiert wird, der zu Markupvalidierungsfehlern führen würde.)

Formate für das Menu-Steuerelement werden am oberen Rand der Seite in einem style-Block gerendert und nicht inline mit den gerenderten HTML-Elementen. Wenn Sie eine separate CSS-Datei verwenden möchten, damit Sie die Menüformate ändern können, können Sie die neue IncludeStyleBlock-Eigenschaft des Menu-Steuerelements auf false festlegen. In diesem Fall wird der Style-Block nicht generiert.

Gültiges XHTML für das HtmlForm-Steuerelement

In ASP.NET 3.5 rendert das HtmlForm-Steuerelement (das implizit vom <form runat="server">-Tag erstellt wird) ein HTML-form-Element, das sowohl über das name-Attribut als auch über das id-Attribut verfügt. Das name-Attribut ist in XHTML 1.1 veraltet. In ASP.NET 4 wird das name-Attribut daher nicht von diesem Steuerelement gerendert.

Aufrechterhalten der Abwärtskompatibilität beim Rendern von Steuerelementen

Eine vorhandene ASP.NET-Website kann Code enthalten, der davon ausgeht, dass Steuerelemente HTML so rendern wie in ASP.NET 3.5. Um Probleme mit der Abwärtskompatibilität zu vermeiden, wenn Sie die Site auf ASP.NET 4 aktualisieren, können Sie ASP.NET HTML weiterhin wie in ASP.NET 3.5 generieren lassen, nachdem Sie die Site aktualisiert haben. Hierzu können Sie das controlRenderingCompatibilityVersion-Attribut des pages-Elements in der Datei "Web.config" einer ASP.NET 4-Website auf "3.5" festlegen, wie im folgenden Beispiel gezeigt:

<system.web>

  <pages controlRenderingCompatibilityVersion="3.5"/>

</system.web>

Wenn diese Einstellung weggelassen wird, ist der Standardwert derselbe wie die Version von ASP.NET, auf die die Website abzielt. (Informationen zum Festlegen von Zielversionen in ASP.NET finden Sie unter Festlegung von .NET Framework-Zielversionen für ASP.NET-Webprojekte.)

In früheren Versionen von ASP.NET enthalten die resultierenden Projekte bei Verwendung von Visual Studio für die Erstellung neuer Website- oder Webanwendungsprojekte nur eine Seite mit der Bezeichnung Default.aspx, eine standardmäßige Web.config-Datei und den App_Data-Ordner. Visual Studio unterstützt auch einen leeren Websiteprojekttyp, der überhaupt keine Dateien enthält. Dies hat zur Folge, dass Einsteiger nur sehr wenig Hilfestellung bei der Erstellung einer Produktionswebanwendung erhalten. Daher werden in ASP.NET 4 drei neue Vorlagen eingeführt, eine für leere Webanwendungsprojekte und jeweils eine Vorlage für Webanwendungs- und Websiteprojekte:

  • Vorlagen für leere Webanwendungen und Websiteprojekte. Diese ähneln dem Layout für leere Websites aus früheren Versionen von ASP.NET, abgesehen davon, dass sie eine Web.config-Datei enthalten, in der die als Zielversion verwendete Version von .NET Framework angegeben wird.

  • Vorlagen für Webanwendungen und Websiteprojekte. Diese schließen eine Reihe von Dateien ein, die nicht in früheren Versionen erstellt wurden. Die zusätzlichen Dateien verfügen über grundlegende Mitgliedschaftsfunktionen, eine Gestaltungsvorlage und Inhaltsseiten, für die diese Funktionen verwendet werden, sowie AJAX- und CSS-Dateien. Die Änderungen an den Projektvorlagen wurden vorgenommen, um Hilfestellung bei der Erstellung neuer Webanwendungen zu leisten.

Weitere Informationen finden Sie unter Visual Studio-Vorlagen für Webprojekte.

ASP.NET-MVC unterstützt Webentwickler beim Erstellen von ansprechenden, auf Standards basierenden, einfach zu verwaltenden Websites, indem MVC die Abhängigkeit zwischen den einzelnen Anwendungsebenen reduziert. MVC bietet eine vollständige Kontrolle über das Seitenmarkup. Es verbessert auch die Prüfbarkeit durch die automatische TDD-Unterstützung (Test Driven Development).

Mit ASP.NET MVC erstellte Websites haben eine modulare Architektur. Daher können Mitglieder eines Teams unabhängig an den unterschiedlichen Modulen arbeiten, und die Zusammenarbeit kann verbessert werden. Entwickler können beispielsweise an den Modell- und Controllerschichten arbeiten (Daten und Logik), während die Designer an der Ansicht (Darstellung) arbeiten.

Lernprogramme, exemplarische Vorgehensweisen, konzeptionelle Inhalte, Codebeispiele und eine vollständige API-Referenz finden Sie unter ASP.NET MVC 2.

Dynamic Data wurde Mitte des Jahres 2008 in .NET Framework 3.5 SP1 eingeführt. Diese Funktion stellt eine Vielzahl von Erweiterungen zum Erstellen von datengesteuerten Anwendungen bereit, z. B.:

  • Eine schnelle Anwendungsentwicklung (RAD, Rapid Application Development) zum schnellen Erstellen einer datengesteuerten Website.

  • Automatische Validierung auf Grundlage von Einschränkungen, die im Datenmodell definiert werden.

  • Die Möglichkeit zum bequemen Ändern des Markups, das für Felder im GridView-Steuerelement und DetailsView-Steuerelement mit Feldvorlagen generiert wird, die Teil des Dynamic Data-Projekts sind.

Für ASP.NET 4 wurde Dynamic Data verbessert, um für Entwickler noch mehr Leistung für das schnelle Erstellen von datengesteuerten Websites bereitzustellen. Weitere Informationen finden Sie unter Einstieg in ASP.NET Dynamic Data.

Aktivieren von Dynamic Data für einzelne datengebundene Steuerelemente in vorhandenen Webanwendungen

Sie können Dynamic Data-Funktionen in vorhandenen ASP.NET-Webanwendungen verwenden, die keinen Gerüstbau verwenden. Aktivieren Sie hierfür Dynamic Data für einzelne datengebundene Steuerelemente. Dynamic Data stellt die Unterstützung für die Darstellungs- und Datenschicht zum Rendern dieser Steuerelemente bereit. Wenn Sie Dynamic Data für datengebundene Steuerelemente aktivieren, können Sie folgende Vorteile nutzen:

  • Festlegen von Standardwerten für Datenfelder. Mithilfe von Dynamic Data können Sie zur Laufzeit Standardwerte für Felder in einem Datensteuerelement bereitstellen.

  • Interagieren mit der Datenbank ohne Erstellen und Registrieren eines Datenmodells.

  • Automatisches Überprüfen der Daten, die vom Benutzer eingegeben werden, ohne Schreiben von Code.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Aktivieren von Dynamic Data in datengebundenen ASP.NET-Steuerelementen.

Deklarative Syntax des DynamicDataManager-Steuerelements

Das DynamicDataManager-Steuerelement wurde optimiert, damit es ebenso wie die meisten Steuerelemente in ASP.NET deklarativ und nicht nur im Code konfigurierbar ist. Das Markup für das DynamicDataManager-Steuerelement sieht ungefähr folgendermaßen aus:

<asp:DynamicDataManager ID="DynamicDataManager1" runat="server"  
    AutoLoadForeignKeys="true"> 
  <DataControls> 
    <asp:DataControlReference ControlID="GridView1" /> 
  </DataControls> 
</asp:DynamicDataManager> 

<asp:GridView id="GridView1" runat="server" 
</asp:GridView> 

Dieses Markup aktiviert Dynamic Data-Verhalten für das GridView1-Steuerelement, auf das im Abschnitt DataControls des DynamicDataManager-Steuerelements verwiesen wird.

Entitätsvorlagen

Entitätsvorlagen bieten eine neue Möglichkeit, das Layout der Daten ohne Erstellen einer benutzerdefinierten Seite anzupassen. Für Seitenvorlagen wird das FormView-Steuerelement anstelle des DetailsView-Steuerelements verwendet, das in früheren Versionen von Dynamic Data in Seitenvorlagen verwendet wurde. Für Seitenvorlagen wird auch das DynamicEntity-Steuerelement zum Rendern von Entitätsvorlagen verwendet. Dies verleiht Ihnen eine höhere Kontrolle über das Markup, das von Dynamic Data gerendert wird.

Weitere Informationen zu Entitätsvorlagen finden Sie unter ASP.NET 4 and Visual Studio 2010 Web Development Overview (PDF-Format) auf der ASP.NET-Website.

Neue Feldvorlagen für URLs und E-Mail-Adressen

Mit ASP.NET 4 werden zwei neue integrierte Feldvorlagen eingeführt, "EmailAddress.ascx" und "Url.ascx". Diese Vorlagen werden mithilfe des DataTypeAttribute-Attributs für Felder verwendet, die als EmailAddress oder Url gekennzeichnet sind. Für EmailAddress-Objekte wird das Feld als Link angezeigt, der mit dem mailto:-Protokoll erstellt wird. Wenn Benutzer auf den Link klicken, wird der E-Mail-Client des Benutzers geöffnet und eine Skelettmeldung erstellt. Als Url typisierte Objekte werden als gewöhnliche Links angezeigt.

Das folgende Beispiel zeigt, wie Sie Felder kennzeichnen.

[DataType(DataType.EmailAddress)]
public object HomeEmail { get; set; }

[DataType(DataType.Url)]
public object Website { get; set; }

Erstellen von Links mit dem DynamicHyperLink-Steuerelement

Dynamic Data verwendet die neue Routingfunktion, die in .NET Framework 3.5 SP1 hinzugefügt wurde, um die URLs zu steuern, die Benutzer sehen, wenn sie auf die Website zugreifen. Das neue DynamicHyperLink-Steuerelement erleichtert das Erstellen von Links zu Seiten an einer Dynamic Data-Site.

Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Tabellenaktionslinks in Dynamic Data.

Unterstützung für Vererbung im Datenmodell

Sowohl ADO.NET Entity Framework als auch LINQ to SQL unterstützen die Vererbung in ihren Datenmodellen. Ein Beispiel hierfür könnte eine Datenbank sein, die eine InsurancePolicy-Tabelle enthält. Sie kann auch die CarPolicy-Tabelle und die und HousePolicy-Tabelle enthalten, die die gleichen Felder wie InsurancePolicy aufweisen, und dann weitere Felder hinzufügen. Dynamic Data wurde so geändert, dass geerbte Objekte im Datenmodell verstanden und Gerüstbau für die geerbten Tabellen unterstützt werden.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen der hierarchiespezifischen Tabellenvererbung in Dynamic Data.

Unterstützung für m:n-Beziehungen (nur Entity Framework)

Das Entity Framework bietet eine umfassende Unterstützung für m:n-Beziehungen zwischen Tabellen, die durch Verfügbarmachen der Beziehung als Auflistung in einem Entity-Objekt implementiert werden. Neue Feldvorlagen ("ManyToMany.ascx" und "ManyToMany_Edit.ascx") wurden hinzugefügt, um Unterstützung für das Anzeigen und Bearbeiten von Daten in m:n-Beziehungen bereitzustellen.

Weitere Informationen finden Sie unter Arbeiten mit n:n-Datenbeziehungen in dynamischen Daten.

Neue Attribute zur Steuerung der Anzeige und Unterstützung von Enumerationen

Das DisplayAttribute wurde hinzugefügt, um Ihnen zusätzliche Kontrolle über die Anzeige von Feldern zu geben. Mithilfe des DisplayNameAttribute-Attributs in früheren Versionen von Dynamic Data konnten Sie den Namen ändern, der als Beschriftung für ein Feld verwendet wird. Mit der neuen DisplayAttribute-Klasse können Sie mehr Optionen zum Anzeigen eines Felds angeben, beispielsweise die Reihenfolge, in der ein Feld angezeigt wird, und ob ein Feld als Filter verwendet wird. Das Attribut bietet auch eine unabhängige Kontrolle über den Namen, der für die Bezeichnungen in einem GridView-Steuerelement verwendet wird, für den Namen, der in einem DetailsView-Steuerelement verwendet wird, für den Hilfetext für das Feld sowie das für das Feld verwendete Wasserzeichen (wenn das Feld Texteingaben akzeptiert).

Der EnumDataTypeAttribute-Klasse wurde hinzugefügt, damit Felder Enumerationen zuordnen können. Wenn Sie dieses Attribut auf ein Feld anwenden, geben Sie einen Enumerationstyp an. Dynamic Data verwendet die neue Feldvorlage "Enumeration.ascx", um eine Benutzeroberfläche zum Anzeigen und Bearbeiten von Enumerationswerten zu erstellen. Die Vorlage ordnet die Werte aus der Datenbank den Namen in der Enumeration zu.

Verbesserte Unterstützung für Filter

Dynamic Data 1.0 verfügte über integrierte Filter für boolesche Spalten und Fremdschlüsselspalten. Bei den Filtern konnten Sie nicht die Reihenfolge angeben, in der diese angezeigt werden sollten. Mit dem neuen DisplayAttribute-Attribut ist dies möglich, da Sie die Kontrolle darüber erhalten, ob eine Spalte als Filter angezeigt wird, und auch darüber, in welcher Reihenfolge sie angezeigt wird.

Eine zusätzliche Erweiterung ist, dass die Filterunterstützung so umgeschrieben wurde, dass die neue QueryExtender-Funktion von Web Forms verwendet wird. Auf diese Weise können Sie Filter erstellen, ohne dass Sie Kenntnisse über das Datenquellensteuerelement benötigen, mit dem die Filter verwendet werden. Zusammen mit diesen Erweiterungen wurden Filter auch in Vorlagensteuerelemente umgewandelt, sodass Sie neue hinzufügen können. Aufgrund der zuvor erwähnten DisplayAttribute-Klasse kann schließlich der Standardfilter überschrieben werden, und zwar auf die gleiche Weise, wie die Standardfeldvorlage für eine Spalte mit UIHint überschrieben werden kann.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Filtern von Zeilen in Tabellen, die einander über- bzw. untergeordnet sind und QueryableFilterRepeater.

Mit dem ASP.NET-Diagrammsteuerelement können Sie ASP.NET-Seitenanwendungen mit einfachen, intuitiven Diagrammen für komplexe statistische oder finanzielle Analyse erstellen. Das Diagrammsteuerelement unterstützt die folgenden Funktionen:

  • Datenreihen, Diagrammbereiche, Achsen, Legenden, Bezeichnungen, Titel usw.

  • Datenbindung

  • Datenmanipulation, z. B. Kopieren, Spaltung, Zusammenführung, Ausrichtung, Gruppierung, Sortierung, Such- und Filtervorgänge

  • Statistische Formeln und Formeln für finanzielle Berechnungen.

  • Erweiterte Diagrammdarstellung, z. B. 3D, Antialiasing, Beleuchtung und Perspektive

  • Ereignisse und Anpassungen

  • Interaktivität und Microsoft AJAX

  • Unterstützung für das AJAX-Inhaltszustellungsnetzwerk (Content Delivery Network, CDN), das eine optimierte Möglichkeit zum Hinzufügen von Skripts für die Microsoft AJAX-Bibliothek und jQuery zu den Webanwendungen bietet.

Weitere Informationen finden Sie unter Übersicht über das Chart-Webserversteuerelement.

Die folgenden Abschnitte enthalten Informationen zu Verbesserungen und neuen Features in Visual Studio 2010 und Visual Web Developer Express.

Der Webseiten-Designer in Visual Studio 2010 biete eine bessere CSS-Kompatibilität, umfasst zusätzliche Unterstützung für HTML- und ASP.NET-Markupausschnitte, und bietet eine umgestaltete Version von IntelliSense für JScript.

Verbesserte CSS-Kompatibilität

Der Visual Web Developer-Designer in Visual Studio 2010 wurde so aktualisiert, dass die Kompatibilität mit CSS 2.1-Standards verbessert wird. Der Designer ermöglicht eine bessere Beibehaltung von HTML-Quellcode und ist robuster als in früheren Versionen von Visual Studio.

HTML- und JavaScript-Ausschnitte

Im HTML-Editor vervollständigt IntelliSense Tagnamen automatisch. Die Funktion für IntelliSense-Ausschnitte vervollständigt ganze Tags und mehr automatisch. In Visual Studio 2010 werden neben C# und Visual Basic, die in früheren Versionen von Visual Studio unterstützt wurden, IntelliSense-Ausschnitte für JScript unterstützt.

Visual Studio 2010 umfasst über 200 Ausschnitte, mit denen Sie häufige ASP.NET- und HTML-Tags automatisch vervollständigen können, einschließlich erforderlicher Attribute (z. B. runat="server") und häufig verwendete, für einen Tag spezifische Attribute (z. B. ID, DataSourceID, ControlToValidate und Text).

Sie können zusätzliche Ausschnitte herunterladen oder eigene Ausschnitte schreiben, die Markupblöcke kapseln, die Sie oder Ihr Team für häufige Aufgaben verwenden. Weitere Informationen zu HTML-Ausschnitten finden Sie unter Exemplarische Vorgehensweise: Verwenden von HTML-Codeausschnitten.

JavaScript IntelliSense-Erweiterungen

In Visual 2010 wurde JScript-IntelliSense so umgestaltet, dass eine noch umfangreichere Bearbeitungserfahrung bereitgestellt wird. IntelliSense erkennt jetzt Objekte, die dynamisch von Methoden wie registerNamespace und durch ähnliche von anderen JavaScript-Frameworks verwendete Techniken generiert wurden. Die Leistung wurde verbessert, sodass große Skriptbibliotheken analysiert und IntelliSense mit geringer oder gar keiner Verarbeitungsverzögerung angezeigt werden können. Kompatibilität wurde wesentlich verbessert, sodass nun nahezu alle Bibliotheken von Drittanbietern und verschiedenartige Codierungsformate unterstützt werden. Dokumentationskommentare werden jetzt während der Eingabe analysiert und sofort von IntelliSense genutzt.

Webanwendungsbereitstellung mit Visual Studio 2010

Für Webanwendungsprojekte stellt Visual Studio jetzt Tools bereit, die mit dem Web Deployment Tool (Web Deploy) von IIS funktionieren, sodass viele Prozesse, die in früheren Versionen von ASP.NET manuell ausgeführt werden mussten, automatisiert werden können. Die folgenden Aufgaben können jetzt beispielsweise automatisiert werden:

  • Erstellen einer IIS-Anwendung auf dem Zielcomputer und Konfigurieren der IIS-Einstellungen.

  • Kopieren von Dateien auf den Zielcomputer.

  • Ändern von Web.config-Einstellungen, die an die jeweilige Zielumgebung angepasst werden müssen.

  • Übertragen von Änderungen an Daten oder Datenstrukturen an SQL Server-Datenbanken, die von der Webanwendung verwendet werden.

Weitere Informationen zum Bereitstellen von Webanwendungen finden Sie unter Einstieg in die ASP.NET-Bereitstellung.

In ASP.NET 4 wurden der Funktion zur Festlegung von Zielversionen neue Funktionen hinzugefügt, sodass das Arbeiten mit Projekten erleichtert wird, die auf frühere Versionen von .NET Framework abzielen.

Die Festlegung von Zielversionen wurde in ASP.NET 3.5 eingeführt, damit Sie die neueste Version von Visual Studio verwenden können, ohne vorhandene Websites oder Webdienste auf die neueste Version von .NET Framework aktualisieren zu müssen. 

In Visual Studio 2008 passen sich die meisten Funktionen der Entwicklungsumgebung an die verwendete Version an, wen Sie mit einem Projekt arbeiten, das auf eine frühere Version von .NET Framework abzielt. In IntelliSense werden jedoch Sprachfunktionen angezeigt, die in der aktuellen Version verfügbar sind, und in Eigenschaftenfenstern werden Eigenschaften angezeigt, die in der aktuellen Version verfügbar sind. In Visual Studio 2010 werden nur in der Zielversion von .NET Framework verfügbare Sprachfunktionen und Eigenschaften angezeigt.

Weitere Informationen zum Festlegen von Zielversionen finden Sie unter den folgenden Themen:

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft