<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>public interface IGrocholski</title>
  <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/" />
  <link rel="self" href="http://blogs.rbaconsulting.com/agrocholski/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2007-06-06T06:56:04.8525525-05:00</updated>
  <author>
    <name>RBA Consulting</name>
  </author>
  <subtitle />
  <id>http://blogs.rbaconsulting.com/agrocholski/</id>
  <generator uri="http://www.dasblog.net" version="1.8.5223.2">DasBlog</generator>
  <entry>
    <title>Hello WPF</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,6d7f6bdf-5dbb-4887-8e7a-eb4375d38b4f.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,6d7f6bdf-5dbb-4887-8e7a-eb4375d38b4f.aspx</id>
    <published>2007-06-06T06:56:04.8525525-05:00</published>
    <updated>2007-06-06T06:56:04.8525525-05:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Orcas" label="Orcas" scheme="dasBlog" />
    <category term="WPF" label="WPF" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Lately I've been into all things "Orcas" (i.e. LINQ, Acropolis, Astoria, Jasper, etc.)
      However, the one thing I haven't really delved into yet is WPF. Since it's getting
      all the buzz, I decided to dig in and see what it's about. Admittedly I haven't gotten
      all that far yet, I'm still looking at how the WPF application model differs from
      that of Win32, but I have been amazed at how easy it is do some things, particularly
      when it comes to 3D and animation. For example within 20 minutes approximately 50
      lines of xaml I was able to take a label, project it into a 3D cube, and then rotate
      the cube on its vertical axis. The result is something that looks like this:
   </p>
        <p>
          <img src="http://blogs.rbaconsulting.com/agrocholski/content/binary/HelloWPF.jpg" border="0" />
        </p>
        <p>
      Of course, when the app runs it actually spins. To me, that's pretty mindblowing.
   </p>
        <p>
      The source code is attached if you want to take a look at how simple this is. (Note:
      HelloWPF.sln was written with Visual Studio "Orcas", I'm not entirely sure if it will
      work on Visual Studio 2005 with the WPF extension installed).
   </p>
        <p>
      ag
   </p>
        <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/HelloWPF.zip">HelloWPF.zip
   (41.32 KB)</a>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=6d7f6bdf-5dbb-4887-8e7a-eb4375d38b4f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Holy Code Names...</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,89be4c1a-bd24-4b8a-a8f0-ce70604ac068.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,89be4c1a-bd24-4b8a-a8f0-ce70604ac068.aspx</id>
    <published>2007-06-05T07:36:54.521-05:00</published>
    <updated>2007-06-05T08:05:08.1885812-05:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Orcas" label="Orcas" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Over the past month or so Microsoft has released a number of CTP's targeted at Visual
      Studio "Orcas". You should already know about <a href="http://silverlight.net/Default.aspx">Silverlight</a> (if
      you don't then you probably shouldn't continue reading this post). Of course Silverlight
      gets the spotlight, and it should, because it looks so cool (check out the <a href="http://download.microsoft.com/download/e/d/d/edd7b135-d2a9-4499-a3ca-a6c8a0ab5716/Netflix_mix.wmv">Netflix</a> demo
      to see what I'm talking about). With everyone ranting and raving about Silverlight,
      some middle tier projects have been released under the radar (detail below.. As you
      know this kind of stuff doesn't get all the hype that UI innovations do, but they're
      not trivial projects. I recommend checking them out when you have some time.
   </p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?familyid=72386ce5-f206-4d5c-ab09-413b5f31f935&amp;displaylang=en&amp;tm">Acropolis</a>
        </p>
        <p>
      “Acropolis” builds on the rich capabilities of Microsoft Windows and the .NET Framework,
      including Windows Presentation Foundation (WPF), by providing tools and pre-built
      components that help developers quickly assemble applications from loosely-coupled
      parts and services.
   </p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?familyid=1B6F85BC-8933-4D0E-A639-934EF85ADCE1&amp;displaylang=en">Astoria</a>
        </p>
        <p>
      The Microsoft Codename "Astoria" project is an incubation effort at Microsoft focused
      on exploring how various emerging world-wide-web technologies and concepts can be
      combined with the Microsoft Data Platform to provide a first-class infrastructure
      for building the next wave of internet applications.
   </p>
        <p>
      The goal of Microsoft Codename Astoria is to enable applications to expose data as
      a data service that can be consumed by web clients within corporate networks and across
      the internet. The data service is reachable over regular HTTP requests, and standard
      HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against
      the service. The payload format for the data exchanged with the service can be controlled
      by the client and all options are simple, open formats such as plan XML and JSON.
      The use of web-friendly technologies make it ideal as a data back-end for AJAX-style
      applications, Rich Interactive Applications and other applications that need to operate
      against data that is across the web. 
   </p>
        <p>
      The first Astoria CTP is a dual release, making Astoria available in the form of downloadable
      bits that can be used to build data services that are entirely contained within a
      single computer or network and as an experimental online service that you can use
      to create online stores that are hosted by Microsoft and are accessible over the internet.
   </p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=471BB3AC-B31A-49CD-A567-F2E286715C8F&amp;displaylang=en">Jasper</a>
        </p>
        <p>
      Jasper leverages the power of dynamic languages and the concept of convention over
      configuration to provide a programming surface for data that enables rapid development
      of data-bound applications. While most other rapid data access frameworks are only
      capable of working against simple databases, Jasper can scale to almost any database,
      regardless of size or complexity. This is possible because Jasper takes advantage
      of the ADO.NET Entity Framework’s significant investments in mapping and conceptual
      data modeling.
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=89be4c1a-bd24-4b8a-a8f0-ce70604ac068" />
      </div>
    </content>
  </entry>
  <entry>
    <title>The Missing LINQ</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,7221d6ad-bf03-488a-8c73-a85899d96acc.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,7221d6ad-bf03-488a-8c73-a85899d96acc.aspx</id>
    <published>2007-05-31T20:39:00.7203145-05:00</published>
    <updated>2007-05-31T20:39:00.7203145-05:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Orcas" label="Orcas" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Forgive me dear readers. I know I've been a little lax on the whole blog thing recently.
      This has been due to the fact that I've been diving deep into Visual Studio "Orcas"
      and LINQ in preparation for the May 2007 DevCares. My slide decks and demos should
      be attached to this post (if I remember to click the attach button).
   </p>
        <p>
      This is some really cool technology that will make you rethink the way you access
      and query data. I recommend checking it out before "Orcas" ships (some time this Fall).
   </p>
        <p>
      You can download the Orcas beta <a href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx">here</a>.
   </p>
        <p>
      If you're an MSDN subscriber you can download an ISO image from your subscription
      page.
   </p>
        <p>
      If you want more info on LINQ I recommend checking out Scott Guthrie's <a href="http://weblogs.asp.net/scottgu/">blog</a>.
      He has been posting a number of entires on LINQ over the past couple of months.
   </p>
        <p>
      For some really good content head on over check out the session from <a href="http://sessions.visitmix.com/">MIX
      '07</a>. All session are downloaded for your viewing pleasure (on iPod or Zune).
   </p>
        <p>
      In particular I would recommend Anders Hejlsberg's <a href="http://sessions.visitmix.com/default.asp?event=1011&amp;session=2012&amp;pid=DEV04&amp;disc=&amp;id=1513&amp;year=2007&amp;search=DEV04">presentation
      on LINQ</a>. This is the guy that came up with the idea. No one should be this smart.
   </p>
        <p>
      (A note on the demos. These demos were created running Visual Studio "Orcas" Beta
      1. I installed this on my host Vista machine side by side with Visual Studio 2005.
      Usually I'd Virtual PC this kind of thing, but I'm also highly impatient and like
      a quicker response. I haven't had any problem to date, but I do know that if you uninstall
      the Beta you'll need to fix your VS 2005 installation by running the install media
      again.)
   </p>
        <p>
      ag
   </p>
        <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/LINQ.zip">LINQ.zip
   (2.03 MB)</a>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=7221d6ad-bf03-488a-8c73-a85899d96acc" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Disabling UAC in Vista...but not really</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,0b55c030-c9be-40e8-8005-cb4aefc0441d.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,0b55c030-c9be-40e8-8005-cb4aefc0441d.aspx</id>
    <published>2007-04-12T08:10:27.3907774-05:00</published>
    <updated>2007-04-12T08:10:27.3907774-05:00</updated>
    <category term="Vista" label="Vista" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      We've all seen that clever Mac <a href="http://images.apple.com/movies/us/apple/getamac/apple-getamac-security_480x376.mov">commerical</a> that
      takes a jab at Vista's UAC feature. I admit I laughed a bit, but I have to say, for
      the most part I like the UAC feature. Why wouldn't you want to know when an application
      is attempting to execute with elevate privilege?
   </p>
        <p>
      With that said, I live 8+ hours a day in Visual Studio 2005 and SQL Server 2005 Management
      Studio. To run correctly I've set both of these apps to run as administrator. I'll
      be the first to say, that every now and then I get annoyed when I get promptied to
      allow these application to run as administrator when I've already specified that they
      should. I was content to accpet this until I read Tim Sneath <a href="http://blogs.msdn.com/tims/archive/2006/09/20/windows-vista-secret-4-disabling-uac.aspx">post</a> on
      disable UAC in Vista. The nice thing about his solution is that it doesn't really
      disable UAC, it just allows the applications you've set to "run as administrator"
      to actually run without the elevation prompt.
   </p>
        <p>
      Just a handy tip.
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=0b55c030-c9be-40e8-8005-cb4aefc0441d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Write Programs for People First, Computers Second...</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,6e2c3a3d-25c1-4d82-a8ed-506f4f2a06b4.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,6e2c3a3d-25c1-4d82-a8ed-506f4f2a06b4.aspx</id>
    <published>2007-02-26T09:42:09.667-06:00</published>
    <updated>2007-02-26T09:49:41.9241206-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Lately I've been rereading <a href="http://www.stevemcconnell.com/">Steve McConnell's</a> classic <a href="http://www.amazon.com/Code-Complete-Second-Steve-McConnell/dp/0735619670/sr=8-1/qid=1172504247/ref=pd_bbs_sr_1/105-2685328-1166844?ie=UTF8&amp;s=books">"Code
      Complete"</a>. A great book and I recommend it for all. Coincidentally he was also
      on <a href="http://www.dotnetrocks.com">.NET Rocks</a> this past week discussing
      his books. He gave a quote by Stan-Kelly Bootle that I think is great and worth repeating:
   </p>
        <p>
          <em>
            <strong>your program</strong> n. A maze of non sequiturs littered with clever-clever
      tricks and irrelevant comments. Compare MY PROGRAM.</em>
        </p>
        <p>
          <em>
            <strong>my program</strong> n. A gem of algoristic precision, offering the most
      sublime balance between compact, efficient coding on the one hand and fully commented
      legibility for posterity on the other. Compare YOUR PROGRAM.</em>
        </p>
        <p>
      So the next time you're writing some code, try keeping this in mind and see what happens.
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=6e2c3a3d-25c1-4d82-a8ed-506f4f2a06b4" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Bootstrapper for SQL Server 2005 Express Edition Service Pack 2</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,d5b577b9-120f-43f7-b0f3-2adc80f393f5.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,d5b577b9-120f-43f7-b0f3-2adc80f393f5.aspx</id>
    <published>2007-02-23T07:19:01.108299-06:00</published>
    <updated>2007-02-23T07:19:01.108299-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Tools" label="Tools" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Service Pack 2 for all editions of SQL Server 2005 was released on Monday. Unfortunately
      for us .NET developers, the Visual Studio Bootstrapper we were hoping would ship with
      the release did not. Mike on the SQL Server Express team is working on it and hopes
      to release it by mid March. You can read more on his work <a href="http://blogs.msdn.com/sqlexpress">here</a>.
   </p>
        <p>
      I'm not a patient guy so I decided to create my own. (After all, shouldn't I, since
      I've been raving about the bootstrapper as of late?)
   </p>
        <p>
      Here's what it does:<br />
      1. Check if SQL Express is installed<br />
      2. If SQL Express is not installed, it install SQL Express SP2<br />
      3. If SQL Express RTM is installed, it upgrades RTM to SP2<br />
      4. If SQL Express SP1 is installed, it upgrades SP1 to SP2<br />
      5. If SP2 or later is installed, it does nothing
   </p>
        <p>
      These checks are performed by my SqlExpressSP2 application. All these does is read
      the CurrentVersion value of the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
      Server\SQLEXPRESS\MSSQLServer\CurrentVersion registry key.
   </p>
        <p>
      I tested the boostrapper on installs on Windows XP SP2 and Windows Vista business.
      The installs worked without problem. I created an installer for the bootstrapper,
      but it's file size was over 55Mb, a little to big to dump on the blog. So, if you
      want a the bootstrapper you'll need to create it yourself via the following steps:
   </p>
        <p>
      1. Create the following directory: [drive]:\[program files]\Microsoft Visual Studio
      8\SDK\v2.0\BootStrapper\Packages\SqlExpressSP2.
   </p>
        <p>
      2. Copy these files to the folder created in step 1 above:<br />
           2.1. <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/product.xml">product.xml
      (.55 KB)</a></p>
        <p>
           2.2. <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/SqlExpressSP2Chk.exe">SqlExpressSP2Chk.exe
      (16 KB)</a></p>
        <p>
      3. Download SQL Server 2005 Express Edition Service Pack 2 from the download <a href="http://msdn.microsoft.com/vstudio/express/sql/download/">page</a></p>
        <p>
      4. Create the following directory Create the following directory: [drive]:\[program
      files]\Microsoft Visual Studio 8
   </p>
        <p>
      \SDK\v2.0\BootStrapper\Packages\SqlExpressSP2\en.
   </p>
        <p>
      5. Copy the following files to the the direction created in step 4 above:<br />
           5.1. SQLEXPR32.EXE (downloaded in step 3 above)
   </p>
        <p>
           5.2. <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/package.xml">package.xml
      (9.61 KB)</a></p>
        <p>
           5.3. <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/eula.txt">eula.txt
      (8.03 KB)</a></p>
        <p>
      To use the bootstrapper follow the steps:
   </p>
        <p>
      1. Fire up Visual Studio 2005.
   </p>
        <p>
      2. Create a Setup and Deployment project.
   </p>
        <p>
      3. Go to the Projects menu and click Properties.
   </p>
        <p>
      4. Click the Prerequisities button.
   </p>
        <p>
      5. You should see an entry in the prerequisites list for SQL Server Express Edition
      SP2.
   </p>
        <p>
      6. Select the prerequisite(s) you want and select the "Download prerequisites from
      the same locations as my application" option.
   </p>
        <p>
      7. Click OK.
   </p>
        <p>
      8. Click Apply and OK.
   </p>
        <p>
      9. Build you Setup and Deployment project.
   </p>
        <p>
      10. SQL Server Express 2005 SP2 will now be deployed with your application.
   </p>
        <p>
      Hope this helps.
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=d5b577b9-120f-43f7-b0f3-2adc80f393f5" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Handy File Verification Tools for the Visual Studio Bootstrapper</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,d4551351-b6a4-4b5d-b60c-7224102b63f2.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,d4551351-b6a4-4b5d-b60c-7224102b63f2.aspx</id>
    <published>2007-02-13T12:17:15.51-06:00</published>
    <updated>2007-02-13T12:18:40.0374387-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Tools" label="Tools" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      In order to verify the integrity of a package file the Visual Studio Bootstrapper
      keeps track of either a Hash or PublicKey value.  These are indicated by attributes
      in the Bootstrapper package manifest. However, what if you don't know the Hash or
      PublicKey value? I ran into this situation recently when creating a Bootstrapper for
      a third part application I needed to include with my application. To resolve the issue
      I created a couple of utilities that will determine the Hash and PublicKey of a given
      file (if signed). I then put these values into the bootstrapper's package.xml file
      and everything worked as expected.
   </p>
        <p>
      Here's the file containing the utilities: <a href="http://blogs.rbaconsulting.com/agrocholski/content/binary/blogs.rba.agrocholski.20070213.001.file.001.zip">blogs.rba.agrocholski.20070213.001.file.001.zip
      (75.71 KB)</a></p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=d4551351-b6a4-4b5d-b60c-7224102b63f2" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Pull yourself up by the bootstrapper...</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,dd8e02a9-2394-40bf-9080-4e55d239e642.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,dd8e02a9-2394-40bf-9080-4e55d239e642.aspx</id>
    <published>2007-02-08T21:53:44.6551572-06:00</published>
    <updated>2007-02-08T21:53:44.6551572-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Tools" label="Tools" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      One of my favorite features in Visual Studio 2005 is the new Bootstrapper functionality.
      You can get an overview of it <a href="http://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/">here</a>.
      In short, it replaces the merge modules of old. It allows you to make your application
      a prerequisite that you can then bundle with other applications.
   </p>
        <p>
      When you dig into it, you'll see that it's essentially based on a couple of xml configuration
      files (package.xml and product xml). These configuration files allow you to specify
      which files to include in te bootstrapper, any prerequisites required by your application,
      and and any install checks (i.e. registry key evaluation) that needs to be performed
      during install.
   </p>
        <p>
      Managing these config files isn't the easy of things as their schemas aren't well
      documented. However, David Guyer has created a tool that can help you modify and created
      these xml files. You can get the tool <a href="http://www.davidguyer.us/BMG/publish.htm">here</a>.
      One word about the tool, I've usually had to tweak the files generated by this tool
      to get everything to work properly.
   </p>
        <p>
      So, you may be asking yourself "Why would I really want to use this?" Well, I can
      name two instances off hand were it's come in handy for me.
   </p>
        <p>
      1. I needed to install a named instance of Sql Server Express with network connectivity
      enabled. To do this, I tweaked the package.xml and product.xml files for the SQL Server
      2005 Express Edition bootstrapper that comes with Visual Studio.
   </p>
        <p>
      2. I needed to install Sql Server Express SP1. This required the creation of a custom
      bootstrapper from scratch. This wasn't to hard but I also had to create an application
      that would determine if Sql Server Express was installed, and if it was install which
      version. If Sql Server Express was not installed or Sql Server Express RTM was installed
      SP1 would then be installed. If not, the installation is bypassed.
   </p>
        <p>
      There are a number of other uses for this unheralded feature. Take a look at it when
      you have the time.
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=dd8e02a9-2394-40bf-9080-4e55d239e642" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio Keybindings</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,990d2828-cf6f-49ba-ae5d-71aa1311de22.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,990d2828-cf6f-49ba-ae5d-71aa1311de22.aspx</id>
    <published>2007-01-31T08:00:36.4742477-06:00</published>
    <updated>2007-01-31T08:00:36.4742477-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      A while back Mike posted a <a href="http://blogs.rbaconsulting.com/mjones/PermaLink,guid,9a544af2-42cf-4d9d-92aa-c391875727c4.aspx">link</a> to
      all the various keyboard shortcuts in visual studio. Rob Caron recently posted some
      nice <a href="http://blogs.msdn.com/robcaron/archive/2007/01/29/1552795.aspx">artwork</a> that
      includes some of the shortcuts. While it doesn't have everything, it can come in pretty
      handy (ok - bad pun).
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=990d2828-cf6f-49ba-ae5d-71aa1311de22" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Are you mocking me?</title>
    <link rel="alternate" type="text/html" href="http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,418bfaa9-6c0e-406a-998e-ab08e187ddf1.aspx" />
    <id>http://blogs.rbaconsulting.com/agrocholski/PermaLink,guid,418bfaa9-6c0e-406a-998e-ab08e187ddf1.aspx</id>
    <published>2007-01-25T16:08:36.0690585-06:00</published>
    <updated>2007-01-25T16:08:36.0690585-06:00</updated>
    <category term=".NET Development" label=".NET Development" scheme="dasBlog" />
    <category term="Tools" label="Tools" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      We agree, I hope, that test driven development is one of the founding pillars of solid
      software construction. However, have you ever been on a project that contained so
      many dependencies that you found yourself writing more configuration and tear down
      code than actual unit tests?
   </p>
        <p>
      For example, a typical scenario these days has a database, a web app, some web service,
      and a windows app. The web app updates the database and the client app calls the web
      service to pull down data. However, how do you adequately test the client code that
      calls the web service. Do you write a bunch configuration code to have the web app
      insert data? But what if the data already exists? You'll need to write more configuration
      code to clean out the database. Ok, maybe you could write a couple of lines to drop
      the database and attach an .mdf file. Or...
   </p>
        <p>
      Wait a minute, is this really unit testing? No, it's integration testing. All you
      want to do is test the client code that calls the web service. You don't care what
      the web service does. Enter mock objects. By using mock objects you can eliminate
      the dependencies by mocking them. Essentially what you do is interecept calls to the
      real objects and substitute mock objects in their place. This gives you the power
      to control what gets returned from your calls and allows  you to actually test
      your objects without having to worry about dependencies.
   </p>
        <p>
      I've used a number of mock objects over the past year or so, including <a href="http://sourceforge.net/projects/easymocknet/">EasyMock.NET</a>, <a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx">Rhino
      Mocks</a> , <a href="http://www.typemock.com/">TypeMock</a>, and  <a href="http://nmock.org/">NMock</a>.
      Of these NMock has been my favorite. Unlike the mock object frameworks in order to
      mock an object with NMock you must define an interface that the object implements.
      A little more work, but this a good practice anyway. Best of all NMock is free.
   </p>
        <p>
      So, if you want to make implementing test driven development easier try mocking something
      (just not me).
   </p>
        <p>
      ag
   </p>
        <img width="0" height="0" src="http://blogs.rbaconsulting.com/agrocholski/aggbug.ashx?id=418bfaa9-6c0e-406a-998e-ab08e187ddf1" />
      </div>
    </content>
  </entry>
</feed>