Visual Studio .net从2003到现在的2008,一路走来慢慢强大……从以前的vs2003能自动改乱你的html代码到现在在vs2008中都能直接对html代码进行w3c标准验证并提示了,非常不易。

论坛中也经常有从事.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来建造应用。

asp.net开发与web标准的冲突问题的更多相关文章

  1. web标准之道——笔记

    字体设置 sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案.通用字体应该放在最后面 sans衬线字体 容易阅读,一般使用在 ...

  2. ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上

    一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...

  3. web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 规范 HTML结构详解 {前端之前端初识}

    前端之前端初识   前端初识 本节目录 一 web标准 二 浏览器介绍 三 开发工具介绍 四 HTML介绍 五 HTML颜色介绍 六 规范 七 HTML结构详解 一 web标准 web准备介绍: 1. ...

  4. ASP.NET Web Pages 的冲突版本问题

    随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...

  5. ASP.NET4 与 VS2010 Web 开发页面服务改进

    转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...

  6. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  7. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  8. 前端开发-Web标准

    Web标准 1理解:结构 => html表现 => css行为 => js(dom + es) WEB标准(结构.表现.行为分离)有哪些优点呢? 易于维护:只需更改CSS文件,就可以 ...

  9. 下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍

    随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity, 使用Async来提高Web服务器的吞吐量和效率等.其中一个不得不提的是OWIN和Katan ...

随机推荐

  1. 使用亚马逊的Route53服务

    自从自己的博客从github迁移到AWS以上,再也不用担心Github被墙了.再加上CloudFront的CDN功能,那访问速度真是杠杆的,无论是在中国内陆,还是澳洲海边,秒开无压力. 但是这几天突然 ...

  2. AngularJS快速入门指南20:快速参考

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

  3. IOS Animation-CAShapeLayer、UIBezierPath与Animation的结合

    在阅读本文之前,对CAShapeLayer.UIBezierPath不熟悉的话,可以先阅读文章 贝塞尔曲线与Layer 如果对动画不熟悉的话,先阅读文章 动画基础.深入 Layer是绘图的画板,Bez ...

  4. rewrite规则写法及nginx配置location总结

    rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用. 例如http://seanlook.com/a/we/index.php ...

  5. Atitit。木马病毒原理机密与概论以及防御

    Atitit.木马病毒原理机密与概论以及防御 1. 定时截屏木马1 1.1. QQ聊天与微信聊天木马1 2. 文档木马1 3. 病毒木马的触发方式2 4. 远程木马2 5. 漏洞木马2 6. 病毒木马 ...

  6. iOS--二维码

    现在很多APP都涉及了二维码扫码功能,这个功能简单实用,很多情况下用户乐于使用,现在本文带来iOS7自带二维码扫码的教程,也包括扫条形码,足以满足简单的扫码要求,而且避免使用第三方的繁琐. 后期项目中 ...

  7. Java 线程 — ConcurrentHashMap

    ConcurrentHashMap ConcurrentHashMap 结构 采用了分段锁的方法提高COncurrentHashMap并发,一个map里面有一个Segment数组--即多个Segmen ...

  8. jQuery事件流的顺序

    <div id="aaron"> <div id='test'> <ul> <p>点击p被委托,ul被阻止了,因为内部重写了事件对象 ...

  9. Android入门(十)SQLite创建升级数据库

    原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可 ...

  10. 用MVVM做了一个保存网页的工具-上篇

    前言: 你是否有过收藏了别人博客或文章,当想用的时候却找不到?你是否有过收藏了别人博客或文章,却因为没有网络而打不开网页?OK,下面是我做的一个工具,有兴趣的同学们可以download 玩下,哈哈^. ...