Wissen
Wissen
Übersicht
.NET/C#/Visual Studio
Web/ASP.NET/JavaScript
PowerShell
Windows/WinRT
Lexikon/Glossar
Foren
Weblog
Literaturtipps
Downloads
Newsletter
Registrierte Nutzer
Registrierte Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Publikationen
Publikationen
Fachbücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Forum
Offene .NET-Seminare
Schulungen+Beratung
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulungen+Beratung
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Schulungen+Beratung
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Kommerzielle Leistungen
Kommerzielle Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
Konditionen
Anfrage/Kontakt
Über uns
Über uns
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Suche
Weitere Websites
Tag Cloud
Impressum
Rechtliches
Datenschutzerklärung
Hilfe
Hilfe
Site Map
Tag Cloud
Suche
Website-FAQ
Technischer Support
Kontakt

ASP.NET-Projektmodelle
Websitemodell vs. Webanwendungsmodell

Der Visual Web Developer (Die Web-Entwicklungsumgebung in Visual Studio 2005) bietet zwei verschiedene Modelle zur Entwicklung von ASP.NET 2.0-Webanwendungen:

Um dies zu verstehen, ist ein kurzer Rückblick notwendig.

Das Projektverwaltungssystem für ASP.NET-Webanwendungen in Visual Studio .NET 2003 hatte seine Macken. Zum Erstellen eines Webprojekts in Visual Studio .NET 2002/2003 brauchte man einen Webserver mit Front Page Server Extensions (FPSE). Ganz abgesehen von den FPSE-eigenen Unreimtheiten hatten Webentwickler immer dann Schwierigkeiten, wenn andere Personen (z.B. Webdesigner) gleichzeitig mit Werkzeugen an dem Projekt arbeiteten, die nicht auf FPSE basieren. Die Geschwindigkeit beim Öffnen von Projekten war zudem gering, was besonders Benutzern mit mehreren tausend Webseiten sehr schmerzlich auffiel.

Auch innerhalb von Visual Studio war nicht alles zum Besten. Oft kam es zu Inkonsistenzen zwischen der ASPX-Seite und dem vom Designer generierten Code. Zudem verwendete die Entwicklungsumgebung ein völlig anderes Übersetzungssystem als das ASP.NET Page Framework selbst, was dazu führte, dass viele Fehler (z.B. falsche Konfigurationseinträge) nicht von der Entwicklungsumgebung, sondern erst von der Laufzeitumgebung bemerkt wurden.

Mit dem Visual Web Developer 2005 wollte Microsoft das Rad neu erfinden und erfand das neue Websitemodell, das abseits des eigentlichen Visual Studio-Projektsystems funktioniert. Doch nicht alle Anwender kamen mit der neuen Philosophie zurecht. Genau einen Monat nach dem offiziellen Erscheinungstermin von Visual Studio 2005 kündigte der Chef des Redmonder ASP.NET-Teams, Scott Guthrie , an, dass das alte Projektsystem in veränderter Form als eine Option unter dem Namen Webanwendungsmodell zurückkehren wird. Ab Visual Studio 2008 sind beide Modell ethalten.

 

Websitemodell

Webanwendungsmodell

Produktstatus

Enthalten in Visual Studio ab Version 2005

Zusatz für Visual Studio 2005, enthalten ab Visual Studio 2008

Anlegen eines Projekts

Datei/Neu/Website
"ASP.NET Website"

Datei/Neu/Projekt
"ASP.NET Web Application"

Projektdatei

Keine

.vbproj / .csproj

Speicherung von Projektkonfigurationsinformationen

Web.config

Projektdatei

Elemente des Projekts definieren sich durch

Ordnerinhalt

Projektdatei

Aufnahme in eine Projektmappe

Möglich

Möglich

Hinzufügen von Dateien zum Projekt

Alle Dateien im Wurzelordner und dessen Unterordnern gehören automatisch zum Projekt

Nur Dateien, die explizit aufgenommen wurden, gehören zum  Projekt.

Ausschluss von einzelnen Dateien aus dem Projekt

Nur Dateien mit der Dateiextension .excluded gelten aus ausgeschlossen

Alle Dateien können explizit ausgeschlossen werden.

Hinzufügen von Ordnern zum Projekt

Alle Ordner in der Ordnerhierarchie unterhalb des Wurzelordners gehören automatisch zum Projekt, außer wenn sie als "IIS-Anwendung" im IIS angelegt sind.

Nur Ordner, die explizit aufgenommen wurden, gehören zum  Projekt.

Ausschluss von einzelnen Ordnern aus dem Projekt

Nur über den Trick möglich, dass die Website vom IIS geöffnet wird und der auszuschließende Ordner eine eigene IIS-Anwendung ist.

Alle Ordner können explizit ausgeschlossen werden.

IntelliSence in der ASPX-Datei

Ja

Ja

Mischung von verschiedenen Programmiersprachen in einem Projekt

Ja

Nein

Kompilierung der ASPX-Dateien

In der Entwicklungsumgebung möglich, aber nicht notwendig, da ASP.NET-Autokompilierung beim ersten Aufruf wirkt

Nicht möglich

Kompilierung der Code-Behind-Dateien

In der Entwicklungsumgebung möglich, aber nicht notwendig, da ASP.NET-Autokompilierung beim ersten Aufruf wirkt

In der Entwicklungsumgebung notwendig

Kompilierung der eigenständigen Code-Dateien

In der Entwicklungsumgebung möglich, aber nicht notwendig, da ASP.NET-Autokompilierung beim ersten Aufruf wirkt

In der Entwicklungsumgebung notwendig

Prüfung der web.config-Dateien beim Kompilieren

Ja

Nein

Prüfung der Eingabehilfen gemäß WCAG [10] und Access Board Section 508 [9]

Ja

Nein (wird sich möglicherweise noch ändern)

Anzahl der kompilierten Assemblies

Mehrere (eine Assembly pro Sprache in /App_Code, eine weitere Assembly pro Dateiordner), mehr Möglichkeiten gibt bei der Präkompilierung eines Projekts über die Veröffentlichungsfunktion

Eine (Code-Behind-Dateien + eigenständige Code-Dateien)

Kompilieroptionen in Visual Studio

·        Website kompilieren

·        Einzelne Seite kompilieren

·        Nichts kompilieren

Webprojekt kompilieren

Kompilierung notwendig vor dem Betrachten von Seiten

Nein

Ja

Bearbeiten und Fortsetzen während des Debuggens

Ja

Nein

Auslieferung eines Projekts im komplett kompilierten Zustand

Möglich

Derzeit noch nicht möglich (wird sich noch ändern durch Unterstützung in Web Deployment Projekten, siehe [5])

Verweis auf Code-Behind-Datei in Seitendirektive

CodeFile="MeineSeite.aspx.vb" Inherits="MeineSeite"

CodeBehind="Anmelden.aspx.vb"

 

Erstellung der Steuerelemente-Deklarationen für die Code-Behind-Datei

Automatisch im Hintergrund (unsichtbar)

Automatisch durch die Entwicklungsumgebung in der Datei Seite.Designer.cs bzw. Seite.Designer.vb.

Standort für eigenständige Code-Dateien

/App_Code

Jeder beliebige Ort im Webprojekt

Setzen von Referenzen

Eigenschaften des Wurzelordners im Projektmappenexplorer

Ast "Verweise" im Projektmappenexplorer

Speicherung der Referenzen

Web.Config-Datei (<compilation><assemblies>.)

Projektdatei

Unterstützung für Quellcodeverwaltung

Ja

Ja

Unterstützung für ASP.NET Development Server

Ja

Ja

Verschiedene Übersetzungskonfigurationen

Nein (nur möglich durch Web Deployment-Add-In)

Ja