The last couple of weeks I've been learning WPF
and I'm very impressed with the framework. I have been porting InSimSniffer to WPF and .NET 4.0 and the results are pretty cool. I've uploaded my .NET 4.0 project below, as I tried to turn it into a .NET 3.5 project but it all fell apart. If you want to build and run it you will need to download Visual C# Express 2010 BETA 2
to do so.
I have kept the old UI design for simplicity, although I plan to add a few more flashy features as time goes on. WPF is incredibly powerful and capable of 2D and 3D graphics, as well as animations and all sorts of goodness. If you are a designer and want to make some cool graphics and a cool UI for InSimSniffer then send me a PM!
I had to rewrite quite a bit of code, mainly to deal with WPF data-binding. The SnifferClient now uses ObservableCollection's and INotifyPropertyChanged interfaces so that the data-binding works seemlessly. The entire UI for the program is now data-bound, which has simplified a lot of the code and improved the performance considerably. I'm really blown away with how awesome data-binding in WPF is.
Aside from that, although I've reused the old UI, I do feel that it looks slightly better, everything feels more crisp and fresh. That said I did have a couple of problems, firstly with the transparency and secondly with the packet filter, so I've disabled those features for the moment. Once they are working, however, they will be awesome (filtering in WPF especially is awesome-sauce).
I also added some more features to DarkInSim, such as error handling on the InSimSettings class and and some better initialisation options. The InSimSettings class now also supports XML serialisation which is very handy for saving and loading settings.
Anyway, the download is available below. As I say you need Visual C# Express 2010 BETA 2
to run and compile it, for the moment. Hopefully soon I will be able to do more work on it. Also note this download is only the source, I am not supplying a built .exe for it yet.