Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

Jimmy Bogard (author of Automapper) has written an excellent article on how he structures his code, which may assist in confirming @David's answer.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top