【问题标题】:What does it Mean "Web Sites give You No Control over Namespaces"?“网站让您无法控制命名空间”是什么意思?
【发布时间】:2009-07-01 16:18:57
【问题描述】:

您如何理解“无法控制您的命名空间”命名空间问题,引用自,

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

这里有更多背景:

VSTS 2005 的网站项目类型的一个缺点是,我的困惑是“无法控制您的命名空间”到底是什么意思?

  • 无法控制您的命名空间。当然,您可以手动将命名空间添加到几乎任何东西,但 Visual Studio 会在每一步都与您抗衡。使用生成的代码(例如 ADO.NET DataSets 等),这变得非常难以控制。最终你会放弃,让 VS 把所有东西都放在默认的命名空间中。在大型应用程序中,这会变得非常烦人,尤其是如果您喜欢结构良好的应用程序。

如果有人可以在此处展示示例,不胜感激。

【问题讨论】:

  • 您是否希望 SO 上的每个人都阅读整篇博文以理解您的问题?
  • 我不知道他在说什么......我(不得不)经常使用网站,并且在命名空间方面没有遇到任何问题。
  • 对不起 Metro,我添加了更多背景信息,希望人们不阅读整篇博客文章就能理解我的意思。
  • 该链接没有回答我关于命名空间问题的具体问题,您提到的链接很好地描述了 WebSite v.s. 的一般优缺点。 Web应用程序。 :-) 对我原来的问题有什么想法或想法吗?

标签: c# .net namespaces web-site-project


【解决方案1】:

只需测试一下:创建一个 Web 应用程序和一个网站,然后查看在 Default.aspx.cs 中创建的命名空间:

  • 网站:没有命名空间
  • WebApplication:有命名空间

如果您有一个非常大的应用程序,就不可能找到没有命名空间的类。

现在创建一个数据集:

  • 网站:未创建 .Designer.cs -> 命名空间将即时自动创建
  • WebApplication:.Desinger.cs 使用适当的命名空间创建。

【讨论】:

  • @jmservera, 1. 即使WebSite项目类型不生成命名空间,我们也可以自己手动添加命名空间,可以吗? 2.“现在创建一个数据集”——不知道创建一个数据集是什么意思。我总是在我的代码中使用 new DataSet(...) 以编程方式创建 DataSet,这里的“创建 DataSet”是什么意思?如果不创建 .Designer.cs 会有什么影响?
  • @George2,我的意思是:右键单击网站->添加新项目...->数据集,然后在项目中设计一个典型的数据集定义,为它创建一个类。如果你在一个网站中这样做,你不能手动设置它的命名空间,因为每次你设计它都会被覆盖。
【解决方案2】:

George,网站并非特定于 VSTS。这是一个正常的 Visual Studio 功能,自 Visual Studio 2005 以来一直困扰着我们。

另外,请参阅https://stackoverflow.com/questions/237664/web-site-vs-asp-net-web-application-in-visual-studio

【讨论】:

  • 是的,约翰。但是这个链接没有回答我的问题。在我的原始帖子中提到了我的困惑的任何想法或问题?
  • 表示在一个项目中,可以为项目设置根命名空间。在项目根目录中创建的页面将获得该名称空间。如果您创建子文件夹,则在其中创建的页面将获得根名称空间加上子文件夹的名称,一直向下。因此,您可以控制 VS 在添加项目时将创建的命名空间。 “无控制”并不意味着您不能手动更改命名空间,尽管这会搞砸一些事情,因为您的网站的某些部分预计没有命名空间,但您现在已经创建了一个。简单的答案:不要使用网站。
猜你喜欢
  • 2012-01-21
  • 1970-01-01
  • 2013-09-29
  • 2017-05-15
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多