代码改变世界

Jumony Milestone 1 发布

2010-08-29 01:56  Ivony...  阅读(3468)  评论(19编辑  收藏  举报

Jumony-Animation3Jumony项目

Jumony(一)从扩展方法到流畅的程序体验

Jumony(二)jQuery的设计艺术和选择器

Jumony(三)第一个公开预览版,在.NET里玩转jQuery选择器!

Jumony(外一)HTML和数据,同时发布第一个CTP源代码。

 

其实并没有发布所谓Milestone的计划,但是因为我即将离开北京到深圳生活,Jumony的开发必然会要停滞一段相对较长的时间。所以赶在这之前把一些已经构思清楚的功能全面实现,对已知的小Bug进行修复,然后发布了这个版本。在这个版本中大家可以测试我之前发布的那个小范例的代码了。

简单的介绍下这个版本中都包含了哪些内容吧。

  • 现在可以直接修改HTML文档结构了

    新增了InnerHtml、InnerText和Insert、Append、Replace等方法来修改HTML文档结构。同时IHtmlDocument接口新增了GetNodeFactory获取一个用来创建元素和节点的工厂。

  • 可以在两个HTML文档甚至是两套DOM之间转移节点。

    利用MakeCopy方法可以创建任意节点的本地副本(即利用特定Document创建的副本)。简单的说就是Html Agility Pack分析的文档里面的元素和节点可以复制到Jumony Parser分析的文档中去。

  • Jumony自己的HTML解释器Jumony Parser

    作为Html Agiltiy Pack的替代品,Jumony Parser虽然在功能和性能上还不及Html Agility Pack,但也有自己独特的优势,那就是线程安全。

    当然Jumony Parser在可选标签的支持上优于Html Agility Pack。

  • Jumony Binding

    数据绑定部分现在已经被单独抽出成为一个独立的项目,功能也更强大。绑定样式表加入了环境变量的支持。BindingContext的功能被弱化以避免过于复杂。

    由于Jumony Binding现在是一个独立的插件。如果要实现自动绑定样式表绑定,需要注册Binding的HttpModule。插件是通过ASP.NET的HttpModule配置机制来在Jumony上附加功能,而不是通过Jumony的配置文件,这样降低了学习成本,避免另外发明配置文件和语法。

    Bind和InnerHtml等方法有安全绑定检查。
  • Html Agility Pack Adapter仍在更新

    HtmlAgilityPackAdapter仍然是Jumony上唯一的全功能Parser(Jumony Parser现在还不支持ParseFragment的功能)。所以现在Jumony可以用两套HTML Parser和DOM。大家可以试试看是不是达到了设计目标中的隔离不同HTML Parser和DOM的区别。

  • 处理aspx文件

    现在Jumony的HtmlRewriteModule默认会将aspx文件也建立映射关系了。只要有一个index.aspx.ashx文件,就会自动捕获index.aspx文件的输出,并交由您来处理,有一些aspx里面不好处理的问题会变得很简单,例如彻底删除所有的ViewState。

另外Jumony仍在不断的增加新的项目和功能。尚在开发,没有达到发布标准的项目不包含在这一次的Release里面,他们包括:

  • Jumony jQuery

    提供熟悉的attr、html方法,除了事件和AJAX之外的所有jQueryAPI。使用方法和jQuery完全一样,例如:new jQuery( "#username", Document ).val();这个其实并不难,但需要大量的编码工作。

  • Jumony Styles

    提供这样的方便语法来设置CSS样式:element.Style().Border( BorderStyle.Solid, 1 );

    使用其他长度单位也很简单,如:element.Style().Padding( 1m.cm() );

  • Jumony Forms

    提供HTML表单抽象表达,例如多选框和单选按钮组以及下拉列表会被抽象为一种东西,更简单的为表单控件赋值,获取值,并实现PostBack和输入验证。

  • Jumony Dynamic

    提供动态语言的接口,使得我们可以直接element.value = "123";这样来直接为属性赋值,而不需要用element.Attribute( "value" ).Value( "123" );这样罗嗦的语法。

请关注和支持Jumony开源项目,谢谢。。。