Jumony Milestone 1 发布
2010-08-29 01:56 Ivony... 阅读(3474) 评论(19) 编辑 收藏 举报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开源项目,谢谢。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!