Ich habe eine ASP.NET 3.5-Website (Visual Studio-Jargon), aber die Website wächst weiter und sieht unter anderem eher cowboyisch aus. Ich würde gerne sehen, dass dies in eine Webanwendung konvertiert wird (Namespaces und alle).
Ist dies etwas, das in Visual Studio leicht gemacht werden kann? Wenn nicht, gibt es andere Tools, mit denen alle Namespaces usw. automatisch erstellt werden können?
asp.net
visual-studio
web-applications
RSolberg
quelle
quelle
Antworten:
quelle
Exemplarische Vorgehensweise: Konvertieren ein Web - Site - Projekt zu einer Web Application Project in Visual Studio bei MSDN
Wenn Ihre Website-Anwendung wächst, ist es besser, sie in mehrere Projekte aufzuteilen. Die Konvertierung von einem Website-Projekt in ein Webanwendungsprojekt hilft nicht viel.
quelle
Wenn Sie Probleme beim Erstellen Ihres neuen Webanwendungsprojekts haben, überprüfen Sie die Dateieigenschaften aller Hilfsklassen in Visual Studio. Für ein Projekt, das ich konvertierte, wurde die Build-Aktion auf "Inhalt" gesetzt, während es "Kompilieren" sein sollte.
quelle
Erstellen Sie eine neue Webanwendung in VS 2010.
1. Kopieren Sie mit Windows Explorer alle Ihre Dateien in Ihren Projektordner.
2. Zeigen Sie im VS 2010 Solution Explorer alle Dateien an.
3. Wählen Sie die Dateien und Ordner aus - klicken Sie mit der rechten Maustaste auf In Projekt einschließen.
4. Klicken Sie mit der rechten Maustaste auf den Projektlösungs-Explorer und wählen Sie In Webanwendung konvertieren.
Es gibt einige kleine Unterschiede, z. B. wird der App_Code-Ordner in old_app_code umbenannt - was überraschenderweise keine Fehler verursacht. Der Typname in Ihren Objektdatenquellen und die Vererbungen im @ Page-Tag benötigen möglicherweise den [Projektnamen]. Präfix global angehängt. Wenn Ihr Typname beispielsweise "BusinessLogic.OrderManager" und Ihr Projektname "InventorySystem" lautet, müssen Sie ihn in "InventorySystem.BusinessLogic.OrderManager" ändern. Einige Anzeigeänderungen, wie z. B. erforderliche Feldprüfer, verwenden nicht mehr standardmäßig die rote Schrift, sondern standardmäßig die schwarze.
quelle
Ich hatte anfangs die gleichen Probleme. Nachdem ich dem Wrox Professional ASP.NET 4.0-Buch gefolgt war, fand ich die folgende Lösung für meinen Fall.
Ich habe zuerst eine neue Webanwendung erstellt. Kopierte alle Website-Dateien in den Webanwendungsordner. Klicken Sie mit der rechten Maustaste auf die Anwendung und klicken Sie auf In Webanwendung konvertieren.
Möglicherweise fragen Sie, warum Sie eine Web-App in eine Web-App konvertieren müssen. Die Antwort lautet: Wenn Sie eine Website erstellen, codieren Sie einfach die CS-Datei, wo immer dies erforderlich ist. Eine Webanwendung deklariert jedoch automatisch .design.cs (oder .vb) und eine .cs-Datei für den Code- und Designabschnitt.
NÄCHSTER: Entfernen Sie alle manuellen Verweise wie das Attribut 'Inherits' in der PAGE-Direktive auf andere Dateien auf Ihrer Website, da in Namensräumen die Klassen zentral referenziert werden.
Ich hatte auch ein Problem, da ich OBJ und BIN nicht in mein Projekt aufgenommen hatte. Wenn Sie glauben, dass Ihre BIN- und OBJ-Ordner fehlen, klicken Sie einfach im Projektmappen-Explorer auf das Symbol "Alle Dateien anzeigen", klicken Sie mit der rechten Maustaste auf die fehlenden Ordner und fügen Sie sie dem Projekt hinzu. (um sicherzustellen, dass sie mit dem Projekt kompiliert werden.)
UPDATE: Wie @deadlychambers in den Kommentaren hervorhebt: Sie können überall suchen, indem Sie "Strg + Umschalt + F" drücken und dann nach suchen
Inherits="(.*?)"
. Dies wird alle Vorkommen finden und Ihnen wahrscheinlich einige Zeit sparen!quelle
Ich habe jetzt erfolgreich ein Website-Projekt in eine Webanwendung migriert und es gibt ein paar Fallstricke, auf die Sie achten müssen.
Wenn Sie ReSharper zur Verfügung haben, können Sie die Aspx-Dateien erheblich überarbeiten.
public partial class FolderName_Projectname : Page
wenn erforderlich, alle Dateien mit Resharper oder manuell umbenennen. Wenn Sie auf mehrere Fehler stoßen"There is already a member Page_Load() defined"
, ist dies höchstwahrscheinlich auf falsche Klassennamen und Duplikate zurückzuführenErsetzen Sie
CodeFile
in allen Aspx-Seiten durchCodebehind
und achten Sie besonders auf Dateien in Ihrem Unterordner. Stellen Sie sicher,Inhertis=""
dass der relative Pfad nicht enthalten ist. Ihre Namespaces kümmern sich um alles. Das richtige Format ist alsoInherits="Namespace.classname"
. Wenn Ihre Klasse einen Namespace NaSpa und einen Dateinamen foo.cs hat, wäre dies der FallInherits="NaSpa.foo"
Nachdem Sie alle Ihre Dateien vorbereitet haben (vergessen Sie nicht Ihre Masterseiten), führen Sie "In Webanwendung konvertieren" aus. Wenn Sie danach auf Fehler stoßen, spülen Sie und wiederholen Sie. Wenn Sie auf Fehler der Art "TextBoxName kann nicht gefunden werden, wenn Sie eine Referenz vermissen" stoßen, stellen Sie sicher, dass Sie nicht vergessen haben, Ihre Aspx-Seiten zu bereinigen. Ein guter Indikator ist die Überprüfung der automatisch generierten Designer-Dateien. Wenn
TextBoxName
dort nicht angezeigt wird, war die Konvertierung nicht vollständig erfolgreich.quelle
Der Standard-ASP-Namensraum scheint nicht mehr zu funktionieren. Daher kann ich meine User Controls.ascx-Seiten scheinbar nicht von außerhalb der Seite aufrufen. Es schien zu funktionieren, ihnen einen Namespace zu geben und den Standardwert von ASP in meinen Namespace zu ändern.
quelle