Ваш вопрос похож на: Алгоритм трехмерной упаковки бинов
Хотя, поскольку вы запрещаете вращение, вы можете получить довольно хорошие результаты. Я предлагаю больше взглянуть на решение, которое поможет уменьшить вес.
Мы использовали тип проекта веб-приложения в VS 2008 для всех наших проектов и помещали наши общие классы в папку AppCode вместо папки App_Code. Он работает абсолютно нормально, мы без проблем получаем доступ к нашим классам на всех страницах приложения.
Почему вы не хотите создавать еще один проект? Это был бы самый простой подход, поскольку все ваши классы были бы размещены в этой сборке, на которую вы могли бы ссылаться в своем веб-приложении, а затем иметь доступ ко всему в рамках всего проекта.
Я настоятельно рекомендую вам рассмотреть этот подход.
С проектами веб-приложений у вас гораздо больше свободы. Просто создайте подпапки в своем проекте, чтобы проводить занятия. Например, у вас может быть папка с именем «DAL» для хранения элементов уровня доступа к данным.
При желании вы можете создать проект сборки и поместить туда свои классы и просто сослаться на него с вашего WAP.
В конечном итоге, структура будет сводиться к тому, сколько классов у вас будет.
Обычно у меня есть три проекта в одном решении. Веб-приложение, веб-библиотека (базовые страницы и т. Д.) И DAL. Так все будет в чистоте.
Разместите их где угодно. Я обычно храню небольшие вспомогательные классы и базовые страницы для конкретных проектов в папке / Helpers внутри веб-проекта, но разделяю элементы DataLayer и многоразовые помощники общего назначения в их собственные отдельные проекты.
Я настоятельно рекомендую вам поместить все ваши классы (объекты домена) в отдельный проект. Таким образом, вы легко сможете написать тест для вашего бизнес-уровня (объекты домена), и ваши классы будут переносимы. Переносимость означает, что вы можете отправить свою DLL другому разработчику, и он / она может легко повторно использовать созданные вами классы.