Building Better Software: Tips and Tools to Improve Your Applications

I attended a session (title above) by the famous Doug Seven. Doug is always one of the better speakers out there and he covered how to construct your projects to work with various systems that improve the overall application and approach. Focus was put on unit tests and code coverage and the importance of incorporating these items into your development process. It is surprising to me that this is not yet the norm of application development. Again, I said this in a previous post, but development teams need to work to a continuous integration process and use tools that facilitate such activities.

Microsoft has done a lot in this space, but so has the open source community. I, myself, use aspects of both to give me exactly what I am looking for. For unit testing, I use Visual Studio. For our build process - we are using

The Code Coverage UI is not bad in Visual Studio and allows you to really drill into our code. NCover is the competition to this and provides more of a visual aspect to the coverage aspect of your code - but VS is definitely not bad. Looking at the code directly - Visual Studio is better and shows wonderful coloring to show which code is being covered and which code is not.


The other thing Doug presented is the integrated load test preparation capabilities that are built into Visual Studio. I haven't used the Visual Studio one myself, but instead, I have used ACT. I actually have a stand-alone version of ACT that was given to me from Microsoft and it is something that we have generated scripts for when we want to test our web pages as well as our ASMX and WCF services. The Visual Studio load testing features are a heck of a lot better than the ACT one. It definitely does a lot more for you around customization and visualization of your work and results.

Nice session overall.

Unit Testing Session at TechEd 2008

I'm in TechEd at the moment and I am sitting in a presentation on Unit Testing. Unit testing is something we have been doing on my teams for some time now and it is an intricate part of our development process. I am a big believer in continuous integration for development and part of the automatic build process includes a unit test run through the application/component that we are working with. The results of the unit tests are then deployed (automatically as well) to a server and made accessible to everyone on the teams as well as dependent teams within the organization.


BTW a good book on establishing this entire process yourself is Code Leader by Wrox.

"There is no such thing as "done". Much more investment will be spent modifying programs than developing them initially." - Beck

The session focuses on the concept that the development of your application is the smallest part of the process and much more of your time will be spent fixing and modifying the first results of your work.

The speaker here is a believer in that you can have more than one assert per test. There are many that don't believe this, but it makes more sense to test *one* thing, which may involve multiple assets. It definitely doesn't make sense to have multiple asserts to test multiple things.

Also - make sure that you keep your tests similar to your code. If what you are testing is in one assembly, do the same with your tests. The benefits of keeping your tests close are making sure that your tests are equivalent to production code and it solves any visibility problems.

We ourselves used to use NUnit testing, but have recently switched to Microsoft's testing framework as it allowed us to put a timeout in our tests, something the latest NUnit tests are unable to accomplish.

TechEd 2008 First Report

TechEd is going good. This years TechEd is a bit different than the many that I have been to before. The keynote was ok - not great, but not bad. I was hoping for some customers to come out on stage and present the really cool things they are doing with Microsoft's technologies. I love seeing front line implementations and the hills they had to climb to get to what they have. But there was none of that this year.

They brought out a robot as part of some new Robotics group in Microsoft and they brought out a robot as a demo of what they are talking about. They had the robot play back an old voice recording of S. Ballmer saying "developers, developers, developers". The sad part was this fancy robot was connected by an XBOX controller *with a cord* and a guy following behind controlling him to go this way and that. (wireless anyone?). Here is a good photo of how happy BillG was with the robot:


Beyond the keynote - it is a smaller TechEd in that the IT Pros are not part of this TechEd but they are part of next week's TechEd. I have heard that there are around 5 thousand people at this one (maybe less) and that there is double that next week for the IT Pro event.

I met up with a lot of vendors including FarPoint, Infragistics, ChartFx, Oracle and some others that I have to deal with as part of my job at Thomson Reuters. I have also been attending some of the sessions and meeting with all the various Microsoft teams on the floor of the convention floor. Meeting with the team members in the technology booths is probably the best thing about TechEd as you get some one on one time with them to go over your specific questions and issues. That part of the conference is worth the entire trip.

So far so good. BTW - Florida is hot.

BTW - on another note with the keynote - this is probably BillG's last keynote and there was no real kickoff for him, which is sad considering all he has done for the developer community. I really would have liked more on this topic rather than the joke video of his last day in the office (most of which has been seen before). The conference ended with a Q&A with BillG and most people had walked out by the end of that. I think most people left because of the really silly questions that were being asked of him.