我越来越不喜欢服务器控制的这个长ID......
但我认为在代码隐藏中生成它的另一种方法不是 asp.net 的简单事物的意义,是吗?
那么您自己更喜欢这种方法吗?明年我要在公司做大中型项目,这就是我问的原因。我自己来自 PHP,同时通过干净的源代码记住我会生病 :)
事实上,我使用 asp.net webforms 很容易在短时间内开发出很酷的解决方案。在对 MVC 的一些印象之后,我不确定是否也可以通过这种方式。
我越来越不喜欢服务器控制的这个长ID......
但我认为在代码隐藏中生成它的另一种方法不是 asp.net 的简单事物的意义,是吗?
那么您自己更喜欢这种方法吗?明年我要在公司做大中型项目,这就是我问的原因。我自己来自 PHP,同时通过干净的源代码记住我会生病 :)
事实上,我使用 asp.net webforms 很容易在短时间内开发出很酷的解决方案。在对 MVC 的一些印象之后,我不确定是否也可以通过这种方式。
这是从 ASP.NET Webforms 切换到ASP.NET MVC的最大原因之一。你可以用 WebForms 做很多事情来缓解这个不会被认为是 hack 的问题(出于这个原因,我当然已经在某些地方对它进行了 hack)。
通常,您不希望在 CodeBehind 中生成控件,因为它使视觉布局更加困难。不过,有几件事要记住。
首先,在 CodeBehind 中创建控件并不难,但它的成本超出了 UI 布局。也就是说,当您重新访问一个页面并且必须弄清楚从哪里来的时候,成本就会出现。如果您不小心,在 CodeBehind 中执行操作可能会绊倒您。
其次,如果您能够保持足够的灵活性以跳转到 ASP.NET 4.0,那么您的挫败感将是短暂的,因为 4.0 为您提供了一种定义客户端 ID 的方法。
第三,MVC 是一种替代方案,但除非您真的刚刚开始,否则我会犹豫不决。对于习惯于 WebForms 开发的人来说,MVC 在生产力方面存在重大缺陷。我在这里详细讨论了这个问题。
现在,如果您需要从 Javascript/JQuery 引用控件,则必须处理复杂的 ID。在大多数情况下,这是一个相对有限的问题,并且一旦您迁移到 4.0,它就会再次消失。然而,MVC 是一项重大承诺:一种不同的思维方式,如果您习惯于 WebForms 开发,它会从您的工具带中删除一些非常高效的工具。采用它的主要原因 - 添加其他工具,例如简单的 JQuery 集成 - 也被 .NET 4 的变化削弱了。 最后,与其说决定哪个“最好”不如说是决定关于哪个适合您的发展风格和敏感性。
祝你好运!
PS:您知道您现在可以获得 .NET 4/Visual Studio 2010,对吧?它已经为可部署的项目做好了充分的准备,并且代表了 VS 2008 的重大进步。
我偶然发现了这一点,我认为这可能与此有关。
http://www.west-wind.com/WebLog/posts/4605.aspx
它将 UniqueID 和 ClientID 都覆盖为 ID,这样更干净。
public override string UniqueID
{
get
{
return this.ID;
}
}
public override string ClientID
{
get
{
return this.ID;
}
}