随笔分类 - 桌面UI开发
摘要:题记:本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试。所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试。要对Windows桌面应用程序进行UI自动化测试,目前可选的技术主要是两种:VS自带的CodedUI Test和Appium+WinAppDriver。但是,微软已经宣布VS2019将是带有CodedUI Test的最后一...
阅读全文
摘要:(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。) 题记:随着Windows 10的正式发布,作为.NET开发人员应该开始或多或少了解一下通用(Universal)Windows App的开发了。 所谓Universal Windows App(简称UWP),就是开发一次,可以运行于所有以Windows 10为内核的系统和设备上,包括:桌面设备、移动设备、X...
阅读全文
摘要:ClickOnce是.NET用于Windows应用程序的一种便捷部署方式。不过由于便捷,导致缺少自定义操作的空间。比如需要对通过ClickOnce部署的应用程序的主程序(exe文件)进行数字签名就比较麻烦。下面简单分享下,在既能获得ClickOnce的便捷功能(包括VS自动生成ClickOnce部署包)的同时,又能方便的对应用程序进行签名。1,为什么要进行数字签名为了保证系统的安全,现在Windows(比如Windows 8)对于通过网络上下载的应用程序的执行文件都会首先阻止,并提示用户是否要运行。这个时候,同时会提示这个应用程序的发行者。如果一个没有进行数字签名的应用程序,这个时候发行者就为
阅读全文
摘要:6,数据文件的部署 之前,数据文件是通过ClickOnce一起和应用程序部署的。ClickOnce会自动判断数据文件是否更新了,然后来确定是否下载这些数据文件。而在Silverlight中,如果把数据文件作为Content打包在XAP文件中,那么每次下载(或更新)XAP都会下载这些数据文件。解决方法有两种:把数据文件单独放在一个程序集中,把程序集设置为On-Demand下载或用Applicati...
阅读全文
摘要:1,SerializableAttribute不存在 在Silverlight中,已经不包含SerializableAttribute,不过没有了这个标记也不会影响序列化。去除这个特性标记的原因,是因为已经了一系列XML为开头的用于序列化的特性标记。 对于这个变动,没有什么难点,主要是比较麻烦,需要逐一删除。当然如果不想删除,最简单的方式就是,自己创建一个SerializableAttribu...
阅读全文
摘要:昨天(3月25日)开始打算把现有用WinForms开发的桌面应用(一种科学数据分析软件)移植到Silverlight上,可以成为RIA应用或OfB(Out-of-Browser)应用,也为以后SaaS应用和Cloud应用做准备。 把一个WinForms开发的桌面应用移植到Silverlight,难度可想而知,尤其在涉及大量IO操作的应用里。另外,由于现在Silverlight技术的一些局限性,有...
阅读全文
摘要:如果你的界面上有很多CheckBox或RadioBox的话,互相设置Checked属性,又会引发其他控件的CheckedChanged事件,从而让刷新数据产生混乱。 下面有个小技巧,直接看码说话: Stack<string> _delayRefresh = new Stack<string>(); ...
阅读全文
摘要:由于ClickOnce本身的设计,无法在安装的时候进行共享文件的安装。 只好走一种变通的方式: 在Publish的主程序中,建立一个文件夹,比如CommonFiles,把要共享的文件放到这里面;如果是很多零碎的小文件,建议压缩成一个压缩文件。 把这些文件(或者压缩文件)都设置为Build Action=Content,Copy to Output Directory=Copy if newer...
阅读全文
摘要:由于在.NET中不支持OLE技术。所以如果要在Windows Forms中像以前在VB中那样嵌入Word,或者Excel,就必需利用WebBrowser 控件。 如下链接详细讲了方法: http://www.aspxboy.com/private/366/default.aspx http://support.microsoft.com/kb/304662 但是,我按照kb304662的方法弄的时...
阅读全文
摘要:在Windows Forms的设计器里面,存在一个DesignMode的问题,就是有时候DesignMode得到的值并不是真实的值。其实这个不算是Bug,只有由于User Control多次嵌套后,DesignMode就不正确了。 只好用 (System.Diagnostics.Process.GetCurrentProcess().ProcessName != "devenv") 来判断。 这里...
阅读全文