2010-02-17 27 views
5

Ich benutze derzeit den App_Code-Ordner für alle meine Klassen, und für mich (für den Moment) scheint es gut zu funktionieren.Klassenbibliothek Projekt VS App_Code - Pro/Contra?

Ich habe jedoch darüber nachgedacht, den Umstieg auf ein Klassenbibliotheksprojekt innerhalb meiner Lösung anstelle des Ordners App_Code zu machen. Kann mir jemand die Vor- und Nachteile sagen?

Ein Gedanke, den ich hatte, war im Hinblick auf das Testen meiner Web-App. Wenn ich eine Klassenbibliothek verwende, muss ich sie jedes Mal kompilieren, wenn ich sie optimieren/testen möchte? Offensichtlich im App_Code-Ordner muss ich nicht, da alle Klassen zur Laufzeit kompilieren.

+0

http://stackoverflow.com/questions/398037/asp-net-web-site-oder-web-application – womp

Antwort

6

Sie sollten eine Klassenbibliothek verwenden. Die Gründe sind einfach.

Sie möchten Ihre Geschäfts- oder Anwendungslogik von der Benutzeroberfläche entfernen. Der Ordner App_Code ist für Klassen vorgesehen, die nur mit der Benutzeroberfläche arbeiten.

Der Grund für die Trennung ist die Erstellung von Ebenen. Was bedeutet, dass Sie heute eine Website haben, werden Sie morgen aufgefordert, ein Windows-Programm oder eine neue Website zu erstellen. Wenn Sie Ihre Benutzeroberfläche ändern müssen, kopieren und fügen Sie den Code ein. Das heißt, Sie haben jetzt 2 oder mehr Stellen, um den Code zu pflegen. Dies führt zu einer schlechteren Codequalität, indem derselbe Fehler an zwei oder mehr Stellen behoben wird.

Wenn Sie Ihren Code in einer Bibliothek platzieren. Sie erstellen eine neue Benutzeroberfläche und verweisen dann nur auf die Bibliothek. Sie verwenden nur 1 Code.

+0

Dies ist eine gute Antwort, und eine, die vollkommen Sinn macht. In meiner Frage oben erwähnte ich, dass ich die Klassenbibliothek beim Testen immer und immer wieder kompilieren muss ... gibt es einen Weg dahin? –

+0

Also die Antwort ist, dass ich es jedes Mal kompilieren muss, wenn ich einen Tweak oder Mod mache? –

+0

Sie müssen die Geschäftslogik nicht kompilieren, wenn Sie sie nicht geändert haben. Das Kompilieren dauert nicht so lange und ist kein guter Grund, all Ihren Code in Ihrer UI-Ebene zu behalten. –

0

Jimmy Bogard (Autor von Automapper) hat eine ausgezeichnete article geschrieben, wie er seinen Code strukturiert, der dazu beitragen kann, @ Davids Antwort zu bestätigen.

Verwandte Themen