Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

原文:Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行。

上一章我们讲了Raspberry安装Win10 IoT系统及搭建Visual Studio 2015开发环境的方法(http://www.cnblogs.com/cloudtech/p/5562120.html) , 这次我们来看如何将开发好Win10 IoT程序部署到Raspberry的环境上。

分别使用Remote Machine、Windows IoT Core Web Management、Power Shell命令 三种方式部署。

准备工作:

Raspberry Pi 2

刷好Win 10 IoT Core系统的 Raspberry Pi 2

部署Visual Studio 2015开发环境的PC

支持HDMI的显示器

 

目标:通过显示应用程序的界面来证明部署成功。

首先创建一个Universal Windows应用程序,打开 VS 2015 点击 New Project 在Visual C# -> Windows -> Universal 中找到 Blank App (Universal Windows) 项目模板,选中模板输入项目名称后点击OK按钮创建项目。

修改主界面的MainPage.xaml文件,在中间位置加入TextBlock标签用于显示启动时间。(XAML是eXtensible Application Markup Language的英文缩写,在WPF技术中用以定义界面样式,并可以实现MVVM结构,Windows Universal Project 中的XAML相当于WPF中的一个子集提供了一部分功能,XAML的内容比较多我们会在后面的章节中详细说明)

这里为了简便把MainPage.cs作为ViewModel,来实现INotifyPropertyChanged接口完成一个简易的MVVM框架。

完整代码:

<Page
    x:Class="CloudTechIot1dot5.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:CloudTechIot1dot5"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>
            <Setter Property="VerticalAlignment" Value="Center"></Setter>
            <Setter Property="FontSize" Value="60"></Setter>
            <Setter Property="FontWeight" Value="Bold"></Setter>
        </Style>
    </Page.Resources>
    <!--http://www.cnblogs.com/cloudtech
        cloudtechesx@gmail.com-->
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <TextBlock Foreground="LightBlue" Text="cloudtechesx@gmail.com"></TextBlock>
        <TextBlock Grid.Row="1" Foreground="Red" Text="{Binding CurrentTime,UpdateSourceTrigger=PropertyChanged}"></TextBlock>
        <TextBlock Grid.Row="2" Foreground="Yellow" Text="Remote Machine"></TextBlock>
    </Grid>
</Page>

 

namespace CloudTechIot1dot5
{
    //http://www.cnblogs.com/cloudtech
    //cloudtechesx@gmail.com
    public sealed partial class MainPage : Page, INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        private string _currentTime;

        public string CurrentTime
        {
            get
            {
                return _currentTime;
            }

            set
            {
                _currentTime = value;
                OnProperityChanged("CurrentTime");
            }
        }

        public MainPage()
        {
            this.InitializeComponent();
            this.DataContext = this;
            CurrentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        }

        public void OnProperityChanged(string propertyName)
        {
            PropertyChanged?.Invoke(propertyName, new PropertyChangedEventArgs(propertyName));
        }
    }
}

为Raspberry连接电源及网线,连接HDMI显示器。

接通电源待系统启动完成后显示器上会显示当前IoT设备的IP地址。

下面我们来部署IoT程序

第一种方法 : Remote Machine 部署

在 Visual Studio 2015 的工具栏中选择 Remote Machine 进行调试,IP地址输入设备对应地址。点击运行后会自动部署到设备上。

程序启动完成显示器显示预期界面。

第二种方法:Windows IoT Core Web Management 部署

首先要将程序打包,Visual Studio 2015 的解决方案浏览器中右击要打包的项目,在Store菜单项中选择Create App Packages。

在询问是否上传至Windows Store时选择No(我们现在还用不到这个功能),Generate app bundle一项选择Never。

点击Next按钮后开始编译文件。编译完成后显示输出路径。

打开浏览器输入IoT设备的IP地址和端口号8080进入 Windows IoT Core Web Management 登录界面 (后面我们会有文章专门介绍 Windows IoT Core Web Management),输入初始用户名 Administrator 和密码 p@ssw0rd 进入主界面。

在左侧菜单中选择Apps菜单项,App Manager面板中会显示安装的程序及运行的程序等信息,最下面是安装App功能。

App package在刚才的发布目录下选择.appx文件。

点击Go按钮开始安装程序,安装结束后在Installed apps中选择刚才安装的应用,点击Start按钮启动程序,程序启动完成显示器显示预期界面。点击Set Default按钮会把程序设置为默认程序,每次系统启动后会默认启动。

第三种方法:Power Shell 命令部署

首先将程序打包,方法同第二种方法的打包过程。

Win10 IoT默认支持FTP,使用FTP客户端将刚才生成的程序目录上传至Win10 IoT的根目录下。

使用管理员权限启动PowerShell,输入如下命令连接Win10 IoT并进入目录。

net start WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.1.2
Enter-PsSession -ComputerName 192.168.1.2 -Credential 192.168.1.2\Administrator

找到刚才上传的文件夹,使用cd命令进入文件夹,找到.appx文件使用Add-AppxPackage命令安装,这里我们执行Add-AppxPackage CloudTechIot1dot5_1.0.2.0_ARM.appx。

程序启动完成显示器显示预期界面。

到这里创建Win10 IoT UI程序和使用三种方式部署的过程就完成了,如果对代码有优化的建议,欢迎留言或发邮件给我(cloudtechesx@gmail.com)。也可以扫描下面的二维码加我的微信号查看以前的文章。

项目源码 GitHub https://github.com/CloudTechx/CloudTechIot 的 CloudTechIot1dot5 目录下。

Win10 IoT C#开发 3 - GPIO Pin 控制发光二极管 http://www.cnblogs.com/cloudtech/p/5617902.html

时间: 2024-11-03 02:31:10

Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法的相关文章

Win10 IoT C#开发 6 - 4x4矩阵键盘扫描

原文:Win10 IoT C#开发 6 - 4x4矩阵键盘扫描 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我们讲了 Win10 IoT 如何对本地 IoT 设备内嵌 SQLite 数据库进行 CURD 操作 ,这章我们来学习如何使用 GPIO Pin 扫描4x4矩阵键盘按键状态.如果对安装部署过程还不熟悉可以参考前几篇文章,Raspberry

Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD

原文:Win10 IoT C#开发 5 - 操作 IoT 设备内嵌 SQLite 数据库 CURD Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 前几章我们讲了 Raspberry 安装 Win10 IoT 系统及搭建开发环境.部署程序及操作 GPIO 和 UART 的方法,通过这些功能我们已经可以获得到传感器发送给我们的数据,但是如果数据不能及时推送

Win10 IoT C#开发 4 - UART 串口通信

原文:Win10 IoT C#开发 4 - UART 串口通信 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,既可以开发设备UI与用户交互式操作,又可以控制GPIO等接口,使得原来嵌入式繁琐的开发变得简单.通过Remote Debug功能可以进行断点追踪调试.C#语言本身也有很好的用户基础,相信Win10 IoT 不远的将来会火起来.上个月帮朋友解决了关于Win10 IoT 的一些技术问题,当前也有很多公司在尝试采用Win10 IoT进行开发,可能也会遇到这些问题,

Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境

原文:Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. The Raspberry Pi Foundation 是英国一个致力于科技推广的慈善组织,为广发爱好者和DIY科技迷开发了搭载ARM架构处理器的 mini 电脑 Raspberry Pi 并获得了成功.而微软最新发

使用 Microsoft.NET Frameworks 创建基于 Windows 的应用程序(转)

摘要: :本文介绍了 Win 表单这一新的窗体程序包,借助这一程序包,开发人员能够充分利用 Microsoft Windows 操作系统所提供的 UI 功能.目录 简介 介绍 Win Forms 更好的易学易用性 布局 GDI+ 访问底层系统 结论 --------------------------------------------------------------------------------简介 目前 Web 已成了街谈巷议的话题,看起来好像 Microsoft Visual S

ASP.NET批量操作基于原生html标签的无序列表的三种方法_实用技巧

在网页开发中,经常要用到无序列表.事实上在符合W3C标准的div+css布局中,无序列表被大量使用,ASP.NET虽然内置了BulletedList控件,用于创建和操作无序列表,但感觉不太好用.本篇介绍服务器端ASP.NET批量操作基于原生html标签的无序列表的三种方法. 方法一,将li元素做成html控件,加上id,用FindControl方法. aspx代码: <form id="form1" runat="server"> <ul>

Win10玩DNF闪退黑屏怎么办 Win10系统玩DNF闪退黑屏的原因及三种解决方法

原因分析一: 查看游戏是不是在维护. 解决方法: 如果在维护的话是无法进入游戏的,因此只能够等待游戏维护结束. 原因分析二: 一定要确保网络稳定,如果网络不稳定那么就容易出现游戏卡顿,甚至游戏闪退黑屏等待现象(特别是DNF网速一旦不稳定就会变卡,切换频道出现黑屏,甚至闪退). 解决方法: 遇到这样的情况我们可以利用360安全卫士自带的加速小球,点击[一键加速]来关闭后台占用网速的进程: 原因分析三: 由于最近DNF更新了国庆活动,因为游戏包有问题或者程序出现错乱. 解决方法: 我们可以使用TGP

使用图形编辑框架创建基于Eclipse的应用程序

本文为您从头到尾地介绍了使用 GEF 的步骤.我们不是完整地完成每个步骤,而是将使用您的应用程序模型的子集,并先使该子集工作.例如,开始我们可能会忽略连接,或者只注重于您应用程序中图形元素类型的子集. GEF 概述 GEF 假定您拥有一个希望以图形方式显示和编辑的模型.为了做到这一点,GEF 提供了可在 Eclipse 工作台中任何地方使用的查看器(类型为 EditPartViewer ).象 JFace 查看器一样,GEF 查看器是 SWT 控件上的适配器.但是它们的类似之处仅此而已.GEF

FMS3系列(三):创建基于FMS的流媒体播放程序,看山寨帮的山寨传奇

要实现媒体流文件的播放是非常简单的,只要在FMS服务器上提供好流媒体文件,Flash客户端通过NetConnection连接到FMS服务器,然后通过NetStream加载就OK.关于怎么连接FMS在本系列的前两篇已有详细介绍,首先得在fms上建立好服务器应用并部署好媒体文件,如下图示: 下面是在Flash中开发的流媒体文件播放示例程序: 1 import flash.display.*; 2 import flash.events.*; 3 import flash.net.*; 4 5 var