当前位置: 首页 > news >正文

.NET Micro Framework初体验(二)

下面我们以Presentation为例,来看一下NETMF程序的结构,以及Visual Studio 2004对NETMF的支持。
使用VS 2005打开Presentation工程,程序入口点在Presentation.cs中,MyApp类是继承自Microsoft.SPOT.Application类。在静态的Main函数中,调用MyApp的Run方法。需要注意的是,在OnStartup函数中,程序创建了MainMenuWindow对象,也是程序的主窗体。
MainMenuWindow类也在Presentation.cs中,间接派生自Microsoft.SPOT. Presentation.Windows类。在MainMenuWindow类的构造函数中,程序创建了Panel、TextFlow、ListBox、Button等控件。
结合运行后的效果,这些代码都是十分好理解的。在GpioButtonInputProvider.cs中,是与硬件相关的代码,Button的控制是通过GPIO的Pin来实现的。不过实话说,这部分代码我没怎么看懂。
代码说到这里,下面来说编译。我们直接点击Run的Button,就可以启动模拟器并且进行运行。这个和.NET CF程序启动模拟器调试的方式差不多,不过,启动速度比.NET CF的模拟器要快很多了,这个大概是因为NETMF的模拟器并没有真正模拟硬件环境,只是在.NET Framework中模拟NETMF的行为吧?
模拟器是五个Button,程序界面也十分简单。主要是一些控件使用和GDI绘制(我不知道NETMF的绘制函数是不是也叫GDI)。
关闭模拟器,退出调试环境,我们选择Project菜单下的工程属性,我们可以看到,在最后增加了Micro Framework的选项。我们可以在这里选择输入设备,默认是模拟器,此外还支持USB、串口、TCP/IP的调试程序。另外,在Application页里我们可以看到,目前的示例代码都是命令行程序,这个我不太理解。
最后来看看创建工程向导,选择File New Project,我们可以在Visual C#下面看到一个新的类型“Micro Framework”其中包括,Class Library、Console Application和Window Application,这几个都比较好理解。此外竟然还有一个Device Emulator,难道我们可以自己编写模拟器?想不明白。
好了,关于NETMF的事情,就写这么多,最后祝大家新年快乐。希望大家新年假期有空研究研究NETMF。

相关文章:

  • linux中的驱动文件的内容,Linux内核驱动中对文件的读写
  • Yale cas服务器端/客户端环境配置以及其在tomcat服务器下SSL安全协议得部署之完全实现篇...
  • linux程序文件上锁,Linux下对文件的某一记录进行上锁
  • Linux中通过缓存DNS的解析来提高上网的响应速度!
  • 在linux安装java环境变量配置,在linux安装java环境变量配置
  • linux centos7服务器时间,centos7.2_x64搭建ntp时间服务器
  • 利用ubint安装Linux到u盘,Ubuntu12.04安装到U盘里
  • 大年三神
  • rtl8723BS网卡linux,关于 RTL8723BS 与此同时开启 STA/AP 模式
  • 我为什么选用转码的方式调整码率
  • yunos运行linux程序,YunOS开放平台
  • linux xtrabackup备份恢复,xtrabackup 备份和恢复docker容器内的mysql
  • Free Mind 06年2月 SourceForge 推荐项目
  • linux异常断电检查,linux断电后,出现fsck失败的解决方法
  • 【FreeMind】简介信息
  • 【391天】每日项目总结系列128(2018.03.03)
  • 2017-09-12 前端日报
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java8 Stream Pipelines 浅析
  • JWT究竟是什么呢?
  • KMP算法及优化
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Netty源码解析1-Buffer
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 测试开发系类之接口自动化测试
  • 番外篇1:在Windows环境下安装JDK
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 聊一聊前端的监控
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 问题之ssh中Host key verification failed的解决
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #NOIP 2014#Day.2 T3 解方程
  • (12)目标检测_SSD基于pytorch搭建代码
  • (arch)linux 转换文件编码格式
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)学习JVM —— 垃圾回收机制
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (十六)Flask之蓝图
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)SpringBoot3---尚硅谷总结
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)项目管理杂谈-我所期望的新人
  • . Flume面试题
  • .NET 4.0中的泛型协变和反变
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [AIGC] Redis基础命令集详细介绍
  • [BUUCTF]-Reverse:reverse3解析
  • [C# 基础知识系列]专题十六:Linq介绍
  • [codevs 1296] 营业额统计
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [EWS]查找 文件夹