上一篇我们提到了怎么在Desktop Extension中等待并处理UWP端发出的request.在本篇中将描述UWP和Desktop Extension双向交互的场景,即存在从两端各自发出request,交由对方接受处理.依然是回顾下之前总结的四个场景分类: 执行后立即退出 等待request,处理完后退出 一或多个request/response周期 和UWP程序相同生命周期 这种存在多个request/response周期的场景,具有以下特征: UWP和Desktop Extension两…
上一篇<2020年的UWP(2)--In Process App Service>中我们了解了UWP和Desktop Extension可以通过AppService进行数据交互.本篇我们就来梳理在不同场景,UWP和Desktop Extension可能存在的交互方式. 对Desktop Extension中程序的类型,我暂时分为以下四种: 执行后立即退出 等待request,处理完后退出 一或多个request/response周期 和UWP程序相同生命周期 本篇我们仅讨论第一种,Deskto…
上一篇我们讨论了UWP和Desktop Extension间的双向通讯,适用于Desktop Extension中存在用户交互的场景.本篇我们讨论最后一种情况,与前者不同的是,Desktop Extension和UWP保持相同的生命周期,同时规避AppServiceConnection可能被Windows回收的限制,在任意时刻能够反向通知UWP的场景.首先回顾之前总结的四个场景分类: 执行后立即退出 等待request,处理完后退出 一或多个request/response周期 与UWP相同生命…
上一篇我们讨论了UWP和Desktop Extension交互中,Desktop Extension执行后立即退出的场景.下图是提到的四种场景分类: 执行后立即退出 等待request,处理完后退出 一或多个request/response周期 和UWP程序相同生命周期 本篇我们讨论第二种,Desktop Extension等待request后,根据传参完成操作后退出的,短生命周期场景.该类型有以下特征: 可能存在多次的单向调用 通过request接收参数 不关心返回结果 Desktop Ext…
在<迁移桌面程序到MS Store(8)——通过APPX下载Win32Component>中我们讨论了通过APPX来下载Service部分的安装包.但是纯UWP的客户端并不能自动运行下载的exe或者msi文件.本篇将着手解决这个问题.假设我们有如下结构的application,蓝色APPX中包含UWP及.NET Standard Libraries.而Service部分以WCF的形式Host在Windows Service上,这其中包含了诸如Win32 API等无法迁移到UWP的内容. 因为用…
涨姿势UWP,一个开源的RSS阅读器,一个纯粹的项目,一个有道德的APP,一个脱离了低级趣味的作者,一些有益于人民的代码.骚年,还等什么,来涨点姿势吧! 该项目代码可能会引起部分人群的不适,敏感人群请在父母陪同下阅读. 看到第三段的骚年们,我想你们是对这个RSS的阅读器感兴趣了,该项目是一个极为简单的UWP的工程,代码托管在GitHub上,供有兴趣学习UWP APP开发的童鞋们参考.工程主要包括以下几个文件: 工程 文件 备注 ZhangZiShiRssRead RssReader.cs 负责R…
之前我们讨论了涨姿势UWP的RSS数据源获取,以及作为文件存储到本地,再将数据转化成Model对象.这部分非UI的内容非常适合添加Unit Test.不涉及UI的话,UT写起来简单高效,很是值得投入一点时间以保证程序的可靠性. UWP的Unit Test创建起来并不复杂,首先在涨姿势UWP解决方案下,创建和ZhangZiShiRssRead工程同级的UT工程:ZhangZiShiRssRead.UTTest. 点击确定之后,会创建新的UT工程,结构和一般的UWP工程基本一致,同时会自动包含Zha…
前一篇涨姿势UWP源码分析从数据源着手,解释了RSS feed的获取和解析,本篇则会就数据源的保存和读取进行举例. 和之前的Windows Runtime一样,UWP采用IsolatedStorage的方式来存储APP的私有数据,这样做到APP之间互不干扰,减少了错误及安全隐患.现在的Application的设计似乎都流行这个做法. UWP中对应用程序数据存储区的访问,通常使用ApplicationData这个类来操作,我们把最常用的一些属性列出: 属性和方法 用途 public Storage…
本篇开始具体分析涨姿势UWP这个APP的代码,首先从数据的源头着手,即RSS feed的获取和解析,相关的类为RssReader,所有和数据相关的操作均放在里面. 涨姿势网站提供的RSS feed地址为http://www.zhangzishi.cc/feed,在UWP中想要通过发送http request并从URI接受http response,最简单的方式就是使用HttpClient: public async Task<string> DownloadRssString() { var…
懒癌晚期兼正月里都是过年,一直拖到今天才继续更新.之前的几篇介绍了数据的来源,属于准备工作.本篇我们正式开始构建涨姿势UWP程序的UI界面. 我们这个Hello World程序比较简单,总共只有一个页面,在PC和Tablet上呈左右分开,左边以列表显示新闻标题及简述,右边则显示新闻正文. 对于这样的一个布局,Grid无疑是最为合适的Panel,大体是以下的结构: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition x:Name=…