Out with Clean Sources Plus, In with TreeTrim

If you are a fan of CleanSourcesPlus to clean up your Visual Studio build files, but have either had problems with it in a “modern” OS like Vista :) or just don’t like the command prompt popping up, I have a suggestion:  check out TreeTrim from Steve Dunn.

image

It adds a right click menu option to your selected folder in Windows Explorer to clean up your source code folder and it works quickly and silently.  By default it adds two menu choices:

image

The Clean source code works “out of the box” but the second one to clean, zip and email a working copy needs to be configured via its XML configuration file.  If you are like me and don’t email source code, then you can modify your registry to change or remove the menu option.  The registry key is located here:

HKEY_CLASSES_ROOT\Folder\shell\Clean, zip, and email a working copy of source code

I just removed that menu option on my system but the utility has a plugin model which allows you to customize commands that match your workflow.  Kudos to Steve Dunn!

Displaying a PDF file within a WPF application

I had a need to view PDF files directly within a WPF application and Stackoverflow and Google did not provide much assistance, so I set out on my own to see what I could create.  It turns out, it is not that difficult.  The trick is to use the WinForms support in WPF ala the WindowsFormHost control.  The application is so simple, I built it start to finish in under 5 minutes and captured it in a screencast for you to check out.

WPF PDF viewer app

Read the rest of this entry »

Posted in .NET, Code, WPF. 22 Comments »

WPF MVVM Video by Jason Dolinger

I just happened upon a video put together by Jason Dolinger on the WPF MVVM (Model View ViewModel) pattern, which I found to be excellent.  In this 1.5 hour video he refactors a simple application using the pattern and does a great job describing the benefits as he goes along.  It is also interesting to see his use of Unity as well.  Here is a direct link to the video:

http://www.lab49.com/files/videos/Jason%20Dolinger%20MVVM.wmv

And here’s a link to a blog post about it with a link to the source code:

http://blog.lab49.com/archives/2650

Enjoy!

Posted in .NET, MVVM, WPF. 2 Comments »

Intro to WPF MVVM

Last week, I gave a presentation at the Madison .NET User Group on an introduction to the up-and-coming Model-View-View Model (MVVM) pattern for WPF.

mvvm-overview

In the presentation, we made a very simple application that used the MVVM pattern.  I’ve posted the source code to this quick and dirty app here.  Note: this app takes several shortcuts and shouldn’t be used as an example of best practices, but we did build it in about 30 minutes.  :)

Read the rest of this entry »

Getting Started in WPF with IValueConverter

For those of you looking to learn or hone your fundamental WPF skills, I thought you might find this video beneficial.  It’s a nice 11-12 minute video on what you can do with IValueConverter by the lovely Beth Massi.   The video goes through an example of IValueConverter in VB.NET, but they also have some C# code to download if you like.  Check it out:

http://msdn.microsoft.com/en-us/vbasic/dd367843.aspx

The IValueConverter interface is very handy when you want to convert or format a given object to your specifications, and in Beth’s example she also displays how you can use it to verify and do type validation of user edited data.

Visual Studio 2008 broken Intellisense when debugging C# code

I was having an issue on my laptop where the Intellisense was broken when debugging C# code.  It is working for VB.NET code.  Here’s what it looks like for VB.NET when you start to type a variable name in the Watch window when in the debugger:

vb.net-intellisense-working

The problem is if I debug a C# project and try the same thing, I get nothing.  No Intellisense even using the Ctrl-Space keyboard shorcut.  Even the Immediate Window doesn’t work.

Since on my laptop I have ReSharper and a bunch of other add-ins installed, I chalked it up to some kind of conflict.  But today, I just rebuilt a desktop workstation and put a clean install of Visual Studio 2008 Team System with SP1 and nothing else installed.  Guess what… the problem still exists for me.  Some Google searches also didn’t help.  It doesn’t look like anyone else is having this issue, so I figured I better get a blog post about it in case you are in the same situation. I will update this post if I find a solution.

Please comment if you are having the same issue, or even better had the issue but found a fix!  :-)

Getting detailed domain user info from the command line

I had a need the other day to find out if and when my domain account was expiring and a friend of mine offered this command:

C:\>net user billyg /domain

Running that command gives you something like this:

The request will be processed at a domain controller for domain fakedomain.com.

User name                    billyg
Full Name                    Bill Gates
Comment
User's comment
Country code                 (null)
Account active               Yes
Account expires              Never

Password last set            12/1/2008 9:30 AM
Password expires             Never
Password changeable          9/25/2001 8:15 AM
Password required            Yes
User may change password     Yes

Workstations allowed         All
Logon script
User profile
Home directory
Last logon                   1/4/2009 2:04 PM

Logon hours allowed          All

Local Group Memberships      *Administrators
Global Group memberships     *Domain Admins        *Domain Users
The command completed successfully.

 

When you’re a consultant like myself and have a bunch of different domain accounts, it can be a helpful command.

Microsoft StyleCop

I just found out about a C# source code analysis tool from Microsoft called StyleCop.  You can download it from code.microsoft.com.

The tool’s description is as follows:

StyleCop analyzes C# source code to enforce a set of style and consistency rules. It can be run from inside of Visual Studio or integrated into an MSBuild project.

For all the details on the tool, check out the team’s blog that wrote it at http://blogs.msdn.com/sourceanalysis/.

Smart Paster Add-In for Visual Studio 2008

I had the need today to take a bunch of JavaScript code and paste it into an ASP.NET code behind file.  I was using the script as a basis for a custom script that was placed into the Page using the ClientScript.RegisterClientScriptBlock method.  I did some quick googling and found the Visual Studio Add-In called Smart Paster from Alex Papadimoulis that was just what I was looking for.  It wasn’t supplied in compiled form, but it was easy to build and deploy.  Just open the solution file, compile for Release mode and then copy the two files (from the bin folder) into your Addins folder:

  • SmartPaster2008.AddIn
  • SmartPaster2008.dll

Note: Your Addins folder is located by default at C:\Users\<username>\Documents\Visual Studio 2008\Addins

Simply restart VS2008 and now check out the new Right Click “Paste As” menu option:

smart-paster-example

There are some options via the Configure menu item too.  Very handy!

DNS cache on Windows

There have been a number of times when I’ve wanted to know what exactly is in my system’s DNS cache (creating new subdomains, messing with hosts file, etc.). Here’s the trick in Windows to seeing it. Read the rest of this entry »