<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>BrianDonahue.Persist()</title>
        <link>http://persistall.com/Default.aspx</link>
        <description />
        <language>en-US</language>
        <copyright>Brian Donahue</copyright>
        <managingEditor>brian.donahue@vitreosolutions.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>BrianDonahue.Persist()</title>
            <url>http://persistall.com/images/RSS2Image.gif</url>
            <link>http://persistall.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/bdpersist" type="application/rss+xml" /><item>
            <title>Upcoming Philly Events</title>
            <category>Agile</category>
            <category>ALT.NET</category>
            <category>ASP.NET</category>
            <category>ASP.NET MVC</category>
            <category>C#</category>
            <category>Coding</category>
            <category>Community</category>
            <category>Philly ALT.NET</category>
            <category>TDD</category>
            <category>Windows</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/410334031/upcoming-philly-events.aspx</link>
            <description>&lt;p&gt;There is a lot of great stuff happening in Philly these days, and the next couple months seem especially busy.  I wanted to post about some of the great (free!) events that are coming up: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Saturday, October 11th: &lt;/strong&gt;&lt;a href="http://www.phillydotnet.org/Default.aspx?tabid=682"&gt;&lt;strong&gt;Philly.NET Code Camp&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, Ft. Washington, PA&lt;/strong&gt; &lt;strong&gt;- &lt;/strong&gt;50 sessions in 10 different tracks, with great speakers, all for FREE!  They do this three times a year, and it’s worth going to every time if you are looking to improve your knowledge and skills.  The &lt;a href="http://phillyalt.net"&gt;Philly ALT.NET&lt;/a&gt; user group gets it’s own track with 5 sessions, and we have a couple other speakers that came up through our ranks speaking at the event, which I couldn’t be more thrilled about!&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Wednesday, October 15th: &lt;a href="http://phillyalt.net"&gt;Philly ALT.NET Pub Night&lt;/a&gt;, Jenkintown, PA &lt;/strong&gt;- The Philly ALT.NET group will be getting together to discuss ways to better organize and improve our group.  One of the interesting topics on the table is the idea of creating an open source web application for common user group management activities such as event announcements, registration, group communication, etc.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Saturday, October 18th: &lt;/strong&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391157&amp;amp;culture=en-US"&gt;&lt;strong&gt;ASP.NET MVC Firestarter&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, Malvern, PA&lt;/strong&gt; - &lt;a href="http://www.smallandmighty.net"&gt;Dani Diaz&lt;/a&gt;, and other local Microsoft reps are putting together a great event for those of you who are looking to learn more about the new ASP.NET MVC framework.  I participated in a similar event in New York, and it was very well received, and people really get a great overview of what this framework can do, and how it can change the way you develop ASP.NET applications.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Tuesday, October 28th: &lt;/strong&gt;&lt;a href="http://www.phillydotnet.org/Meetings/MonthlyMeetings/tabid/336/Default.aspx"&gt;&lt;strong&gt;Philly.NET Hands-On Workshop&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, Ft. Washington, PA &lt;/strong&gt;&lt;strong&gt; - &lt;/strong&gt;Bill Wolff and Rob Kaiser will be taking a look at Dynamic Data and LINQ&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Saturday, November 8th: &lt;/strong&gt;&lt;a href="http://www.barcampphilly.org/"&gt;&lt;strong&gt;BarCamp Philly&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, Philadelphia, PA - &lt;/strong&gt;Fellow Philly ALT.NET member, &lt;a href="http://30points.com/blog"&gt;JP Toto&lt;/a&gt;, is one of the lead organizers for this event, which is an &lt;a href="http://www.barcampphilly.org/what-is-it/"&gt;idea&lt;/a&gt; that has been executed with great success all over the country, and is now coming to Philly!  This event spans technologies and platforms and will have a bunch of super-smart and super-cool folks from Philly and beyond, and is definitely worth checking it out.  For more info, read "&lt;a href="http://www.barcampphilly.org/what-is-it/"&gt;What is BarCamp?&lt;/a&gt;"&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Tuesday, November 25th: &lt;/strong&gt;&lt;a href="http://www.phillydotnet.org/Meetings/MonthlyMeetings/tabid/336/Default.aspx"&gt;&lt;strong&gt;Philly.NET Hands-On Workshop&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, Ft. Washington, PA - &lt;/strong&gt;I’ll be returning for another workshop, which will likely be a continuation of the last one I did, "&lt;a href="http://persistall.com/archive/2008/10/01/quotgetting-started-with-tddquot-workshop-recap.aspx"&gt;Getting Started With Test Driven Development&lt;/a&gt;."  More details to come!&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://persistall.com/aggbug/99.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/410334031" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/10/03/upcoming-philly-events.aspx</guid>
            <pubDate>Fri, 03 Oct 2008 15:20:24 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/99.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/10/03/upcoming-philly-events.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/99.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/99.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/10/03/upcoming-philly-events.aspx</feedburner:origLink></item>
        <item>
            <title>Nant Task for IIS Application Mapping Now Up on Google Code</title>
            <category>ASP.NET</category>
            <category>C#</category>
            <category>ASP.NET MVC</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/409402042/nant-task-for-iis-application-mapping-now-up-on-google.aspx</link>
            <description>Just a quick update to say that I've moved the source code and binaries for the &lt;a href="http://persistall.com/archive/2007/06/11/nant-task-for-creating-iis-application-mappings.aspx"&gt;Nant Task&lt;/a&gt; I wrote a ways back up to google code.  It's a fairly popular post on this site, and apparently I broke the links to the source and binaries at some point recently!&lt;br /&gt;
&lt;br /&gt;
So I figured, I'd make it legit:&lt;br /&gt;
&lt;a href="http://code.google.com/p/nant-iisappmap/"&gt;http://code.google.com/p/nant-iisappmap/&lt;/a&gt;&lt;img src="http://persistall.com/aggbug/98.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/409402042" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/10/02/nant-task-for-iis-application-mapping-now-up-on-google.aspx</guid>
            <pubDate>Thu, 02 Oct 2008 16:36:44 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/98.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/10/02/nant-task-for-iis-application-mapping-now-up-on-google.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/98.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/98.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/10/02/nant-task-for-iis-application-mapping-now-up-on-google.aspx</feedburner:origLink></item>
        <item>
            <title>&amp;quot;Getting Started With TDD&amp;quot; Workshop Recap</title>
            <category>ASP.NET</category>
            <category>Coding</category>
            <category>Agile</category>
            <category>TDD</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>BDD</category>
            <category>Community</category>
            <category>Philly ALT.NET</category>
            <category>Tools</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/408826634/quotgetting-started-with-tddquot-workshop-recap.aspx</link>
            <description>&lt;p&gt;Last night, I was the speaker at the monthly &lt;a href="http://phillydotnet.org"&gt;Philly.NET&lt;/a&gt; Hands-On Workshop event.  This was my second time doing a hands-on with them - &lt;a href="javascript:void(0);/*1222914593775*/"&gt;last time&lt;/a&gt; I got a lot of help from my friend &lt;a href="http://erikbase.blogspot.com"&gt;Erik Peterson&lt;/a&gt;, and we did a workshop on TDD with Model-View-Presenter and Webforms. &lt;/p&gt;
&lt;p&gt;Our first workshop got mixed reviews.  Many people really appreciated seeing all the ideas we were discussing, but I’d say a majority of them felt it was too much, too fast, and I sensed they were leaving without enough knowledge or confidence to try the techniques we were showing on their own.  On the positive side, I learned a great deal from the experience, and decided that I needed to take a much more back-to-basics approach for the next one.&lt;/p&gt;
&lt;p&gt;So, last night, the theme of the workshop was "Getting Started With TDD."  Whereas last time, we basically implemented an entire new (small) feature on a web site, this time we literally spent almost three hours test-driving a single method.  To focus as much as possible on the principles and techniques for Test Driven Development, I avoided any advanced tools like mocking frameworks and IoC containers.  We hand-rolled our own test-doubles, and tested interaction in a very explicit manner.  We went at a very slow pace, but took a lot of time to explain every step, and answer questions.  &lt;/p&gt;
&lt;p&gt;From my vantage point, the night felt very different from the prior workshop (which was still a lot of fun).  People seemed more engaged as participants rather than spectators, they were able to follow along, keep their solution building, and eventually, their tests passing.  Questions were frequent, and I was pretty careful to try not to leave anyone behind as we went along.  &lt;/p&gt;
&lt;p&gt;One of the great things about these workshops, is at the end of the night Bill Wolff, the Philly.NET leader, stands up and asks everyone what they thought of the workshop.  Talk about holding your feet to the fire! :)  Last night the feedback was overwhelmingly positive, and the best thrill for me was when he asked "How many people had a working solution with tests passing at the end of the night?" and almost everyone in the room raised their hands.  Awesome!  I also was very encouraged by Scott L. Holmes' &lt;a href="http://slholmes.org/blog/?p=71"&gt;comments and notes&lt;/a&gt; on the workshop, and some emails I received today.  &lt;/p&gt;
&lt;p&gt;Going forward, I am hoping to add on to the "building blocks" with more TDD and design techniques, and start to look at mocking tools to help take out the extra work of rolling your own, and how you can use IoC containers to handle dependencies more easily.  In fact, at &lt;a href="http://www.phillydotnet.org/Default.aspx?tabid=682"&gt;Philly.NET Code Camp&lt;/a&gt; on October 11th, I’ll be doing an intro to mocking which will build a bit upon this workshop.&lt;/p&gt;&lt;img src="http://persistall.com/aggbug/97.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/408826634" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/10/01/quotgetting-started-with-tddquot-workshop-recap.aspx</guid>
            <pubDate>Thu, 02 Oct 2008 01:43:00 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/97.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/10/01/quotgetting-started-with-tddquot-workshop-recap.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/97.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/97.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/10/01/quotgetting-started-with-tddquot-workshop-recap.aspx</feedburner:origLink></item>
        <item>
            <title>Philly.NET Workshop - Slides, Code, and Lessons Learned</title>
            <category>ASP.NET</category>
            <category>Coding</category>
            <category>Agile</category>
            <category>TDD</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>BDD</category>
            <category>Philly ALT.NET</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/350072127/philly.net-workshop---slides-code-and-lessons-learned.aspx</link>
            <description>Tonight, &lt;a href="http://erikbase.blogspot.com"&gt;Erik Peterson&lt;/a&gt; and I did a hands-on workshop as part of &lt;a href="http://phillydotnet.org"&gt;Philly.NET&lt;/a&gt;'s workshop series.  Our topic was "Building Maintainable, Testable WebForms Applications with the Model-View Presenter Pattern."  Without further ado, here are the slides and code from the workshop.  This is the "final" version of our basic app, which is farther than we got in the workshop, so hopefully this will answer some questions that we didn't get to.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.persistall.com/images/persistall_com/MVP Demo Slides.ppt"&gt;Slides&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://persistall.com/images/persistall_com/MVP Workshop.zip"&gt;Code&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: center;"&gt;&lt;img width="400" vspace="0" hspace="0" height="300" alt="Model-View-Presenter" src="/images/persistall_com/MVP Pic.004.png" /&gt;&lt;br /&gt;
Model, View, Presenter!&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
I'd like to thank everyone that came out and Philly.NET for hosting us.  This was the first workshop for both of us and your feedback was incredibly valuable.  We definitely got some feedback that we'll incorporate in the future.  One of the challenges of teaching TDD is finding the balance between examples and/or approaches that are too simplified to be useful, vs. throwing way too many concepts and/or tools at the audience for them to be able to follow along.  Things like rolling your own mocks and stubs vs. using a framework like &lt;a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx"&gt;Rhino Mocks&lt;/a&gt; - the former may be easier to understand initially, but adds a lot more busy work and complexity to the test library, and can end up being almost as hard to explain.  I tend to show all the tools and tricks, and hope that the concepts are made clear, and detailed usage can be researched further after the fact.  But, I do think I need to be very careful about this approach and do as much as possible to help people follow along.  I'm definitely interested in any tips or advice from those more experienced in teaching these things than I.&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Also, some more technical details - I should have definitely used the default color scheme of Visual Studio, and not my crazy black background.  People made the valid point that it's easier to follow the code in the scheme they are used to.  Finally, starting out with a blank slate application was probably too ambitious for a 2.5 hour workshop.  We should have started with a little demo functionality to introduce concepts, and then added on top of it.  &lt;br /&gt;
&lt;br /&gt;
In the last slide of the PPT deck there are some links to further references on MVP and TDD. &lt;br /&gt;
&lt;br /&gt;
A couple shout outs:&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://jetbrains.com"&gt;JetBrains &lt;/a&gt;provided us with a couple &lt;a href="http://jetbrains.com/resharper"&gt;Resharper &lt;/a&gt;licenses to give away.  &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;And don't forget our own &lt;a href="http://phillyalt.net"&gt;Philly ALT.NET&lt;/a&gt; user group!  It's a great place to learn more about the concepts we introduced tonight, as well as meet and learn from other developers in our area, and get answers to questions on our &lt;a href="http://groups.yahoo.com/group/phillyaltnet"&gt;discussion group&lt;/a&gt;.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;UPDATE:  I'm wondering if anyone would be interested in a follow-up presentation at a Philly ALT.NET meeting where we could review the "final" version of the app in more detail, answer lingering questions, etc.  If you are interested in this, please leave a comment, or post a note to our  &lt;a href="http://groups.yahoo.com/group/phillyaltnet"&gt;discussion group&lt;/a&gt;.&lt;/span&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;img src="http://persistall.com/aggbug/96.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/350072127" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/07/29/philly.net-workshop---slides-code-and-lessons-learned.aspx</guid>
            <pubDate>Wed, 30 Jul 2008 02:20:07 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/96.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/07/29/philly.net-workshop---slides-code-and-lessons-learned.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/96.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/96.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/07/29/philly.net-workshop---slides-code-and-lessons-learned.aspx</feedburner:origLink></item>
        <item>
            <title>Philly ALT.NET - Thursday July 17 - Building Maintainable Apps with WPF</title>
            <category>Coding</category>
            <category>Agile</category>
            <category>TDD</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>Community</category>
            <category>Philly ALT.NET</category>
            <category>Tools</category>
            <category>Windows</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/330829028/philly-alt.net---thursday-july-17---building-maintainable-apps.aspx</link>
            <description>Next week's Philly ALT.NET meeting should be a good one, with our own Jon Graves talking about building maintainable apps with Windows Presentation Foundation (WPF).  He's going to touch on things like using the Model-View-Presenter pattern for TDD, Dependency Injection, and other patterns and practices he's found useful for building WPF applications.  &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;If you're interested in checking it out, send an email to rsvp [at] phillyalt [dot] net&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Here are the details, which can also be found on our wiki at &lt;a href="http://phillyalt.net"&gt;http://phillyalt.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Building Maintainable Applications With Windows Presentation Foundation&lt;br /&gt;
Jon Graves&lt;br /&gt;
&lt;/strong&gt;&lt;strong&gt;Thursday, July 17th, 2008&lt;br /&gt;
6:30 PM - 8:50 PM&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Drexel University&lt;br /&gt;
Rush Building Room 014 (Basement Level)&lt;br /&gt;
&lt;/strong&gt;30 N. 33rd St. (33rd and Cuthbert)&lt;br /&gt;
Philadelphia, PA 19104&lt;br /&gt;
&lt;strong&gt;6:30 PM &lt;/strong&gt;- Greetings and Eatings&lt;br /&gt;
&lt;strong&gt;7:00 PM &lt;/strong&gt;- Topic Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Topic Abstract:&lt;br /&gt;
&lt;/strong&gt;We will be exploring a simple desktop client application built using pure WPF that integrates XAML into the Model-View-Presenter pattern. Topics that may be touched on include: Databinding (way better than the crappy WInforms binding, trust me), IDataErrorInfo support, Dirty Checking integration, the Autofac DI framework, and the Caliburn WPF framework.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Jon Graves&lt;/strong&gt;&lt;br /&gt;
Jon &lt;span&gt;Graves&lt;/span&gt; is a Software Engineer who has been working with C# and .NET since before they were cool. Currently he is working at Neat Receipts, a document-management software company based in Philadelphia. He has a passion for designing and building stellar user experiences. When he's not coding, you can find him scuba diving, playing piano, or drinking beer. Usually not all at the same time though.&lt;br /&gt;
&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;img src="http://persistall.com/aggbug/94.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/330829028" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/07/09/philly-alt.net---thursday-july-17---building-maintainable-apps.aspx</guid>
            <pubDate>Wed, 09 Jul 2008 14:15:07 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/94.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/07/09/philly-alt.net---thursday-july-17---building-maintainable-apps.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/94.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/94.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/07/09/philly-alt.net---thursday-july-17---building-maintainable-apps.aspx</feedburner:origLink></item>
        <item>
            <title>F# and Functional Programming at Philly ALT.NET Wednesday Night!</title>
            <category>Coding</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>Philly ALT.NET</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/294707037/f-and-functional-programming-at-philly-alt.net-wednesday-night.aspx</link>
            <description>&lt;p&gt;Just a quick post to get the word out that &lt;a href="http://codebetter.com/blogs/matthew.podwysocki"&gt;Matt Podwysocki&lt;/a&gt; will be leading the discussion at this month’s &lt;a href="http://phillyalt.net"&gt;Philly ALT.NET&lt;/a&gt; meeting about Microsoft’s new .NET functional programming language, &lt;a href="http://en.wikipedia.org/wiki/F_Sharp_programming_language"&gt;F#&lt;/a&gt;.  The meeting is on Drexel’s campus in the Rush Building, with food and meet &amp;amp; greet starting at 6:30pm, and Matt kicking the discussion off at 7pm.  We’re expecting a few of our friends from the local &lt;a href="http://www.phillylambda.org/"&gt;Philly Lambda&lt;/a&gt; group, too - should be a good time.&lt;br /&gt;
&lt;br /&gt;
Details can be found on the &lt;a href="http://www.phillyalt.net/2008_05_21_meeting.ashx"&gt;wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S. I’ve got DevTeach and Philly Code Camp wrap-ups coming soon, if I can get enough focused time to finish them!&lt;/p&gt;
&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;img src="http://persistall.com/aggbug/92.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/294707037" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/05/20/f-and-functional-programming-at-philly-alt.net-wednesday-night.aspx</guid>
            <pubDate>Tue, 20 May 2008 18:36:41 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/92.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/05/20/f-and-functional-programming-at-philly-alt.net-wednesday-night.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/92.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/92.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/05/20/f-and-functional-programming-at-philly-alt.net-wednesday-night.aspx</feedburner:origLink></item>
        <item>
            <title>BDD: Coming to a Theater Near You? (Tonight!)</title>
            <category>ASP.NET</category>
            <category>Agile</category>
            <category>TDD</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>altnetconf</category>
            <category>BDD</category>
            <category>Community</category>
            <category>Philly ALT.NET</category>
            <category>ASP.NET MVC</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/266393510/bdd-coming-to-a-theater-near-you-tonight.aspx</link>
            <description>&lt;p&gt;By a stroke of luck, I’ll be talking about &lt;a href="http://behaviour-driven.org/"&gt;Behavior Driven Development&lt;/a&gt; twice in April.  The first occasion will be at the &lt;a href="http://www.setfocus.com/n3ug/welcome.aspx"&gt;Northern New Jersey .NET User Group&lt;/a&gt; (aka N3UG).  Many thanks to Dave Laribee for the referral.  The meeting begins at 6:30pm.  Directions and more information are available on the &lt;a href="http://www.setfocus.com/n3ug/welcome.aspx"&gt;website&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;On Wednesday, April 23rd, I’ll be talking more &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development"&gt;BDD&lt;/a&gt; at an &lt;a href="http://altdotnet.org"&gt;ALT.NET&lt;/a&gt;-themed meeting of the main &lt;a href="http://phillydotnet.org"&gt;Philly.NET User Group&lt;/a&gt;.  The "headliner" for the evening is fellow &lt;a href="http://phillyalt.net"&gt;Philly ALT.NET&lt;/a&gt;ter &lt;a href="http://jeffdeville.com"&gt;Jeff Deville&lt;/a&gt;, who will be speaking about the new &lt;a href="http://asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt; framework.  It should be a lot of fun.  The meeting begins at 5:30 and is hosted by Microsoft at their Malvern office.  If you are planning to attend, please &lt;a href="http://www.phillydotnet.org/Default.aspx?tabid=676"&gt;register&lt;/a&gt;, which helps them ensure there will be enough food, seats, etc!&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:  &lt;/span&gt;I'll also be talking BDD at PhillyNJ.NET on April 30:  http://phillynj.net&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;Other Events To Note:&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://phillyalt.net"&gt;Philly ALT.NET&lt;/a&gt; Pub Night - April 16th: &lt;/strong&gt;&lt;a href="http://phillyalt.net/2008_04_16_meeting.ashx"&gt;Pub Night&lt;/a&gt; returns to Philly ALT.NET, and we’ll be back at Chaucer’s to eat, drink, and make geeky. The last pub night was a lot of fun, so make sure to check it out.  Chaucer’s has great food and drink specials from 5-7pm, too! &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://altdotnet.org/events/seattle"&gt;ALT.NET Seattle&lt;/a&gt; (SOLD OUT) - April 18-20:  &lt;/strong&gt;I had a small part in helping organize the second ALT.NET Open Space coming up in Seattle.  Dave Laribee led a group of organizers, and it promises to be a great conference.  Unfortunately, the (free) event is full, so we can’t accept any more registrations, but hopefully I’ll have some stuff to blog about upon my return (having the time to actually write the blog posts is another issue).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://devteach.com"&gt;DevTeach Toronto&lt;/a&gt; - May 13th-15th:  &lt;/strong&gt;I’m really excited to check out DevTeach, which has a reputation as one of the best technical conferences around, and happens to be focused on .NET and Agile.  Many of the ALT.NET illuminati will be speaking, and I hope to learn a lot and make some new friends.  If you are thinking of &lt;a href="http://www.devteach.com/register.aspx"&gt;registering&lt;/a&gt;, feel free to use Philly ALT.NET’s $50 discount code: &lt;strong&gt;&lt;a href="http://www.devteach.com/register.aspx"&gt;PA0000ALTNET&lt;/a&gt; &lt;/strong&gt;(&lt;em&gt;Note: there are some great pre and post-conference sessions that you may want to check out, but be aware that you can opt to attend only the main conference, and save some money!&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Hope to catch you at one of these places in April or May!  Don’t forget to sign up for the Philly ALT.NET mailing list to keep up to date on our future meetings.  In May, we are looking forward to having &lt;a href="http://weblogs.asp.net/Podwysocki/"&gt;Matt Podwysocki&lt;/a&gt; talk to us about &lt;a href="http://research.microsoft.com/fsharp/"&gt;F#&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;Functional Programming&lt;/a&gt;!&lt;/p&gt;
&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;img src="http://persistall.com/aggbug/91.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/266393510" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/04/08/bdd-coming-to-a-theater-near-you-tonight.aspx</guid>
            <pubDate>Tue, 08 Apr 2008 14:49:57 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/91.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/04/08/bdd-coming-to-a-theater-near-you-tonight.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/91.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/91.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/04/08/bdd-coming-to-a-theater-near-you-tonight.aspx</feedburner:origLink></item>
        <item>
            <title>MVC or MVA?  Or, What Do Controllers *Do* Anyway?</title>
            <category>ASP.NET</category>
            <category>Coding</category>
            <category>Ruby On Rails</category>
            <category>ALT.NET</category>
            <category>ASP.NET MVC</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/254011642/mvc-or-mva--or-what-do-controllers-do-anyway.aspx</link>
            <description>I've been looking at and working with &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model-View-Controller&lt;/a&gt; frameworks off and on for a couple years now, from Rails to Monorail to ASP.NET MVC.  I've been taught that the Controller is a first class citizen, responsible for application flow (at least handling request/responses) and rendering views, etc.   The Controller gets its name in lights, right next to the Model, and the View.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;But what does the controller really do?&lt;/span&gt;  By far the most popular pattern is for controllers and their actions to map to URLs such that /people/list maps to a PeopleController's List() method. So, are controller's just "Action aggregators?"  Are they basically namespaces for URL pattern matching (i.e. /[controller]/[action])?&lt;br /&gt;
&lt;br /&gt;
While this was probably not the original intention for the pattern, in practice it seems to be the case.  Further spark for this line of thought for me was hearing &lt;a href="http://jpboodhoo.com"&gt;JP Boodhoo&lt;/a&gt; describe how he implemented a simple MVC framework that was basically a &lt;a href="http://en.wikipedia.org/wiki/Command_pattern"&gt;Command Pattern&lt;/a&gt;.  JP's implementation matched requests (url + payload parameters) to a command, which handled the request and, if necessary, to a view that would render the results - bypassing the controller completely.  Monorail's &lt;a href="http://www.castleproject.org/monorail/documentation/v1rc2/advanced/dynactions.html"&gt;Dynamic Actions&lt;/a&gt; approach this pattern by creating Action objects, that can be indexed to an action name in a controller:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyController : Controller&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; MyController&lt;br /&gt;    {&lt;br /&gt;        DynamicActions[&lt;span class="str"&gt;"index"&lt;/span&gt;] = &lt;span class="kwrd"&gt;new&lt;/span&gt; IndexDynamicAction();&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;
The Controller/Action paradigm also brings some baggage when it comes to actions that are similar or shared across several controllers.  Controller inheritance can get real ugly real fast.  Hammet and others have &lt;a href="http://hammett.castleproject.org/?p=73"&gt;sung&lt;/a&gt; the &lt;a href="http://adamesterline.com/2007/08/27/monorail-dynamic-actions-the-better-way-to-implement-actions/"&gt;praises&lt;/a&gt; of Dynamic Actions to alleviate some of these issues, but to me, it begs the question, "why not just throw away controllers altogether?"&lt;br /&gt;
&lt;br /&gt;
I wonder why we don't just focus on the Routing infrastructure to map requests directly to Actions and Views, which are the real "players" in the system.  This would allow for easy Action reuse, aggregation, inheritance, etc - all the benefits of the Command Pattern.&lt;br /&gt;
&lt;br /&gt;
When I get a chance to get back to some real coding with any of the MVC frameworks I've used, I hope to experiment with this and see what I can come up with.  &lt;br /&gt;
&lt;br /&gt;
In the meantime, I'm curious to hear other people's ideas on the value (or lack thereof) of the Controller in MVC?&lt;img src="http://persistall.com/aggbug/86.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/254011642" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/02/18/mvc-or-mva--or-what-do-controllers-do-anyway.aspx</guid>
            <pubDate>Tue, 19 Feb 2008 01:46:39 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/86.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/02/18/mvc-or-mva--or-what-do-controllers-do-anyway.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/86.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/86.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/02/18/mvc-or-mva--or-what-do-controllers-do-anyway.aspx</feedburner:origLink></item>
        <item>
            <title>(More) Kudos to the ASP.NET MVC Team</title>
            <category>ASP.NET</category>
            <category>Coding</category>
            <category>Agile</category>
            <category>TDD</category>
            <category>C#</category>
            <category>ALT.NET</category>
            <category>BDD</category>
            <category>ASP.NET MVC</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/249569877/more-kudos-to-the-asp.net-mvc-team.aspx</link>
            <description>Before I sound too much like a fanboy, let me make it clear that I'm disappointed that the 2nd preview of the ASP.NET MVC bits doesn't offer significant improvements in testability.  But, it is clear that they had some other major refactorings to work on, and there were some valid reasons for their prioritization.  I have a post in the queue that was going to discuss the advantages and disadvantages of working with commercial (esp. Microsoft) products vs. Open Source products, and some of the points in favor of OSS were frequent releases/updates and the ability to dig into the code, understand and change it.  Well, MS keeps taking small steps toward evening the score.  &lt;br /&gt;
&lt;br /&gt;
Two things that came out of interviews and announcements at the recent &lt;a href="http://visitmix.com/2008/default.aspx"&gt;MIX conference&lt;/a&gt; are really interesting, and should be viewed as positives to those of us who struggle with the OSS vs. Microsoft debate at times.  Phil Haack mentions both in his recent post, &lt;a href="http://www.haacked.com/archive/2008/03/10/thoughts-on-asp.net-mvc-preview-2-and-beyond.aspx"&gt;Thoughts on ASP.NET MVC Preview 2 and Beyond&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;1. Phil mentions that he had his team take a break from building features in MVC and had them actually build some applications with it.&lt;/span&gt;  Phil says he has been doing some of this himself, and hopes to do more.  He admits that building real applications, rather than focusing just on building a framework, has really helped him understand the testability pain points that exist in the current release of MVC.  I think this is huge.  It is often stated that good frameworks (and patterns and architectures) are not designed, they are "harvested" from real applications.  It's hard to design a framework in a bubble and get it right.  Microsoft has struggled with this over and over again, as they are building platforms and frameworks and trying to satisfy as many scenarios and customers as they can, before those customers have even built anything real with the product.  No matter how much it may frustrate those of us waiting for a more polished MVC framework to be released, &lt;span style="font-weight: bold;"&gt;it is a great idea to stop building, and try to use the product as-is in real apps on a regular basis.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;2. Scott Hanselman announced that MVC will be "dropped" via &lt;a href="http://www.codeplex.com"&gt;CodePlex &lt;/a&gt;in the near future.  &lt;/span&gt;My dislike of Team Foundation Server aside (I guess I'll have another go with &lt;a href="http://www.codeplex.com/SvnBridge"&gt;SVNBridge&lt;/a&gt;), it is great to hear that the MVC team is shooting for more frequent releases, in buildable source code form.  This means we will have more frequent updates that we can build, and also we are allowed to "tweak" the MVC source code, as long as we are not re-distributing our tweaked source.  This is some sort of middle ground between a Reference license and an OSS license that Phil himself admits is sort of a "baby step" as MS feels out this new territory.&lt;br /&gt;
&lt;br /&gt;
While it's often easy to be cynical and think that Microsoft is out of touch with "real" developers, way behind certain OSS initiatives, or that they aren't  doing (or can't do) enough to keep up - if you take a look at all of the smaller changes going on across the various product teams, there are a lot of signs of movement in positive directions that should be appreciated and encouraged.  While these may only seem like small breezes against the giant sails of the Microsoft &lt;a href="http://en.wikipedia.org/wiki/Galleon"&gt;galleon&lt;/a&gt;, if we are going to see the larger changes in direction that many of us hope for, it's going to start with small shifts like these. &lt;img src="http://persistall.com/aggbug/89.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/249569877" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/03/11/more-kudos-to-the-asp.net-mvc-team.aspx</guid>
            <pubDate>Tue, 11 Mar 2008 15:42:01 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/89.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/03/11/more-kudos-to-the-asp.net-mvc-team.aspx#feedback</comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/89.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/89.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/03/11/more-kudos-to-the-asp.net-mvc-team.aspx</feedburner:origLink></item>
        <item>
            <title>Reason #94,532 to Hate SSIS</title>
            <category>Coding</category>
            <category>Tools</category>
            <link>http://feeds.feedburner.com/~r/bdpersist/~3/246992671/reason-94532-to-hate-ssis.aspx</link>
            <description>I've &lt;a href="http://persistall.com/archive/2007/04/11/1.aspx"&gt;mentioned before&lt;/a&gt; my fuming hatred for SQL Server Integration Services.  And I'm &lt;a href="http://persistall.com/archive/2007/07/23/ayende-takes-on-ssis.aspx"&gt;not the only one&lt;/a&gt;.  &lt;br /&gt;
&lt;br /&gt;
SQL Server 2005 gives us a fairly simple way to convert tabular data to XML using &lt;a href="http://msdn2.microsoft.com/en-us/library/ms178107.aspx"&gt;FOR XML&lt;/a&gt;.  In the query analyzer, you can actually click on the results and it will open up as a file which you can "Save as..."&lt;br /&gt;
&lt;br /&gt;
So, wouldn't you think it should just be a cakewalk to export the results of a FOR XML query to a file as part of an SSIS package?  &lt;br /&gt;
&lt;br /&gt;
&lt;font size="7"&gt;WRONG!&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
There is no built in data flow component or data destination that will take the results of a FOR XML query and export to file.   In fact, there is NO straightforward way to do this at all, aside from manually via Query Analyzer.  I've found some info about custom script tasks, and using command line (SQLCMD or OSQL) but none are pretty.  &lt;br /&gt;
&lt;br /&gt;
In fact, I tried the custom script task approach, and it worked fine locally, but when I tried it on my production system, there was some unicode issue with invalid characters and it wouldn't save.  Leaving me in an impossible situation, as I'm not SQL Server guru.&lt;br /&gt;
&lt;br /&gt;
This is really just an absolutely inexcusable oversight for an "Enterprise" worthy database solution to make this so difficult.  &lt;br /&gt;
&lt;br /&gt;
My future ETL processes for clients will most certainly use &lt;a href="http://www.ayende.com/Blog/archive/2007/07/24/Rhino-ETL-First-Code-Drop.aspx"&gt;Rhino.ETL&lt;/a&gt; if at all possible, before looking at SSIS.  SSIS remains one of the worst tools I've ever experienced.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;UPDATE:  &lt;/span&gt;I got this working late last night by changing the SQL from a straight query to a stored procedure and using an ADO.NET connection rather than an OLE DB connection.  I think the latter change was the biggest factors.  I have had other issues with OLE DB connections in SSIS.  I don't really understand, but in SSIS you often need to choose one connection over the other.  For example, OLE DB connections can not execute Stored Procedures, but ADO.NET connections can.  I still hate SSIS.&lt;img src="http://persistall.com/aggbug/88.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/bdpersist/~4/246992671" height="1" width="1"/&gt;</description>
            <dc:creator>Brian Donahue</dc:creator>
            <guid isPermaLink="false">http://persistall.com/archive/2008/03/06/reason-94532-to-hate-ssis.aspx</guid>
            <pubDate>Thu, 06 Mar 2008 21:11:06 GMT</pubDate>
            <wfw:comment>http://persistall.com/comments/88.aspx</wfw:comment>
            <comments>http://persistall.com/archive/2008/03/06/reason-94532-to-hate-ssis.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://persistall.com/comments/commentRss/88.aspx</wfw:commentRss>
            <trackback:ping>http://persistall.com/services/trackbacks/88.aspx</trackback:ping>
        <feedburner:origLink>http://persistall.com/archive/2008/03/06/reason-94532-to-hate-ssis.aspx</feedburner:origLink></item>
    </channel>
</rss>
