Basically, if you want to have code to be compiled, you have to put it in app_code folder. exceptions are only pages (.aspx) and controls (.ascx) with their code behind (AFAIK). You can access code in app_folder from outside of this folder (page can call this code), but you can not access code outside of app_folder from inside (your library cannot access page). If you need to work with any of your pages / controls from app_folder, you have to create interface for it, put this interface into app_folder and your page / control have to implement this interface. Then you can call methods or access properties of your control / page using this interface, which is known to your code (it is in app_code folder). Pilo