Microsoft  CSIP   WindowsMobile   MEDC   合作伙伴   体验中心 设为首页 加到收藏夹

 
登录       点击换一张     注册新用户 找回密码

比.Net Micro Framework还小的.net Framework
2008年10月13日10:45   编辑:叶帆 来源: 叶帆工作室 浏览: 913

这是飞天的最新一款智能卡产品,前短时间抽时间研究了一下,整体感觉还不错,实现了clr中有关文件操作(有些函数好像有些问题)、加密算法等指令。

 

 

 

 

由于我们这边的项目组开发的就是MF3.0的文件系统,所以对它们这个这么小的东东有CPU、有操作系统,支持clr,并且支持文件系统很感兴趣。

它的文件系统是FAT16MF实现的是FAT32,这就要求存储空间至少有32.52M),通过PC上的一个程序可以实现上下传文件。此外该系统最大的特点就是可以执行.net程序。

 

 

下面是简单的程序,一个是运行在智能卡上(server),一个运行在普通PC上。

//服务端程序,需要用上面的工具(load file)把编译好的程序上传到智能卡上,然后在设置运行即可。

using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using SmartCard.Runtime.Remoting.Channels.APDU;

namespace MyCompany.MyOnCardApp

{

    ///< Abstract >

    /// MyServer Abstract .

    ///</ Abstract >

    public class MyServer

    {

        ///< Abstract >

        ///URI of remote object to be exposed

        ///</ Abstract >

        private const string REMOTE_OBJECT_URI = "MyService.uri";

        ///< Abstract >

        ///Register Card Service

        ///</ Abstract >

        ///<returns></returns>

        public static int Main()

        {

            //Register communication channel for server to start listening

            ChannelServices.RegisterChannel(new APDUServerChannel());

            //Register application as a service

            RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), REMOTE_OBJECT_URI, WellKnownObjectMode.Singleton);

            return 0;

        }

   }

}

 

//客户端程序,在PC机上运行,可以远程执行服务端上的函数有点DCOM的感觉。

using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using SmartCard.Runtime.Remoting.Channels.APDU;

using System.Text;

using MyCompany.MyOnCardApp;

 

// Make sure the stub of the server application bas been added as reference or its interface has been declared

// stub file is automatically generated in [Server Project Output]\Stub when compiling server application

namespace MyCompany.MyClientApp

{

    public class MyClient

    {

        private const string URL = "apdu://selfdiscover/MyService.uri";

        public static void Main()

        {

            // Create and register a communication channel

            APDUClientChannel channel = new APDUClientChannel();

            ChannelServices.RegisterChannel(channel);

            // Get reference to remote object

            MyService service = (MyService)Activator.GetObject(typeof(MyService), URL);

            // Call remote method

            service.FileOperation();

            // Unregister communication channel

            ChannelServices.UnregisterChannel(channel);

                           channel.Dispose();

        }

    }

}

发表评论
评论标题 :
评论内容 :

    查看评论

请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。 本站拥有管理笔名和留言的一切权利。
相关文章推荐
· .NET Micro Framework v3.0 Beta Announced! 2008-7-31  黄季冬
· Microsoft .NET 中的简化加密 2008-7-22  网络教父
· 恩智浦重新设计LPC2000 移植微软.NET Micro Framework 2008-7-15  电子工程世界
· 跟上.NET Micro Framework时代 2008-7-15  James Vastbinder
· 在.Net Micro Framework中访问硬件 - part1 2008-7-10  黄季冬

  

论坛推荐  
热点活动
更多»

© CSIP 信息产业部软件与集成电路促进中心 All Rights Reserved 版权所有 京ICP备06020771号
联系电话:010-63951881-8003 王先生        邮件:wangj@csip.org.cn