This is certainly the blog site to go to for Microsoft centric conversation - I'm deluged with very interesting articles on everything from “Source Safe Power Toys” to the interesting concept of UI Mappers (I'm not certain that I fully get the concept, but I am always a bit slower on the uptake than Paul).
However, my day to day is not necessarily consumed by ASP.NET, or even just plain old .NET. I live, and work in the real world, a world full of old C++, MFC, and Delphi code, and "Heritage" systems. (The word "Legacy" is just so, so, 20th century, isn't it?)
When I get the opportunity, I like to use .NET where it is useful, and makes sense. One of the ways that I've found to help pave the way for future .NET use in Enterprise level projects is to use it in the Installer. Usually using either Wise or InstallShield, I write as little as reasonably possible in the Install Scripting language. I then write my Custom Actions in C#. There are quite a few advantages to this. The install languages, though mature, aren’t very robust. Also, although I’ve got a lot of experience in this area, I like to be able to pass maintenance to other programmers. This is less likely if they have to learn the ins and outs of another language.
Using the .NET framework for the install does not impact the rest of the project, and is usually an easy sell to management. It’s also there in the future, when you decide to use it. I’ve actually discovered this “phased” deployment and use model helps obtain buy-in from the non-technical project stakeholders.
Changing the InstallShield Custom Action code from C++ to C# has actually reduced the LOC by several thousand lines in a couple of projects I’ve worked on. However, coding install scenarios using .NET hasn’t exactly been a panacea. There have been a few places I’ve hit a “Mud Wall”. Using the Windows LSA APIs haven’t exactly been like hitting a brick wall, but it’s enough to turn my code into a PInvoke pile of Mud. I’ve actually dropped back to C++, and one of my team-mates wrote some C++ routines to help me out in this area.
With all the recent stress on .NET and security, you’d think that interop with the OS security and user APIs would be easier!