传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台,多客户端(类型).并分享几则案例. 1.智能储物柜 项目背景:某智慧城市项目需要用到有智能锁的储物柜,用app扫码控制存取,并和智慧城市后台交互.智能锁系统是工业的塔式控制器,使用modbus ascii协议控制,端口使用串口.储物柜配备了工控电脑32寸竖屏,工控电脑控制塔式控制器(单片机),工控机…
一个月前微软发布了桌面应用程序转换器(Desktop Application Converter),让我们可以把现有的桌面应用程序(.NET 4.6.1 或 Win32)轻松转换成 通用 Windows 平台 (UWP) 的程序. 这实际上为开发者带来了巨大的机会.目前已经看到许多开发商主动开始这个过程并成功转换,发布到了 Windows 应用商店. 有些应用只需要少量或者不需要做代码修改,最快的一周就可以把自己的桌面应用程序带到Windows 10 应用商店里面.目前有超过3 亿 5000 万…
接下来的几篇,我想讨论下迁移桌面程序到MS Store,可以采用的比较常见.通用性比较强的实施步骤和分层架构. 通常商业项目一般都是不断的迭代,不太可能突然停止更新现有的桌面版本,然后花很长时间从头来写UWP版本,所以我建议将迁移的过程分阶段,通过几个版本的迭代,慢慢地从传统桌面程序,转变成一个可以通过MS Store审核的APPX程序.至于之后要不要变成真·UWP可以视市场反馈决定. 假设现有的桌面程序包含一个MainUI的WPF工程,多个.NET Framework 4.5的类库,以及一个C…
之前跑去做了一年多的iOS开发,被XCode恶心得不行.做人呢,最重要的是开心.所以我就炒了公司鱿鱼,挪了个窝回头去做Windows开发了.        UWP什么的很久没有正儿八经写了,国内的需求非常少.传统的桌面开发倒是因为人越来越少了,需求还在,有少量还不错的职位.现在在做WPF的项目,公司层面倒是很愿意迁移到UWP,但是迁移起来会有很多的困难和限制.同时有这方面热情,且知道怎么去做的人就更少了.        接下来会通过几个短篇来介绍如何通过Desktop Bridge来迁移桌面程序…
迁移桌面程序的时候,有可能你会遇到这么个需求——开机自启动.Windows传统桌面程序的传统陋习.不论什么奇葩软件都想要开机自启动,默认就给你打开,一开机哐哐哐什么雷,什么企鹅都蹦出来,也不管你用不用. 但是上班呢,老板是给钱的,只要有需求,节操什么的不重要.今天我们就来看怎么弄开机自启动……(大雾) 当然我们这里介绍的,是可以让用户随时禁用的.还有就是MS Store在审核时,会让你写需要自启动的理由.原生的UWP APP还会有一个要求授权的对话框. 首先我们还是和上一篇一样,建好一个空的WP…
迁移传统桌面程序到MS Store的另一种方式是使用Desktop App Converter工具.虽然本篇标题包含了Desktop App Converter(以下简称DAC),实际上我是来劝你别用DAC的…… 首先我简单介绍下DAC,DAC可以转换传统桌面程序,将其打包成APPX文件.虽然名字里有Converter字样,实际这是一个打包程序,并不会真正去修改用来打包的源程序. 为了使用DAC,你需要1607版本以上的Windows 10 Pro.我想也没有人会闲的蛋疼用Win7去打包APP进…
在传统桌面程序中,对图标的使用大多是直接嵌入JPG或者PNG的图片.在祖传的1366x768分辨率下,并没有什么问题.相对于手机硬件的突飞猛进,也侧面反映了PC行业的落寞和桌面程序开发的不思进取.用360卫士的群众并不能倒推PC行业的升级.反倒是水果公司双高的利润和口碑让人很是眼馋.加之某软跳出来教猪队友做硬件.现在倒是有些起色,1080p的屏幕已是标配,4k也算常见.那么传统桌面程序在升级过程中,就会遇到今天要讨论的,如何解决高分辨率下图标模糊的问题. 一种解决方案是按最高的分辨率提供图片.这…
Windows10 1809版本开始,微软又对UWP开放了新的Capability:AllowElevation. 通过这个新的Capability,UWP APP能够在运行时向用户请求Admin权限,配合Windows 1607版本就引入的RunFullTrust Capability(参考<迁移桌面程序到MS Store(9)——APPX With Desktop Extension >),我们可以让MS Store中的APP拥有无限接近传统桌面程序的能力.本篇提到的Sample工程位于全…
需求 在WPF应用程序中,需要使用到WEB项目的资源,第一时间想到的就是在WPF窗口中,展现WEB项目中的页面,这样子有两点好处:一是,实现简单,不需要在WPF应用程序中实现UI布局和数据绑定:二是,灵活适应变化,需求有变化时,只需修改WEB项目,WPF项目不需要变动.事物都是两面的,有优点就有缺点,这样做的缺点是:没有充分利用WPF绚丽的界面风格. 实现 在WPF中展现WEB页面有多种实现方式,我选择最简单的一种:使用WPF自带的Frame控件. 1.主窗体: //主窗口 <Button x:…
Excel的多工作薄.多工作表批量合并功能,Excel用户很多这方面的使用场景,也促使了各大Excel各大插件们都在此功能上有所开发,体验程度不一,但总体能够满足大多数的应用场景,本人之前也开发个单独的多工作薄合并功能. 在众多群友反馈想Excel催化剂上也加上多工作薄合并功能.因无法开发出较目前众多插件提供的功能以外较新颖独特的功能,本人最终还是放弃开发此功能. 因微软推出的PowerQuery数据处理ETL插件实在太强大,对于应付多工作薄合并的场景,简直是逆天般轻松易得,故强烈推荐有多工作薄…