岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 其他技术 >> Java正文
Java和.NET互操作究竟有什么用?
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-23 9:51:58
MyDotNetClass2( 7, 9 );
    PureDotNetType obj3 = new PureDotNetType();
    PureDotNetType2 obj4 = new PureDotNetType2();

    obj3.CharProperty = 'B';

    // 这两个值将在我们的哈希表中得到对象返回值后被消除
    obj4.NotUsed = 511;
    obj4.AlsoNotUsed = "test";
    // 这个值将会被保留,但是在Java代码中将会以另外一个名称出现
    obj4.OnlyUsedField = 512;

    // 将.NET 实例放入Java哈希表,
    // 请注意这里没有可用的Java原始类型提供给.NET类型,
    // .NET对象状态被拷贝到通用的Java实例之中。

    ht.Put( "obj1", obj1 );
    ht.Put( "obj2", obj2 );
    ht.Put( "obj3", obj3 );
    ht.Put( "obj4", obj4 );

    // 这是一个真实的测试!
    // 现在我们尝试去得到最初的.NET信息。
    object o1 = ht.Get( "obj1" );
    Console.WriteLine( "o1={0}", o1.ToString());

    object o2 = ht.Get( "obj2" );
    Console.WriteLine( "o2={0}", o2.ToString());

    object o3 = ht.Get( "obj3" );
    Console.WriteLine( "o3={0}", o3.ToString());

    object o4 = ht.Get( "obj4" );
    Console.WriteLine( "o4={0}", o4.ToString());

    Console.WriteLine( "ht={0}", ht.ToString() );
   }
   catch( JuggerNETFrameworkException jnfe )
   {
    Console.WriteLine( "Exception caught: {0}\n{1}\n{2}", jnfe.GetType().Name,
                                      jnfe.Message, jnfe.StackTrace );
   }
  }
}

 

上一页  [1] [2] [3] [4] [5] 下一页  

 总的来说,在上述的程序互操作过程之中,在不考虑单一运行环境的速度优势情况下(在单一过程中的数据移动,远比网络传输中的数据移动速度更快,甚至高于快速比特),程序互操作过程包含以下的一些优点:

集中化。在许多情况下,我们希望特定资源(比方说代码中的数据库序列标识符)只存在于一个且仅此一个进程之中,来避免复杂的进程间代码同步的实现。

可靠性。较少的硬件相关性,以及整个系统单一的硬件损耗,使得系统很少会有受到攻击的可能性。

结构化要求。在某些情况下,现有的结构化模型将要求所有程序处理过程替代已有的处理过程,比如说,应用程序的现有用户接口如果使用ASP.NET编写,并且应用程序部分的互操作性,用以实现为EJB消息驱动Bean在JMS消息队列中的消息传送处理过程。则在本地程序中传送消息给Java服务,并且仅是释放消息到JMS队列之中,这样的过程就显得有些多余,特别是在假定JMS客户端代码非常简洁的时候,程序实现代价较高。将JMS的客户端代码放入ASP.NET进程之中(Codemesh为JuggerNET代理实现JMS消息客户端提供了特别的版本),来实现与现有程序架构保持一致的简洁途径。

 此外,并非是所有的互操作解决方案都将通过in-proc方法来实现,但其中一些会使用这样的方法,并且开发者无需害怕这样的想法,即便是提供这些操作的工具有着非常大的使用价值。

关于作者

 Ted Neward是大规模企业应用系统方面的独立咨询人。也是Java、.NET和XML服务相关主题的会议上的演讲人,致力于Java与.NET的互操作技术。在Java与.NET方面,他曾撰写过几本广受认可的书籍,其中包括最近出版的《高效企业级Java开发》一书。

资源

"The Java Native Interface" (Liang)

"Java Native Interface" (Gordon)

The JNI page at the Java SE website (http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html)

"Customizing the Common Language Runtime" (Pratschner)

"Shared Source CLI" (Stutz, Neward, Shilling)

The C++/CLI Language Specification (ECMA International)

上一页  [1] [2] [3] [4] [5] 

上一页  [1] [2] [3] [4] [5] 


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365