面向语言,面向方面,面向业务(草稿)
刚看到 http://silverlight.net/forums/t/10586.aspx有silverlight2.0beta1 runtime,sdk下载链接3-5日发布,有控件了。
面向语言,面向方面,面向业务(草稿)
起因MS开发平台下假如你要开发这些东西,桌面程序(winform),web开发(webapp),2d图形,3d
你不得不分别在每个平台上重写
winform算很成熟(免)
web方面:
1.aspx控件库没有客户端表现库,aspx ajax只是异步执行服务端请求,使用户感觉仿佛本地响应。
2.aspx控件和winform控件完全2套库,完全不兼容,可以利用的只有UIEditor,那仿佛是说设计时还不错,可惜aspx竟不解析原生HTML(纯客户端的),也就意味着要么你全用aspx控件,要么你自己整1套,要想兼顾,没门。
3.MS的新技术silverlight,号称falsh杀手,目前控件库=0,你不得不重头写自己的库,另外要知道silverlight用的是精简的framework,不是.net2,也不是3.5,生成的时候记住不要引用mscorelib.dll。那意味着silverlight下的东西,我不打算其他地方用。
WPF:MS .net3的重磅产品。你试图从你winform的积累中获益?重来吧。
WPFBrowser:你得承认你一无所有。
2D,3d专业性很强的领域,没有标准是顺理成章的事,不过,不能有些标准吗?
目的统一模型的UI,繁杂的业务实体映射,一切交给领域专家语言去解决,我要做的事只是:设计好语言语法书,业务规则库,然后让也许不懂程序的业务经理编写他的业务规则脚本(让技术人员写更现实吧)。
编程技术词汇中的面向领域模型,再联想到vs2008中DSL(领域特定语言)工具增强。vs2008 sdk+vs2008 shell可以开发出vs2008一样的界面,也推出了独立发布包(就是有点大,中文版570M),codeplex.com上也ironPython语言源码,IronPythonStudio(写IronPython的IDE就象你用IDE写c#,基于vs2008 shell),好像一切都具备了,可是又总感觉哪不对。捆绑得太厉害,IDE相关库,SDK库,感觉象570M的发布包一样沉重。重点也没关系,可其他开源资源怎么办,多打几个结捆进去。
总言之,MS的宗旨是傻瓜也可以编程。可想做个聪明人也不容易。
名词DLR(动态语言)和静态语言的动态特性。
概述面向方面,面向业务,面向语言
方面是一个领域,如数据库领域,面向业务,领域的业务实体。
一门语言专注于一个领域,提供完善的服务。
业务数据,UI彻底分离
灵活性来自于规则引擎使用的脚本的强大表现力,而不用担心效率。大不了编译运行。
优势1.一次开发,受益终身。专注于领域,松耦。
2.业务变更暴露在硬编码外。
3.业务设计模拟,调试完全可行。因为业务实体就是分离出来的独立的实体对象
4.跨平台,重用。
5.通用的IDE编辑。语法高亮,自动完成,通过配置即可完成。
6.
示例web开发,HTML标记语言嘛,是语言就是近亲。html,htmx(我起的名字,自定义后的html,同aspx)aspx通过HTMLang分析文件,解析成UI对象,然后要想编辑就编辑,编辑完HtmlLangCodeGenerator存回去。
客户端服务器端可以都使用js(silverlight,aspxfuture都支持托管managed jscript(jsx文件))
数据库应用。IDBLang解析数据库表,关系,存储过程,要高效就编译成dll,不编译也无所谓,反正数据实体出来了,CURD搞定数据库。懒得搞什么ORM映射,又是折腾XML,又是折腾attribute,代码自动生成麻烦。话说回来,一门语言肯定也要实现代码生成,算是ORM的高级应用。业务修改不再是改源码,而是修改业务规则脚本。
不过代价是自己得折腾个数据库描述语法,附带支持SQL查询语言。
游戏。应用比较多。
业务定义,规则定义
用XML写,所以用XML写,我想很大原因是XML更通用,各开发平台都有XML现成解析器。可是太多冗余数据可读性极差,迫切需要更清晰的表达方式。我比较青睐json格式。或其他能直接表述对象的脚本式语法。
流程控制controller
Model-View-Controller,ms开发框架是基于部件的,MS下的MVC怎么看怎么别扭。还是用我们的脚本吧,一个action来了,丢个controller对象过去。
工作流workflow
如果要在可视化环境模拟运行,并分析,动态调整。没有特定语言怕不行。
控制台
控制台使你拥有动态调整能力。在交互复杂的环境也应裕自如。
实施有很多现成的compiler生成工具。antlr,gold parser,coco/r,Irony,完整例子有微软家族的IronPython,IronRuby,f#静态语言boo,据说效率略低c#
问题语言的继承。让理论家去搞定他。一般业务也不需要一门新语言,只需要一些不同的库。
通用UI模型
对象基类属性方法事件
辅助resize,move,drag
Ruler
Grid
Guidline
容器Page
Panel
FormPanel
TabPanel
MenuPanel
静态
不交互Text
Image
Shape
Media
输入TextBoxelementtextclick
TextAreachange
CheckBox/radio
列表Repeater
ListBox/combopanel
ListView/grid
TreeView/menu
命令link,button,menuitemtarget=
UI控制
样式CssStyle子集pen,brush
border,color,
效果Effectstart,end
animate1,
行为Event
Trigger/rule
应用IDE
Menu说明
ToolWindow
ProjExplorer项目管理
Toolbox控件
DBExplorer数据库对象编辑浏览
TypeExplorer类型定义
EntityExplorer实体浏览编辑
PropertyGrid属性页,该支持ILIST
Console运行时对对象操作
Outputdebug
DocumentView语言自动完成格式化
文件格式XML编译
HTML
Htmx/aspx自定义html,只保留少数元素
Json
SVG,VIZ,VML图形XML格式
脚本语言JSLang
Lua游戏脚本11
LSLsecondlife脚本
Python,Ruby
静态boo
AddinManager
数据
Array
IList
IDict
ITree
IDataReader
浙公网安备 33010602011771号