Class Library Project VS App_Code - Pros / Cons?
I currently use the App_Code folder for all of my classes, and for me (for now) it seems to be working just fine.
I have开发者_运维知识库 however been considering making the switch over to a Class Library Project inside my Solution instead of the App_Code folder. Can anyone tell me the pros and cons of doing this?
One thought I had was with regards to testing my web app. If I use a Class Library, do I have to compile it every time I want to tweak/test? Obviously in the App_Code folder I don't have to since all of the Classes compile at runtime.
You should use a class library. The reasons are simple.
You want to remove your business or application logic from the UI. The App_Code folder is for classes that deal with the UI only.
The reason for the separation is to create tiers. Meaning today you have a web site, tommorow you may be asked to make a windows program, or a new web site. If you have to change your UI you are going to be copying and pasting the code. That means you have now 2 or more places to maintain the code. This will lead to poorer code quality, fixing the same bug in 2 or more places.
If you place your code in a library. You create a new UI and then just reference the library. You are only now using 1 set of code.
Jimmy Bogard (author of Automapper) has written an excellent article on how he structures his code, which may assist in confirming @David's answer.
精彩评论