面向语言,面向方面,面向业务(草稿)

刚看到 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

posted on 2010-04-14 10:05  zmodem  阅读(703)  评论(3)    收藏  举报

导航