Archives

Archives / 2008 / November
  • Object Oriented F# - Encapsulation with Object Expressions

    In the past, I've covered a bit about object oriented programming in F#.  I'd like to come back to that series as there is much yet to cover on this topic.  Last week, I spent some time with Erik Meijer at QCon and he and I both agreed that in some ways, F# is a better object oriented language than C# in some ways given some of the language flexibility.

  • Code Contracts - TDD in a DbC World

    Lately, I've been talking about the new feature coming to .NET 4.0, Code Contracts, which is to bring Design by Contract (DbC) idioms to all .NET languages as part of the base class library.  Last week, I attended QCon, where Greg Young, one of my CodeBetter cohorts, gave a talk titled "TDD in a DbC World" in which he talked about that they are not in conflict, but instead are complementary to a test first mentality.  Both improve upon the usage of the other.

  • DC ALT.NET 11/25 - Web Testing Frameworks

    The November meeting for DC ALT.NET will be on November 25th, 2008 from 7PM-9PM.  Check out our site and our mailing list for more information as it becomes available.  This month, John Morales will be facilitating a discussion on web testing frameworks which includes Selenium, Watir and WatiN among others.  Once again, I'd like to thank Cynergy Systems, Inc for sponsoring this month's event.

  • Functional .NET 4.0 - Tuples and Zip

    Previously, when covering some of the additions to the .NET 4.0 Framework such as optional and named parameters, some of the other additions have caught my eye from the perspective of functional programming.  Unlike .NET 3.5, this release is not as targeted towards functional programming as it is more towards dynamic programming and COM interoperability.  But, there are a few items to note that we can soon take advantage of, including the Tuple type and the Zip operator function among other items.

  • .NET Code Contracts and TDD Are Complementary

    After my recent post on the introduction of Code Contracts in .NET 4.0, I got some strong reaction that they would rather rely on TDD, or the better term, Example Driven Development specifications to ensure correctness.  Instead, it's my intent to talk about how they can complement each other in some rather powerful ways, such as having contracts bound to interfaces instead of class instances to ensure uniform interaction.  When we combine these two things together, the edge cases of our behaviors quickly melt away.

  • KaizenConf'08 Functional Programming Presentation Video

    Last week, I provided a basic wrap up of my functional programming talk at the Continuous Improvement in Software Development conference (KaizenConf) in Austin.  Little did I realize that I was indeed being filmed while I talked by Mark Leon Watson.  So, without further ado, enjoy the first 20 minutes of my talk.  I should emphasize though that it's not the official position that designers will never be there, but instead, it's not the highest priority.  In time, they may come as needs arise.

  • Code Contracts for .NET 4.0 - Spec# Comes Alive

    As I've said in many posts before, I'm a big fan of stating your preconditions, postconditions, invariants and so on explicitly in your code through the use of contracts in the Design by Contract Parlance.  Spec# is a project that came from Microsoft Research as a language based upon C# to add Design by Contract features to the language.  I've talked extensively on the subject in the past on this blog and previous blogs of mine especially around the time of the ALT.NET Open Spaces, Seattle event back in April of this year.  The importance of making side effects well known is something that I mentioned briefly during my Approaching Functional Programming talk at KaizenConf.  To be able to express and statically verify behavior is important in regards to side effects and method purity.

  • KaizenConf Wrapup - Approaching Functional Programming

    This past weekend, I had the opportunity to attend and give a workshop at the Continuous Improvement in Software Development, or KaizenConf.  I'm grateful to Scott Bellware and Dave Laribee for organizing this event.  The tone and subject matter at this conference was both refreshing and interesting.  This conference had a focus on continuous improvement through methodology, communication, as well as technology, which was a bit different than the ALT.NET Conferences, which had much more of a technology tilt.  The conversations had not only in the sessions, but also the hallways in between were enlightening, and it was enjoyable to get so many perspectives on software development issues.