ccBoy(.NET专栏):五一,五一之后

SmartDeviceFramework14.zip 立即下载

五一,五一之后


 





小气的神


2002.05.01


 


Article Type: Overview 


难度等级:2/9       


版本:1.48


 


       五一是劳动节,可以休假,所以有时间做一些你平时想做而没有做的事情,比如下面我叙述的这一件。


 


       Microsoft大约在3周之前发布了Microsoft Smart Device Extensions Beta 1 (SDE), SDE有一些不错的特性,不过更多的开发人员会关注两个方面:功能和.NET Compact Framework。


 


功能上它提供了如何使用dotNET技术开发嵌入式设备的一个解决方案,使得嵌入式开发人员在原来的Microsoft eMbedded Visual Tools 3.0之外有另外的开发工具和平台,同时使得更多的其他领域的开发人员对自己的应用向嵌入式开发转移方面更加平滑和经济。SDE是集成在 Visual Studio.NET (VS.NET)中的,那么可以预见未来的eMbedded Visual Tools的发展是有些扑朔迷离的,SDE Beta 1只支持使用Visual Basic.NET (VB.NET) 和 Visual C# (C#)来建立Smart Device Project ,至于C++的用户目前还无法在VS.NET中使用SDE特性。看来Microsoft要将dotNET作为一个和Windows、MSN一样的品牌,深深印在你的脑海中。在Gates的眼中dotNET是一个有很多Value的技术平台,在Steve Ballmer的头脑中dotNET一定要是一个赚钱的品牌。dotNET要让你看得见、听得到,摸得着、享受得了;它会无时无刻、无所不在、无所不能。(后面两句纯属杜撰但版权所有haha)


 


第二个是.NET Compact Framework,dotNET一出世,就有听闻.NET Compact Framework的概念,相信SDE使得它真正提出成为现实,我一直认为.NET Compact Framework比SDE本身更重要,它属于一种概念,这将允许在未来有更多其他厂商产生自己的平台,只要它符合.NET Compact Framework的规范和Microsoft某种的认证。值得一提的是.NET Compact Framework 的大小,根据SDE文档上的说明:The common language runtime for the .NET Compact Framework is approximately 12 percent the size of the full .NET Framework runtime. 现在dotNET 的运行库大约是22M(dotnetfx.exe), 22M的12%,应该说很小了。在后面我的例子中,最后打包的安装文件是15K左右,但这里面不包括任何运行库文件,在CompactFrameworkSDK/v1.0.3300/Windows CE/wce400 目录中发现的netcf.all.wce4.x86.cab是2M左右,如果加上SQL Server CE的开发库和VS.NET安装支持等文件我想最后的.NET Compact Framework大小是在3~5M左右。和以前我猜想的结果相似:比Java的运行库小,比VB的运行库大。12%,看得出是一个不断努力才能达到的指标:)


 


至于.NET Compact Framework和Full .NET Framework之间的异同我根据SDE的文档列了一个表,由于Beta版本未来可能会有所变化。(详细内容见文档不保证个人理解有误)






比较



特性



说明




相同点



Common language runtime



都是” managed code”执行,同样的JIT,垃圾收集机制,全面支持CLS




Assemblies and file formats



都使用的assemblies,有相同的PE格式和MSIL,但是两种平台下二进制不兼容,由于编译后遵循各自目标平台的存储介质要求(strong binding rules.),所以一个Framework下的执行文件不能到另一个Framework下执行,需要重新编译




Multiple language support



Cross-language interoperability 是内建的,目前最先支持Visual C# and Visual Basic .NET.




Common type system



两者是相同的,并且都支持从内建的原始类型进行继承,进行扩展。




Threading model



两者是相同的线程模型,支持多线程。




Standards Support



核心的技术实现都遵循 ECMA 标准




不同点



Application domains



不支持 Full Framework中可以将assemblies装载到” domain-neutral”代码区从而被其它application domains使用




ASP.NET



不提供ASP.NET的支持,对于mobile devices则使用ASP.NET mobile Web controls




Classes



支持Full Framework的一个子集,并且有相同的命名。但具体的数目目前还没有提供文档说明。




COM interop and callback functions



只支持系统平台下原始DLL的交互调用(P/Invoke),不支持使用COM interop。意味着不能直接和COM交互。但如果原始DLL调用COM,则它变相的和COM交互。




Data



不支持System.Data.OleDb


支持ADO.NET并包括SQL Server CE的一个子集




Data Types



对于临界(极大或极小)的除法运算会返回不正确结果。


支持Math.Round(double a)但不支持两个参数的Round




Delegates



不支持asynchronous delegates




Deploying applications



简单的Copy方式。使用对应目标平台的cable包和Infrared port传送部署。




Exception description strings



The .NET Compact Framework provides exception strings as a setup option for conserving space on the device.




Globalization



支持Globalization ,但依赖目标的操作系统




Input/output (I/O)



Because of differences in device operating systems, there are constraints and restrictions on the I/O model.


不支持 file change notifications.




Memory



针对battery-powered systems进行了优化和设计。




Networking



独特的Infrared Data Association (IrDA) classes


可以用它和Web listening classes处理HTTP请求。




Performance testing



不支持code profiling和Perfmon.exe,针对.NET Compact Framework特定用途的performance tools已经开始开发了




Reflection



You can shift up to 64 bits using the OpCodes.Shl field. Any larger specification is rest to 64.




Security



There are several important security differences and considerations.




Serialization



不支持BinaryFormatter or SoapFormatter进行序列化。但支持在XML Web services中使用SOAP序列化传送对象数据。




String manipulations, Regular Expressions



可以使用System.Text.RegularExpressions.dll但应用程序仍然是二进制不兼容的,不同Framework需要重新编译。




Windows Forms and graphics



这部分是专门设计的,和Full Framework有些不同。


SDE安装文件中有具体的说明,并且列举了一些。




XML



仅支持DOM 不支持XML文档的 Schema验证和XPath查询


类库方面目前没有具体的清单和对应说明,可以明确的是,有关Infrared和SQL Server CE的类库是新增的,Full Framework中还没有。


 


Microsoft的Beta1软件是著名的“玩具性”,不过近来的稳定性都不错。关于SDE依然还是有些有趣的东东和技巧,我先说明一些,然后我们看一个例子:


1.      SDE不支持Win98 ,WinME,最低是Windows 2000 Pro SP2起。


2.      RTM5 之后的VS.NET都可以了,如果没有PocketPC机器那么不用安装ActiveSync 3.5


3.      内存大量的内存,Window2000要256M以上,XP就在256M+128M另外模拟器需要再加64M


4.      安装方法十分古怪,如果你安装过PDC版本的SDE,那么连VS.NET都要Uninstall,不要挑战这个规则,因为挑战者最后格式化了硬盘,连操作系统都重装。


5.      糟糕的是安装之后,因为SDE会覆盖Full Framework的若干文件,目前没有任何保护措施,这意味着如果你Uninstall SDE,那么VS.NET会被破坏,你需要先uninstall VS.NET再重新Install VS.NET ,目前Microsoft采用事先征询的方式,你先同意这个规则再安装SDE


6.      安装完毕,你原来VS.NET的工具栏可能会紊乱,不要害怕。先关闭VS.NET再启动一次VS.NET。另外也不能直接看见SDE的帮助文档,需要按照Readme文档的说明再设置一次,然后再重新启动VS.NET一次,如果工具条在启动并提示安装新的帮助文件成功之后又紊乱了,那么不要害怕,再重新启动一次VS.NET


7.      没有PocketPC机器的一定会使用Emulator,那么注意三点,一:如果你的内存或CPU不够大那么呢要有足够的耐心,等待它出现美丽的彩色画面为止,开始我一直以为安装失败。二:按文档说明建立一个Microsoft Loopback Adapter网络连接,如果你在局域网内就不用了,Emulator似乎要检查网络连接,试图和它的客户(VS.NET)建立一个TCP的端口,机器最好指定一个固定的IP。三是:机器有一个串口或并口要可以用,不然Emulator可以启动,但在最后运行看结果时会失败,也就是说什么也程序结果也看不到。


 


好吧,开始一个例子测试一下吧,很不好意思有手误,first被输入成Frist , 这不是第一次了,上一次我将boss错输成bose,结果稍稍有些不同:)



 



 


目前只有C#和VB.NET有这个选项,然后选择一个Windows的应用程序吧(Microsoft号称这是SDE的强项)



 



 


如果你熟悉WinForm的编程,那么几乎没什么不同,就是Form的大小有限制。所以你看到控件的排列上有些不同:


 




 


之后如果编译通过,那么就是最振奋人心的时刻了,现在要把你的Project部署到PocketPC机器或PocketPC 的Emulator上,如果你使用Emulator那么建议你先选择Tools->Options->Device Extensions->Devices然后选择Transport的Configure选项,看下面的对话框,确定你有一个空闲的端口,最好是有一个可以用的串口。



 



 


然后关闭窗口,再选择Connection,也就是预先连接一次,往往这次成功了才是OK的,第一次连通的过程是痛苦的,你唯一可以看得是VS.NET下面的状态栏,会有很小的字表示正在建立连接,要等很久,只到看到Devices Ready你就可以大松一口气,注意这小字几乎一闪就过,恢复成VS.NET的状态栏。如果是Failed那么就惨了,它不会给任何提示或失败原因。我开始就忽略了串口,结果为了连通花了近两个小时,几近绝望差点Uninstall,想想还要Uninstall VS.NET还是坚持下来了,所以先祝你好运。


结果象下面这样,目前还不支持中文(可能象上面表格中所的,取决于OS),我把标签都改了。



 



 


 


       SDE依然给我们带来了许多振奋的信息和东东,开始我很难理解会舍弃Full Framework来在这个局限性比较大的环境下编程,经过实践之后发现它依然有许多不同的特性和体验,当然如果有一部PocketPC机器那就更好了,感觉会更真实。任何嵌入开发人员都可以从SDE获得一些和以前不同的开发体验,另外需要澄清的是任何Full Framework的开发人员不要简单的以为有了SDE,那么嵌入式开发就极其简单了,只用将原来的程序重新编译一下就可以运行了。了解之间的不同做到最平滑的移植(当然如果你有这样的应用或需求)对每个开发人员仍然是一个挑战。不过发现和体验这些都需要花费你不少的时间,所以它适合你在这个五一假期来做(不仅是SDE,可以是任何平时你想做而借口没有时间做的事情),你可以有充分的时间决定是否要体验一下,如果不满意,可以重新安装你的VS.NET:)


 


       好了,最后感谢淡蓝蓝,如果不是他我现在为争取获得SDE而经历Microsoft迷幻而优雅的Beta Test申请程序。很喜欢他的网站,特别是他FTP中的那句话:来自热血、来自热血、来自热血、值得信任。它让我想起五一之后的五四青年节,烧毁赵家楼,向北洋军阀宣战是需要勇气和热血的,所以五一之后是五四,这个值得我们缅怀和敬慕能够激起许多埋藏已久积极而跳跃情感思绪的中国青年节。


 


 





特别:


本文优快云署名首发,转载或改编请注明作者和出处。如果有问题,请发电子邮件给new2001@msn.com


以上文字和图片涉及其他人的隐私和个人权利,所有文字和图片只用于内部交流,不作任何新闻发表和商业用途。


 

亚马逊(Amazon ads)广告API申请步骤(已经更新完) 你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。 阅读详情

相关推荐

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5565

Smart Device Framework ( SDF )类库

由于项目需要,需要开发手机版的图像处理程序,但是碰到一个难题,那就是 .NET Compact Framework 不支持完整版的很多功能,例如它不支持PixelFormat属性,这让我很头疼,因为对图像处理的关键函数Lockbits里面的一个参数就是图像的PixelFormat,这么一来难道只能处理特定格式的图像??最后找到 OpenNetCF 推出的 Smart Device Framewor

小璐子又回来了。。。 2239

PX4飞控 vs 大疆A3:开源与闭源方案在无人机硬件架构中的实战对比

本文深入对比了PX4飞控与大疆A3在无人机硬件架构上的差异,分析了开源与闭源方案在工业级无人机开发中的优劣势。通过详细的硬件配置、传感器兼容性、扩展能力及性能测试数据,为开发者提供选型指南,特别适合需要自定义算法和复杂功能集成的项目。

a3b4c5的博客 888

Smart Device Framework 2.3 Released

完全兼容Visual Studio 2008,不再有Form Designer的bug。大家可以下载免费版本使用。 http://www.opennetcf.com/cf/products/sdf.ocf

weixin_34007020的博客 161

钣金件设计规范

为保证折弯 强度,钣金折弯钣金应大于材料的最小折弯半径。在设计U型弯曲件时,两弯曲边最好长度相等,以免弯曲时产品偏 移而产生废品,如果因为结构设计不允许两边一样长,为保证产品在模 具中准确定位,应预先在设计时添加工艺定位孔,特别是多次折弯成 形的零件,必须设计工艺孔为定位基准,以减少累计误差,保证产品 质量,如图2-11所示。凸包是依靠材料的延伸使钣金件形成局部凹陷或凸起的冲压工序凸包与拉深是完全不同的冲压工艺,凸包中材料厚度的改变为费意图性 的,即厚度的少量改变是变形过程中形成的,不是设计指定的要求。

制冷技术咨询与服务的博客 7327

好书分享:Control and Estimation with MATLAB(5th Edition)pdf

基于MATLAB的控制与估计》(第5版)由八章组成,包括控制算法和设计。主要内容包括状态估计和数据平滑、RLS和卡尔曼滤波器状态估计、控制系统设计、自适应控制和PID。书中的概念已经使用MATLAB和Simulink实现。提供了可下载的MATLAB和Simulink文件。适合人群:大学生、研究生、控制类工程研究人员。需要电子版pdf,回复索取。

jixianhu的博客 1510

解决OpenNETCF Smart Device Framework 2.0的Samples无法运行的问题

下载OpenNETCF Smart Device Framework 2.0的Samples运行时出现以下错误提示: “从用户数据存储中检索信息时出错。未找到平台。” “由于数据存储中不存在项目引用的设备平台,因此无法打开项目。” 找到samples目录下示例的.csproj文件,将<PlatformID>4118C335-430C-497f-BE48-11...

dbwwl0501的博客 197

告别版本过低提示!微信3.9登录修复与聊天记录无缝迁移全攻略

本文详细解析了微信3.9版本过低提示的根源,并提供了完整的修复方案和聊天记录迁移指南。通过专用修复工具绕过版本检测,以及新旧版本聊天记录目录对比,帮助用户实现无缝迁移。特别提醒备份重要数据,确保操作安全。

weixin_42535461的博客 3143

移动平台控件库:opennetcf的Smart Device Framework

基于.net compact framework进行移动平台开发,相当便捷,但是也有天生的缺陷,就是compact framework在功能上的缺失,许多在完整版中能够使用的控件,方法都没有了,也就增加了开发的难度和时间。最近在网上搜索图像按钮的时候,偶然发现有人推荐了opennetcf的Smart Device Framework(当中的Button2就能够显示图片),试用了一下,蛮好的,特推荐给大家,也给自己留个记录,便于以后查找。下载地址及相关信息如下:http://www.opennetcf.com

智周万物 1859

用 Docker 一键部署 SillyTavern酒馆 mac/windows/linux通用教程,我再也不手动折腾了!

本文介绍了如何使用 Docker 一键部署 SillyTavern 项目,适用于 Mac、Windows 和 Linux 系统。SillyTavern 是一个本地部署的大语言模型聊天界面,支持多种插件和扩展。文章详细说明了安装 Docker、拉取项目、启动容器、配置白名单、启用插件等步骤,并提供了常见问题的解决方法。通过 Docker 部署,用户可以避免繁琐的手动配置,快速搭建和运行 SillyTavern,适合希望简化部署流程的用户。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2622

AI辅助决策支持系统架构设计避坑:5个常见技术选型误区及正确方案

AI辅助决策支持系统(AI-DSS)是指通过人工智能技术(机器学习、自然语言处理、知识图谱等)赋能传统决策支持系统,帮助决策者在复杂业务场景中(如供应链优化、风险控制、医疗诊断、金融投资等)提升决策效率和准确性的系统。与传统BI工具不同,AI-DSS不仅能"展示数据",还能基于数据生成"决策建议"甚至"自动执行决策"。技术选型是AI-DSS架构设计的核心环节,涉及数据处理引擎、模型框架、算力资源、集成接口等关键组件的选择。效果不达标:模型预测精度低、决策建议不可用;成本失控:算力资源浪费、维护成本高企。

AIGC应用创新大全的博客 1382

使用Microsoft.SmartDevice.Connectivity.dll中遇到的问题

使用Microsoft.SmartDevice.Connectivity.dll进行与智能设备的连接,原来在Windows 7 32位系统的时候,代码运行没有一点问题,后来操作系统换成了Windows 7 64位的,这时运行到下面一句的时候会出现异常。 var manager = new DatastoreManager(CultureInfo.InvariantCulture.LCID);...

weixin_30437847的博客 222

【原创教程】汇川H5U入门教案第二课

定时器指令IN输入能流从OFF变为ON时,定时器启动计时,输出Q为ON,IN输入能流从ON变为OFF时,在IN保持为OFF期间,定时器的运行时间是PT参数指定的时间,定时器定时时间达到PT参数指定的时间后,Q变为OFF。IN输入能流为ON时,ET输出值为0,IN从ON变为OFF时,在定时器计时运行期间,ET输出当前的计时时间,定时器计时时间到达PT参数指定的时间后,ET值保持。IN输入能流为ON时,在定时器计时运行期间,ET输出当前的计时时间,定时器计时时间到达PT参数指定的时间后,ET值保持;

Qinmingyue13的博客 2478

Smart Device Framework 2.2 发布了

  2008年的情人节,OpenNETCF.org低调的发布了他们的 Smart Device Framework的2.2版,您可以下载社区版或者购买包含源代码的版本。下面是SDF2.2中的一些修改和新增的内容: 一.修改和修正 Bug fix in CRC class Bug fixes in audio classes ConnMgr EnumDes...

weixin_33991727的博客 205

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

我的.NET书架 (入门篇)

 我的.NET书架 (入门篇) 小气的神2003-01-05 Article Type: OverView  难度等级:1/9        版本:1.02 好书永远是学习的良师益友,网友永远是进步的学习榜样,而网页就是一种对话一种分享。下面的书都是针对刚刚入门的”.NET CLR Developer”,这些书适用在刚刚从Java、C/C++环境

ccBoy的专栏 4125

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

我的.NET书架 (进阶篇)

 我的.NET书架 (进阶篇) 小气的神2003-01-06 Article Type: OverView  难度等级:1/9        版本:1.20 对于已经熟悉和习惯.NET Framework开发环境的开发人员,还需要面临另外一个.NET的开发学习曲线和阶段,那就是活学活用.NET技术到自己原来的开发经验中,到新的新的应用开发中。典型的有

ccBoy的专栏 3708

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

应用WSDK - 实践Web Services的X.509证书签名(序)

应用WSDK - 实践Web Services的X.509证书签名 小气的神 2002-12-18 Article Type: OverView  难度等级:2/9        版本:1.18        好了,我想这是一个美貌的时刻,至少对于许多平凡、依赖、新潮而且很Cool的微软开发人员来说,WSE 1.0(Web Services Enha

ccBoy的专栏 2983

应用WSDK -附录如何使用SOAP Trace Utility进行调试

应用WSDK -附录如何使用SOAP Trace Utility进行调试  小气的神2002-12-05 Article Type: Overview  难度等级:3/9        版本:1.20 这个附录是用来说明,我们在Web Services应用开发过程中,如何查看Web Services Client和Web Services Server端

ccBoy的专栏 2812

开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)

开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)  小气的神 2001-09-22 多语言版本的应用程序曾是一个门槛,迈过去意味着它可以面对更多的使用者。对于商业程序来说一个本地化的版本意味着可能打开一个更大的市场。中文版也曾是我们心中有关中国软件的一个情结和期望。希望dotNET能给我们带来一些不同的观点和变革,让我们重新看待自己的每一个软件应用。

ccBoy的专栏 2372

一个四层应用体系架构 [CBOFramework C# Beta 1 ]

一个四层应用体系架构 [CBOFramework C# Beta 1 ] 小气的神2002-5-12 Article Type: Overview  难度等级:7/9        版本:3.22        有关dotNET下的应用体系构架的话题,我们可以明确的从某一点开始,但是可能没有结束的那一点,永远没有:) 一大批原来COM+的程序员开始在CO

ccBoy的专栏 2295

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [1]

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )   小气的神2002-5-25 Article Type: Overview  难度等级:5/9        版本:4.16        当Web Services不仅作为一种新技术,而且也作为一种对现有技术的整合时;它开始影响一

ccBoy的专栏 2263

Visual Studio.NET快捷键最爱收藏(多图)

Visual Studio.NET快捷键最爱收藏  小气的神 2002-01-23 Article Type: Information难度等级:0/9          版本:1.16     这个收藏展示的灵感来源于前些天我在优快云发的帖子《升级到Visual Studio.NET 的10个理由》和《不升级到Visual Studio.NET 的10

ccBoy的专栏 2254

Microsoft Content Management Server 2002 bate1 速递(多图)

Microsoft Content Management Server 2002 bate1 速递(多图)  小气的神2002-07-17 Article Type: Overview  难度等级:1/9        版本:1.02        两天前,Microsoft发布了Microsoft Content Management Server

ccBoy的专栏 2237
上一篇: 新事务之一: dotNET和COM+中的事务(2)
下一篇: 《专栏声音》面向对象简史 (附: dotNET Architect们应该思考的问题)
ccBoy
博客等级 码龄26年 6粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值