June 2003 - Posts
I found this great article on Pair Programming best practices tonight. A couple of key items: the programming pair should have different levels of experience in order to best work together, and the programming teams (pairs) should be in a common area in order to encourage communication with other pairs.
Currently, our development team has been working through Kent Beck's book on Test Driven Development. I remember following this book's progress last year through the Yahoo Group testdrivendevelopment when Kent would post excepts from the book to get feedback The book is an excellent introduction for the developer new to writing tests first, and coding methods/functions second in response to the tests. Kent takes the reader through real applications -- almost like you are pair programming with him -- to give you ideas, tips, and tricks in writing good test code and developing first-rate software. Great stuff!
Clemens talks about his frustrations over the last year with getting Aspect Oriented Programming (AOP) to work properly with Enterprise Services (i.e. managed code on top of COM+). He has all but given up in his attempts with AOP and ES.
This post represents one of the best summaries of the infrastructure of COM+/Enterprise Services as well as some of the issues I have seen brought up by Craig, Tim, John, and others in my own study of AOP as applied to COM+/Enterprise Services.
I also appreciate Clemens' link to the patent documents for COM+. Though "legal" jargon, its a great read to further get into some of the infrastructure. Take a look!
More great info on Enterprise Services from an older blog post by Clemens:
Great starter info on Enterprise Services from Sam.
Check it out!
There are several Application Blocks from Microsoft lately, but the Configuration Management Application Block (released 6/24/2003) is one I have been keenly interested in since I started working with configuration files in .Net (and other projects before .Net). I have spent some time in other projects working on interfaces to seamlessly manage configuration files (reading/writing) using encyrption, etc.
One item I felt was lacking in 1.0 was the easy integration of encryption in XML configuration files (in particular, the web.config file and machine.config file). You could do it, but you needed to go through several steps to accomplish it. With 1.1, this is more or less done natively now, but it would still be nice to encapsulate some of the logic. The Configuration Management Block provides this for you and more.
The other great feature the Configuration Management Block provides is seamless integration with configuration sources other than XML files. You could use the registry, a database, or many other storage mediums, all using a common interface to manipulate the configuration information.
Also, as I mentioned here in comments, it is only available for the 1.1 .Net Framework (the first of the Blocks, I believe, that it is NOT allowed to install on a 1.0 .Net only machine).
Take a look!
Lately, Sam and I have been doing some Pair Programming on some new .Net classes that will comprise core functionality for the project we are working on. Pair Programming is the process where two developers work together on software problems, each taking turns at the keyboard, each contributing their own ideas and solutions, and each taking turns creating unit tests and refactoring the code into a final product. It comes out the Extreme Programming (XP) method of developing software. In the past, I personally have used this method to work through some thorny problems, but I can't begin to tell you how invaluable our experiences have been lately to work together and think through some issues and solve some problems.
One tool we are using to develop our unit tests is NUnit. Ron Jeffries, a great XP evangelist, has been using it extensively in his own Pair Programming with C# and describes some of his own tips and techniques with NUnit. I have used some of the other unit testing software, but I believe this one is the best out there!
One advantage we have right now in being able to do some Pair Programming is that we are in the same on-site location. We had previously been working from home on other projects. I am not sure if we would have been able to effectively do Pair Programming remotely.
Of course, we are not doing all our coding using Pair Programming – we mostly use it when it really helps to clarify some issues in code and design. One interesting aspect I have found is that it brings a certain kind of vulnerability. You may make the same kind of mistakes you make alone that you normally wouldn’t see, but the other developer can spot them and point them out. I have found that as you welcome these observations (and provide the same when it’s the other person’s turn at the keyboard! :-)), you can produce bug free code the first time.
Does anyone else have experiences with Pair Programming? How about experiences with remote Pair Programming? Is that possible (through instant messenger or other chat services)? I am interested to know others' experiences and viewpoints on these topics in XP as applied to .Net development.
Lately, I have been looking at Rotor to better understand the CLR and some of my own work with .Net in general. If you are not familiar with Rotor, take a look at Sam's review of his own experience with retrieving and using Rotor:
For myself, I unzipped the entire 11 meg file into 10,000+ files on my drive. I looked at the security classes (implementing IPrincipal and IIdentity) that I have grown fond of lately with my most recent work. I looked at some of the threading classes to see how things are working under the covers. And, of course I looked at some of the Interop service code and the .Net Remoting code to get a quick look at what's going on. Too bad I couldn't find Enterprise Services code, but then again, this is code that could be ported to other platforms where the idea of COM+ is somewhat foreign.
I urge you to join me in digging into the code, especially when you have those questions of "how" or "why" did they do that?? Also, to help you with your study, there is a list of PowerPoint slides from the latest presentations at a Rotor Workshop. Enjoy!!
I really appreciate the availability of WinDev Boston 2003 slides/demos from:
Sam (with COM Interop and Managed C++),
Ingo (with .Net Remoting and Enterprise Services),
John (with Debugging, AOP and Code Generation, and NUnit/NAnt).
All of these are excellent and worthy of study.
Get them today!
Last night, I joined Sam, Ingo, and Ethan Brown for our Boston Blogger dinner. We had a great time going to a good Italian restaurant (everyone else had been going to the fish restaurants the nights before). We talked about some of my favorite topics in .Net: COM+/Enterprise Services, COM Interop, and .Net Remoting. We also had a good social time to relax and enjoy the delicious food!
Great fun, since I am not able to attend WinDev this week!
Get the new FXCop 1.21
version for your .Net compliance checking!
More Posts Next page »