887 Stimmen

ASP.NET-Website oder ASP.NET-Webanwendung?

Wenn ich ein neues ASP.NET-Projekt in Visual Studio starte, kann ich eine ASP.NET-Webanwendung oder eine ASP.NET-Website erstellen.

Was ist der Unterschied zwischen ASP.NET Web Application und ASP.NET Web Site? Warum sollte ich das eine dem anderen vorziehen?

Ist die Antwort unterschiedlich, je nachdem, welche Version von Visual Studio ich verwende?

25voto

Daniel Auger Punkte 12325

Dies mag ein wenig offensichtlich klingen, aber ich denke, es ist etwas, das missverstanden wird, weil Visual Studio 2005 ursprünglich nur mit der Website ausgeliefert wurde. Wenn es sich bei Ihrem Projekt um eine Website handelt, die recht begrenzt ist und nicht viele logische oder physische Trennungen aufweist, ist die Website in Ordnung. Wenn es sich jedoch um eine echte Webanwendung mit verschiedenen Modulen handelt, bei der viele Benutzer Daten hinzufügen und aktualisieren, sind Sie mit der Webanwendung besser dran.

Der größte Vorteil des Website-Modells besteht darin, dass alles in der app_code Abschnitt dynamisch kompiliert wird. Sie können C#-Dateiaktualisierungen ohne eine vollständige Neuverteilung vornehmen. Dies ist jedoch mit großen Opfern verbunden. Viele Dinge geschehen im Verborgenen und sind nur schwer zu kontrollieren. Namensräume sind schwer zu kontrollieren, und die Verwendung spezifischer DLLs wird standardmäßig für alles unter app_code da alles dynamisch kompiliert wird.

Das Modell der Webanwendung verfügt nicht über eine dynamische Kompilierung, aber Sie haben die Kontrolle über die von mir erwähnten Dinge.

Wenn Sie n-Tier-Entwicklung betreiben, empfehle ich das Webanwendungsmodell. Wenn Sie eine begrenzte Website oder eine schnelle und schmutzige Implementierung machen, kann das Website-Modell Vorteile haben.

Eine ausführlichere Analyse findet sich in:

19voto

YuMei Punkte 677

Aus dem MCTS-Schulungspaket zum Selbststudium, Prüfung 70-515 Buch:

Mit Webanwendung (Projekt),

  1. Sie können eine MVC-Anwendung erstellen.
  2. Visual Studio speichert die Liste der Dateien in einer Projektdatei (.csproj oder .vbproj), anstatt sich auf die Ordnerstruktur zu verlassen.
  3. Sie können Visual Basic und C# nicht mischen.
  4. Sie können keinen Code bearbeiten, ohne eine Debugging-Sitzung zu beenden.
  5. Sie können Abhängigkeiten zwischen mehreren Webprojekten herstellen.
  6. Sie müssen die Anwendung vor der Bereitstellung kompilieren, was Sie daran hindert, eine Seite zu testen, wenn eine andere Seite nicht kompiliert werden kann.
  7. Sie müssen den Quellcode nicht auf dem Server speichern.
  8. Sie können den Namen und die Version der Baugruppe kontrollieren.
  9. Sie können einzelne Dateien nach der Bereitstellung nicht bearbeiten, ohne sie neu zu kompilieren.

17voto

AnthonyWJones Punkte 182582

Das hängt davon ab, was Sie entwickeln.

Bei einer inhaltsorientierten Website wird sich der Inhalt häufig ändern, und dafür ist eine Website besser geeignet.

Bei einer Anwendung werden die Daten in der Regel in einer Datenbank gespeichert und die Seiten und der Code ändern sich selten. In diesem Fall ist es besser, eine Webanwendung zu haben, bei der die Bereitstellung von Baugruppen viel kontrollierter ist und die bessere Unterstützung für Unit-Tests bietet.

16voto

Himanshu Punkte 706

Compilation Erstens gibt es einen Unterschied in der Zusammenstellung. Eine Website wird nicht auf dem Server vorkompiliert, sondern in der Datei kompiliert. Das kann ein ein Vorteil sein, denn wenn Sie etwas an Ihrer Website ändern wollen, können Sie Website etwas ändern wollen, können Sie einfach eine bestimmte Datei vom Server herunterladen, sie ändern und diese Datei wieder auf den Server hochladen, und alles funktioniert einwandfrei. In einer Web Anwendung können Sie das nicht tun, weil alles vorkompiliert ist und man am Ende nur eine einzige DLL hat. Wenn Sie etwas in einer Datei Ihres Projekts ändern Projekt ändern, müssen Sie alles neu kompilieren. Wenn Sie also die Möglichkeit haben möchten, einige Dateien auf dem Server zu ändern, ist Web Site bessere Lösung für Sie. Es erlaubt auch vielen Entwicklern an einem Projekt zu arbeiten. Website arbeiten. Auf der anderen Seite, wenn Sie nicht wollen, dass Ihr Code auf dem Server verfügbar sein soll, sollten Sie sich für eine Webanwendung entscheiden. Diese Option ist auch besser für Unit-Tests geeignet, da eine DLL-Datei als nach der Veröffentlichung Ihrer Website erstellt wird.

Project structure Es gibt auch einen Unterschied in der Struktur des Projekts. In der Webanwendung haben Sie eine Projektdatei, wie Sie sie in einer normalen Anwendung haben. In Web Site gibt es keine traditionelle Projektdatei, sondern nur eine Lösungsdatei. Alle Verweise und Einstellungen werden in der Datei web.config gespeichert. @Page directive Es gibt ein anderes Attribut in der @Page-Direktive für die Datei, die die mit dieser Seite verbundene Klasse enthält. In der Webanwendung ist es standardmäßig "CodeBehind", in der Website verwenden Sie "CodeFile". Sie können dies in den folgenden Beispielen sehen:

Web-Anwendung:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  
Inherits="WebApplication._Default" %>  

Website:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

Namensräume - In dem obigen Beispiel können Sie auch einen anderen Unterschied sehen - wie Namespaces erstellt werden. In einer Webanwendung ist ein Namespace einfach ein Name des Projekts. In Website gibt es einen Standard-Namensraum ASP für dynamisch kompilierte Seiten.

Bearbeiten und fortfahren- In der Webanwendung ist die Option Bearbeiten und fortfahren verfügbar (um sie zu aktivieren, müssen Sie das Menü Extras aufrufen, auf Optionen und dann unter Debugging auf Bearbeiten und Fortsetzen klicken). Diese Funktion ist nicht verfügbar Diese Funktion funktioniert nicht in Web Site.ASP.NET MVCIwenn Sie Webanwendungen entwickeln möchten, die

ASP.NET MVC (Model View Controller) ist die beste und Standardoption Web-Anwendung. Obwohl es möglich ist, MVC in einer Web Site zu verwenden, ist es nicht empfohlen.

Zusammenfassung - Der wichtigste Unterschied zwischen ASP.NET Web Application und Web Site ist die Kompilierung. Wenn Sie also an einem größeren Projekt arbeiten, bei dem ein paar Leute es ändern können, ist es besser, Web Site zu verwenden. Aber wenn Sie ein kleineres Projekt bearbeiten, können Sie auch Web Application verwenden.

12voto

Nilesh Rathod Punkte 269

Ja, Webanwendungen sind viel besser als Websites, denn Webanwendungen geben uns Freiheit:

  1. Mehrere Projekte unter einem Dach zu haben und ein Projekt einzurichten Abhängigkeiten zwischen Projekten. Für PCS können wir z.B. innerhalb von Web folgende Projekte haben Anwendung -

    • Web-Portale
    • Notification Controller (für den Versand von E-Mails)
    • Business-Ebene
    • Datenzugriffsschicht
    • Exception Manager
    • Server-Dienstprogramm
    • WCF-Dienste (Gemeinsam für alle Plattformen)
    • Posten auflisten
  2. So führen Sie Unit-Tests für Code aus, der sich in den Klassendateien befindet, die die mit ASP.NET-Seiten verbunden sind

  3. Zu den Klassen gehören die mit Seiten und Benutzersteuerelementen aus eigenständigen Klassen verbunden sind

  4. So erstellen Sie eine einzige Baugruppe für die gesamte Website

  5. Kontrolle über den Namen der Baugruppe und die Versionsnummer, die für die Website generiert wird

  6. Um zu vermeiden, dass der Quellcode auf einen Produktionsserver übertragen wird. (Sie können vermeiden die Bereitstellung von Quellcode auf dem IIS-Server vermeiden. In einigen Szenarien, wie zum Beispiel in Shared-Hosting-Umgebungen, könnten Sie besorgt sein über unautorisierten Zugriff auf den Quellcode auf dem IIS-Server. (Bei einem Web Website-Projekt können Sie dieses Risiko vermeiden, indem Sie auf einem Entwicklungscomputer vorkompilieren und die generierten Assemblies anstelle des anstelle des Quellcodes. In diesem Fall verlieren Sie jedoch einen Teil der Vorteile einer einfachen Aktualisierung der Website).

  7. Leistungsproblem mit der Website(Die Die erste Anfrage an die Website erfordert möglicherweise eine Kompilierung der Website, was zu einer Verzögerung führen kann. Und wenn die Website auf einem IIS-Server läuft, der wenig Speicherplatz hat, kann das Einbinden der gesamten Website in eine Assemblierung mehr Speicher als für mehrere Assemblierungen erforderlich wäre. mehrere Assemblies).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X