Куда помещать классы при использовании типа проекта веб-приложения Visual Studio .NET вместо веб-сайта? (ASP.NET) - PullRequest
12 голосов
/ 21 мая 2009

У меня большой опыт создания сайтов ASP.NET в Visual Studio. Но есть альтернативный способ сделать то же самое, что и через веб-приложения, которые имеют немного другую файловую структуру.

Поскольку я создал свое первое веб-приложение, я больше не мог использовать классы (файлы .cs) в папке App_Code, их не видели классы ASPX и ASHX, если они не были перемещены в один файл.

Бывает, что я использую одни и те же классы во многих файлах и не хочу иметь несколько их копий. Где я могу поставить эти классы? Есть какое-нибудь решение без создания другого проекта?

Ответы [ 7 ]

8 голосов
/ 21 мая 2009

Мы использовали тип проекта веб-приложения в VS 2008 для всех наших проектов и поместили наши общие классы в папку AppCode вместо папки App_Code. Он работает абсолютно нормально, мы без проблем обращаемся к нашим классам на всех страницах приложения.

7 голосов
/ 21 мая 2009

С проектами веб-приложений у вас гораздо больше свободы. Просто создайте подпапки в вашем проекте, чтобы держать ваши классы. Например, у вас может быть папка с именем «DAL» для хранения элементов уровня доступа к данным.

При желании вы можете создать ассемблерный проект, поместить туда свои классы и просто ссылаться на него из своего WAP.

В конечном итоге структура будет сводиться к тому, сколько у вас будет классов.

2 голосов
/ 21 мая 2009

Почему вы не хотите создать еще один проект? Это был бы самый простой подход, поскольку все ваши классы были бы размещены в той сборке, которую вы могли бы ссылаться на проект в своем веб-приложении, а затем иметь доступ ко всему во всем проекте.

Я настоятельно рекомендую вам рассмотреть этот подход.

1 голос
/ 24 января 2014

Я использую /Shared/Classes для классов общего назначения, используемых по всему сайту. Мне нравится помещать остальные классы в папку Classes , где они используются, например /blog/Classes/.

- РЕДАКТИРОВАТЬ -

Ответ выше заключался в том, как я хранил классы в проектах приложений Web Forms. Теперь, когда я использую MVC, я храню классы общего назначения в /Classes и неуниверсальные классы в подпапках в /Classes, например /Classes/Blog. Короче говоря, Old_App_Code был переименован в Classes. Это выглядит как естественное расширение соглашений об именах, которые я вижу в Microsoft, использующих в MVC, плюс оно работает и с моими старыми страницами веб-форм.

1 голос
/ 22 мая 2009

Положите их где угодно. Я склонен хранить небольшие классы вспомогательных проектов и базовые страницы в папке / Helpers в веб-проекте, но разделяю содержимое DataLayer и универсальные многократно используемые помощники для своих отдельных проектов.

1 голос
/ 21 мая 2009

У меня обычно есть три проекта в рамках решения. Веб-приложение, веб-библиотека (базовые страницы и т. Д.) И DAL. Это держит все в чистоте.

0 голосов
/ 21 мая 2009

Я настоятельно рекомендую поместить все ваши классы (доменные объекты) в отдельный проект. Таким образом, вы легко сможете написать тест для вашего бизнес-уровня (доменные объекты), и ваши классы будут переносимыми. Переносимость означает, что вы можете отправить свою DLL другому разработчику, и он / она может легко использовать разработанные вами классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...