CN102449598A - 程序包设计和生成 - Google Patents

程序包设计和生成 Download PDF

Info

Publication number
CN102449598A
CN102449598A CN2010800238522A CN201080023852A CN102449598A CN 102449598 A CN102449598 A CN 102449598A CN 2010800238522 A CN2010800238522 A CN 2010800238522A CN 201080023852 A CN201080023852 A CN 201080023852A CN 102449598 A CN102449598 A CN 102449598A
Authority
CN
China
Prior art keywords
characteristic
file
routine package
object model
routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800238522A
Other languages
English (en)
Other versions
CN102449598B (zh
Inventor
P·M·霍夫
S·孙
D·A·莫利纳
马莉
L·I·比罗夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102449598A publication Critical patent/CN102449598A/zh
Application granted granted Critical
Publication of CN102449598B publication Critical patent/CN102449598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements

Abstract

可以使用提供用于可视地排列和配置产品的元素的用户界面的一个或多个设计器,来设计供部署在服务器集合上的产品的解决方案包。程序包对象模型包括表示如由产品清单XML模式所定义的程序包或特征清单的受管理的对象模型。可以使用对象模型来创建对其他项目项和特征定义的引用。可以使用扩展的对象模型来生成等效的程序包或特征清单XML文件。

Description

程序包设计和生成
背景技术
当将应用程序部署到许多位置时或当一些已部署的文件编码文件之间的关系时,通常不建议将文件从一个位置简单地复制到另一个位置。相反,创建和部署程序包(package)常常会更好。程序包是用于创建应用程序的一组代码文件及其他资源。创建供部署的程序包常常是涉及各种工具并涉及劳动密集的、易于出错的任务的复杂任务,如手动编辑复杂的文档,以及维护要包括在程序包中的长的文件列表。例如,应用程序和服务器平台常常具有使手动创建程序包变得困难的针对部署和安装新组件的非常具体而复杂的标准。
发明内容
提供了用于可视地排列和配置软件程序包和用于表示软件程序包的对象模型的用户界面,以便设计和生成软件程序包,来供部署在服务器计算机集合上。对象模型是使用域专用语言(DSL)来生成的。对象模型被展示给受管理的可扩展性平台,并允许项目扩展操纵用户界面外部的程序包。可以使用程序包设计和生成工具来自定义程序包,确定和收集程序包所需的所有文件,生成指示每一个文件将驻留在web服务器中的什么位置的清单,并以预期的格式将所有这些组件捆扎到程序包解决方案中以供部署。
提供本概述以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
在附图中:
图1a是根据此处所公开的主题的各方面的用于程序包设计和生成的系统的示例的框图;
图1b是根据此处所公开的主题的各方面的用于图1a的程序包的结构的示例的框图;
图2a是根据此处所公开的主题的各方面的用于程序包设计和生成的方法的示例的流程图;
图2b是根据此处所公开的主题的各方面的示出了如在图1a、1b和2a中引用的将数据解序列化为对象模型以及将对象模型序列化为数据的过程中的数据流的示例的框图;
图3是示出了其中可以实现此处所公开的主题的各方面的计算环境的示例的框图;以及
图4是根据此处所公开的主题的各方面的集成开发环境的示例的框图。
详细描述
概览
微软SharePoint是包括服务器开发平台的产品和软件元素的集合,其中包括基于浏览器的协作功能、进程管理模块,搜索模块以及内容管理平台。SharePoint是可以被用来创建和主存访问共享工作空间、信息存储和文档的一个或多个网站的web服务器应用程序。SharePoint也可以被用来主存诸如web工作流、维基(wiki)、博客等等之类的定义的应用程序。SharePoint是构建于web服务器上面的应用程序,该应用程序促进在许多服务器上创建单个站点,这些站点包含了可通过浏览器中的web界面访问的文档库、列表和数据等等。
当前,为创建供部署到web服务器集合的SharePoint解决方案包(solution package),用户必须手动执行许多步骤,这些步骤是劳动密集的并易于出错。首先,用户在他的集成开发环境中创建新项目。然后,他添加网页、web部件、模板文件、代码等等。这些文件是以匹配它们的在软件程序包内的最终位置的特定文件夹结构来添加的。接下来,他创建向SharePoint指示应该如何部署软件程序包内的文件的额外的清单文件。然后,他创建向压缩工具指示哪些文件要包括在软件程序包中的指令文件。
根据此处所公开的主题的各方面,提供程序包设计和生成工具,该工具使用户能够自定义软件程序包的元素的外表和布局。例如,可以使用程序包设计和生成工具来将自定义工作流包括在程序包的特定特征中,确定和收集工作流所需的所有文件,生成指示每一个文件将驻留在web服务器中的什么位置的清单,并以预期的格式将所有这些组件捆扎到程序包解决方案中来供部署。可以理解,尽管是在SharePoint的特定环境内描述此处所公开的主题的,但是,本主题或其各方面可以应用于被创建供部署在服务器集合上的任何软件。
程序包设计和生成
图1a示出了根据此处所公开的主题的各方面的用于软件程序包设计和生成的系统100的示例。系统100的全部或某些部分可以驻留在诸如下面参考图3所描述的计算机之类的一台或多台计算机上。系统100的全部或某些部分可以驻留在诸如下面参考图4所描述的计算机之类的一台或多台软件开发计算机(例如,计算机102)上。系统100或其一些部分可以包括诸如下面参考图4所描述的和所示出的那些集成开发环境(例如,IDE 104)的一部分。可另选地,系统100或其一些部分可以作为独立系统或作为插件或附加件来提供。
系统100可包括下列各项中的一项或多项:处理器(如处理器142)、存储器144,以及软件程序包设计器和生成器106。本领域已知的其他组件也可以被包括,但是,此处未示出。可以理解,软件程序包设计器和生成器106可以被加载到存储器144中,以导致诸如处理器142之类的一个或多个处理器执行归属于软件程序包设计器和生成器106的动作。根据此处所公开的主题的各方面的软件程序包设计器和生成器106可以接收项目系统118输入,并产生供部署的解决方案包120。软件程序包设计器和生成器106可以接收程序包定义文件,并响应于用户输入来产生自定义的程序包定义。
软件程序包设计器和生成器106(也可以被称为软件程序包设计和生成工具或软件程序包设计和生成模块)可包括下列各项中的一项或多项:图1a中由验证器108表示的验证器、图1a中的由程序包设计器110表示的程序包设计器、图1a中由特征设计器112表示的特征设计器、图1a中由可视化器114表示的可视化器、图1a在由程序包生成器116表示的程序包生成器,以及图1a中由对象模型122表示的对象模型。在操作中,软件程序包设计器和生成器106可以接收项目系统118,并产生解决方案包120。还可以生成清单124。清单包括程序包清单(其列出程序包中的特征等等),特征清单(其列出特征中的项目项(project item)),以及元素清单(其列出构成项目项的单个文件)。用户的自定义清单可以与程序包所提供的清单合并,以产生被包括在解决方案包120中的合并的清单。解决方案包120可以表示包括被部署到服务器计算机集合的软件的任何软件,诸如协作服务器应用程序,诸如但不仅限于,微软的SharePoint。
验证器108检查将妨碍正确或起作用的解决方案包120的创建的错误。根据此处所公开的主题的某些方面,在封装过程的其余部分开始之前,执行一系列规则。验证规则集合中的每一个规则或规则组合可以检查程序包中的特定组件。例如,一个规则可以检查在同一个特征中没有重复的项目项。规则的另一示例可以检查项目项和该项目项所在的特征之间的兼容性。如果规则被违犯,则可以在显示器上可视地或以打印的形式向用户报告适当的错误或警告。可以由用户接收错误或警告,然后,用户有使用设计器对程序包组件进行更改的机会。规则可以是可扩展的。规则可以针对单个特征或作为整体的程序包。验证器108可以使用受管理的可扩展性框架(MEF)来定位和实例化与产品一起运送的“核心”规则集,以及由第三方通过公共应用程序编程接口(API)所定义的附加规则。
程序包设计和生成工具106可包括用于排列和配置程序包和特征的设计器。程序包设计器可以被用来基于从用户输入接收到的指令,配置程序包内的特征,将特征的组合合并到程序包中,对程序包设置属性,可视化项目中的已定义的特征,将特征添加到程序包中,从程序包中移除特征,对程序包内的特征进行再分类,修改程序包的未来安装的各方面,或修改程序包的卸载等等。基于用户输入的特征设计器可以配置特征内的项目项,将项目项的组合合并到特征中,对特征设置属性,可视化项目中的已定义的项目项,将项目项添加到特征中,从特征中移除项目项。
根据此处所公开的主题的某些方面,设计器是微软Visual Studio设计器,它们通过拖放操作,点击和停放或通过其他已知的方法来排列和配置SharePoint程序包和特征。用户可以通过在对象模型中添加或移除已定义的元素来通过设计器自定义对象模型。设计器可以被构建于域专用语言设计器上。域专用语言或DSL是专用于特定问题领域、特定问题表示技术和/或特定解决方案技术的编程语言或规范语言。设计器可以,但是不一定,使用与DSL相关联的设计表面。相反,这些设计器可以基于不同的UI技术(诸如但不仅限于,Windows呈现基础(WPF))将UI(用户界面)元素与DSL UI框架集成,并可以嵌入基于WPF的UI元素。当设计器被打开时向用户呈现的UI元素可以是可扩展的。例如,可以使用受管理的可扩展性框架(MEF)来从系统中的所有视图的集合仅标识和实例化与程序包对象模型内的特定组件(例如,程序包或特征)相关联的视图集合。
程序包设计器110接收所提供的用户输入126,以排列程序包内的特征,将特征的组合合并到程序包中,对程序包设置属性,查看项目中的已定义的特征,将特征添加到程序包中或从程序包中移除特征,对程序包内的特征进行再分类,修改处理程序包的安装或卸载的方式(例如,用户可以改变当将程序包安装在服务器上时激活程序包中所包括的特征的顺序,等等)等等,以自定义程序包。特征设计器112接收所提供的用户输入126,以排列特征内的项目项,设置特征的属性,查看项目中的已定义的项目项,将项目项添加到特征中或从特征中移除项目项,修改处理特征的安装或卸载的方式等等。根据此处所公开的主题的各方面,当通过设计器作出更改时,对对象模型122作出更改。当对对象模型的更改被保存时,对对象模型的更改被转变回序列化格式(例如,诸如但不仅限于XML文件)。
软件程序包设计器和生成器106可包括在视图中显示程序包的结构的可视化器114。例如,根据此处所公开的主题的某些方面,可视化器114是以树视图显示SharePoint程序包的结构的Visual Studio工具窗口。用户可以选择工具窗口内的项,并在Visual Studio属性窗口中查看和/或更改其设置。用户还可以使用拖放或点击及拖动操作或者通过任何已知的技术来将项从SharePoint程序包中的一个位置移动到另一位置。
软件程序包设计器和生成器106可包括生成软件程序包120的程序包生成器116。例如,诸如程序包生成器116之类的程序包生成器可以扩展项目构建过程,以便允许用户生成在上文所描述的设计器中设计的SharePoint程序包。自定义MSBuild任务和目标可以自动提取SharePoint程序包和特征定义,使用这些定义来生成适当的程序包和特征清单XML文件(例如,清单124),并将它们与相关联的项目项文件一起捆扎为解决方案包被部署到其的服务器集合上的SharePoint部署软件所预期的格式(诸如但不仅限于具有.wsp扩展名的压缩格式)。程序包生成可以通过Visual Studio内的菜单项或在命令行上执行。下面参考图2a比较全面地描述了封装。
诸如对象模型122之类的对象模型可以表示项目的一个或多个程序包。对象模型122可以表示受管理的对象模型,该受管理的对象模型表示一个或多个SharePoint程序包,或特征。对象模型可以在诸如SharePoint清单XML模式之类的清单模式之后被建模。对象模型可以是使用域专用语言(DSL)框架来定义和生成的。可以通过上文所描述的设计器添加和/或移除对象模型的元素的实例。如下面参考图1b比较全面地描述的,可以引用诸如定义和项目项之类的其他组件,包括,但不仅限于,当前项目内以及IDE中的其他项目内的其他SharePoint特征定义和项目项。例如,可以引用当前Visual Studio项目内的组件以及Visual Studio解决方案中的其他项目中的组件。可以使用如此定义的对象模型,通过将对象模型中的类型和属性映射到清单XML模式中的元素和属性,来生成等效的程序包组件(例如,等效的SharePoint程序包或特征清单XML文件)。另外,还可以从现有的程序包或特征清单文件来创建对象模型的实例。在下文中参考图2b更详细地描述了文件和对象模型之间的转换。
图1b示出了项目10和项目40的结构的高层视图。项目10可包括诸如程序包定义12等等之类的一个或多个程序包定义,诸如特征定义14等等之类的一个或多个特征定义,以及诸如项目项定义16等等之类的一个或多个项目项定义。项目10还可以包括由程序包定义12等等所定义的诸如程序包18等等之类的一个或多个程序包,由特征定义14等等所定义的诸如特征20等等之类的一个或多个特征,由项目项定义16等等所定义的诸如项目项22等等之类的一个或多个项目项。程序包18等等可包括诸如特征引用24等等之类的对特征的一个或多个引用。特征引用24等等可以指向或引用特征20等等。类似地,特征20可包括诸如项目项引用26等等之类的对项目项的一个或多个引用。项目项引用26等等可以指向或引用项目项22等等。项目项22等等可包括诸如项文件引用28等等之类的对文件的一个或多个引用。项文件引用28等等可以指向或引用诸如项文件30之类的文件。
类似地,项目40可包括诸如程序包定义42等等之类的一个或多个程序包定义,诸如特征定义44等等之类的一个或多个特征定义,以及诸如项目项定义46等等之类的一个或多个项目项定义。项目40还可以包括由程序包定义42等等所定义的诸如程序包48等等之类的一个或多个程序包,由特征定义44等等所定义的诸如特征50等等之类的一个或多个特征,由项目项定义46等等所定义的诸如项目项52等等之类的一个或多个项目项。程序包48等等可包括诸如特征引用54等等之类的对特征的一个或多个引用。特征引用54等等可以指向或引用特征50等等。类似地,特征50可包括诸如项目项引用56等等之类的对项目项的一个或多个引用。项目项引用56等等可以指向或引用项目项52等等。项目项52等等可包括诸如项文件引用58等等之类的对文件的一个或多个引用。项文件引用58等等可以指向或引用诸如项文件60之类的文件。
如上文所描述的,项目可包括一个或多个项目项。诸如项目项22之类的项目项可以是在应用程序的开发过程中所产生的许多种有形的副产品中的一种。项目项可以是一组组件(扩展)中的一个,其中一些可以与产品(例如,web部件、列表定义、内容类型等等)一起运送,并可以由第三方添加。在项目项中引用的诸如项目项文件60之类的文件可以是任何适当的文件,包括,但不仅限于元素清单、模式、位图图像、文档等等。
项目10中的程序包中的特征引用可以引用项目40中的特征(如图1b中的线62所示),反之亦然。项目10中引用的项目项可以引用其父亲(例如,项目10)内的文件。诸如项目10或项目40之类的项目可以是被创建供部署在服务器集合上的任何软件。更具体而言,项目可以是如上文所描述的协作服务器应用程序,诸如,但不仅限于SharePoint应用程序。程序包定义是指可以驻留在当前项目中或可以在解决方案中的另一项目中的一个或多个特征。特征类似地具有对被包括在解决方案中要么当前项目中的要么解决方案中的另一项目中的一个或多个项目项的引用。诸如项目项22等等之类的项目项可包括许多文件,每一个文件都必须去往服务器集合中的一个服务器上的特定位置。
图2a是根据此处所公开的主题的各方面的用于程序包设计和生成的方法200的示例。根据此处所公开的主题的某些方面,向方法200的输入是使用项目系统创建的项目。项目可以是软件项目,诸如但不仅限于,将被部署到服务器集合的项目。服务器集合可以由企业来维护以实现超出一台机器的功能以外的服务器需求。服务器场通常用于群集计算。一种常见的类型的服务器场是用于web主存的服务器场。这一类型的场有时被称为Web场。
一旦创建了软件应用程序的个体项目项,就可以调用方法200。根据此处所公开的主题的某些方面的方法200接收由包括但不仅限于VisualStudio的开发环境来使用的项目。项目可包括工作流的逻辑,已定义的列表定义等等。一旦加载了项目,就可以在202开始对软件程序包的设计的自定义。
自定义可以使用上文所描述的设计器来执行。可以理解,自定义,无论使用或不使用设计器,是可选的步骤。即,如果例如程序包设计已经处于所希望的状态,则在204创建程序包之前不需要执行自定义。创建程序包可以包括创建单个压缩和/或捆扎的程序包,如但不仅限于创建包括SharePoint产品(或多个产品)的资源的解决方案包,如Windows解决方案包(.wsp)文件。
创建程序包可包括下列各项中的一项或多项:枚举206要包括在程序包中的文件和数据、转换208、令牌替换210、布局212以及214处的将组件捆扎以及可能压缩到解决方案包中。然后,可以将已创建的解决方案包部署到一个或多个服务器上。创建程序包还可以包括枚举步骤之前的在其中如上文所描述地验证程序包的步骤。
枚举206包括检查项目中的每一个文件,以及确定要包括在解决方案包中的文件和数据。在操作中,枚举可包括遍历项目中的一个或多个程序包的程序包定义以达到特征引用,遍历程序包中的特征引用以达到特征,遍历特征中的项目项引用以达到项目项,遍历项目项中的文件引用以达到文件。可以使用已知的树遍历技术来确定要包括在解决方案包中的文件和数据的完整列表,(例如,创建要包括在程序包中的元素的清单或总清单)。一旦确定了程序包的文件和数据的列表,则转换动作208就可以开始。转换包括使用在枚举步骤中所确定的文件以及与文件相关联的数据,以与产品封装模式兼容的格式生成一个或多个清单文件,将对象模型中的类型和属性映射到清单XML模式中的元素和属性。
在210执行令牌替换。令牌替换是指由用户选择多个所提供的变量名集合中的一个集合,以便用于已转换的文件中的一个或多个文件内。被替换的变量名可以表示在封装过程开始以前用户难以或不可能知道的值。变量名可以是指频繁地变化以使得令牌替换使用户不必手动更新值的值。在令牌替换阶段期间,程序包中所包括的文件子集被处理,并可以执行将变量名替换为变量值。根据此处所公开的主题的各方面,带匹配可配置扩展名列表的扩展名的文件将被执行令牌替换(例如,*.xml、*.aspx等等)。在212,布局步骤涉及创建磁盘上的程序包的结构的预览。创建目录层次结构,并且将所列举和转换的文件置于相对于该层次结构的位置。布局步骤向用户提供了执行额外的自定义的机会。在214,使用目录层次结构以及目录层次结构中的所有文件,将程序包的元素捆绑到一个文件中。根据此处所公开的主题的某些方面,文件被压缩为CAB压缩格式。
图2b示出了包括文件和对象模型之间的序列化和解序列化的转换的示例。诸如程序包定义文件或特征定义文件之类的定义文件230可以被解序列化为对象模型234中的对象。诸如从上文参考图1a所描述的枚举步骤创建的清单文件之类的清单文件232,也可以被解序列化为对象模型234中的对象。可以由客户机组件236诸如如上文所描述的软件程序包的对象模型之类的对象模型234。客户机组件236可包括诸如上文所描述的程序包设计器和特征设计器之类的设计器,并且也可以包括构建引擎,诸如但不仅限于MSBuild。
当对象模型234中的对象通过设计器被改变时,在对象改变被保存在设计器中时,如此修改过的对象被序列化为定义文件230(例如,*.feature和*.package文件)。一旦创建了对象模型234,图2a的转换步骤就可以对对象模型234进行序列化,并对已解序列化的对象模型执行图2a的步骤208的转换。根据此处所公开的主题的各方面,转换过程可包括将定义文件解序列化(例如,使用DSL的专有XML格式)为对象模型的实例,根据先前动作中列举的封装项来转换对象模型(向特征或程序包中所包括的每一个文件的对象模型添加适当的条目),以及将对象模型序列化为清单文件(例如,使用SharePoint的XML格式)。可以对于程序包中所包括的每一个特征,以及对于程序包本身来执行这些动作。此时,可以执行上文所描述的捆扎和/或压缩动作。
合适的计算环境的示例
为了提供有关本文所公开的主题的各个方面的上下文,图3以及以下讨论旨在提供其中可以实现各实施例的合适计算环境510的简要概括描述。尽管本文所公开的主题是在诸如程序模块等由一个或多个计算机或其它计算设备执行的计算机可执行指令的通用上下文中描述的,但本领域技术人员将认识到,本文所公开的主题的各部分还能够结合其它程序模块和/或硬件和软件的组合来实现。通常,程序模块包括执行特定任务或实现特定数据类型的例程、程序、对象、物理人为产物、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。计算环境510只是合适的操作环境的一个示例,并且不旨在对此处所公开的主题的使用范围或功能提出任何限制。
参考图3,描述了以计算机512的形式存在的用于程序包设计和生成的计算设备。计算机512可包括处理单元514、系统存储器516和系统总线518。处理单元514可以是各种可用处理器中的任何一种。也可以使用双微处理器及其他多处理器体系结构作为处理单元514。系统存储器516可包括易失性存储器520和非易失性存储器522。非易失性存储器522可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)或闪存。易失性存储器520可包括可充当外部高速缓冲存储器的随机存取存储器(RAM)。系统总线518将包括系统存储器516的系统物理人为产物耦合到处理单元514。系统总线518可以是几种类型的总线结构中的任何一种,包括存储器总线、存储控制器、外围总线、外部总线或局部总线,并且可以使用各种可用总线体系结构中的任一种。
计算机512通常包括各种计算机可读介质,诸如易失性和非易失性介质、可移动和不可移动介质。计算机存储介质可以通过用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机512访问的任一其它介质。
将理解,图3描述了可充当用户与计算机资源之间的媒介的软件。该软件可以包括可存储在盘存储524上的操作系统528,该操作系统可控制并分配计算机系统512的资源。盘存储524可以是通过诸如接口526的不可移动存储器接口连接到系统总线518的硬盘驱动器。系统应用程序530利用由操作系统528通过存储在系统存储器516或者存储在盘存储524上的程序模块532和程序数据534对资源的管理。应该明白,计算机可用各种操作系统或操作系统的组合来实现。
用户可通过输入设备536向计算机512输入命令或信息。输入设备536包括但不限于定点设备,诸如鼠标、跟踪球、指示笔、触摸垫、键盘、话筒等。这些及其他输入设备通过系统总线518经由接口端口538连接到处理单元514。接口端口538可表示串行端口、并行端口、通用串行总线(USB)等。输出设备540可与输入设备使用相同类型的端口。提供输出适配器542以举例说明存在像监视器、扬声器、以及打印机的需要特定适配器的一些输出设备540。输出适配器542包括但不限于,在输出设备540和系统总线518之间提供连接的视频卡和声卡。其他设备和/或设备系统,诸如远程计算机544,可提供输入和输出两种能力。
计算机512可以使用到诸如远程计算机544之类的一个或多个远程计算机的逻辑连接来在联网环境中操作。远程计算机544可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且通常包括许多或所有以上相对于计算机512所描述的元件,尽管在图4中仅示出了存储器存储设备546。远程计算机544可经由通信连接550逻辑地连接。网络接口548涵盖诸如局域网(LAN)和广域网(WAN)这样的通信网络,但也可包括其他网络。通信连接550是指用来将网络接口548连接到总线518的硬件/软件。连接550可以在计算机512内部或外部并且包括诸如调制解调器(电话、电缆、DSL和无线)和ISDN适配器、以太网卡等内部和外部技术。
应该理解,所示网络连接仅是示例,并且可以使用在计算机之间建立通信链路的其它手段。本领域的普通技术人员可以理解,计算机512或其它客户机设备可作为计算机网络的一部分来部署。在这一点上,本文所公开的主题涉及具有任意数量的存储器或存储单元以及在任意数量的存储单元或卷上发生的任意数量的应用程序和进程的任何计算机系统。本文所公开的主题的各方面可应用于具有部署在网络环境中的具有远程或本地存储的服务器计算机和客户计算机的环境。本文所公开的主题的各方面也可应用于具有编程语言功能、解释和执行能力的独立计算设备。
图4示出集成开发环境(IDE)600和通用语言运行时环境602。IDE 600可允许用户(例如,开发者、程序员、设计者、编码者等)在计算机系统中设计、编码、编译、测试、运行、编辑、调试或构建程序、程序集、网站、web应用程序和web服务。软件程序可包括以一种或多种源代码语言(例如,VisualBasic、Visual J#、C++、C#、J#、Java Script、APL、COBOL、Pascal、Eiffel、Haskell、ML、Oberon、Perl、Python、Scheme、Smalltalk等)创建的源代码(组件610)。IDE 600可提供本机代码开发环境,或者可提供在虚拟机上运行的托管代码开发,或者可提供其组合。IDE 600可提供使用.NET框架的托管代码开发环境。可使用语言专用源编译器620从源代码组件610和本机代码组件611创建中间语言组件650,并且在执行应用时使用中间语言编译器660(例如,即时(JIT)编译器)从中间语言组件650创建本机代码组件611(例如,机器可执行指令)。即,当IL应用被执行时,其在被执行的同时被编译成适合正在其上执行它的平台的合适机器语言,藉此使代码能跨若干平台便携。或者,在其他实施例中,程序可被编译成适合其目标平台的本机代码机器语言(未示出)。
用户可根据已知软件编程技术以及与特定源语言相关联的特定逻辑和句法规则经由IDE 600中的用户接口640和源代码编辑器651来创建和/或编辑源代码组件。此后,源代码组件610可经由源编译器620被编译,藉此可创建该程序的中间语言表示,诸如汇编630。汇编630可包括中间语言组件650和元数据642。应用程序设计可以能够在部署前被验证。
此处所述的各种技术可结合硬件或软件,或在适当时以其组合来实现。由此,本文所公开的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现本文所公开的主题的各方面的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常将包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可例如通过使用数据处理API等来利用域专用编程模型各方面的创建和/或实现的一个或多个程序可用高级过程编程语言或面向对象的编程语言来实现以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
虽然已结合附图描述了本文所公开的主题,但是应理解,可作出修改以按不同方式执行相同功能。

Claims (15)

1.一种系统,包括:
处理器(142)以及存储器(144),所述存储器(144)包括被配置成使所述处理器(142)执行下列操作的软件程序包设计和生成模块(106):
设计和生成供部署在多个服务器计算机上的解决方案包(120),其中所述解决方案包(120)是通过序列化由域专用语言生成的对象模型(122)来生成的,其中使用接收用于可视地排列和配置程序包的元素的用户输入(126)的至少一个设计器(110,112)来从项目系统(118)的项目生成和设计所述解决方案包(120)。
2.如权利要求1所述的系统,其特征在于,所述至少一个设计器包括程序包设计器,其中基于所述用户输入的所述程序包设计器执行下列各项中的至少一项:配置所述程序包内的特征,将特征的组合合并到所述程序包中,对所述程序包设置属性,可视化所述项目中的已定义的特征,将特征添加到所述程序包,从所述程序包中移除特征,再分类所述程序包内的特征,修改所述程序包的未来安装的各方面,或修改所述程序包的卸载。
3.如权利要求1所述的系统,其特征在于,所述至少一个设计器包括特征设计器,其中基于所述用户输入的所述特征设计器执行下列各项中的至少一项:配置特征内的项目项,将项目项的组合合并到所述特征中,对所述特征设置属性,可视化所述项目中的已定义的项目项,将项目项添加到所述特征,从所述特征中移除项目项。
4.如权利要求1所述的系统,其特征在于,所述对象模型是使用域专用语言用户界面框架来定义的,并且其中基于WPF的用户界面元素与所述域专用语言用户界面框架集成。
5.如权利要求1所述的系统,其特征在于,通过将所述对象模型中的类型和属性映射到清单XML模式中的元素和属性来转换所述对象模型。
6.一种设计和生成供部署在多个服务器计算机上的解决方案包的方法,所述方法包括:
创建所述解决方案包(204),其中所述解决方案包包括协作服务器应用程序,其包括基于浏览器的协作功能、进程管理模块,搜索模块以及内容管理平台,其中所述解决方案包是通过在开发计算机上执行程序包设计器和生成器来创建的;
通过遍历所述项目中的多个程序包中的至少一个程序包的程序包定义以达到特征引用,遍历所述至少一个程序包中的所述特征引用以达到特征,遍历所述特征中的项目项引用以达到项目项,遍历所述项目项中的文件引用以达到文件以及反向跟踪以确定包括在所述解决方案包中的文件和数据的完整列表,来列举(206)所述解决方案包的元素列表,所述完整列表包括至少一个清单;
通过将所述对象模型序列化为包括所述清单的至少一个文件来转换(208)表示所述解决方案包的对象模型;
预览(212)包括包含文件的目录层次结构的所述解决方案包的结构,并将所述文件置于所述多个服务器计算机的至少一个服务器计算机上的相对于所述层次结构的位置。
7.如权利要求6所述的方法,其特征在于,还包括:
使用特征设计器来自定义所述特征,其中所述特征设计器接收用户输入,并基于所述用户输入来执行下列各项中的至少一项:配置所述特征内的项目项,将项目项的组合合并到所述特征中,对所述特征设置属性,可视化项目中的已定义的项目项,将项目项添加到所述特征,从所述特征移除项目项。
8.如权利要求6所述的方法,其特征在于,还包括:
使用程序包设计器来自定义所述至少一个程序包,其中所述程序包设计器接收用户输入,并基于所述用户输入来执行下列各项中的至少一项:配置所述特征内的项目项,将项目项的组合合并到所述特征中,对所述特征设置属性,可视化项目中的已定义的项目项,将项目项添加到所述特征,从所述特征移除项目项。
9.如权利要求6所述的方法,其特征在于,还包括:
将所述对象模型中的类型和属性映射到清单XML模式中的元素和属性。
10.如权利要求6所述的方法,其特征在于,基于WPF的用户界面元素与用于生成所述对象模型和用户界面基础结构的域专用语言集成。
11.一种包括当执行时使至少一个处理器执行下列操作的计算机可执行指令的计算机可读存储介质:
通过执行至少一个设计器来自定义项目,其中所述至少一个设计器包括程序包设计器或特征设计器,
通过在开发计算机上执行程序包设计器和生成器来从所述自定义的项目创建解决方案包,其中创建所述解决方案包包括:
通过遍历所述项目的多个程序包中的至少一个程序包的程序包定义以达到特征引用,遍历所述至少一个程序包中的所述特征引用以达到特征,遍历所述特征中的项目项引用以达到项目项,遍历所述项目项中的文件引用以达到文件,以及反向跟踪以确定要包括在所述解决方案包中的文件和数据的完整列表,来列举所述解决方案包的元素列表,所述完整列表包括清单;以及
通过将所述对象模型序列化为包括所述清单的至少一个文件来转换表示所述项目的对象模型。
12.如权利要求11所述的计算机可读存储介质,其特征在于,进一步包括当执行时使所述至少一个处理器执行下列操作的计算机可执行指令:
预览包括文件目录层次结构的所述项目的结构,并将所述文件置于相对于所述层次结构的位置。
13.如权利要求11所述的计算机可读存储介质,其特征在于,进一步包括当执行时使所述至少一个处理器执行下列操作的计算机可执行指令:
提供可扩展的用户界面元素,其中受管理的可扩展性框架标识和实例化与所述至少一个程序包或所述对象模型中的所述至少一个程序包的至少一个特征相关联的一组视图。
14.如权利要求11所述的计算机可读存储介质,其特征在于,进一步包括当执行时使所述至少一个处理器执行下列操作的计算机可执行指令:
创建所述解决方案包,其中所述解决方案包包括协作服务器应用程序,其包括至少一个应用程序页面、web部件、列表定义、内容类型,或应用程序库。
15.如权利要求11所述的计算机可读存储介质,其特征在于,进一步包括当执行时使所述至少一个处理器执行下列操作的计算机可执行指令:
将至少一个定义文件和清单文件解序列化为所述对象模型,以及将对象模型序列化为至少一个清单文件。
CN201080023852.2A 2009-05-27 2010-05-27 包设计和生成 Active CN102449598B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/472,380 2009-05-27
US12/472,380 US8418165B2 (en) 2009-05-27 2009-05-27 Package design and generation
PCT/US2010/036488 WO2010138773A2 (en) 2009-05-27 2010-05-27 Package design and generation

Publications (2)

Publication Number Publication Date
CN102449598A true CN102449598A (zh) 2012-05-09
CN102449598B CN102449598B (zh) 2016-12-21

Family

ID=43221738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080023852.2A Active CN102449598B (zh) 2009-05-27 2010-05-27 包设计和生成

Country Status (4)

Country Link
US (4) US8418165B2 (zh)
EP (1) EP2435909A4 (zh)
CN (1) CN102449598B (zh)
WO (1) WO2010138773A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951292A (zh) * 2014-03-27 2015-09-30 尹泳祺 数据处理系统及数据处理方法
CN106815032A (zh) * 2017-02-23 2017-06-09 深圳麦亚信科技股份有限公司 保险业应用程序的个性化定义方法及其系统

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799857B2 (en) 2005-04-29 2014-08-05 Microsoft Corporation XML application framework
US8132148B2 (en) 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
US8418132B2 (en) 2005-04-29 2013-04-09 Microsoft Corporation Application description language
US8275793B2 (en) * 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms
US9798524B1 (en) * 2007-12-04 2017-10-24 Axway, Inc. System and method for exposing the dynamic web server-side
US8561032B2 (en) * 2009-11-04 2013-10-15 Red Hat, Inc. Visualizing thread life time in eclipse
US9367205B2 (en) 2010-02-19 2016-06-14 Microsoft Technolgoy Licensing, Llc Radial menus with bezel gestures
WO2011162746A1 (en) 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. A method and system for determining a deployment of applications
EP2585910B1 (en) * 2010-06-22 2018-02-21 Hewlett-Packard Enterprise Development LP Methods and systems for planning application deployment
KR101097372B1 (ko) * 2010-11-04 2011-12-23 전자부품연구원 홈 네트워크 시스템에서 어플리케이션 서비스 방법 및 서버
US8612963B2 (en) * 2010-12-02 2013-12-17 International Business Machines Corporation Guided problem resolution in deploying an application
CN102681893B (zh) * 2011-03-09 2016-06-29 腾讯科技(深圳)有限公司 可执行程序的跨平台实现方法及移动终端
US8997078B2 (en) * 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
US8813060B2 (en) * 2011-06-17 2014-08-19 Microsoft Corporation Context aware application model for connected devices
US20120324418A1 (en) * 2011-06-20 2012-12-20 Chad Gerid Fallon Software Application Framework Using Microsoft SharePoint
US9086794B2 (en) * 2011-07-14 2015-07-21 Microsoft Technology Licensing, Llc Determining gestures on context based menus
US8966440B2 (en) * 2011-08-29 2015-02-24 Salesforce.Com, Inc. Custom application creation in multi-tenant systems
US9239817B2 (en) * 2012-04-19 2016-01-19 Microsoft Technology Licensing, Llc Managing web extension through manifest file
US8813028B2 (en) * 2012-07-19 2014-08-19 Arshad Farooqi Mobile application creation system
WO2014085504A1 (en) * 2012-11-27 2014-06-05 Farhat James Method and system for context modeling
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
US9367299B2 (en) * 2013-12-31 2016-06-14 Google Inc. Preventing application downgrade in an application store
US9830135B2 (en) * 2014-01-29 2017-11-28 Dell Products L.P. Declarative and pluggable business logic for systems management
US10438168B2 (en) * 2014-10-10 2019-10-08 Salesforce.Com, Inc. Facilitating dynamic customization of reporting tools in an on-demand services environment
JP2016099813A (ja) * 2014-11-21 2016-05-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US9684802B2 (en) * 2015-03-16 2017-06-20 Microsoft Technology Licensing, Llc Verification and access control for industry-specific solution package
US20160274885A1 (en) * 2015-03-16 2016-09-22 Microsoft Technology Licensing, Llc Controlling deployment of an industry-specific solution package
US10275440B2 (en) 2015-03-16 2019-04-30 Microsoft Technology Licensing Llc Setup data extraction for deploying a solution package
US20160274906A1 (en) * 2015-03-16 2016-09-22 Microsoft Technology Licensing, Llc Generating a deployable industry-specific solution package
US9740512B2 (en) 2015-07-12 2017-08-22 Microsoft Technology Licensing, Llc Virtualizing extension code in an application
US10437575B2 (en) 2015-08-14 2019-10-08 Aeris Communications, Inc. Aercloud application express and aercloud application express launcher
US10231084B2 (en) 2015-08-14 2019-03-12 Aeris Communications, Inc. System and method for monitoring devices relative to a learned geographic area
US10648823B2 (en) 2017-06-22 2020-05-12 Aeris Communications, Inc. Learning common routes and automatic geofencing in fleet management
US9774994B2 (en) 2015-08-14 2017-09-26 Aeris Communications, Inc. System and method for monitoring devices relative to a user defined geographic area
US10169018B2 (en) 2015-09-17 2019-01-01 International Business Machines Corporation Downloading a package of code
US10171627B2 (en) 2015-09-17 2019-01-01 International Business Machines Corporation Download of a package of code
CN105516750B (zh) * 2015-12-03 2019-04-30 深圳市茁壮网络股份有限公司 一种基于object标签的插件卸载和删除以及更新方法
US10430170B2 (en) * 2016-10-31 2019-10-01 Servicenow, Inc. System and method for creating and deploying a release package
US11132636B2 (en) 2017-06-22 2021-09-28 Aeris Communications, Inc. System and method for monitoring and sharing location and activity of devices
US11627195B2 (en) 2017-06-22 2023-04-11 Aeris Communications, Inc. Issuing alerts for IoT devices
US10735904B2 (en) 2017-06-22 2020-08-04 Aeris Communications, Inc. System and method for monitoring location and activity of devices
US10740085B2 (en) * 2018-11-30 2020-08-11 Target Brands, Inc. Webserver interface for deployment management tool
US11010279B2 (en) * 2019-02-28 2021-05-18 Jpmorgan Chase Bank, N.A. Method and system for implementing a build validation engine
WO2021145872A1 (en) * 2020-01-15 2021-07-22 Hewlett-Packard Development Company, L.P. Deploying a software package
US11520566B2 (en) * 2020-08-24 2022-12-06 Bank Of America Corporation System for generation and maintenance of source capability objects for application components
US11656860B2 (en) * 2021-03-26 2023-05-23 Microsoft Technology Licensing, Llc Bundling data packages based on usage patterns for download control
US11936517B2 (en) 2022-03-31 2024-03-19 Cisco Technology, Inc. Embedding custom container images and FaaS for an extensibility platform

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198631A1 (en) * 2004-01-12 2005-09-08 Dell Products L.P. Method, software and system for deploying, managing and restoring complex information handling systems and storage
US20080127057A1 (en) * 2006-09-01 2008-05-29 The Mathworks, Inc. Specifying implementations of code for code generation from a model

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002010970A2 (en) 2000-07-28 2002-02-07 Glaxo Group Limited Document management and publication using reusable packages and components
US7367028B2 (en) * 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
US7496890B2 (en) * 2003-06-30 2009-02-24 Microsoft Corporation Generation of configuration instructions using an abstraction technique
CA2539465C (en) * 2003-09-17 2012-12-04 Research In Motion Limited System and method for management of mutating applications
JP2006065462A (ja) * 2004-08-25 2006-03-09 Canon Inc ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体
US7216324B2 (en) 2005-03-11 2007-05-08 Taiwan Semiconductor Manufacturing Co., Ltd. Method for designing chip package by re-using existing mask designs
US7761601B2 (en) * 2005-04-01 2010-07-20 Microsoft Corporation Strategies for transforming markup content to code-bearing content for consumption by a receiving device
US7634771B2 (en) * 2005-04-29 2009-12-15 Sap (Ag) Object generation in packages
US8447580B2 (en) * 2005-05-31 2013-05-21 The Mathworks, Inc. Modeling of a multiprocessor system
US7650588B2 (en) 2005-09-26 2010-01-19 Micronic Laser Systems Ab Methods and systems for pattern generation based on multiple forms of design data
US20070234277A1 (en) * 2006-01-24 2007-10-04 Hui Lei Method and apparatus for model-driven business performance management
US7971187B2 (en) 2006-04-24 2011-06-28 Microsoft Corporation Configurable software stack
US20070271552A1 (en) * 2006-05-19 2007-11-22 Pulley Robert A System and method for packaging software
US20080209392A1 (en) * 2007-02-26 2008-08-28 Able Steve L Systems and Methods for Definition and Execution of Batch Processing Services
US7565635B2 (en) 2007-04-09 2009-07-21 Taiwan Semiconductor Manufacturing Co., Ltd. SiP (system in package) design systems and methods
US7974827B2 (en) * 2007-04-23 2011-07-05 Microsoft Corporation Resource model training
US8065340B2 (en) 2007-09-14 2011-11-22 International Business Machines Corporation Method and system for highly tolerant and adaptable content reuse in a content management system
US8244696B2 (en) * 2008-04-21 2012-08-14 Oracle International Corporation Methods and systems for supporting multiple deployment models of enterprise business applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198631A1 (en) * 2004-01-12 2005-09-08 Dell Products L.P. Method, software and system for deploying, managing and restoring complex information handling systems and storage
US20080127057A1 (en) * 2006-09-01 2008-05-29 The Mathworks, Inc. Specifying implementations of code for code generation from a model

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951292A (zh) * 2014-03-27 2015-09-30 尹泳祺 数据处理系统及数据处理方法
CN104951292B (zh) * 2014-03-27 2018-06-05 尹泳祺 数据处理系统及数据处理方法
CN106815032A (zh) * 2017-02-23 2017-06-09 深圳麦亚信科技股份有限公司 保险业应用程序的个性化定义方法及其系统
CN106815032B (zh) * 2017-02-23 2020-04-14 深圳麦亚信科技股份有限公司 保险业应用程序的个性化定义方法及其系统

Also Published As

Publication number Publication date
WO2010138773A2 (en) 2010-12-02
US20100306735A1 (en) 2010-12-02
EP2435909A4 (en) 2012-12-05
EP2435909A2 (en) 2012-04-04
WO2010138773A3 (en) 2011-02-24
US8418165B2 (en) 2013-04-09
US20170147327A1 (en) 2017-05-25
US20130227548A1 (en) 2013-08-29
US8661427B2 (en) 2014-02-25
US9582257B2 (en) 2017-02-28
CN102449598B (zh) 2016-12-21
US20140157254A1 (en) 2014-06-05
US9971590B2 (en) 2018-05-15

Similar Documents

Publication Publication Date Title
CN102449598A (zh) 程序包设计和生成
Bruneliere et al. Modisco: A model driven reverse engineering framework
CN102222039B (zh) 使用dsl来调用api以测试软件
CN102222012B (zh) 针对外部数据源的静态类型检查
Reichert et al. Lifecycle management of business process variants
Buchmann BXtend-A Framework for (Bidirectional) Incremental Model Transformations.
Benouda et al. MDA approach to automate code generation for mobile applications
Benouda et al. Automatic code generation within MDA approach for cross-platform mobiles apps
CN101379504A (zh) 虚拟角色
CN102289367B (zh) 根据模式的命令行外壳命令生成
Wu et al. An extended MDA method for user interface modeling and transformation
Alshareef et al. Activity-based DEVS modeling
Folli et al. Refactoring of UML models using AGG
US20100269089A1 (en) Method and system for generation of reusable design patterns
Soden et al. Towards a model execution framework for Eclipse
Vitzthum SSIML/AR: A visual language for the abstract specification of augmented reality user interfaces
Merah et al. Design of ATL rules for transforming UML 2 sequence diagrams into petri nets
Åkesson et al. Jatte: A tunable tree editor for integrated DSLs
Bergmann et al. Implementing efficient model validation in EMF tools
Cortellessa et al. A framework for the integration of functional and non-functional analysis of software architectures
Cerny et al. Impact of user interface generation on maintenance
Jörges et al. Exploiting ecore's reflexivity for bootstrapping domain-specific code-generators
Nasiri et al. Generation of User Interfaces and Code from User Stories
Kara Design and implementation of the modelicaml code generator using acceleo 3. x
Silva et al. A model-driven approach for mobile business information systems applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant