Что это означает, что веб-сайты не дают вам контроля над пространствами имен?

Как вы понимаете проблему пространства имен "Нет контроля над вашими пространствами имен", цитируется из,

http://reddnet.net/code/asp-net-web-site-vs-web-application-project-part-2/

Вот еще предыстория:

Одним из недостатков VSTS 2005 является то, что я не понимаю, что именно означает «отсутствие контроля над вашим пространством имен»?

  • Нет контроля над вашими пространствами имен. Конечно, вы можете вручную добавлять пространства имен практически ко всему, но Visual Studio будет бороться с вами на каждом этапе пути. При использовании сгенерированного кода, такого как наборы данных ADO.NET и т. Д., Это становится очень трудно контролировать. В конце концов вы сдадитесь и просто позволите VS поместить все в пространство имен по умолчанию. В больших приложениях это очень раздражает, особенно если вам нравится хорошо структурированное приложение.

Буду признателен, если кто-нибудь сможет показать здесь образец.


person George2    schedule 01.07.2009    source источник
comment
Ожидаете ли вы, что все в SO прочитают весь пост в блоге, чтобы понять ваш вопрос?   -  person Metro Smurf    schedule 01.07.2009
comment
Я понятия не имею, о чем он говорит ... Я (должен) много использовать веб-сайты и не сталкиваюсь с проблемами с пространствами имен.   -  person Cerebrus    schedule 01.07.2009
comment
Извините, Metro, я добавил дополнительную справочную информацию, надеюсь, люди поймут, что я имею в виду, пока вы не прочитаете всю статью в блоге.   -  person George2    schedule 01.07.2009
comment
Dupe: stackoverflow.com/questions / 1056797 /   -  person womp    schedule 01.07.2009
comment
Ссылка не отвечает на мой конкретный вопрос о проблеме с пространством имен, а упомянутая вами ссылка очень хороша для описания общих плюсов и минусов WebSite v.s. Веб приложение. :-) Есть идеи или комментарии к моему первоначальному вопросу?   -  person George2    schedule 03.07.2009


Ответы (2)


Просто проверьте это: создайте веб-приложение и веб-сайт, затем посмотрите на пространства имен, созданные в Default.aspx.cs:

  • Веб-сайт: не имеет пространства имен
  • WebApplication: имеет пространство имен

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

Теперь создайте DataSet:

  • Веб-сайт: нет .Designer.cs создан -> пространство имен будет создано автоматически на лету
  • Веб-приложение: .Desinger.cs, созданный с соответствующим пространством имен.
person jmservera    schedule 01.07.2009
comment
@jmservera, 1. даже если тип проекта WebSite не генерирует пространство имен, мы могли бы добавить пространство имен вручную, это нормально? 2. Теперь создайте DataSet - не знаю, что вы имеете в виду, создавая DataSet. Я всегда программно создаю DataSet, используя new DataSet (...) в моем коде, что вы имеете в виду, создавая здесь DataSet? Что будет, если не будет создан .Designer.cs? - person George2; 03.07.2009
comment
@ George2, я имел в виду: Щелкните правой кнопкой мыши веб-сайт- ›Добавить новый элемент ...-› DataSet, затем вы создаете типизированное определение набора данных в своем проекте, который создает для него класс. Если вы сделаете это на веб-сайте, вы не сможете установить его пространство имен вручную, потому что каждый раз, когда вы его проектируете, оно будет перезаписываться. - person jmservera; 04.07.2009

Джордж, веб-сайты не относятся к VSTS. Это обычная функция Visual Studio, преследующая нас с Visual Studio 2005.

Также см. https://stackoverflow.com/questions/237664/web-site-vs-asp-net-web-application-in-visual-studio.

person John Saunders    schedule 01.07.2009
comment
Да, Джон. Но эта ссылка не отвечает на мой вопрос. Какие-либо идеи или комментарии к моему недоумению, упомянутые в моем исходном сообщении? - person George2; 03.07.2009
comment
Это означает, что в проекте вы можете установить корневое пространство имен для проекта. Страницы, созданные в корне проекта, получат это пространство имен. Если вы создаете подпапки, то страницы, созданные в них, получат корневое пространство имен плюс имя подпапки до конца. Таким образом, у вас есть контроль над пространствами имен, которые VS создаст при добавлении элемента. Отсутствие контроля не означает, что вы не можете вручную изменить пространства имен, хотя это может испортить некоторые вещи, так как части вашего сайта не будут ожидать пространства имен, но теперь вы его создали. Простой ответ: не используйте веб-сайты. - person John Saunders; 03.07.2009