CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Glenn Block

April 2008 - Posts

  • Brian Noyes thoughts on Prism

    Brian Noyes from IDesign is one of the great folks helping us in the design and development of Prism. Brian brings a breadth of experience with WPF, and has worked significantly with CAB. He also was the author of the click-once integration pieces in SCSF. Recently he put together a great post speaking on the work we are doing. He talks about composite applications, what Prism is, and also the state of the project.

    I've been meaning to do a similar post, but thanks to Brian I am off the hook. :-)

    Check it out here

  • Extreme Patterns with Oren

    On my way to Tech-Ed Israel, I stopped over in Tel Aviv for a few nights. While there, I had the pleasure of having a small chat with Oren Eini around patterns. The chat was insightful as Oren let his passion for applying patterns shine through. The best part of the video is when he  discussed various techniques he uses to aid development teams in their adoption. Just see for yourself, it's a real treat.

    Disclaimer: I do not support any of the techniques mentioned in this video. This is a professionally trained actor. Please kids, don't try this at home.

  • The Prism team and how we develop

    We've got quite a diverse team for Prism that spans 3 continents.

    In Redmond

    Prism Team 1

    Adam Calderon (Interknowlodgy), Arun Subramonian Namboothiri (Infosys), Prasad Paluri (Infosys), Francis Cheung, Julian Dominguez (Southworks), Bob Brumfield, Glenn Block, Blaine Wastell, Nelly Delgado, Brian Noyes (iDesign), and Larry Brader

    In Buenos Aires                       And India

      Prism Team 2Prism Team 3

    Ezequiel Jadib, Mariano Szklanny  (Southworks)                        Gokul Janardhanan (Southworks)

    Although there's thousands of miles between us, we work as one team not 3, that's how we make it work!

    So who does what?

     

    Area / Role Team members
    Dev Francis, Bob, Julian, Adam, Brian
    Test Larry, Prasad, Gokul
    Docs Nelly, Mariano
    Program / Product Planning / Product Mgmt Blaine Wastell, Glenn Block

     

    How do we work?

    Within the client team (and throughout p&p) we adopt a hybrid of XP and Scrum. We are a TDD shop all the way. We do continuous integration, and practice pair programming (as well as pair planning, pair powerpointing and a few other variations :) ) . We have bi-weekly iterations, do daily stand-ups, ip meetings (and pre-ip), and we have a product backlog. We don't have a "Sprint Backlog", but we do stack-rank our priorities for each iteration during pre-ip, and create TFS WorkItems. We also keep burn down charts and the like to continually measure the team velocity.

    What's it like being in the team room?

    People often ask what it's like working in the team room. If you haven't work in a collaborative environment before, it might sound scary to all be in the same room. After all, everyone likes having their own space right? One of the core tenets of the agile manifesto is "Individuals and interactions over process and tools". In an agile team, breaking down the walls literally, brings real cohesion amongst the team. When you are in the room, it's as if you can hear the teams heartbeat.

    Recently thanks to the CodeBetter guys who lent me their Qik phone, I got a chance to stream some live video of one of our iteration planning meetings (much to the dismay of my team that I caught completely off guard). In the video aside from seeing the shocked faces of the team :(, you'll hopefully get a preview of how we work. (click the play buttons if you see them or use the links)

    Here I am on the way to "surprise" the team......http://qik.com/video/46805

    And then.....http://qik.com/video/46813


    I feel fortunate to work in such a great environment with such a terrific team!!! I keep waiting for the day when my manager tells me they discovered the computer glitch and it was all a big mistake....

  • PageFlow reborn

    Many of you noticed that WCSF 2.0 did not ship with PageFlow. Early during the development of WCSF 2.0, we decided to break out the PageFlow application block and recipes into a separately downloadable package. There were several reasons foremost of which was that we wanted to make it easier to use Pageflow on it's own without having to install WCSF. A secondary reason was that we had requests from the community around extending their wanting to extend PageFlow.

    Unfortunately, due to resource constraints, we were not able to complete the breakout of PageFlow before we shipped. However, as I mentioned, we have been completing this work out-of-band.  We're now nearing completion of the source and will be uploading it shortly. The docs will still need more work and we'll be shipping them some time after the source ships.

    What's in the new PageFlow?

    • New stand alone PageFlow guidance package that works on Visual Studio 2008! Does not require WCSF.
    • New XmlPageFlowProvider that does not depend on Windows Workflow Foundation
    • Migrated PageFlowWithShoppingCart Quickstarts to Visual Studio 2008
    • Updated Dependencies to GAT/GAX 1.4

    Coming soon to WCSF Contrib!

  • Reflections on ALT.NET Seattle, the evening before

    This weekend I attended the long awaited ALT.NET Seattle, in this post I'll share some of my thoughts from the event. ALT.NET kicked off with an opening session with all the attendees.

    After a Costco run to stock up on food along with several others including David Laribee, Scott Bellware and Brad Wilson (thanks for driving), I arrived at Digipen. I remember not really knowing what to expect as ALT.NET has gone through a lot of transition over the past year. I was never the less excited and optimistic.

    Upon arrival, the first person I bumped into was Chad Myers. Chad and I had been collaborating over various mediums for the past 6 months, however we never met in person. Meeting Chad in person was a reminder for me about the significance of this event that had drawn in people from across the globe.  As I entered into the main room where the event was going to start, I could feel the excitement. There was something different about "this" event than other events I had attended. I had just returned from "Tech Ed Israel" followed by the MVP summit, but this was something different. Here you could tell that all the attendees felt like they were really part of something, rather than simply being spectators.

    To kick off the event, Doc, our facilitator, introduced us to the four main principles of Open-Space, and described what was to come in the coming days. Rather than describe it, it's best if you experience it, which is possible thanks to Jeffrey's videos.

    Next as is traditional in Open-Space the attendees planned out the sessions for the next 2 days. The nice thing about this conference is that it's not a spectator-only sport. Anyone can contribute, anyone can suggest a session. Essentially you just write your name and session on a sticker and walk up to the center of the room.

    Proposing topics

    The other nice thing is that just because you suggest, doesn't mean you need to actually deliver the session. As a convener, your responsibility is to ensure that you start off the meeting, and that someone takes the notes. In my case, I suggested 3 sessions, entitled "To Mock or not to Mock", "Prism, Are we headed in the right direction" and "What is guidance?". In the end, all the proposed sessions were posted on a schedule in the front of the room. (That's me in the blue and white jacket)

    More votingsSaturdaySchedule

    This was followed by a fishbowl session on PolyGlot programming (means using multiple languages in the same program for those who didn't know including me :) )  Below you can see Hanselman who has jumped in the bowl. One of the highlights of the session was Charlie Calvert from the language team at Microsoft joined the discussion to talk about mixed language support in future versions of the framework.

    Polygot Programmer discussion

    Just as we had thought evening had ended, we all headed to a local restaurant for another round. I am not sure, but we may have violated a few fire-codes. The highlight of the dinner for me was a conversation I had with Martin Fowler around UI Patterns, particularly Presentation Model and MVP. Yes I know, I am a geek but come on I mean how often do you have Fowler right at the next table?

    Dinner4-18

    The really impressive part of the whole evening was the way everyone immediately self-organized and the level of respect all the attendees showed one another. Also there was no anti-Microsoft vibe, instead it felt warm and welcoming.

  • Dinner in Tel Aviv days before Tech-Ed 2008

    I am writing this from the keynote for Tech-Ed Israel, with my co-presenter Ohad sitting on my left. So far the trip has been great. Upon arrival and after passing through customs, I was happily surprised to find Ohad waiting for me. He's been a fantastic host, trekking me around Tell Aviv. We spent a lot of time together over the past few days as we prepped for our talks. Up until my arrival in Israel, we've been prepping remotely, as well as jointly developing our "Prism" demo. One of the key concepts behind "Prism" is to allow teams to develop separate portions of the system (modules) in isolation. As part of the writing of the demo, we actually did this, so I am happy to say it does work ;)

    Although I was extremely jet lagged upon arrival, Ohad had an exciting dinner planned.

    Roy Osherove, Udi Dahan, Oren Eini, Ohad Israeli and my former CTO from Global Factory, Itai Raz got together for a 3-hour pure geek out session (we ate as well)

    IMG_4914

    It was a memorable evening with several highlights. One was a discussion with Udi around NServicebus and quick primer on why we need Sagas.

    Tel-Aviv 2008 001

    The second was a bonding session between Oren and I. We started off by clearing our chests. As you can tell we both had some bent up aggression to let go of.

    Tel-Aviv 2008 007  IMG_4922

    Finally we hugged and made up. :-)

    Tel-Aviv 2008 008 

    A great way to kickoff what I am sure will be a fantastic event. Look for more posts in the upcoming days.

  • Upcoming talks

    This is one of the posts that I have been meaning to get to for several weeks, but it just keeps falling to the bottom of the backlog. Tomorrow I jump on an airplane so I guess now is as good as time as any. In the next few months, I have several talks at various events.

     

    Tech-Ed Israel (April 6th to 8th)

    image 

    I am honored to be chosen out of about 160 speakers to fly across the country to geek out Israeli style. I'll be speaking on the work we are doing on "Prism" and "Web Client Software Factory" along with my famed compadre Ohad Israeli, the CAB guru. We're burning the midnight oil to put on a good show. If your in town, come check it out. One other highlight of this trip is I am bringing a mobile video-phone with me and will be streaming live highlights at Qik.com. Keep checking that site for regular updates of completely ad-hoc style content.

    ALT.NET Seattle (April 18th to 20th)

    image4

    Myself and a bunch of my team mates are raiding in on ALT.NET. My goal is to convert all the attendees to the "drag first", "design second" way of thinking :) (residual overused April fools joke). Actually this is a big deal, and I am really excited to be a part of it. I attended the ALT.NET Leadership summit in NYC and had a blast. Most of all I am happy since Open Space means not prepping for a talk. I am looking forward to meeting many of the folks whom I have to date only met virtually through the ALT.NET list.

    Tech-ed US (June 3 to 6)

    image

    Heading down to Orlando and bringing the tribe. Like Tech-Ed Israel, I'll be speaking on "Prism" and "WCSF". I am planning to be in town for several weeks, so if there are any local user groups going on, I'm up for attending.

    Allright, well time to go pack!

  • Announcing the Patterns & Practices Patterns Factory

    For some time now I've been working on a project that I've not been able to talk about. Well today, I am finally able to let the cat out of the bag. One of the challenges we've been hearing about from customers is around patterns. We hear they are way too hard to grok, and to implement.

    What customers want is for us to help them with guidance on how to implement those patterns in the real world. In the past we've done this through several means starting with guidance, and moving toward code. Time and time again when we have delivered pure "guidance" we hear that is not enough, we need more, we need code, we need tools! We've done specific tooling for things like Service Factory, CAB, and WCSF, but we still hear this is not enough. We want general pattern guidance.

    Now this is just one segment of our audience, though a pretty big segment.

    At the same time technology has been constantly evolving which opens up new ways to tackle different challenges. In this case today, we believe we reached the point to solve what I'll deem "The pattern problem"

    So this is were the Patterns Factory comes in. So what is it? The Patterns factory is planned to be an interactive tooling experience in Visual Studio that will generate artifacts that implement patterns. Want a factory, point the tool at an existing class and you can generate a factory that will create that class. Point at an interface and it will generate a factory for creating classes that implement that interface. Check the dynamic factory check box, and you get a factory that loads from config. You can even select your specific factory to be DI Enabled, and supply the type of container for it to use. OOTB we'll support Unity (of course), Structure Map, Windsor, and NHibernate. We're planning for even more containers to be supported.  I know your probably worrying at this point about all the oodles of codegen. Yes, there will be alot of code, but we're using partial classes and partial methods so that you can regen at any time.

    OK, so that tells you what you can do with factories. But that's not where it ends, we've actually built up a library of all GOF patterns that you can generate artifacts. That means you can create implementations of flyweight, visitor, state, and any other patterns you can think of. Yes we've also added MVP, MVC, and Presentation Model support. There's an extensible XML repository where you can define your own patterns and their associated artifacts. I am planning a 10 part series to explain how you configure the repository, it's pretty easy once you know all the rules.

    With all this talk about patterns, you may be thinking about the tooling aspect, i.e. what is the designer experience in Visual Studio? Well thanks to the work Don Smith and the service factory team have done, that answer has been provided for us. I am happy to say that the Patterns Factory, will leverage DSL designers both for defining the pattern repository, and for generating the patterns. Using the designers, you can model all the aspects of the system and what patterns are in play. You can save the pattern schema to allow you to create new apps leveraging all the same patterns. We also have Pattern detail collection screens. These screens use the DSL powertoy to allow you to collect specific information on each pattern similar to what i mentioned earlier. For example if I create a new State pattern instance, then I get a set of screens where i can define the list of states. They Flyweight screen is really cool which allows me to key in all my Flyweight instances statically if I want to, you can also link it up to a database through the Entity Framework and allow it to pull all the Flyweight instance metadata directly in.

    The other nice part in all of this is that it's completely extensible. It's all XML anyway :) Allright, so you can hear the enthusiasm on my part about this new work. I've not been able to talk about it before, because I didn't know if it would actually get off the ground. It's been my personal project that I've been writing on the side. Fortunately for all our execs in p&p this was a no-brainer.

    Within p&p we're really excited about the new Patterns factory. We think with the factory, you'll be dragging and dropping your way to a scaleable enterprise architecture. And because it's April fools the factory is available today for download at http://www.codeplex.com/aprilfools.

    More to come on this in the future.

  • Prism talk at WPF Bootcamp

    Some months ago I delivered a talk on "Prism' at the WPF Bootcamp. The talk gives a good overview of why we are doing this work. At the time of this demo it was very early, before we even started on the RI work. It does give a good idea of where we are heading, and what is different about this work from what we've delivered in the past.

    I also get to do a bit of coverage of different design patterns including those that play out specifically around WPF, how we are pushing Composition vs Inheritance. Finally, I talk about what we are doing to support different OS alternatives like Castle Windsor, etc.

    I want to thank Karsten Januszewski for inviting me to the event. I got a chance to have some great customer interactions and talk to some tried and true CAB customers. At the same time, I think much of content was probably a bit heavy and I am known for erring on the side of MORE information not less.

    Get the video here...if you have any issues viewing, you can download here.

More Posts

This Blog

Syndication

News

View Glenn Block's profile on LinkedIn

Me