在Visual Studio 2010中使用DSL Tool特定领域开发 开篇
本来是很想写关于VS的DSL的文章的,有点小忙,就一直在拖延,忽然有看见了“《在Visual Studio 2012中使用VMSDK开发特定领域语言》”,又有写的欲望了,这段时间没事,而且处于寂寞无聊的状态,就准备写一个关于自己应用DSL(Domain-Specific Languages)经验的小系列,不讲详细的系统的技术,只讲具体应用中用到的。而且作为编程的新手,就分享一下仅有的一点点经验,不知道能不能坚持下来。
我用过的是VS2010,那这篇文章就针对VS2010的DSL来写,我参考过的文献资料有:
1.Visualization and Modeling SDK - Domain-Specific Languages——微软的MSDN里面的,重要;
2.LearnVSXNow------如何开发VSX系列——明年我18的,重要,在MSDN里面英文不理解的,可以参考这个;
3.T4 Code Generation——代码生成用到的,还有代码生成器;
具体的技术细节基本在上面的这些文档里面可以找得到,就不再这里翻译或者是讲述了。做特定领域开发,用的比较多的有Java的MetaEdit+,现在在微软发布的VMSDK上用DSL Tool的也逐渐多了起来。在VS2010里面做这个开发需要VS2010 SDK,需要建模的VMSDK,这些都可以到微软官网去下载,可能还需要MPF的源文件,这个需要到MSDN里面看说明,下载以及配置方法。
在VS2010中开发建模,用到实际应用中,而不仅仅是停留在微软的说明文档的层级上,首先需要确定一下问题:
一、开发的工具是Integrated Model还是Isolated Model?
根据应用场景,还有软件需求,所开发的工具是作为插件放在VS210之中,还是用VS2010的shell做一个独立的软件,这两个工作量有很大的不同,也和是否要生成代码,以及生成什么语言的代码有关系。一般是希望做为一个独立的软件也就是Isolated Mode模式开发的,目前,据我自己经过一个月的考证,如果进行这样的开发,比较明晰的是如果生成的代码是.Net工程的用哪一种模式,都可以,如果生成C++的工程的,只能用插件模式,也就是Integrated Model。当然,如果不想生成代码,或者说是只用建模的,这个关系到不大。这个会单独写一篇位置来说。
二、VS2010的DSL开发的技术应用实践
这个也会作为一个一篇来具体的写,具体会设计到VS DSL或者说是VMSDK中定义的属性定义要注意的事项,属性定义类型的具体实现,这个好像涉及的比较细,但是比较少,这个也是我在开发的时候碰到的比较刺手的问题,主要还是概念的理解。
三、生成C++代码
这里只讲T4模板的,现在网络上的文档多事生成.Net源代码的文章,这里要说一个比较简单的生成C++代码的方法,包括多个代码文件生成等具体的应用的实践。
做VMSDK开发到真正的应用不仅涉及了对DSL的定义,而且也涉及了VSIX的知识,还是比较琐碎的,特别是对有些概念的理解。
今天终于搭一个框架,很早以前就想写,但是不知道怎么写出来,这三点应该是我很想写的了,等有空了,会把这三条详细的说一下的。
祝大家七夕快乐!
在Visual Studio 2010中使用DSL Tool特定领域开发 开篇的更多相关文章
- Visual Studio 2010 中的 Web 开发
概述 Microsoft Visual Studio 2010 为 ASP.NET Web 应用程序的开发提供非常多新的功能.这些新功能旨在帮助开发者高速方便地创建和部署质量高且功能全的 Web 应用 ...
- Visual Studio 2010中创建ASP.Net Web Service
转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...
- SharePoint 2010中使用Visual Studio 2010进行方便快速的Web Part开发
转:http://www.cnblogs.com/fatwhale/archive/2010/02/24/1672633.html 在Visual Studio 2010中, 已经集成了用于Shar ...
- 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序
原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...
- (转)在 Visual Studio 2010 中创建 ASP.Net Web Service
很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进W ...
- 在 Visual Studio 2010 中创建 SharePoint 2010 事件接收器
Microsoft Visual Studio 2010 提供了一个可用于生成事件接收器的项目类型,事件接收器会在 Microsoft SharePoint 2010 网站上选择事件之前或之后执行操作 ...
- Visual Studio 2010中的js注释
Visual Studio 2010中的js注释已经很强大了,但怎么才能和调用c#的方法一样容易呢?怎样才能让每个参数都有注释说明呢?底下就是想要的答案. 先上图,如图所示: 其中红色的办法为注释效果 ...
- 在 Visual Studio 2010 中创建 ASP.Net Web Service
第一步:创建一个“ASP.Net Empty Web Application”项目 第二步:在项目中添加“Web Service”新项目 第一步之后,Visual Studio 2010会创建一个仅含 ...
- [转]Visual Studio 2010 中安装Qt 5.1
截至目前(2013年7月12日)为止,Qt 的最高版本为Qt5.1,在该版本中已经将Qt Creator与Qt Lib集成在一个文件夹中,因此安装的时候较为方便,只需安装一个即可.因为Qt具有超强的可 ...
随机推荐
- discuz 注册用户用到的几个表
通过开启记录:mysql记录日志,筛出如下信息: INSERT INTO `userclub`.pre_ucenter_members SET secques='', username='pthlp1 ...
- 代码动态创建checkbox
根据数据库的内容动态创建Checkbox控件并显示在Panel上 dataset ds=new dataset(); CheckBox[ ] cb=new CheckBox[ds.tables[0]. ...
- 代码分享:php判断数组是否有序
发布:脚本学堂/PHP编程 编辑:JB02 2013-12-17 14:59:02 [大 中 小] 转自:http://www.jbxue.com/article/14723.html如何判断 ...
- php session学习笔记(实例代码)
http 无状态协议 一个服务器向客户端发送消息的时候有三条信息 一是状态二是头信息三是内容 会话控制 让一个用户访问每个页面,服务器都知道是哪个用户访问 cookie cookie是通过头信息发送 ...
- ecshop改造读写分离配置与改造
前两天配置好了mysql主从方式,今天就拿ecshop练习读写分离.以下代码仅供学习参考,不成熟的地方,还需完善. <?php $db_name = "ecshop"; $p ...
- 6个好用的Web开发工具
在过去的几年间,涌现出了很多Web开发工具,它们大多还是比较吸引人的,方便了我们的工作.我们可以学习一下这些新东西,短时间就可以拓宽思路(PHP100推荐:学习10分钟,改变你的程序员生涯).这些应用 ...
- 数据可视化(三)- Seaborn简易入门
本文内容来源:https://www.dataquest.io/mission/133/creating-compelling-visualizations 本文数据来源:http://www.cdc ...
- NGUI系列教程十(Scroll View实现触摸滚动相册效果)
NGUI中提供了两种Scroll View 一种是通过手指或鼠标滑动视图时移动平面物体,另一种则是直接移动摄像机,他们各有各的好处.但是NGUI提供的Scroll View很难实现类似Android ...
- OO之观察者模式
以下为观察者模式详解: 引子: 假设有这样一个问题,有一条河经过一个山谷,山谷下有一个村庄,人们在山谷处修建了一个水库,并安排专人管理,当水库的水位过高时要通知下游居民注意水库的开闸放水,当水库的水温 ...
- 获取不变的UDID-b
iOS唯一标识的历史历程 iOS 6.0 在iOS6.0以前,是使用uniqueIdentifier来获取手机的唯一标识,后来苹果感觉这样会泄露用户隐藏,就封掉了这个方法: iOS 6.0系统新增了两 ...