Laden...

MVC 3: web.config aus dem Views Ordner verschieben

Erstellt von Curse4Life vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.606 Views
C
Curse4Life Themenstarter:in
452 Beiträge seit 2005
vor 12 Jahren
MVC 3: web.config aus dem Views Ordner verschieben

Hallo,

ich baue mir ein kleines Framework basierend auf MVC 3 und will in meinen Projekten eine andere Ordnerstruktur.
So weit kein Problem, ich weiß wie ich die Viewerstellung und das suchen nach Views in andere Ordner verschiebe, es gibt nur eine Sache bei der ich nicht bescheid weiß.

Im Views Ordner liegt ja die web.config, in der steht ja unter anderem die Basisview für die Razorviews drin, dass ist in meiner neuen Struktur die einzigste Datei im Views Ordner.

Jetzt die Frage, kann ich diese web.config irgendwie verschieben, in die Root Web.config intergrieren, oder sonst was, damit ich den Views Ordner dann löschen kann?

Liebe Grüße

16.832 Beiträge seit 2008
vor 12 Jahren

Also prinzipiell kein Thema, die Ordnerstruktur zu ändern - aber nicht ratsam.
Du kannst zwar MVC sagen, dass er in weiteren Ordnern nach Views schauen soll (siehe Fehlermeldung wenn eine View nicht gefunden wird) aber er wird weiterhin in den Standardordnern suchen. Für die Performance ist also Dein Vorgehen - außer die gehst auf absolute Pfade - kontraproduktiv.

Dass es in jeder View seine eigene Config gibt ist schon richtig so - das fördert das modulare Denken für größere Projekte, in denen Teams ihre eigene Views/Areas verwalten.

Ich bin mir jetzt nicht wirklich im Klaren, welche Vorteile Du Dir durch Deine Arbeit schaffen willst - aber den Config-Pfad für die Views kannst Du meines Wissens nicht ändern. Ich finde dazu auch nichts in der Web.Config der Applikation.
Die Vorteile der klaren Struktur und der direkten Sicht des Workflows zerstörts Du damit in meinen Augen.

C
Curse4Life Themenstarter:in
452 Beiträge seit 2005
vor 12 Jahren

Du kannst zwar MVC sagen, dass er in weiteren Ordnern nach Views schauen soll (siehe Fehlermeldung wenn eine View nicht gefunden wird) aber er wird weiterhin in den Standardordnern suchen. Für die Performance ist also Dein Vorgehen - außer die gehst auf absolute Pfade - kontraproduktiv.

Das ist nicht korrekt, wie ich in einem Debugmarathon vor Wochen schmerzlich feststellen musste wird im Release Modus und nur da, die View/Pfad nach dem ersten finden gecached, also sollte er wirklich beim ersten mal auch einmal im Standardverzeichnis suchen, dann sollte das kein Problem sein.

Mit der web.config werde ich mal schauen was ich mache.

16.832 Beiträge seit 2008
vor 12 Jahren

Dann hast Du Deine Debug-läufe nicht lang genug getestet.

Es wird sowohl im Debug als auch im Release-Modus die gefundene View im "Cache" abgelegt - aber nur die Views, die gecached werden sollen/dürfen. Die Sache, dass das ganze im Release-Modus länger hält, liegt am Debug-Verhalten von VS; ASP Development Server.

Nichts desto trotz bleibt diese Information nicht dauerhaft im IIS Cache. Sollte sich die Anwendung schlafen legen, oder wird der Cache gesäubert, dann werden wieder alle Such-Definitionen durchlaufen.
Deswegen sollte man hier auch immer mit vollen Pfadangaben arbeiten - hierbei ist dann auch egal, in welchem Ordner die View liegt, da bei vollen Pfadangaben keine Standard-Suche nach der View ausgeführt wird.