阅读更多

SmartInvoke是一国产开源API,实现当前所有主流平台之间方便的互调。

项目地址: http://smartinvoke.cn/

项目优势:

     1: 对象代理模式,使平台之间的互操作就像本地代码调用一样简便

           在smartInvoke中的对象不像webservice中的对象,他是有状态的, 每个代理对象对应一个服务对象,服务对象跟随代理对象一起   创建, 然后被代理对象调用,最后在代理对象销毁的时候调用服务平台销毁 对应服务对象

     2:简洁高效的中间报文设计,使大数据量与高强度访问成为可能

         抛弃了xml与json这些低效的中间报文格式,使中间数据的生成与解析 效率提高了将近10倍

     3:中间代码自动生成工具 (CodeTransform), 使一切都变得那么简单

          通过CodeTransform自动生成代理对象代码,把用户从乏味繁琐的 中间代码编写中解脱出来。

     4:完全国产开源

           你可以下载源代码,在作者的基础上进行二次开发,创造出更棒的产品。
         
     5:帮助文档全中文,可以方便的联系到作者与其交流。

     6:可以传递所有数据类型,包括自定义对象类型。

目前版本:

 项目名称  项目原理  项目用途  项目比较
Java与Flex版 在swt中加载flash的swf文件,通过flash的ActiveX接口与Java进行通信 从此你可以用Java做后台服务,用Flex快速定制漂亮的软件界面,取长补短,充分发挥 Java与Flex的优势 从此以后,你可以通过SmartInvoke用Java与Flex快速开发出漂亮的桌面程序,它具有 比纯SWT开发更快捷,开发界面更美观;比Air开发更稳定高效的优势。
  C#与Flex版 在winForm中加载flash的swf文件,通过flash的ActiveX接口与C#进行通信 可以在WinForm中嵌入许多漂亮的Flex控件,让界面更美观 Flex具有许多漂亮的开源控件,现在你就可以将它们加入到你的WinForm程序中了, SmartInvoke会为你解决Flex与C#通信的问题的。
  Java与C#版 Java与C#通过套接字以二进制流的方式进行通信 只要Java与C#能进行套接字通信,SmartInvoke就能为你提供一个像本地代码调用一样方便 快捷的通信方案。 整个API的 大小不会大于1MB,而且不需要Web服务器的支持,方便快捷的配置使 SmartInvoke不仅可以用于Web程序,而且可以用于桌面程序。


35
2
评论 共 36 条 请登录后发表评论
36 楼 cied 2014-08-21 18:00
求教,编写的java类生成不了对应的as类
35 楼 lamprosfeiyun 2013-09-03 15:24
基于smartinvoke我做了一个小程序,但是就是在linux上跑不起来,求教如何在linux上跑起来!
34 楼 wjjxyz 2013-02-07 01:13
楼主源码并没有完全公开,很多东西看不到
33 楼 kimmking 2010-01-02 11:55
我所说的AIR的缺陷正式在项目开发中所遇到的并非凭空捏造。
  
    当时项目需要在AIR窗体中嵌入一个3D图表,由于业务需要,3D图表需要呈现的数据量非常大,以万计,在网上没有找到符合要求的控件,一个同事发现office里有个图表正符合我们的要求,当时就想,要是AIR中能嵌入office的com组件就好了。而smartinvoke可以让你在程序界面中同时加入swt控件与Flex控件,让他们实现优势互补。
   以上只是一个缺陷,由于篇幅所限,其他的缺陷就不在这里一一列举了。
  
   没有实践就没有发言权,我希望楼上在充分了解了smartinvoke和AIR后,再做出合理的评价。

--------------------------------------


我是air flex开发新手,大半年的企业应用开发时间吧。
不是太陌生。

我更擅长office和com/activex和j2ee相关技术。
我做了2年开发和3年技术研究工作。

你说的office组件应该是spreadsheet,这个就不错。
如果windows环境,感觉负责报表,dsoframer+excel更好。
32 楼 kimmking 2010-01-02 11:51
同意lx的
首先,楼主的开源精神和优秀的创意是不错的。而且踏踏实实做出东西来了。
赞许一个。

但是,感觉lz对于很多东西的认识还是有问题的。
如果lz更加深入的了解和接受更多的批评意见,这个创意会走的更远。
31 楼 aixinnature 2010-01-02 11:34
对 smartInvoke不太熟悉,也没用flex开发过中大型项目,但我支持楼主的开源和创新精神,以后项目中有需求,会好好研究这个开源API的
30 楼 smartinvoke 2010-01-01 21:08
kimmking 写道
3、4、5

我只能一笑而过了。


我所说的AIR的缺陷正式在项目开发中所遇到的并非凭空捏造。
  
    当时项目需要在AIR窗体中嵌入一个3D图表,由于业务需要,3D图表需要呈现的数据量非常大,以万计,在网上没有找到符合要求的控件,一个同事发现office里有个图表正符合我们的要求,当时就想,要是AIR中能嵌入office的com组件就好了。而smartinvoke可以让你在程序界面中同时加入swt控件与Flex控件,让他们实现优势互补。
   以上只是一个缺陷,由于篇幅所限,其他的缺陷就不在这里一一列举了。
  
   没有实践就没有发言权,我希望楼上在充分了解了smartinvoke和AIR后,再做出合理的评价。

===========================================================================

   正是在Flex开发中遇到了以上的问题,才使我开发出smartinvoke,源代码全部开放,您可以在其基础上进行随意的修改以符合自己的需要,并且完全免费。目的是让
大家少走我以前走过的弯路,当然smartinvoke在目前还不是很完善,那就让我们大家一起来把它做完善。毕竟smartinvoke不是属于哪个公司哪个人的,而是属于大家的。
    
29 楼 kimmking 2010-01-01 16:42
3、4、5

我只能一笑而过了。
28 楼 kimmking 2010-01-01 16:40
2:Flex存在内存释放问题

程序运行时间越长,你会发现Flex占用的内存会越来越多,通过SmartInvoke可以将swf进行重新加载或销毁而解决这个问题。

=--------------------------------
大部分支持native,或是要和外部资源交互的环境和
几乎所有的脚本都有这个问题,需要良好的结构和编码,在合适的地方,控制某些资源的释放。

挺好奇lz是用何种策略减少或是降低这个问题,如果这个框架真的“解决这个问题”,
我更要拜读了。
27 楼 kimmking 2010-01-01 16:38
2:Flex存在内存释放问题

程序运行时间越长,你会发现Flex占用的内存会越来越多,通过SmartInvoke可以将swf进行重新加载或销毁而解决这个问题。
26 楼 kimmking 2010-01-01 16:37
1:Flex的编译速度是是出了名的慢

通过SmartInvoke可以将Flex控件用Java类进行封装,使Java在运行时动态调用Flex控件,实现在运行时动态构建Flex界面,解决Flex编译过慢的问题。

-----------------------------------

编译慢不是问题,运行慢才是致命的,动态构建UI,更是慢。
25 楼 li-yuan 2010-01-01 15:11

3:AIR与swing类似,与操作系统格格不入,无法直接调用用C++,Java等语言写的类库或控件,也不能直接调用dll,openGL derectx 3d 等API。这在项目中无疑会增加开发成本。
----------------------------------------------------------------------------
一个全省分布,上百家单位使用的项目应该不小了,就是采用的AIR做客户端,总体感觉AIR不错,特别适合原来从事B/S开发人员来从事桌面客服端的开发。要直接在JAVA中直接调用SWF的方案很多,因为Flash播放器就是一个ActiveX,利用JNA实现起来也比较轻松呀。
更为实际的方案就是XULRunner中嵌入SWF,LiveConnect轻松解决调用java的问题,还有就是XULRunner不但能实现SWF做java界面也能够使用Extjs来做桌面应用程序的界面
24 楼 smartinvoke 2010-01-01 14:23
li-yuan 写道
Java与Flex版和AIR比起来又什么优势?
AIR+BlazeDS不是挺好嘛
还有,直接用XULRunner完全可以实现SWF做界面java实现业务,单机版都可以用JAVA

楼上恐怕没在大规模项目中用过AIR吧!
AIR+BlazeDS有以下不足:

1:Flex的编译速度是是出了名的慢

通过SmartInvoke可以将Flex控件用Java类进行封装,使Java在运行时动态调用Flex控件,实现在运行时动态构建Flex界面,解决Flex编译过慢的问题。

2:Flex存在内存释放问题

程序运行时间越长,你会发现Flex占用的内存会越来越多,通过SmartInvoke可以将swf进行重新加载或销毁而解决这个问题。

3:AIR与swing类似,与操作系统格格不入,无法直接调用用C++,Java等语言写的类库或控件,也不能直接调用dll,openGL derectx 3d 等API。这在项目中无疑会增加开发成本。

   通过smartinvoke可以让Flex直接调用java,而java丰富的类库可以解决上面的问题。

4:AIR+BlazeD不适合C/S桌面程序。
  据我目前所知AIR要调用BlazeD你首先得配个WEB服务器吧,这对小型C/S桌面程序来说是不可取的。

5:Flex通过BlazeD调用Java是异步调用,而且据我所知此种通信方式是单向无状态的。
   smartinvoke可以实现Flex与Java之间的同步调用,并且Flex与Java都可以发起调用请求,调用过程中的对象是有状态的。
23 楼 li-yuan 2010-01-01 13:10
Java与Flex版和AIR比起来又什么优势?
AIR+BlazeDS不是挺好嘛
还有,直接用XULRunner完全可以实现SWF做界面java实现业务,单机版都可以用JAVA
22 楼 kimmking 2010-01-01 11:16
smartinvoke 写道
kimmking 写道
smartinvoke 写道
vieri122 写道
为何没有与c/c++的调用

因为C貌似没动态反射


c/c++调用activex的com接口即可,

com本身就是一种“反射”


我说的是根据类名称动态创建服务类对象,根据方法名称,调用给定类的指定方法



你了解com/activex吗?
21 楼 longwenbin2008 2009-12-31 20:00
不错,不过比  PHPRPC、Hprose、RemObjects还是差点
20 楼 andot 2009-12-31 19:35
smartinvoke 写道
andot 写道
smartinvoke 写道
yfddht1573 写道
我知道的。

PHPRPC 好像比这个要强些吧。。

这个是适用于CS桌面程序的,没Web服务器的事儿


PHPRPC 不但适用于CS桌面程序,也适用于B/S程序,应用面比这个广多了,支持的语言也比这个多得多。而且 PHPRPC 还有商业版 Hprose,是有商业支持的开源产品,成熟度比这个也高多了。


smartinvoke的java/Flex版,C#/Flex版 主要应用于:

用java或C#做后台数据服务,用Flex做界面展示的C/S程序,因为他用ActiveX接口进行数据通信,所以优点如下:
   1:通信是同步的,不像别的框架,是异步调用。
   2:双向通信,双方都可以发起调用。
   3:调用对象是有状态的。
   2:本地进程内通信,不存在安全,套接字IO异常那些情况。

smartinvoke尽量做到像本地调用一样方便,详情请参考:http://smartinvoke.cn


原来smartinvoke是本地的进程内通信啊,我误会了,不好意思啊。我开始还以为是远程调用呢。这样说来,smartinvoke连c/s应用也算不上了,只是解决了单机应用中java、c#和flex之间通讯的问题。不过看了一下你写的文章,发现这个确实不错,不过我有跟楼上同样的疑问,你用了activex,不就只有windows only了?
19 楼 smartinvoke 2009-12-31 16:31
andot 写道
smartinvoke 写道
yfddht1573 写道
我知道的。

PHPRPC 好像比这个要强些吧。。

这个是适用于CS桌面程序的,没Web服务器的事儿


PHPRPC 不但适用于CS桌面程序,也适用于B/S程序,应用面比这个广多了,支持的语言也比这个多得多。而且 PHPRPC 还有商业版 Hprose,是有商业支持的开源产品,成熟度比这个也高多了。


smartinvoke的java/Flex版,C#/Flex版 主要应用于:

用java或C#做后台数据服务,用Flex做界面展示的C/S程序,因为他用ActiveX接口进行数据通信,所以优点如下:
   1:通信是同步的,不像别的框架,是异步调用。
   2:双向通信,双方都可以发起调用。
   3:调用对象是有状态的。
   2:本地进程内通信,不存在安全,套接字IO异常那些情况。

smartinvoke尽量做到像本地调用一样方便,详情请参考:http://smartinvoke.cn
18 楼 andot 2009-12-31 16:07
smartinvoke 写道
yfddht1573 写道
我知道的。

PHPRPC 好像比这个要强些吧。。

这个是适用于CS桌面程序的,没Web服务器的事儿


PHPRPC 不但适用于CS桌面程序,也适用于B/S程序,应用面比这个广多了,支持的语言也比这个多得多。而且 PHPRPC 还有商业版 Hprose,是有商业支持的开源产品,成熟度比这个也高多了。
17 楼 smartinvoke 2009-12-31 13:43
kimmking 写道
smartinvoke 写道
vieri122 写道
为何没有与c/c++的调用

因为C貌似没动态反射


c/c++调用activex的com接口即可,

com本身就是一种“反射”


我说的是根据类名称动态创建服务类对象,根据方法名称,调用给定类的指定方法

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • cn.smartinvoke.ide

    Flash 动画加代码 cn.smartinvoke.ide.zip

  • smartinvoke入门系列2——smartinvoke轻松上手

    本篇为smartinvoke开发系列的第一篇,主要让大家对smartinvoke有一个整体的认识,能够开发出简单独立的smartinvoke可运行桌面程序。 创建SmartInvoke项目: 依次选择Eclipse菜单栏中的 :文件 -> 新建 -&...

  • smartinvoke入门系列10——多窗口的实现与互调

    窗口之间可以方便的互调。首先我们点击eclipse工具栏上的图标: 打开新建对话框,输入如下内容:   点击完成后eclipse会在First_项目下新建一个SubWin.mxml文件。如下图:   我们在SubWin.mxml文件中添加...

  • smartinvoke入门系列1——smartinvoke的安装

    首先确保你已正确安装了flash builder4的插件版,不是插件版的同学可以安装插件版,或者添加Java开发工具JDT插件到你的...下载smartinvoke开发工具,下载完毕后解压该zip文件后,将得到的所有jar文件拷贝到flash...

  • smartinvoke入门系列5——实现Java调用Flex

    前面讲的都是Flex调用Java的情况,但是在某些时候需要Java调用Flex,比如,当Java某个后台任务执行完毕后应该调用Flex以便界面得到响应。   首先我们在Flex项目... ... { ... import cn.smartinvoke.ServerObject;...

  • smartinvoke入门系列6——让Flex实现事件回调与多线程

    本质上来说事件回调也是属于Java调用Flex。...2. 程序调用的smartinvoke API比较多,代码的可移植性不高。 在这里我们介绍smartinvoke的事件回调机制,可以解决上面遇到的两个问题。 首先修改First...

  • SmartInvoke库和示例

    它将Flex界面API进行Java/C#本地封装,以实现用Java/C#快速构建漂亮桌面程序的目的,完美的实现了Flex与桌面程序的互通。

  • smartinvoke入门系列4——Java与Flex传递复杂类型

    smartinvoke 解析为 BeanTest.java 类型对象处理,反过来也一样。   我们在 BeanTest.java 中添加 name 属性如下: private String name ;   public String getName() {   return name ;   } ...

  • 通过SmartInvoke运用java与flex轻松构建cs程序.doc

    通过SmartInvoke运用java与flex轻松构建cs程序,入门文档,有截图。

  • C#开源项目大全

    C#开源项目大全 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow 【免费】正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-ExcelLibrary ...

  • smartinvoke中文API及演示程序

    java部分API: http://smartrcp.org/doc/java/   Flex部分API: http://smartrcp.org/doc/flex/   示例程序 下面所介绍的示例程序都可以从http://smartrcp.googlecode.com/files/demos.zip下载到。 ...

  • smartinvoke入门系列8——Flex本地右键菜单

    SmartInvoke屏蔽了Flash中的系统内置右键,添加了系统本地右键菜单功能。只需几段代码就可以创建出本地右键菜单。右键菜单主要用到以下四个类: cn.smartinvoke.gui.control.CAction;  菜单项信息类,封装了菜单...

  • smartinvoke入门系列9——窗口类型FlashShell与事件

    SmartInvoke使用cn.smartinvoke.gui.shell.FlashShell类管理应用程序打开的窗口,通过该对象,用户可以设置窗口的标题,位置,大小,是否可以,透明度等属性,还可以监听窗口的 CShellEvent.Event_Activated,...

  • smartinvoke入门系列3——程序的打包与单独运行

    当然,SmartInvoke程序要能够方便的打包成类似exe可执行文件的形式才能算得上是一个真正的CS程序。 为了让SmartInvoke程序能够成功的打包运行,首先得在FirstWin.java入口类中添加一方法以指明程序所要加载的swf...

  • smartinvoke入门系列7——让Flex捕获键盘组合键

    在FirstWin.mxml中通过调用addKeyBoardListener方法可以设置键盘监听器,该方法在cn.smartinvoke.gui.SIApplication类中定义,方法说明如下:    public function addKeyBoardListener(listener:Function, ...

  • 通过SmartInvoke运用java与flex轻松构建cs程序(映射服务类型与异种平台类型对应规则)

    本篇首先介绍  怎样将没有实现IServiceObject接口的类映射为服务类。 然后介绍  怎样修改默认的类型对应规则。   映射服务类型: 如果Java中的test.CFile类没有实现IServiceObject接口,而我们又 要...

  • C#开源大全项目

    商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow 【免费】正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-ExcelLibrary .NET集成开发环境-...

  • .NET 开源

    .net 开源列表 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow 【免费】正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-...

  • 通过SmartInvoke运用java与flex轻松构建cs程序(理解SmartInvoke的运行原理)

    三种对象(理解这三种对象的概念是掌握SmartInvoke的关键):  服务对象: 即实现了IServiceable接口或注册到ITypefactory字典标记为服类型的类;  代码实现如下:view plaincopy to clipboardprint?

  • python爬虫数据可视化-10-where条件语句-模糊查询.ev4.rar

    python爬虫数据可视化-10-where条件语句-模糊查询.ev4.rar

Global site tag (gtag.js) - Google Analytics