发布一个库(包含源码),全部代码14492行
Leppy 介绍
1. 什么是Leppy。
Leppy是基于XML语言的,用来定义控件布局的标记性语言。与HTML非常类似,你可以使用Leppy定义应用程序的界面,甚至可以用Leppy来构造一些简单的程序逻辑,所以无须使用任何编程语言也可以利用Leppy来创建程序,但Leppy在程序逻辑方面只提供了简单的支持,所以如果试图全部使用 Leppy来构造程序,那样只能构造简单的程序。通常Leppy是和编程语言一起使用,强制实现代码分离,增强代码的可维护性。在处理Leppy脚本的时候,目前的版本的Leppy是半解释半编译型的。
2. 为什么叫Leppy
Leppy的设计初衷就是跨平台,与目标GUI框架无关的,所以在设计的时候考虑了一些通用的性质,这个也导致他默认的脚本语法比较繁琐、罗嗦。正因为他是目标GUI框架无关的,不像Xaml绑上Avalon、XRC绑上wx、XUL绑上Mozilla,他们都和框架天生一对的,而Leppy没有,像孤儿一样,所以叫Leppy。
3. Leppy支持哪些特性
Leppy内键支持表达式计算、XPath对自己查询、对象的嵌套属性访问、对象的嵌套方法调用、自动类型转换、强制类型转换、文档资源独立、基于 XPath的循环、条件判断、多种外部资源访问协议(assembly://、http://、file://、local://、self://也可以自己定义访问协议)、异常拦截、变量访问、复数支持、35个已定义好的物理常量、IO操作、大量数学函数(如sinh、mod,部分支持复数直接参与运算)、自定义函数、自定义指令、XML脚本节点回调、事件拦截等等。
4. Leppy的未来
由于Leppy的开放式架构,对于未来兼容Xaml、XRC、XUL等都不是难事(只需要写一个 Processor并绑定到IUIBuilder即可),目前由于个人原因(要开学了,家里停宽带,大一军训期间家里人不让我带电脑去学校,所以不得不将未完成的Leppy提前放出),暂时不能把XRC和对WinForm的直接支持做完,只有等到军训结束之后才能。
5. Leppy还没做完的地方
Leppy调试器、Leppy中隐式创建对象(例如某个Form中属性定义: Icon="Icon.ico" 将自动创建Icon对像并将“Icon.ico”作为第一个参数传入构造器,其实已经做完了,但没时间加进去),与API函数的回调(等军训完了,改改 Instruction/event.cs文件就可以实现),宏替换(也是做完了,没时间加进去)
6. Leppy现在的Bug
双曲函数计算复数好像有点问题,等开学了看高数中双曲函数的一些定义后在修改
7. Leppy还没做的地方
跨平台与目标框架无关的RAD设计器(这方面有经验)、与VS集成的RAD设计,XAML兼容支持,XRC兼容支持,WinForm的直接支持。直接从 XML源文件生成C#/VB.NET/Delphi源文件,或者直接生成EXE、DLL。一个好的Leppy脚本使用教程
8. Leppy目前的规模
只是Leppy库的规模,不包含Debugger和IDE生成的代码:161个类、委托、接口等定义,40个源文件,11818行代码,独立的注释行数目有4260行(某些注释和代码写在一行中的没有算进去),源代码(只算.CS文件)大小为351 KB 。
9. 如何联系作者
可以发电子邮件到 lexchou@gmail.com 。或者等开学后到华中科技大学武昌分校专科计算机与应用专业找周竞,由于是新生,第一个月可能在军训
备注:Leppy没有使用任何第三方控件或库,全部是自己写的。这个也是我从Delphi转入.net的第一个作品。估计等Leppy做完了,我也会. net了 :P 。Leppy公开代码是让初学者和我一起共同学习研究.net技术,遵循LGPL协议,整个库或者其中一个或部分文件、类、函数、接口、结构等请不要用于商业用途,如果有必要用于商业用途,请与我联系。
源代码在线浏览: http://www.yixel.com/leppy (代码浏览系统界面模仿SourceForge.net用的,不过实现代码是自己写的,需要这个源码的可以从我索取)
源码下载: http://www.yixel.com/leppy/leppy.rar