Jedes Mal, wenn ich eine neue Klasse irgendwo unter meinem App_Code-Verzeichnis in meiner MVC 3-Webanwendung hinzufüge, wird es mit einer Build-Aktion von "Inhalt" festgelegt. Ich muss es standardmäßig auf "Kompilieren" einstellen. Gibt es irgendwo in Visual Studio eine Standard-Build-Aktion für Code unterhalb dieses Verzeichnisses?Standard-Build-Aktion in App_Code-Verzeichnis?
Antwort
MVC-Projekte sind keine Website-Projekte, sondern Web-Anwendungsprojekte. Website-Projekte (sofern nicht vorkompiliert) werden mit Quellcode bereitgestellt und dynamisch von der ASP.NET-Laufzeit kompiliert. Webanwendungsprojekte werden als separate Phasen erstellt und bereitgestellt. App_Code ist ein spezieller ASP.NET-Ordner, der separat vom Rest der Anwendung kompiliert wird. Aus diesem Grund sind die Elemente in App_Code standardmäßig auf Inhalt festgelegt, sodass sie getrennt von der Anwendung (Quelle) kompiliert werden können.
In Webanwendungsprojekten unterliegen Sie keinem Standardformat für Ihr Projektlayout, sondern den gesamten kompilierten Code am Ende des Tages. Ich würde empfehlen, entweder den Ordner Models
im Projekt zu verwenden oder einfach nur einen eigenen Ordner zu erstellen. Ich würde App_Code nicht verwenden.
Danke für die Info. Das hilft. Ich werde mein Projekt dann umstrukturieren, um die Verwendung des App_Code-Verzeichnisses überhaupt zu vermeiden. – Scott
Vergiss nicht, wenn du Sachen von App_Code nach anderswo verschiebst, ändert sich die Build-Aktion für dich nicht, du musst das selbst auf "Kompilieren" setzen. –
Aber wo setzt du die Rasiererhelferfunktionen? Scott Gu sagte, dass MS im App_Code-Verzeichnis betrogen und Rasiererfunktionen ausgeführt habe, da sie während des Entwicklungszyklus keine Zeit hatten, um sie an einem geeigneten Ort im Ordner "Views" zu platzieren. Ich stoße auf dieses Problem, weil ich Rasiermesserhelfer benutze und meinen cshtml Code für bessere Leistung vorkompilieren möchte. Hat jemand einen Vorschlag, was mit Rasierhelfern zu tun ist? Ich nehme an, die Leute benutzen sie einfach nicht? –
- 1. In CSV in Array in Python konvertieren
- 2. 'IN' & 'NICHT IN' in Linq Abfrage
- 3. % in% Veränderung in dplyr Paket in R
- 4. Schleifen in Schleifen in Schleifen in Java
- 5. Funktionsparameter in Zeichenfolge in Parameter in Objekt
- 6. In Operator in Linq
- 7. In Python in bash
- 8. in Verknüpfungstabelle in Hibernate
- 9. IN-Klausel in sqlite
- 10. \ in path.combine in C#
- 11. "IN" Operator in Linq
- 12. in
- 13. in
- 14. Synchronisation in Vektoren in Java
- 15. SQLite in Operator in query()
- 16. Blobs in Blobstore in GAE
- 17. mehr IN-Bedingungen in JPQL
- 18. RadUpload in FormView in RadAjaxPanel
- 19. Javascript in select in Selen
- 20. SQL - IN vs. NICHT IN
- 21. Bindung in ItemTemplate in ResourceDictionary
- 22. Split in Großbuchstaben in PHP?
- 23. Kreuzung in sqlite3 in Python
- 24. Assoziativität von "in" in Python?
- 25. Vorwahlwert in Combobox in extjs
- 26. memcpy in float in int
- 27. Konvertierung in Dezimal in Matlab?
- 28. lapply in lapply in data.table
- 29. FileNotFoundEception in FileInputStream in Android
- 30. "Find() in Einfügen" in MongoDB?
Aus Neugier, welchen Code platzieren Sie dort? Ich bin gerade knietief in einer großen MVC-App und habe noch nie etwas dorthin gebracht, so neugierig, wenn ich etwas verpasse. –
Ich habe mehrere benutzerdefinierte Aktionsfilterattribute, HTML-Helfer usw. Dies schien der logische Ort zu sein, um sie zu platzieren, da sie MVC-spezifische Klassen sind. – Scott
Schluer Ich empfehle dringend, App_Code für diese Art von Domänenklassen zu verwenden. Es wäre sauberer, Ihrer Projektstruktur entweder eine Satellitenassembly oder einen zusätzlichen Ordner hinzuzufügen, damit diese einen bestimmten Namensraum haben. In der modernen ASP.NET-Entwicklung ist das App_Code-Verzeichnis selten die beste Option. –