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开源项目,谢谢。。。