虽然Html不是和互联网同时诞生,但如今它们的紧密关系,让人几乎一忽略了这段历史。Html有如此强的生命力力,应用如此之广,自从W3C宣布H已死之后,却又在别处开了花,Html 5的发展却又反过来,逼得W3C接受又继续发展。
然 后,自Html设计之出,就主要针对静态内容的表现,这也注定其天生缺陷。互联网已从起初的内容表现,发展到应用的平台,在应用程度领域上已经足以与桌面 程序抗衡一一你还在用Foxmail收邮件吗?甚至原本的內容发布应用本身,也趋于釆取动态生成的方式来实现,看看有多少CMS系统就清楚了。
然而,Html的天生缺陷,面向内容而不是面向逻辑,让我们生成Html的工作成了魔鬼拼图,用户在前台看到的完美梦幻界面,在后台却是成千上万的魔幻碎片。

是的,一个魔一个梦,一字之异,差之千里。

所 幸,业界一直致力变革。先期CSS 1,2,3,Javascript特别是JQuery,分别贡献于样式和行为的分离,这些都是碎片组成部分。因 而,HTML可以只关注于内容及其结构,纯粹化的很重要一部分。这里不作详敘,因为网络上有太多的文章和论敘,尽管很多的网站建设,连这些技术都没 应用好。
这里,我只想讲讲后CSS,jQuery时代的故事。
那怕只作内容的呈现,仍有很多的机会产生碎片。不变的内容和变化或说动态内 容交替出现,前者直接用HTMLTML代码,后者常常需要后台代码,变量的支持。两者是完全不同的领域范围,整合在一起,自然造成了不可理解的碎片拼盘。 就如同进程一样,切换进程是成本最高的开销,碎片的本质就是逻辑上下文的切换,无论开发者的书写还是阅读理解,都是高成本,最终成为开发壁磊。

解决方䅁就是,统一语境,至少大量减少切换频。

Asp,Net Web Form就是一个不错的尝试,HTML标记对象化,把不变内容HTML标记,统一到后台语境。一个个HTML标记都成为后台对象,变量填充自然在后台,以对象赋值的方式,统一的实施,跨越了语境的切换。这也是Web Form命名的含义,让网页像桌面一样一致编程。应该,说微软的这个技术方向还是比较成功的。至少,我就是在这个环境下,得进入Web行业,反过来,从后台的模型学习HTML前台DOM。
然而,Web Form的败笔却在架构方面,对象化HTML后,后台的处理反过来,全都以页面为中心概念,妄图忽略前端与后端的时间差(服务端控件?),真的把互联网当成了本地高速网了?

ASP MVC呼之即出,从1到3,4也在测试当中,发展相当之快。虽然,是后台的架构改变,对前端的影响也是巨大的。MVC结构不能再延用Web Form了,那是鸡同鸭讲。

历史总在绕圏圈,我们又回到ASP时代,用嵌入的变量拼凑HTML代码。

<span><%=Value%></span>

从一片空白开始,重新出发。很快,微软推出了HtmlHelper,一点一点,把碎片重新粘合起来。MVC3又推出了Razor视图引擎,让视图真正成为模板,当然后面仍有一个类在支持视图,但提供了更大的灵活性支持扩展,前文有详叙。而且,Razor在语法上也进一步减少碎片,不用结束符,不用加尖括号,智能识别环境变化,是HTML模式还是后台模式? 所有这些是解决本文开始所描述的碎片问题,代码碎片和思维的碎片。
完了?等等,所有这些似乎只是再为我们最后的英雄出场作准备。真正让Html行云流水,Fluent Html.

http://lunaverse.wordpress.com/category/ms-mvc/fluenthtml/
看看生成表格的一段代码吧,一段代码胜过一千张图。

@model IEnumerable<ExamDTO>
@this.Grid(Model).Columns(c=>
{c.For(x => x.Code).Named("代码");c.For(x => x.Name).Named("名称");c.For(x=>"删除").Named("操作");
}).Empty("没有记录!")

html从魔鬼拼图到行云流水相关推荐

  1. html从魔鬼拼图到行云流水之一

    虽然Html不是和互联网同时诞生,但如今它们的紧密关系,让人几乎一忽略了这段历史.Html有如此强的生命力力,应用如此之广,自从W3C宣布H已死之后,却又在别处开了花,Html 5的发展却又反过来,逼 ...

  2. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...

    不会闲聊!!!不会扯淡!!!小UP只会分享与Java相关的学习资源 还记得那年带你Java入门的一声"吼"吗? B站目前播放量已经快到450多万播放量的Java零基础教程的创作者& ...

  3. 如何用Python做三阶拼图?

    作者 | Ahab 来源 | Ahab杂货铺(ID:AhabBin) 今天是年假的最后一天,明天大家就要回到各自的工作岗位上去,公众号从今天开始恢复更新.不知道大家假期过得怎么样,帅张提到假期多关注一 ...

  4. AI手语主播通过朱广权魔鬼面试,残影级手速无惧贯口,今已正式上岗助力冰雪盛会...

    本文经ai新媒体量子位(公众号 id:qbitai)授权转载,转载请联系出处 本文约3000字,建议阅读10+分钟 24小时为你提供手语解说. 什么样的手语主播能跟朱广权battle得有来有回? 话不 ...

  5. 标准情况下的最优方案与魔鬼赛道

    ➤01 一封来信 尊敬的卓老师: 您好! 我是XYZ智能车团队的成员,在今天刚刚参加了安徽省省赛,我对于比赛场地有很大的质疑,整场比赛不规范,主办方学校队伍多次(三次以上)重新开始比赛就不说了,这一次 ...

  6. Tips_方格拼图效果

    用原生的javascript实现方格拼图效果 1.新建文件夹 代码如下: 01.html 1 <!DOCTYPE html> 2 <html lang="en"& ...

  7. 人类基因组最后一块拼图完成!Science罕见6篇连发

    梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 人类基因组测序迎来新的里程碑! 首个完整无间隙人类基因组测序,由近百位科学家合作完成,填补上最后8%的空缺. 最新一期Science罕见地以特刊形 ...

  8. 拼图游戏 复制粘贴一个叫lemene的人的,这个人是c++博客的用户,我不是,怕以后找不到这篇文章,所以复制粘贴了。文中最后给出了原文链接连接...

    本文讨论如何判断拼图游戏中图形是否可以还原. 例1:下图是一个3X3的数字拼图. 1 3 2 6 5 4 7 8 图1 它要还原成图2 1 2 3 4 5 6 7 8 图2 将问题一般化,在M*N的方 ...

  9. 拼图游戏_我最喜欢的Java拼图2 + 1 = 4

    拼图游戏 这是我当前最喜欢的Java难题. 您如何获取代码来执行此操作? Integer b = 2; Integer c = 1;System.out.println("b+c : &qu ...

最新文章

  1. AndroidRichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)...
  2. android触摸外部关闭键盘,如何隐藏Android上的软键盘,点击外部EditText?
  3. mysql starting server 失败_安装MySQL过程中(最后starting server)报错解决方案
  4. WCF枚举属性 出错 wcf 枚举的一个陷阱
  5. 面试题 10.02. 变位词组
  6. 金山云发布全新Serverless产品 云原生基础设施再升级
  7. 在python中要表示一个空的代码块可以使用空语句什么_Python条件判断语句if
  8. 管理感悟:你的能力是有限的
  9. python实现邻接矩阵转邻接表
  10. 软件开发外包平台有哪些?收集的一些备用
  11. 2016年9月学习总结与反思
  12. [算法]LeetCode每日一题--9回文数(Java)
  13. Bandicam班迪录屏 高清录制视频软件
  14. 质数 AcWing 868. 筛质数 线性筛
  15. python表白爱心_python 心形动画表白(turtle)
  16. 华为手机如何与台式计算机连接不上,华为手机连接不上电脑怎么处理
  17. 数字认证是做什么的?数字认证有什么用?
  18. c++如何求任意多边形的面积
  19. uva10410(dbl)
  20. FilterConfig的用法是什么?

热门文章

  1. 标准论文参考文献添加方法——Zotero入门使用教程
  2. 动图制作哪个网站最好用?
  3. grpc 报错 rpc: the client connection is closing
  4. 解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)
  5. SPI接口与原理配置
  6. 4.1 向量空间与子空间
  7. 震惊!某知名网站sojson.com站长竟为别墅抛弃百万群友,至群友无家可归
  8. Python 文件 IO
  9. 3D人脸识别——点云转化为可训练的图片
  10. 语音合成:Azure+Python+SSML实现