Существуют ли соглашения об именах для структур каталогов веб-приложений ASP.NET?
-
02-07-2019 - |
Вопрос
В настоящее время я разрабатываю сайт, содержащий около семи частичных классов, несколько значков, три страницы и папку App_Themes.Мне было интересно узнать, существует ли стандартная структура каталогов для чего-то большего, чем небольшой проект?
Например, я хочу хранить классы в отдельных папках, изображения в отдельных папках и т. д.Моя текущая структура каталогов выглядит следующим образом (не точно, это по памяти):
- (корневой) содержит код программной части и формы
- /Данные приложения
- /App_Themes
- /Бин
- /Изображений
- /Models — я украл имя из MVC.Это звучало более уместно, чем «занятия».
- /FusionCharts — библиотека флэш-графиков.
Я немного поигрался с MVC, и структура каталогов выглядела неплохо, однако я использую ASP.NET Ajax.
Итак, я думаю, вопрос в том, есть ли способ сделать эту структуру каталогов более упорядоченной, по вашему мнению?Пожалуйста, ответьте также, почему вы приняли такое решение :).
Решение
Мне нравится вдохновляться стандартами Microsoft, поскольку мы используем технологию Microsoft.Плюс несколько хороший стандарт лучше, чем отсутствие стандарта, особенно если вы работаете в большой команде.
App_Code, конечно, является стандартным, поскольку у него есть функция в ASP.NET, а не просто лучшая практика.
Мне нравится структура стандартного проекта MVC:
- Содержание -- Содержит подкаталоги с изображениями, Css, Javascript.
- Контроллеры -- Возможно, нет данных в веб-формах
- Взгляды -- Также, возможно, излишество в WebForms
Папка «Содержимое», возможно, является ключевым моментом, поскольку это наименьший общий знаменатель для проектов ASP.NET.Итак, если вы работаете как с WebForms, так и с MVC, вы будете чувствовать себя как дома во всех проектах, если вы знаете, что ваши статические ресурсы находятся в этой папке.
Другие советы
Единственное «стандартное» имя, которое вам не хватает для ASP.NET, будет Код_приложения.
Используйте соглашение, которое имеет смысл для вас и людей, которые будут поддерживать код.Для этого не существует отраслевого стандарта, с которым я столкнулся за более чем 4 года разработки ASP.NET.
Я также следую той же структуре, о которой вы упомянули.Единственное дополнение, которое я сделал, — это отдельные папки для скриптов, CSS и ресурсов.Насколько я знаю, такого отраслевого стандарта не существует.
Мне нравится иметь папку «Содержимое», в которой я могу разместить папки Css, Js и Images.
Многие проекты веб-форм ASP.Net также будут иметь папку Controls для элементов управления ASCX.
Для стилизации CSS мы обычно используем папку стилей, images для содержимого изображений (вроде очевидного), js.
У вас может быть папка схем, App_Code для обработчиков ASHX и других типов кода приложения, а также папка MasterPages.
В проекте веб-форм вы можете увидеть некоторые автоматически создаваемые папки: Properties, App_Data, bin, obj, Packages и TestResults.