asp.net开发与web标准的冲突问题的一些常见解决方法

所属分类: 网络编程 / ASP.NET 阅读数: 709
收藏 0 赞 0 分享

论坛中也经常有从事.net开发的新手朋友问一些asp.net开发过程中与web标准之间的冲突问题,其实说到底就是客户端代码生成的问题。更高深的开发层面的东西我也说不出来,从页面前端的角度和大家分享一下建议:

少用asp.net中的服务器端控件

在Visual Studio中,有一系列强大的控件,让我们的刚开始学习.net开发人员爱不释手。但vs中的这些控件,大多都是基于winForm的那种模式搬来的,在网页开发上,有些控件还是少用为佳,比如:

  • 不要什么也没都统统加form runat="server",有朋友说,不加form runat="server"其他控件很多就不可以用了。是的,我们就是要在必要的地方加,确实是有表单的地方,自然要加,但绝对不是.net默认的那种,所有页面都在body标签下第一个标签就是form。这是不合理的。
  • 少用Asp:Gridview这样的控件,可考虑asp:Repeater控件或者自己去写第三方控件,反正很简单,让代码输出听你的。
  • 用asp:Literal替换asp:Label,asp:Literal输出是干净的。
  • 少用asp:LinkButton这样的控件,链接就是链接,按钮就是按钮,没必要搞一个什么LinkButton……
  • 默认的表单验证控件虽然用起来简单,但还是自己写的比较好用。
  • 总之,我们要注重代码输出的质量,而默认的控件有些是达不到这个要求的。

少用Frameset/Iframe标签

在一般网页中用框架页来布局(Header/Sidebar/Content/Footer)的做法基本上已经淘汰了,当然,后台管理这类的应用还是可以用的,前端展现的页面就不可以了,Visual Studio 2005中开始,就有了MasterPage,这个用起来也非常方便。其实和早期asp中include header.asp这样的做法是相似的。

少用PostBack机制

.net中的postback机制,有它的理由,合理使用吧,互联网产品中少用点没错!

多看成熟的.net开源产品

比如:微软开源的oXite、PetShop、Discuz论坛的.net版、BlogEngine、CVBBS等等,都是基于.net开发的比较好的例子。

多关注客户端代码质量

毕竟是基于浏览器的,用户体验、W3C标准、浏览器兼容等等,没有好的客户端代码,都是支撑不起来的。

多学习必要的客户端知识

很多.net初学者对html/css/javascript这些客户端基本知识了解得不够,特别是javascript,你会发现很多以前你都Postback到服务器端去做的事情,原来用javascript就可以轻松地在客户端去完成了!Web开发,这是根基!

前几天看了下oXite,顺便装上了asp.net MVC Beat,我也不是.net的铁杆粉丝,但是也就没有留意,今天抽空新建了一个MvcApplication示例项目大致地了解了一下,看到了我所希望看到的几个亮点:

  • 代码生成的非常干净,这点很重要。
  • 不使用现有的将交互返回服务器的postback模型,也就是说在基于MVC的视图内没有viewstate或page的生命周期之说。
  • 它包括一个非常强大的URL映射组件,允许你使用非常干净的URL来建造应用。
更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多