2009-07-01 9 views
1

Wie Sie aus,Was bedeutet es "Websites geben Ihnen keine Kontrolle über Namespaces"?

http://reddnet.net/code/asp-net-web-site-vs-web-application-project-part-2/

Hier sind mehr Hintergrund „keine Kontrolle über Ihre Namensräume“ Namespace Problem, zitiert verstehen:

einer der Nachteile von Web-Site-Projekttyp von VSTS 2005 , meine Verwirrung ist was genau bedeutet "keine Kontrolle über Ihren Namespace"?

  • Keine Kontrolle über Ihre Namespaces. Sicher, Sie können Namespaces manuell zu fast allem hinzufügen, aber Visual Studio wird Sie bei jedem Schritt des Weges bekämpfen. Mit generiertem Code wie ADO.NET DataSets und so wird dies sehr schwer zu kontrollieren. Schließlich geben Sie auf und lassen Sie einfach alles in den Standard-Namespace. In großen Anwendungen wird dies sehr ärgerlich, besonders wenn Sie eine gut strukturierte Anwendung mögen.

Schätzen Sie, wenn jemand hier ein Beispiel zeigen könnte.

+7

Erwarten Sie alle auf SO, den gesamten Blogpost zu lesen, um Ihre Frage zu verstehen? –

+1

Ich habe keine Ahnung, wovon er spricht ... Ich muss Webseiten sehr oft benutzen und habe kein Problem mit Namespaces. – Cerebrus

+0

Sorry Metro, ich habe weitere Hintergrundinformationen hinzugefügt, hoffe, dass die Leute verstehen können, was ich meine, ohne den ganzen Blogartikel zu lesen. – George2

Antwort

1

Genau dies testen: Erstellen einer Webanwendung und einer Web-Site, dann nehmen Sie einen Blick auf die Namespaces in die Default.aspx.cs erstellt:

  • WebSite: kein Namespace
  • WebApplication: hat Namespace

Wenn Sie eine sehr große Anwendung haben, ist es unmöglich, Ihre Klassen ohne Namespaces zu finden.

erstellen nun einen Datensatz:

  • WebSite: keine .Designer.cs erstellt -> Namespace wird automatisch auf dem
  • WebApplication fly erstellt werden: mit der richtigen Namensraum erstellt .Desinger.cs.
+0

@jmservera, 1. auch wenn der WebSite-Projekttyp keinen Namespace generiert, könnten wir den Namespace manully selbst hinzufügen, ist das in Ordnung? 2. "Jetzt erstellen Sie ein DataSet" - nicht sicher, was meinst du ein DataSet erstellen. Ich programmiere immer DataSet programmatisch, indem ich neues DataSet (...) in meinem Code verwende, was meinst du hier "ein DataSet erstellen"? Welche Auswirkungen hat es, wenn keine .designer.cs erstellt wurde? – George2

+0

@ George2, ich meinte: Rechtsklick-Website-> Neuen Artikel hinzufügen ...-> DataSet, dann entwerfen Sie eine typisierte Dataset-Definition in Ihr Projekt, die eine Klasse dafür erstellt. Wenn Sie es in eine WebSite tun, können Sie seinen Namespace nicht manuell festlegen, da jedes Mal, wenn Sie es entwerfen, es überschrieben wird. – jmservera

1

George, Websites sind nicht spezifisch für VSTS. Das ist eine normale Visual Studio-Funktion, die uns seit Visual Studio 2005 verfolgt.

Siehe auch https://stackoverflow.com/questions/237664/web-site-vs-asp-net-web-application-in-visual-studio.

+0

Ja, John. Aber dieser Link beantwortet meine Frage nicht. Irgendwelche Ideen oder Kommentare zu meiner Verwirrung in meinem ursprünglichen Post erwähnt? – George2

+0

Das bedeutet, dass Sie in einem Projekt den Root-Namespace für das Projekt festlegen können. Seiten, die im Stammverzeichnis des Projekts erstellt wurden, erhalten diesen Namespace. Wenn Sie Unterordner erstellen, werden die darin erstellten Seiten den Root-Namespace und den Namen des Unterordners vollständig durchlesen. Sie haben daher die Kontrolle über die Namespaces, die VS erstellt, wenn Sie ein Element hinzufügen. "Keine Kontrolle" bedeutet nicht, dass Sie die Namespaces nicht manuell ändern können, obwohl das einige Dinge vermasseln wird, da Teile Ihrer Site keinen Namespace erwarten, aber Sie haben jetzt einen erstellt. Einfache Antwort: Verwenden Sie keine Websites. –