Archive for the ‘dotnet’ Category

Resharper 4.0 good news and a little WPF databinding

Friday, March 21st, 2008

It’s been tough doing development in Visual Studio 2008 without ReSharper for the last several months, but as much as I enjoy ReSharper, C# 3.0 trumps it. I’ve occasionally installed the Nightly Builds of ReSharper 4.0, but the sea of red around my LINQ code always resulted in the install not lasting very long. Luckily, the most recent “works here” nightly build of ReSharper 4.0 (build 755) looks pretty usable. The only notable issue I’ve found is that it doesn’t like non-trivial LINQ queries inside of static methods, which is a pain but perhaps not a showstopper.

Speaking of LINQ, Brian Stoker has a nice introduction to WPF Databinding with LINQ to SQL over on The Code Project. I’ve been meaning to learn more about this for a while and Brian’s article did a great job of introducing enough information to get something up and running without being overwhelming.

Managed DirectX Resource Disposal

Thursday, December 8th, 2005

If you find that a Managed DirectX application you’re developing is taking a very long time to shut down, make sure that you’re disposing all the Vertex Buffers (and other pooled device resources) in the reverse order that you created them.

I’ve been working with Managed DirectX seriously for about a week now and I’m pretty impressed so far. There are a few gotchas I’ve run into like the above, but for the most part it’s been easy to get up to speed. It’s actually more similar to OpenGL than I expected.

New Tachy Release

Friday, August 12th, 2005

I’m happy to announce that a new release of Tachy is now available. The big news for this release is that Tachy now includes debugging support developed by Peter de Laat, including an alpha version of his Visual Studio .NET 2003 Add-in for Tachy. Thanks Peter! Click on the thumbnail below to see a screenshot of the Add-in at work:

Peter has generously released his changes and Visual Studio.NET Add-in under the same BSD license as the rest of Tachy. For more information on the new Add-in, take a look at Peter’s “readme.txt” file in the ‘TachySource/TachyExtension’ directory. A sample that uses the Add-in is available in the ‘TachyExamples/Example2DotnetClasses’ directory.

The new release can be found on the Tachy page or downloaded directly here.

New Tachy Version Available

Wednesday, April 20th, 2005

A new release of Tachy is now available. This release includes the following changes:

  • Separated the Tachy interpreter into a DLL to make it more easy to embed
  • Visual Studio.Net 2003 project now included
  • Let, letrec, and, or, cond special forms now supported
  • Added preliminary macro system (for example of use see implementation of above special forms in init.ss)
  • Define special form now supports creation of functions without explicit lambda (a form used extensively in SICP)
  • Many more standard R5RS library functions now available

Memory Profiling in .NET

Tuesday, September 28th, 2004

A .NET project I work with has recently run into issues with the application slowing down machines when the application has been running for days. After a fair amount of head-scratching, it turns out that checking to see if a class that you’re instantiating implements IDisposable (and then disposing it) can be very important. I knew it was important, but it’s also the sort of thing that can easily get overlooked during crunch time on a project. In fact, it’s so crucial that I’m surprised exceptions aren’t thrown when a program ends that hasn’t properly disposed of disposable objects.

To make a long story short, the Icon class in Windows Forms is one of those classes, and we were creating a great deal of Icons instances. It turns out there are more classes than I’d suspected in .NET that need to be disposed of manually.

Scitech’s .Net Memory Profiler made the process of finding all this out much easier. If you’re a .NET developer (and especially if your application is distributed to end users), I highly recommend picking up a copy. At $99 it’s a steal. It’s already saved the project I’m working on several times that, just counting the hours I would have put in tracking all this down manually.