August 2005 - Posts

Vote Now: Enterprise Library BOF at PDC!

If you're attending PDC and are interested in an Enterprise Library "Birds of a Feather" session, then please vote for this session at the PDC website. Hurry, the deadline is August 28th! Below is the abstract for this session:

Using Enterprise Library in the Real World.

The patterns & practices Enterprise Library is a library of application blocks designed to assist developers with common enterprise development challenges. This is an open session in which you are invited to share your experiences using Enterprise Library, as well as learn about how your peers are using Enterprise Library. Tim will be accompanied by Enterprise Library experts and enthusiasts to join in on the discussion.

with 1 Comments

Creating UIs? Check out Microsoft's CAB

The patterns 'n' practices team has done it again! This time it's with the Composite UI Application Block, a guidance asset for .NET 2.0 intended to provide proven practices to build complex UIs. I've personally known about CAB for a while, but with all of the new technologies from Microsoft that I've been trying to learn (.NET 2.0, CF.NET 2.0, VSTS, WCF, WPF, etc.) I kind of glossed over the last few CAB announcements. Last Thursday marked the calendar of yet another famously entertaining patterns 'n' practices webcast with Ron Jefferies and guests, which is always hard to pass up. This time the topic was CAB. I'm happy to say that I will no longer be glossing over any news related to CAB, and that CAB has been pushed onto my "technology to learn" stack. If you'll be developing any sort of UI's anytime soon, especially (but not limited to) Smart Clients, you must check CAB out. Here are some resources to get you started:
  • CAB Webcast On Demand
  • GotDotNet Workspace
    • Click Downloads->Composite UI Application Block Community Technical Preview 1 to get the latest build.
      • This build only works on the .NET Framework Beta2. The July CTP is not supported. For those of us using the latest VSTS bits this is a bit unfortunate. I tried to wrestle with the bits but eventually reverted to one of my Beta2 VM's.
      • Be sure to replace the "&" in the install path to "and". An example target directory would be C:\Program Files\Microsoft Patterns and Practices. This is due to an issue with the "Hands on Labs".
    • Just Released! Click Downloads->CAB Hands-on-Labs to get the latest HOL bits.
      • These labs simply rock. I've used HOL's produced by Microsoft Product Teams with far more budget for this sort of thing and they don't even come close. I may post more on these later once I get a chance to go through them all.
      • Be sure to install this in the same base folder as the CAB bits. Assuming there's no ampersand symbol ("&") in your path name, everything should be fine.
      • Use the "N" button to go from step to step. The highlighting is nice and the "insert to copy code snipped" prevents unnecessary mouse dragging and clicking.
  • Thread on CAB and the Smart Client Offline Block
  • Thread on CAB and the UIP Block

More on this later as I get time. Have fun!
    with 0 Comments

    Tom on Logging in Enterprise Library for .NET 2.0

    EntLib Product Manager Tom Hollander has posted some initial thoughts on how Logging for Enterprise Library 2.0 will look. My gut reaction is that I like where the team is going and that we are going to have a much better Logging experience in 2.0. Tom is looking for your feedback so be sure to read up and give him your ideas.

    A notable change that Tom mentions is the removal of Distribution Strategies. As much as I liked the idea of Distribution Strategies, I agree with a lot of user feedback that Distribution Strategies add too much complexity for the majority of use cases. Tom goes on to explain how more complex scenarios like remote message processing will be supported by more flexible message routing. The proposal is that we'll have two different "wildcards" for message routing: "*", and "%". The "*" is a catchall, meaning that all messages will always be routed to the configured sink. The "%" is a catchall-not-processed, meaning if the message wasn't processed by anyone else it will be routed to the configured sink. Read Tom's blog about this new feature and how it can be used to solve the more complicated use cases. A nice side affect (or maybe intended affect) however is that we get a much nicer way of handling the "no category defined or no category configured" messages in a more specific way than the current version's "default category" approach. I really like what I see so far and I'm looking forward to seeing more as the design matures.
    with 0 Comments

    Enterprise Library Series

    DotNetJunkies is doing a series on Enterprise Library, starting with an overview and then publishing a detailed article for each block. Check out the first in this series.
    with 0 Comments

    Enterprise Library Configuration and Multiple Environments

    Olaf is at it again. This time he's created an extension to the Enterprise Library Configuration Block that allows for environmental overrides of certain properties. This is great for managing values like database connection strings that usually change from test to production for example. Great work Olaf!
    with 0 Comments

    Sometimes it's the little things that count

    Scott Guthrie just posted on ASP.NET 2.0's DefaultFocus feature. I love it. I personally go out of my way to hand code javascript to focus on different buttons or other controls depending on a users action. I think that this type of "fit 'n' finish" really adds to the user experience. ASP.NET 2.0 will support default focus for all kinds of events, from a form load to validation errors. Here's a quick code sample from Scott's post:

    <html>

    <body>

        <form defaultbutton=“button1” runat=“server” ID="Form1">

            <asp:button id=“button1” text=“Same Page” runat=“server”/>

            <asp:panel defaultbutton=“button2” runat=“server”>

                <asp:textbox id=“foo” runat=“server”/>

                <asp:button id=“button2” runat=“server”/>

            </asp:panel>

        </form>

    </body>

    </html>

    with 0 Comments

    Enterprise Library 2.0 Cometh

    Declareth Lord Densmore the Third.
    with 0 Comments

    TDD and Legos

    Jeremy Miller recently made a great post on designing with TDD. The following is a great analogy on TDD's unconventional "bottom up" design:

    One way to think about TDD is an analogy to Lego blocks. The Lego sets I had as a child were the very basic block shapes. Using a lot of little Lego pieces, you can build almost anything your imagination can create. If [however] you buy a fancy Lego set that has a single large piece shaped like a pirate's ship, all you can make is a variation of a pirate ship.

    with 0 Comments