工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧
之前一篇《工欲善其事,必先利其器。VS2013全攻略(安装,技巧,快捷键,插件)!》 看到很多朋友回复和支持,非常感谢,尤其是一些拍砖的喷油,感谢你们的批评,受益良多。
我第一份工作便是WPF的开发,一直到现在都非常喜欢这门技术,从懵懵懂懂到现在有一些WPF开发资历,也算是经历了一段坎坷的过程。我的朋友看到我写了VS2013的全攻略,他就推荐我写一个WPF篇,我想了下,的确很多朋友初接触WPF的时候难免会觉得WPF开发十分困难,归其原因,很多时候是出错后并不知道如何调试毫无头绪。下面我便顺着我的开发历程来分享一些有利于WPF开发的小工具们。
[小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂。cnblogs.com/xfuture]
目录:
入门学习阶段:KAXAML
UI布局阶段:Snoop, SilverlightSpy
改写样式,写控件库阶段:Reflactor, Blend
测试性能阶段:Wpf performance Suite, Red Gate ANTS Performance Profiler 8
写正篇之前先说Visual Studio. VS我就不介绍了,不管风雨如何,VS永远是.NET 开发的第一选择。
入门学习阶段:KAXAML
初次接触WPF的时候一定会想尝试各种控件的属性,能够改动的同时实时的看出效果。或者有些朋友机器不够给力或者说不想每次学习WPF都要打开VS,那KXAML一定适合您。
下载链接:KAXAML官网 ,源码 这个是完全free的,源代码也公开了,在此我也非常感谢作者Robby Ingebretsen,非常伟大的一款软件。
介绍: KaXaml是一个轻量级的XAML编辑器,可是实现在编辑的同时展现UI效果。界面如下:

左边是功能栏,右边分为上下两侧,上面是UI,下面则是代码。实时显示
当你需要一些示例代码或者当你需要改写控件的时候,你可以点击Snippets。其中包含很多作者的善意(代码段):

左侧的功能还包括find, color picker(取色值,很有用), snapshot, xaml scrubber(XAML格式的配置), settings等。

UI布局阶段:Snoop, SilverlightSpy
当渡过了学习阶段后,开始做一些实际的项目了。逐渐接触到WPF的逻辑树和视觉树。这个时候很需要当项目运行时进行查看视觉树的结构评测自己xaml是否正确或者进行运行时改变观察效果。这个时候snoop和siverlightspy就很需要了。Snoop for WPF, silverlightSpy for silverlight。
下载链接: Snoop,源码, SilverlightSpy Snoop是开源的,完全免费。silverlightspy是需要purchase的。
介绍:
Snoop是一个WPF运行时对Visual UI调试的一个工具, 可以查看其视觉树以及对其进行更改。
运行后会出现工作条:
下拉框中显示的运行的WPF应用程序,点击刷新获得当前WPF应用程序列表,选择相应程序后点击望远镜图标即可进行监测。也可以点击望远镜后的瞄准图标拖动到相应程序上来完成此操作,打开后

如图,Snoop检测了左边的WPF应用程序,snoop左侧是可视化树列表,选中元素,可以进行缩略浏览,右边是其属性。选中的元素会有红框出现。也可以使用Ctrl+Shift来进行选中。下面一张图是对左侧各种数据的说明:

你可以在运行时对snoop监视到的元素属性进行修改来实时查看效果:

SilverlightSpy 则是类似snoop的工具,用来对显示Silverlight 内容的网页进行详细的监测。这个工具使用它自己内嵌的浏览器,可以帮助用户浏览任何网站,并监测Silverlight:

在网址栏输入你自己开发的SL的页面。即可进行检测。使用方法类似SNOOP,用Ctrl+shift来进行选择,可以进行实时改动:

改写样式,写控件库阶段:Reflactor, Blend
随着在项目中资历和技术成长,逐渐搭建UI的任务慢慢已经分给新来的同事们了,这个时候就开始了充满艰辛的写控件阶段。用户需要更好的用户体验,UX以自己的理解设计出想要的体验和交互,这个时候苦的就是开发了。“我天,这XX也可以?!”每次看到UX新设计出来的画面,很多开发喷油一定都有这样的感慨。但是为了更好的产品,我们也只能努力去完成UX的要求。所以慢慢改写控件模板和样式,以及实现更多控件层次交互的需求甚至动画则成了我的任务,这个时候就需要blend和reflactor来帮助了。
Blend for Visual Studio 2013 提供了丰富的以设计为中心的环境,以便于开发针对 Windows 应用商店、Windows Phone、WPF 和 Silverlight 的应用。
而Reflactor反编译dll则是为了探索控件实现的内部机制以方便改写,比如当你需要更改一个datagrid来实现一个可以切换行的时候缓动的效果,或者更加变态的比如点击一个column产生一个可以自我定位的grid等。这个时候你就要先去探索datagrid内部的实现机制,继承并改写它内部的逻辑,而不仅是样式和模板。所以WPF依然需要reflactor。
下载:Blend,VS2013安装时可以选择blend一起安装,Reflactor
Blend打开solution后效果如下图:

黑白色调,工具栏和视觉栏。是不是很相似与PS。对的!这就是一款饱含设计向的WPF工具。可以在其中对控件样式和动画进行可视的操作。
只不过需要注意的事,它自动生成的代码是非常混乱的。推荐绘制动画或者改写样式时先使用blend来构造,在vs里再对xaml代码进行优化。
Reflactor:反编译dll,拿到其内部实现机制逻辑代码。比如当我需要改写datagrid:

这样就可以拿到其反编译的结果,得到其内部实现机制。便可以对具体的实现进行override来改写。
测试性能阶段:Wpf performance Suite, Red Gate ANTS Performance Profiler 8
项目即将结束,这个时候就需要测试了。作为一个严谨的开发,我们应该减轻QA MM们的压力,自己先把自己埋的大坑填了,这样才不会在最后时候各种加班修bug,悲惨世界啊。
这里就介绍两款能够避免这种事情出现的软件:Wpf performance Suite, Red Gate ANTS Performance Profiler 8
Wpf performance Suite 是一款WPF效能分析工具,可让您分析应用程式的执行阶段行为,并判断可套用的效能最佳化类型。Red Gate ANTS Performance Profiler 8 是判断.net 在内存中的占用情况,测试内存泄漏和是否释放的工具, RED GATE也是一个很有名的测试性能的厂家,reflactor其实就是该厂家出产,它还有其他类似sql,azure等测试的产品。
下载:WPF PERFORMANCE SUITE, Red Gate ANTS Performance Profiler 8
介绍:WPF PERFORMANCE SUITE 性能分析工具功能非常多 官网和博客园均有详细介绍,这边我就贴上链接,大家如可以点进去观看:官网,博客园链接
着重来介绍 Red Gate ANTS Performance Profiler 8:首先打开该软件,可以进行15天试用:

点击continue,会弹出主界面。可以选择
来开始新的监视。

在相应PATH中选择自己要测试的application 点击 下方start profiling可以开始监视。也可以通过attach to process来进行监视

在其中会有很多元素进行监视和测试,比如class list,instance的数量等。从这些属性上可以看的出自己application所占据的内存和具体一些class所占据的内存和实例数量。


多次点击take snap shot 可以把当前的记录下来 来进行比对,可以导出report。
这两款软件都是用处非常大的。假如大家需要的话,可以留言,假如必要的话我会尽量写关于这两个软件详细的使用方法的博客的。
总之,希望大家能够支持。我希望能够分享给所有的朋友心得和技巧,弯路一个人走就够了。
非常喜爱博客园的环境,分享才是我们程序员的武器啊!
工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧的更多相关文章
- 工欲善其事必先利其器之windows篇
Windows是我们最常用的系统,下面就让我们重新认识一下Windows有哪些可以让我们提高工作效率的快捷键以及部分技巧,,以及在外行看来可以看起来逼格高的技巧! 1.Windows最实用,最常用的快 ...
- 单片机开发——01工欲善其事必先利其器(Keil软件安装破解)
本文是博主<单片机开发>博客第一篇文章,主要讲述51单片机编程软件Keil uVision4的安装及破解过程. 1. Keil uVision4安装包文件 PATH:链接 ...
- 单片机开发——02工欲善其事必先利其器(Proteus软件安装破解)
在单片机开发工程中,博主经常通过模拟软件Proteus进行模拟仿真,将编译生成的"HEX"文件下载在单片机芯片中,然后进行后期的debug工作,当模拟仿真完成之后,进行硬件测试部分 ...
- 转:【工欲善其事必先利其器】—Entity Framework实例详解
开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/ ...
- 古语云:工欲善其事必先利其器 --> 最新、最全的 IntelliJ IDEA(2018.3.3) 的介绍、安装、破解、配置与使用
原文:古语云:工欲善其事必先利其器 --> 最新.最全的 IntelliJ IDEA(2018.3.3) 的介绍.安装.破解.配置与使用 一.IntelliJ IDEA 介绍 -> Ecl ...
- java学习第一步-工欲善其事必先利其器
Java SE 磨刀不误砍柴工,工欲善其事必先利其器,咱们先搞好硬件配置,才能顺利的搞好Java学习 阶段一 1.认识Java 2.java发展史及用户 3.配置Java环境 4.JDK8下载安装 5 ...
- TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器
TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...
- spring 第一篇(1-1):让java开发变得更简单(下)转
spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...
- wpf 客户端【JDAgent桌面助手】业余开发的终于完工了。。晒晒截图
目录区域: 业余开发的wpf 客户端终于完工了..晒晒截图 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]详解(一)主窗口 圆形菜单... wpf 客 ...
随机推荐
- SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)
前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...
- ASP.NET加密和解密数据库连接字符串
大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- spring boot 实战:我们的第一款开源软件
在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来看开源软件的,你给我扯什 ...
- .NET设计模式访问者模式
一.访问者模式的定义: 表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作. 二.访问者模式的结构和角色: 1.Visitor 抽象访问者角色,为该 ...
- Android local.properties 文件读取
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6202369.html 本文出自[赵彦军的博客] 在Android Studio项目里面有个local.pro ...
- ReactiveCocoa代码实践之-UI组件的RAC信号操作
上一节是自己对网络层的一些重构,本节是自己一些代码小实践做出的一些demo程序,基本涵盖大多数UI控件操作. 一.用UISlider实现调色板 假设我们现在做一个demo,上面有一个View用来展示颜 ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...
- 亡命之徒aaaaaa.......chao
前端是一个看似入门门槛不高,但要学好很难的领域.前端的知识体系庞杂又松散,技术演进快,如果摸不清脉络的话很容易陷入盲人摸象的困境甚至跑偏.其实只要掌握了正确的方法,学习前端和学好前端就只是个时间问题. ...
- Visual Studio Code,完美的编辑器
今日凌晨,微软的文本(代码)编辑器 Visual Studio Code(简称 VS Code),发布了首个正式版,距离首个 beta 版上线时间刚好一年. 在十多年的编程经历中,我使用过非常多的的代 ...