面向语言,面向方面,面向业务(草稿)
起因 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
总结以上是内存溢出为你收集整理的面向语言,面向方面,面向业务(草稿)全部内容,希望文章能够帮你解决面向语言,面向方面,面向业务(草稿)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)