Partager via


Building a Perfect WPF Developer Workstation

OK, so you've just decided that WPF is the strategic technology of choice for your next-generation application, and you've taken the opportunity to flatten and reinstall your developer workstation. What should you put on it to create the perfect WPF development environment? There are so many good tools, utilities and samples out there, that I thought I'd put together a little checklist that will hopefully help folk out. I'd love to hear your suggestions for anything that I've missed: I'll try to keep this updated over time.

Base Environment

Tools and Utilities

  • XamlPadX, Kaxaml and XamlCruncher: three enhanced alternatives to the XamlPad tool that ships in the SDK. Each have their strengths: XamlPadX has some nice add-ons and is based on the XamlPad codebase, Kaxaml is great for demos and has good tab / indent support and XamlCruncher has high-quality source code available.
  • Lutz Roeder's .NET Reflector: handy for browsing through class hierarchies;
  • Snoop: Peter Blois' tool for visually debugging WPF applications;
  • WPF Performance Tools: buried in the SDK but an essential part of the toolset for an application in the stabilization stages. Youll find it as %SdkTools%\WpfPerf.exe (make sure you run it as an administrator if you're using Windows Vista);
  • Flexible Application Template: this replacement project template from one of the app services PMs allows you to create a single application project that can flip between an XBAP (web browser project) or rich client application just with an adjustment to the project type;
  • ZAM 3D: Electric Rain's utility for quickly creating and animating 3D meshes.
  • XAML Converters: Utilities for converting 3DS, DXF, Blender, Fireworks, Lightwave, SWF, Maya and Illustrator files to XAML format.

Building a Code Toolbox

  • 3D Tools for WPF: interactive 2D on 3D surfaces, wireframe lines, 3D mouse navigation;
  • Kevin's Bag-o-Tricks: a collection of controls that extend and enhance the intrinsic types ColorPicker, FolderPicker, NumericUpDown, RadioButtonList, date controls, animating tile panel and graph controls;
  • UI Automation Stress: stress testing for your application environment. (Add this code into a debug menu to make sure that you can't crash your application with spurious input.)

Sample Applications

I'm the kind of developer who likes lots of sample code available to me for copying concepts, ideas and techniques. Copy these to a \samples directory for quick access:

Also unpack %SdkTools%\..\Samples\WPFSamples.zip to a \samples\sdk directory so you can easily browse through all the samples without needing to go through the SDK documentation interface.

Now enable Windows Desktop Search (install WDS 3.0 here if you're running Windows XP) and configure it to index file contents of .xaml, .cs, .vb files as a bare minimum. Make sure it's set to index the entire \samples directory that you put the above samples into. Now you can quickly pull up every sample that shows the usage of (say) BitmapSource and ColorConvertedBitmap just by hitting Win+F and searching for those keywords.

Support

  • The WPF MSDN Forum is frequented by both the product team and many other knowledgeable community members, and contains a great archive of questions previously asked (and answered);
  • The WPF MSDN Newsgroup provides a very similar service to the web forum but in the form of a USENET newsgroup. At the time of writing, the forum seems to have significantly more traffic, however.

Tips and Tricks

  • Make sure that you integrate the Windows SDK documentation with the rest of the MSDN documentation on your system: run Start -> Windows SDK -> Visual Studio Registration -> Integrate Windows SDK with Visual Studio 2005 as an administrator for easy F1 integration from the code view.
  • I make liberal use of pinned shortcuts on my Start menu to make it easier to access some of these tools, particularly XamlPad, WpfPerf and other tools that are really hidden by default. If you're running Windows Vista, this tip will give you a quick shortcut to each of these items also.
  • Set the Windows Presentation Foundation Font Cache system service to Automatic (Delayed Start) if you are running Windows Vista, to reduce initial start-up time for WPF applications.
  • In Visual Studio, set the default font to Consolas - it's easier on the eyes than Courier New and was designed with code development in mind. Consolas is included with Windows Vista or Office 2007, or you can download it here.
  • From the Windows SDK documentation, the "New in Windows Vista" index filter is a great way to ensure that you don't get the WPF and Windows Forms APIs accidentally mixed up: I've come across a few developers who had accidentally started using types from both libraries together simply because they hadn't spotted the very subtle clues in the documentation that differentiate them.

Comments

  • Anonymous
    December 20, 2006
    PingBack from http://adamcaudill.com/2006/12/20/starting-in-wpf/

  • Anonymous
    December 20, 2006
    Wonderful list of tools needed for any WPF developer.  Although, I'd suggest other fonts as well - I find that switching between proggy square, inconsolata, consolas, etc.. gives me a little "boost" every time I switch. And, since you have the words "developer workstation" right in the description (and correct I may add), any chance of nudging the MSDN bean counters and saying "hey, Blend is indeed a developer tool"?  Not having it included in MSDN is really, really frustrating to us that already accepted a nice big slap already with the different editions.  If so, thanks!

  • Anonymous
    December 20, 2006
    Chk out the application called snoop. This has helped me to find where some of the events are driven. I am not sure where this came from. I got it from my fellow worker and it has helped me a lot. I will post a comment tomorrow after I find where this can be downloaded from. -sr

  • Anonymous
    December 20, 2006
    very useful! One question, how do you actually "set the Windows Presentation Foundation Font Cache system service to Automatic (Delayed Start) " ? Is this a registry key or a build switch ins VS?

  • Anonymous
    December 20, 2006
    Μια που όλο και περισσότερος κόσμος αρχίζει να παίζει μαζί του ... προτάσεις από τον ειδικό για το πως...

  • Anonymous
    December 21, 2006
    Per chi vuole iniziare a lavorare con WPF e si sta chidendo: cosa serve a Visual Studio 2005? Dove posso

  • Anonymous
    December 21, 2006
    Add IronPython to that list.  Much faster for "playing around" with WPF constructs than going through the code-compile-repeat process of using VB or C#.  This is great for learning, as well as for just trying something out quickly to see how it would work.  Then you can code it for real in your language of choice (C# of course).

  • Anonymous
    December 21, 2006
    Check ou xamlpadX - updated version of xamlpad (http://blogs.msdn.com/llobo/archive/2006/10/31/XamlPad-Xtended-2800_with-an-interpreter_2900.aspx)

  • Anonymous
    December 21, 2006
    Ramanujam, thanks for reminding me about Snoop - added!

  • Anonymous
    December 21, 2006
    A very good read... http://blogs.msdn.com/tims/archive/2006/12/20/building-a-perfect-wpf-developer-workstation.aspx

  • Anonymous
    December 21, 2006
    Why Expressions? If you're going to have Visual Studio 2005, it's the same functionality.

  • Anonymous
    December 21, 2006
    XamlpadX is a must.. beats xamlpad any day

  • Anonymous
    December 22, 2006
    The comment has been removed

  • Anonymous
    December 22, 2006
    Tim this is great.  Here is an email I send to any of the developers I work with when they ask about WPF:


My Five Day Course For Hitting the WPF Curve/Cliff   This was put together by Karsten Januszewski, a WPF evangelist over at Microsoft.  The first day is really for everyone.  There’s really some good content in this post. http://blogs.msdn.com/karstenj/archive/2006/06/15/632639.aspx Building a perfect WPF Developer Workstation   One of the hurdles many people run into is just getting their development system up and running. Tim Sneath (our initial MSFT contact on WPF) put together a set of “perfect” items needed for a new Dev Workstation. http://blogs.msdn.com/tims/archive/2006/12/20/building-a-perfect-wpf-developer-workstation.aspx Optimizing WPF Application Performance     It gives a bunch of do’s and don’t regarding performance.  We joked that it’s kind of like the WPF bible of explaining what NOT to do. http://msdn2.microsoft.com/en-gb/library/aa970683.aspx Hope that helps some! Kurt

  • Anonymous
    December 22, 2006
    you can get the consolas font with a special download at microsoft for visual studio 2005 too! i'm sorry i haven't got it at hand but you can find it easily in the ms download center.

  • Anonymous
    December 23, 2006
    Thanks for all the feedback so far: I've incorporated some good suggestions, including the standalone link for the Consolas font and XamlPadX in place of the regular XamlPad. In response to Parker's query, Expression Blend has a number of features that VS doesn't have in the current release (for example, editing styles and creating templates are manual operations in VS but supported by the Blend editor). Over time, you can certainly expect the two tools to come much closer to feature parity but remaining focused on their respective designer / developer audiences.

  • Anonymous
    December 23, 2006
    Another alternative to XamlPad is Kaxaml.  You can get it here: http://notstatic.com/archives/64

  • Anonymous
    December 24, 2006
    The comment has been removed

  • Anonymous
    December 25, 2006
    I luv xamlpadx. it has the same feel of xamlpad but has more funtionality thn kaxaml. The interpreter is sweet. Nice compile Tim

  • Anonymous
    December 26, 2006
    Ping back from samiqbits.blogspot.com <i>As I've been blogging before I am working with WPF for a personal project. This has nothing to do with my 8-5 job, but is a nice thing to be doing in my spare time; anyway, the reason of this post is that by looking around I found this entry by Tim Sneath...</i>

  • Anonymous
    December 28, 2006
    Appunti di WPF: Building a Perfect WPF Developer Workstation

  • Anonymous
    January 02, 2007
    FYI XamlPadX v2 is out.. (http://blogs.msdn.com/llobo) .. its got some sweet new features :) Happy new year

  • Anonymous
    January 03, 2007
    Thanks to Tim I've probably got a few bits and pieces to install to get my machine up to dream spec for

  • Anonymous
    January 13, 2007
    I've just downloaded the Oracs (sorry Orcas - watched too much Blake 7 as a kid) Jan CTP but it does not seem to support the creation of WPF apps. Can you explain what you need to create WPF on Orcas.

  • Anonymous
    January 15, 2007
    Hi Andrew, the WPF designer isn't in the January CTP of Orcas, but you should see it in the next CTP. For now, Visual Studio 2005 is the best place to be. That's why you can't see it! Tim

  • Anonymous
    January 20, 2007
    Tim Sneath : Building a Perfect WPF Developer Workstation このブログ記事では、完全なWPFデヴェロッパー向けワークステーションを構築するために必要なものがまとめら

  • Anonymous
    January 20, 2007
    Tim Sneath : Building a Perfect WPF Developer Workstation このブログ記事では、完全なWPFデヴェロッパー向けワークステーションを構築するために必要なものがまとめら

  • Anonymous
    January 22, 2007
    Building a Perfect WPF Developer Workstation

  • Anonymous
    January 22, 2007
    Wer sich, wie ich, für WPF interessiert, und damit entwickeln will, braucht wie immer ein Set von Tools,

  • Anonymous
    January 28, 2007
    When I install the Windows SDK, I don't get an option in the menu to integrate the two MSDN's.  Any reason you can think of (or maybe a manual way of doing it?) (swildermuth@adoguy.com)

  • Anonymous
    January 30, 2007
    Another tool to capture your excellent WPF work: http://weblogs.asp.net/kennykerr/archive/2007/01/28/window-clippings-1-5.aspx

  • Anonymous
    February 03, 2007
    Hi Tim, Thanks a lot for putting this list together.  I have two pieces of feedback, if you're interested.

  • I think it would be very helpful if you were to give a suggested hardware configuration for WPF development.  Not just the minimum reqs, but also what type of machine would help make the WPF dev experience smooth and quick.
  • In the "Building a Code Toolbox" section, perhaps you might consider listing the WPF.JoshSmith library: http://www.codeproject.com/useritems/WPFJoshSmith.asp     Thanks again, Josh Smith
  • Anonymous
    February 04, 2007
    Way back on Sep. 7th of last year, I published an entry on writing your first WPF program on Vista .

  • Anonymous
    February 05, 2007
    קניתי את שתי הספרים שיש כרגע, הנה ההמלצה שלי: בניגוד לאלון שהמליץ המלצה חמה על הספר של Petzold - אני

  • Anonymous
    February 09, 2007
    I just updated the simple list of useful WPF Resources on the top left of rrelyea.spaces.live.com . Part

  • Anonymous
    February 21, 2007
    Expression Blend and Expression Design on a developer workstation?  While I agree whole-heartedly, apparently the MSDN team, except you, don't feel the same as we do.  Perhaps you can influence them! Great article.  Thanks for posting it. Dale

  • Anonymous
    March 02, 2007
    หลังจาก Vista ออกมาพักหนึ่ง ก็ย่อมมีคนเริ่ม Tweak กันบ้างแล้วล่ะ ลองคลิ๊กเข้ามาดูครับ มีอะไรดี ๆ เพียบ

  • Anonymous
    March 02, 2007
    I just installed Consolas font at your suggestion.  It really looks awful!  But at least I can undo the setting.

  • Anonymous
    March 05, 2007
    Sounds like that's just your opinion.  Just my opinion is: "Once I installed Consolas, I went and set it as the default in every text editor I own." Opinions are okay.

  • Anonymous
    March 15, 2007
    @ Dale (Regarding Consolas looking "awful") Turn on ClearType.

  • Anonymous
    April 17, 2007
    原文:http://blogs.msdn.com/tims/archive/2006/12/20/building-a-perfect-wpf-developer-workstation.aspx原文...

  • Anonymous
    April 17, 2007
    Tim Sneath又一篇经典WPF贴,让我们能够了解WPF顶级开发人员平时用哪些工具、看哪些示例、有哪些独门秘笈,虽然这篇文章不长,但确实很有用,看了就明白了:)

  • Anonymous
    April 19, 2007
    摘要: Tim Sneath又一篇经典WPF贴,让我们能够了解WPF顶级开发人员平时用哪些工具、看哪些示例、有哪些独门秘笈,虽然这篇文章不长,但确实很有用,看了就明白了:) 有翻译得不好的地方还请指出!

  • Anonymous
    May 31, 2007
    I've been asked many time about real world application with WPF. Channel9 has the comprehensive list.

  • Anonymous
    September 13, 2007
    转载:构建完美的WPF开发工作站 原文:http://blogs.msdn.com/tims/archive/2006/12/20/building-a-perfect-wpf-develo...

  • Anonymous
    April 03, 2008
    概述 WindowsPresentationFoundation(WPF)是下一代显示系统,用于生成能带给用户震撼视觉体验的Windows客户端应用程序。使用WPF,您可以创建广泛的独...