• TFS Test Results XSL - Part 2

    This week I updated the XSL Stylesheet I created in a previous post for showing TFS Team Build test results.  I've added the ability to list WebTests as well as including the full Namespace of each Unit Test.

    Here's an example showing some tests from a SharePoint project I'm working on:


    You can read my previous post or download the XSL file.

    Full story

    Comments (0)

  • SOLID Principles

    At TechDays this week I spoke on the subject of SOLID principles for an ASP.Net MVC application, so here are some links to more articles on the SOLID principles, my PowerPoint presentation and the code examples.  Thanks to Steve Smith for the basis of this presentation:

    The SOLID Principles

    S - Single Responsibility Principle - Your code should have one reason to change.

    O - Open/Closed Principle - Classes should be open for extension, closed for modification

    L - Liskov Substitution Principle - Derived classes must be substitutable for their base

    I - Interface Segregation Principle - Avoid fat interfaces...

    Full story

    Comments (0)

  • TechDays 2009 - SOLIDify Your Microsoft ASP.NET MVC Applications

    I'm very pleased to announce that I shall be speaking again at the upcoming Microsoft TechDays Canada conference in Vancouver on September 15th.

     

    My talk will be titled "SOLIDify Your Microsoft ASP.NET MVC Applications".  Here's the overview:

    "Object-oriented programming makes it easier to manage complexity, but only if you do it right. The five SOLID principles of class design (one for each letter) help ensure that you’re writing applications that are flexible, comprehensible and maintainable, and we’ll explain and explore them in this session. We’ll start with a brittle ASP.NET MVC application that’s badly in need of refactoring and ...

    Full story

    Comments (0)

  • How Do I Upgrade a Virtual PC to Hyper-V

    I have a big stack of How Do I instructions for doing all those things that are needed on a somewhat infrequent basis but have a fairly tricky list of steps that need to be remembered.  This morning while upgrading another project VPC to work on Hyper-V I figured, why not keep them on my blog?

    Host Machine

    - Hyper-V Manager:
      - Click New
      - Specify Name and Location:  Pick the folder where your existing .vmc file is.
      - Assign your memory and network connection (Hyper-V)
      - Connect Virtual Hard Disk: Choose "Use an existing hard disk" and pick your existing ...

    Full story

    Comments (0)

  • Microsoft BizSpark

    Not having kept up with company start-up info recently, today I discovered BizSpark, a new program from Microsoft for helping start-up companies build Software-as-a-Service applications. The program was launched on Dec 10th, 2008 in LA - here's the schpeel:

    "
    Microsoft® BizSpark™ is a global program designed to help accelerate the success of early stage startups by providing key resources when they need it the most:

    • Software. Receive fast and easy access to current full-featured Microsoft development tools, platform technologies, and production licenses of server products for immediate use in developing and bringing to market innovative and interoperable solutions. There ...

    Full story

    Comments (0)

  • MSBuild Target Namespaces

    My recent project has included a fair number of technologies integrated into our automated build and packaging scripts.  Up until this project, I've been using MSBuild target names such as:

      RecreateDb, Build, Package, DeployK2, TestSP

    On this project we have SQL, K2 Blackpearl, SharePoint, Word 2007 Add-Ins, and a few other bits and pieces, and as each of them has their own pieces which need to be build, packaged, deployed and tested, using the above conventions started to become somewhat confusing so I created the following namespace convention in naming the MSBuild Targets:

       (Technology)-(Action)

     So for example, we ...

    Full story

    Comments (0)

  • BostonPizza.com is Live

    I'm excited to announce that today Boston Pizza launched their new website, developed by the team here at Habañero.  This is a really exciting day for us as this is the largest Sitefinity project we've worked on to date.

    The fully bilingual site was built on the Sitefinity CMS platform using Microsoft Virtual Earth for its mapping engine and has a ton of sweet jQuery for the galleries, flyouts and image rotations. We also integrated videos through Vimeo as well as the providers Boston Pizza uses for its gift card and email programs.

    The location finder uses jQuery to ...

    Full story

    Comments (2)

  • ASP.Net Dynamic Data + MVC

    Earlier in May, Microsoft released a code example of using the ASP.Net Dynamic Data web forms in the same project as MVC 1.0 controllers and views.  Download the MVCDynamicData zip file from CodePlex.

    The example uses the familiar Dynamic Data scaffold UI and includes MVC views and controllers - Note that the Dynamic Data UI in this example is not an MVC UI - more on this later... 

    Looking at what they've done, it seemed to be a pretty straightforward task of simply combining the folder structure of a Dynamic Data project with that of an MVC 1.0 project, including ...

    Full story

    Comments (0)

  • Importing and Exporting K2 Blackpearl Settings Between Environments

    I've been using a great tool recently for importing and exporting configuration settings from K2 Blackpearl recently and it's been working out pretty well.  My goal was to have all the K2 configuration stored in text files which I can save into my source code control system and easily modify for each of my K2 Environments.  The tool is:

    DepAuto

    http://www.k2underground.com/k2/ProjectHome.aspx?ProjectID=110 - You'll need to be logged in to the K2 Underground to reach this page.

    Here're the usage (/?) results:

    Exporting Settings

    Before using the tool, I created 4 K2 Environments through the K2 Workspace and filled in all ...

    Full story

    Comments (0)

  • MSBuild Well Known Metadata

    There are a bunch of super handy metadata in MSBuild for referencing pieces of folder and file names when using Item Collections, and I found a complete list from the guys at C# Online.Net.  Say for example, you are selecting a bunch of files as follows:

    <CreateItem Include="C:\MyFolder\**\*">
      <Output ItemName="AllFiles" TaskParameter="Include"/>
    </CreateItem>
    

    Metadata

    In this case, we are searching a folder called C:\MyFolder, and if we have a sub-folder called MySubDir containing a file called MyFile.txt, then the metadata items are:

    Metadata Name

    Description

    Example

    Identity

    Value for the item specified in the Include attribute.

    C:\MyFolder\MySubDir\MyFile.txt

    Filename

    Filename for this item, not ...

    Full story

    Comments (0)

  • Adding a Wait Indicator to Long Running Post-Backs

    Today I've been working on some UI customisations for SharePoint and have added a few user actions that take a handful of seconds to post-back, do their work and return the new page content.  During that few seconds, our users were experiencing unexpected errors if they clicked on various links or buttons on that page - not surprisingly as the page was waiting for the previous click to complete.

    I found a great and simple solution from Eric Wendelin.

    Add a div to your page

    First we add a div to our page or master page which we'll use as a mask, covering the ...

    Full story

    Comments (2)

  • Adding Tabs to SharePoint Central Admin

    As I was browsing through SharePoint Central Administration, like you do, I was looking at the tabs at the top left of the page and I thought I'd try to work out how to add my own tab.  A bit of Googling didn't turn up anything very obvious so I set about working it out.  Turns out, it's super simple, here's what you do:

    1. Add an ASPX page to \12\TEMPLATE\ADMIN.
    2. Add an entry to the "Top Link Bar" list.
    3. Bask in your new found administrative glory.

    Adding the ASPX page

    First, create an aspx page with the following content. Mine is called ...

    Full story

    Comments (2)

  • My Favourite MSBuild Targets #4: DeployK2

    As with all our projects, we have setup continuous integration on the BigUtilityCorp project.  In order to integrate this we needed to be able to deploy the K2 Smart Objects and Workflow Processes to the K2 server on the command line using MSBuild.  The following code is an MSBuild task which I created based on some code on the K2Underground site, and extended it. 

    The biggest hurdle we came across in implementing this commandline MSBuild task was that, whenever you perform a build or deploy of a K2 solution, K2 requires that new class names are generated for it's .kprx and ...

    Full story

    Comments (1)

  • My Favourite MSBuild Targets #3: DeployReports

    I worked on a project a few months back where we need to automate the deployment of RDL files to Reporting Services.  After a bit of researching I found some handy scripts from Paul Stovell that show how to use Reporting Services Script files (confusingly hanv the file extension, .rss).  These files are rather VB script files that you pass into rs.exe and can be used to upload RDL files and create folders and data sources in the server.

    Being a fan of MSBuild, I wanted to use the scripts within my MSBuild directly, so using the approach I showed in my post ...

    Full story

    Comments (1)

  • My Favourite MSBuild Targets #2: RecreateDb

    Hot on the heals of my first post of exciting MSBuild shenanigans, I decided to follow up with a target to recreate a SQL database.  One of the really handy things I like in MSBuild is the ability to create scripts on the fly and replace parameters like they were tokens.  Creating SQL scripts is a natural use of this technique:

    msbuild /t:RecreateDb

    <PropertyGroup>
      <Temp>C:\Windows\Temp</Temp>
      <DatabasePath>$(MSBuildProjectDirectory)\Source\Database</DatabasePath>
      <DatabaseName>MyFunDb</DatabaseName>
      <DatabaseUserName>DOMAIN\user</DatabaseUserName>
    </PropertyGroup>
    
    <Target Name="RecreateDb">
      <CallTarget Targets="DropDb;CreateDb;CreateContents;AddUserAccess"/>
    </Target>
    

    This is built on 4 central targets, each of which is pretty much made by copying the relevant action SQL from SQL Enterprise Manager and replacing the DB name, user ...

    Full story

    Comments (1)

  • My Favourite MSBuild Targets #1: Complete

    I'm a big fan of MSBuild.  It's got all this coolness built in for handling lists of stuff, throwing around parameters like they're tokens and all sorts of handy trinkets and third party goodies you can import.

    To explain how msbuild can help you with more development tasks than you would think, this is the first in a series of posts describing my favourite msbuild tasks for web development projects.

    On such a project, I typically setup one single msbuild target which does everything.  It does a bit of cleaning first, makes you a bright new database, fills it up with ...

    Full story

    Comments (0)

  • TwitterList - A User Control For Displaying Tweets

    If you look over there on the right side of this blog you'll see some of my recents tweets from Twitter. I'm sure you're as excited as I am about all the pointless things I tweet about, so if you want to do the same for your more ground-breaking tweets, here's the code for that user control.

    Usage:

    <dan:TwitterList id="Tweets" 
      Title="Dan's Tweets" 
      Count="5" 
      CacheDuration="300"
      FollowMeUrl="http://www.twitter.com/danielflippance"
      RssUrl="http://twitter.com/statuses/user_timeline/19988318.rss"
      RemoveText="danielflippance: "
      HyperlinkTweeple="true" 
      HyperlinkUrls="true"
      HyperlinkHashcodes="true"
      runat="server"/>
    

    The FollowMeUrl is just the Url of your Twitter Profile page, and half way down the right side of that page you'll see a ...

    Full story

    Comments (2)

  • Progess Indicator for Long Running Tasks

    Often in our projects we find we have some processes that take a while to run, for example in the BigUtilityCorp project, a long running workflow that creates SharePoint team sites, uploads documents, populates list content and configures user access.

    We are using K2 to manage a process like this using workflow and wanted to give the user a good feedback mechanism of how that workflow was progressing, showing which step we had reached.  Here's a simple version of the progress indicator I created and what it looks like as it progresses and if one of the tasks fails:

    We'll be using the ...

    Full story

    Comments (2)

  • Using ASHX Files in SharePoint

    When building an ajax-i-fied SharePoint application using JQuery, I like to use ASP.Net Http Handler classes - ASHX files.

    You will discover that by default, you can't add ASHX to a site in SP, so here's a quick note on how you can use them:

    1. Login to SharePoint Central Admin
    2. Go to Operations > Blocked Files
    3. Choose the relevant Web Application from the drop-down on the right of the screen - You probably want the one called "Site"
    4. Delete the entry "ASHX"
    5. Lob the .ashx files into your feature(s)
    6. Simmer for 20 minutes and deploy.

    Sorted.

    Update - July 3rd 2009 - ...

    Full story

    Comments (0)

  • TDD - Tea Driven Development

    In the spirit of this blog post, I respectfully present the following alternate use of the acronym TDD - Tea Driven Development

    Definition: 

    TDD - An acronym for Tea Driven Development;
    A Tea based approach to developing computer software;
    The belief that software is best developed in an environment where there is plenty of Tea;
    The practice of drinking a really large amount of Tea whilst developing software;
    Sometimes referred to as TeaDD.

    Concepts:

    The 3 tenets of TeaDD are:

    1. Ensure there is Tea.
    2. Start by making a nice cup of Tea.
    3. Continue the Tea throughout the software development lifecycle.

    The Tea Meeting...

    Full story

    Comments (2)

  1. 1
  2. 2
  3. »