比.Net Micro Framework还小的.net Framework
2008-09-28 22:11
337 查看
这是飞天的最新一款智能卡产品,前短时间抽时间研究了一下,整体感觉还不错,实现了clr中有关文件操作(有些函数好像有些问题)、加密算法等指令。
由于我们这边的项目组开发的就是MF3.0的文件系统,所以对它们这个这么小的东东有CPU、有操作系统,支持clr,并且支持文件系统很感兴趣。
它的文件系统是FAT16(MF实现的是FAT32,这就要求存储空间至少有32.52M),通过PC上的一个程序可以实现上下传文件。此外该系统最大的特点就是可以执行.net程序。
下面是简单的程序,一个是运行在智能卡上(server),一个运行在普通PC上。
由于我们这边的项目组开发的就是MF3.0的文件系统,所以对它们这个这么小的东东有CPU、有操作系统,支持clr,并且支持文件系统很感兴趣。
它的文件系统是FAT16(MF实现的是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和 .NET Compact Framework、.NET Framework
- 比.Net Micro Framework还小的.net Framework
- C#-.Net Framework和.Net Compact Framework-摘
- .Net Micro Framework研究—带I2C总线的模拟器
- 《玩转.NET Micro Framework 移植-基于STM32F10x处理器》--微软中国.NET Micro Framework项目组工程师所作之序
- 在.Net Micro Framework中显示汉字
- 《玩转.NET Micro Framework 移植-基于STM32F10x处理器》资源汇总
- 关于.NET Micro Framework
- .Net Micro Framework研究—Shapes命名空间
- .Net Micro Framework 模拟器详解 – 基本原理
- .net micro framework的入门例程-点灯神话-7.队列存储LED灯闪烁时间并用串口发送
- 完整清除 .NET Framework 的工具 - .NET Framework Cleanup Utility
- .Net Micro Framework
- 【.Net Micro Framework PortingKit – 09】串口驱动
- 【.Net Micro Framework PortingKit – 13】LCD驱动开发
- .Net Micro Framework研究—FAT文件系统实现探索
- .Net Micro Framework研究—应用实例
- 在.Net Micro Framework中访问硬件 - part3
- .Net Micro Framework研究—模拟器改造
- .Net Micro Framework 快速入门