也因为众人把焦点放在Microsoft最大收入的Desktop/Laptop用操作系统(Windows XP、Windows Vista)上,所以人们也才会进一步关注.NET 3.0,毕竟这攸关众多Windows版应用程序的后续开发,但也因为过度关注Vista以及次关注.NET 3.0,才会忽略.NET的更精巧化发展,事实上在.NET 3.0未推出前的几个月,.NET Framework继过去迷你化精缩版的.NET Compact Framework后,又推出更精缩的版本,即「.NET Micro Framework」,一般简称「.NET MF」。
.NET MF主要是针对硬件资源非常稀少、有限的嵌入式应用而设计,处理器方面可以不具备存储器管理单元(Memory Management Unit;MMU),也就是不具分段、分页等机制(更不会有快取机制),而存储器方面更是只要300KB左右的容量即可运作。
若更具体来说,处理器至少必须是ARM7TDMI,且更倾向更低功耗的新核心:ARM Cortex M3,时脉上为了省电也是尽量降低,目前最低的纪录是27MHz,而程序开发上可以用Visual BASIC或Visual C#等程序语言,但无法使用Visual C++或Visual J#。
附注:实际运用的ARM7TDMI中,27MHz并非是最低频率,日本任天堂(Nintendo)的掌上型游乐器:GBA (Game Boy Advance),其机内的主处理器也是采行ARM7TDMI的核心架构,但工作时脉却只有16.8MHz的频率,对此大多数技术观察家都认为此是追求省电效益而有的降频设计,毕竟iPod机内所用的ARM7TDMI都已达80MHz、90MHz水平。
事实上在.NET MF未正式出现前,Microsoft就已经开发设计出.NET MF的应用,即是所谓的SPOT(Smart Personal Object Tech)手表,运用Microsoft的DirectBand技术,SPOT手表可以接收与显示个人所订阅的各类信息,如天气、股价等,只是这一次 Microsoft将这块更小型化的嵌入式应用领域更加明确划分而已。
所以就整体来看,存储器资源在上百MB数百MB的运算系统中,Microsoft会主推.NET Framework;在数MB数十MB的运算系统中,则推行.NET Compact Framework;至于不及MB,仅在数百KB层次的系统,自然就属意.NET Micro Framework了。由此明显可见,.NET的跨平台特性正迈向更完备,从过去最初的桌面运算、伺服运算,扩展到嵌入运算。
发展愈完备的结果,就是让Java技术阵营更紧张,原本Microsoft只有.NET Framework的时候,只会对Java阵营中的J2SE(Java2 Standard Edition)、J2EE(Java2 Enterprise Edition)产生威胁,但在有了.NET Compact Framework后,就连J2ME(Java2 Micro Edition)也开始感受到压力。
不过,即便J2ME有压力,也是CDC(Connected Device Configuration)的部分有较大压力,比CDC资源更短少的CLDC(Connected Limited Device Configuration)仍不会受胁,然而.NET Micro Framework确立后,整个跨平台的战线,可以说从MB级延烧到KB级,在仅有数百KB的嵌入式设计中,也开始有.NET与Java的争斗。
从动作与策略而言,确实.NET与Java有更长的战线冲突,但就技术本质而言真是如此吗?这就相当耐人寻味了。