寻求关于消除asp.net 3.5的建议

时间:2009-06-04 18:13:23

标签: asp.net

我是.net的新手,虽然我多年来一直在写经典的asp。我知道是时候进行更改,但我无法忍受HTML变得多么臃肿。

例如,一个使用web.sitemap的简单菜单,并添加了超过100行的JavaScript和HTML。一个带有服务器端验证的简单表单增加了大量丑陋的JavaScript。使用GridView的基本数据表添加了一个让我眼睛流水的ViewState。

称我是最纯粹的,虽然我不喜欢将数据发送到浏览器,除非需要它。当一个简单的无序链接列表就足够时,我不需要一个形式错误的菜单。

所以,按照我的方式,我是否注定要完全放弃框架的好处,坚持为所有内容编写自己的,更清晰的代码?或者我错过了这一点?

简而言之,我是时事通讯发行公司Campaign Monitor的忠实粉丝。他们在.net中编写了一个优雅而全面的用户界面,没有一个ViewState或奇怪的.net-mangeled ID引用。甚至他们网站上的注册表格(/signup.aspx)也像哨子一样干净。他们的秘密是什么?

我希望我不是唯一一个。任何建议都将不胜感激。

8 个答案:

答案 0 :(得分:11)

尝试使用ASP.NET MVC或.NET的其他MVC Web框架

答案 1 :(得分:4)

如果你的GridView不需要它,那么关闭它的ViewState。

另外,请编辑您的问题以说明您正在使用的.NET版本。其中一些变得更好,而一些则没有。您可能还想尝试VS2010 beta 1,并抱怨它无法修复的任何内容。

另一个想法是继续将ASP.NET视为经典的ASP。完全按照你习惯的方式做到这一点,但要记住这个想法,大约有10年的开发工作已经用于解决传统ASP的一些问题。一旦你点击其中一个问题,找出ASP.NET是否解决了它,以及如何解决它。

例如,我很难相信您喜欢编写FOR循环来生成表格行。如果您厌倦了,请学习使用Repeater控件,DataList控件,甚至是旧的DataGrid控件。如果你关闭那些ViewState,我想你可能会发现生成的HTML是可以接受的,你会发现生成基于重复数据重复的表和其他结构要容易得多。

答案 2 :(得分:2)

你可以通过不使用随附的所有开箱即用控件来选择退出大部分的膨胀,但我更喜欢激活建议的MVC路线

答案 3 :(得分:2)

这是我的清单:

  • 将asp控件的使用保持在最低限度
  • 在不需要时关闭Viewstate
  • 如果您不希望与客户端验证关联的JavaScript(使用ASP.NET验证)将EnableClientScript设置为False
  • 使用asp:literal代替asp:Label

答案 4 :(得分:2)

是的,似乎每个人都在抨击网络表格,因为你已经概述了上述原因。 HTML重量控制,ViewState,无法控制ClientID似乎都会导致人们遇到问题。

但是,可以说你可以使用asp.net(webforms)并生成一些不错的应用程序。

通过httpModules和httpHandler控制html是你的,上面提到的一些问题在asp.net 4.0

中得到修复

我只是听了一个很棒的podcast比较MVC和webforms。它在你所询问的地区。另请查看dotNetNuke关于良好的asp.net代码的this blogpost以及为什么人们在将所有内容转换为mvc之前应该先屏住呼吸。

话虽如此,我已经尝试过Asp.net MVC并且很棒。我可能会将dotNetNukes代码视为其成熟的asp.net产品。

答案 5 :(得分:1)

此外,当您确实想要使用这些新奇的服务器控件时,请查看css友好控件适配器。他们清理了大部分臃肿。

对于客户端ID,要记住的关键是让框架处理它们。如果需要在客户端获取元素,请记住将控件的ClientID属性发布到脚本中。

答案 6 :(得分:0)

我一直在使用模板系统,对此非常满意。基本上为.html文件编写一个http处理程序,并将标记放在hge文件中,正则表达式可以在一次扫描中找到并注入任何东西。 (谷歌模板c#获取更多信息)。

答案 7 :(得分:0)

我尝试了一些非常酷的ASP.NET新功能。我也不喜欢他们中的大多数人。我觉得在微软梦想的常见范例的限制下工作受到限制,尽管我认为自己制作HTML和JavaScript是多么容易,而不必学习如何跳过箍有这么多新的微软特有的特质。

无论如何,我最近停止使用我不喜欢的ASP.NET部分。当我第一次开始使用ASP.NET时,MSDN文档中没有任何内容跳出来告诉我如何避免这些并发症,所以我在http://www.agalltyr.com/rawaspdotnet.html发布了一对“Hello,World”以帮助传播这个异端词。如果它是最新的酷技术或推荐的技术,我不在乎。这是我可以用来完成工作的可靠且合理有效的工具。

哦,我也没心情去学习ASP.NET MVC。这只是更多的特质。给我一个语言(C#)和一个框架(.NET),我将设计自己的抽象,谢谢。