Meeting the needs of your business from a distance

Branching Discussion

by Mark Shiffer 30. July 2008 14:44

My post from an internal blog at my fulltime job: 

Yesterday there was a discussion regarding branching and a couple of things bothered me about our approach. The problem area for me is our approach to Feature Branches. Currently, the thought is that we will have a Main line, a Development line (branched from Main) and the potential for Feature Branches to be branched off of the Main line.

The arguments I heard yesterday for this approach:

1.       It’s Microsoft Guidance – This part of the argument is probably the most valid, but the documents I read from Microsoft seem to be intentionally vague and open. The patterns and practices book from Microsoft Press that I read gives no fewer than 5 different methods for branching. Some of those methods discuss Feature Branches, but I do not find it clear as to where the source of the branch is from.

2.       Microsoft Does It (Yahoo, Google do it) – Ok. This argument might hold if we were an international behemoth with 50,000 employees and $200+ billion dollar market capitalization. Unfortunately, we are not, and probably never will be. Patterning our software designs from successful companies can make sense, but I do not think the same necessarily holds for our infrastructure. Different audiences, different lines of business, different size, different capabilities, different goals… all are good reasons for not rubber stamping their approach. Bottom line is, most of us, including myself have probably been caught saying this, but I do not think it is a good point to be made when speaking of infrastructure specifically.

3.       It’s Industry Standard – I have not researched this as much as others, but in the little time that I have looked at it, I can tell that there certainly is no industry standard when it comes to source code management and branching strategies in particular. There are dozens of approaches, and that is for good reason. Each approach needs to be tailored toward a team’s development structure and the structure of their products and releases. Like snowflakes, no two are alike.

My reasons for suggesting that Feature Branches be branched from the Development line:

Really I have only one reason and that is our active development line will be making fixes or feature additions that may need to be merged into a Feature Branch as it is being developed (the reverse could be true too). Under the above structure those fixes would have to be given approval for release and moved into the Main line before they would be able to be merged into the Feature Branch. A baseless merge could be done, but that is clearly not suggested by Microsoft Patterns and Practices. The suggestion is to merge along the hierarchy. The key here is that any code that makes it into our Main line is going to go out in the next new release as Main is branched to create the release branch.

I was asked for an example of where this might happen and couldn’t think of one yesterday. We have not done Feature Branches much in my tenure here. The only time that I can recall that we’ve done something similar is for the GUID release, and the reverse case did occur where we needed to move code from the GUID Feature Branch into the main development line. The EsfId class was moved before the GUID feature was complete to facilitate development of other new features that were occurring in the main development line.

That may not be the best example, but it is one, and should demonstrate the possibility of these situations occurring in the future.

Since we don’t do Feature Branches very often, this is not a critical issue to our moving forward with TFS; thus, the creation of a passive discussion on the topic via the blog.

Tags:

Programming

Debugging Blue Screen of Death (Bug Check)

by Mark Shiffer 24. July 2008 20:59
I just watched a Channel 9 episode on doing some hard core debugging of blue screens in windows. Not for the faint of heart, but definitely doable if you are a developer and familiar with the Windows memory system. The two tools they used were WinDBG (part of debugging tools for windows) and verifier (comes with windows). If you've read Debugging .NET 2.0 Applications (which if you haven't and you are a .NET programmer, go read it now!), then you should be familiar with WinDBG. It is an excellent tool for user mode debugging of applications. In this episode, they used WinDBG only briefly, to open the dump file, get the bug check code and run !analyze. The !analyze tool returned additional information which pointed them to run verifier. Still working through, will update as I get up to speed more.

To see the episode go to: Channel 9

Tags:

CLR Memory Management

by Mark Shiffer 18. July 2008 16:16

Here are some good links on CLR memory management that describe it in depth:

Tags:

Research | Programming

.NET Developers’ Reference Card Roundup

by Mark Shiffer 16. July 2008 20:37

This listing is courtesy of Alvin Ashcraft at blog post. I republished here for my reference.

  • PowerShell 1.0 (Jeffrey Snover)
  • PowerShell 1.0 (dzone)
  • Visual C# 2005 Keyboard Shortcut Reference Poster (MS Downloads)
  • LINQ to SQL (Ben Hall)
  • ReSharper 4 (JetBrains)
  • Silverlight 2 (dzone)
  • Design Patterns (dzone)
  • Design Patterns (Jason McDonald)
  • UML (Laurent Grégoire)
  • UML (Allen Holub)
  • JavaScript (Dave Child)
  • jQuery Selectors (dzone)
  • Getting Started with AJAX (dzone)
  • MS AJAX (Jay Kimble)
  • CSS (Leslie Franke)
  • SQL Server (Dave Child)
  • SQL Server 2005 (Simon Sheppard)
  • SQL Injection (Ferruh Mavituna)
  • VIM Quick Reference Card (Laurent Grégoire)
  • Regular Expressions (Dave Child)
  • Regular Expressions (.NET) (regexlib)
  • Firefox (Leslie Franke)
  • TFS Command Line (TF.exe) (Noah Coad)
  • SVN (Ariejan de Vroom)
  • Google Search (Nancy Blachman, Tasha Bergson-Michelson, & Jerry Peek)
  • Windows XP Command Line (Simon Sheppard)
  • SEO (seomoz)
  • Gimp (ozh)
  • Photoshop (Multiple Versions) (Trevor Morris)
  • Tags: , , ,

    Research | Programming

    List Of Free / Open Source ASP.NET Web Applications

    by Mark Shiffer 16. July 2008 20:33

    The following post is a direct copy of a post from blog post. This is here for me to refer to later. Please see the original link for the up-to-date listing.

    List Of Free / Open Source ASP.NET Web Applications

    As a big ASP.NET advocate, I'm loving the recent surge in open source / free ASP.NET applications that are hitting the web - And what's more because Microsoft have given us some great building foundations with the frameworks like the ASP.NET Membership Provider, a lot of these open source programs are very high quality!  More so than some of the paid applications.

    I thought it would be a good idea to create an ever growing list of all the open source ASP.NET applications I could find - Obviously I haven't had chance to download or install every application so I can't vouch for them (The only ones I have used I'll mark with a *)

    e-Commerce / Online Shopping Carts

    1. Dash Commerce - http://dashcommerce.org
    2. Dot Shopping Cart - http://www.dotshoppingcart.com/
    3. VevoCart - http://www.vevocart.com/
    4. e-Shop ASP.NET - http://fkn1337.com/e-shop-aspnet-mysql-script/
    5. PressTopia Shop - http://presstopia.com/dnn/Default.aspx?tabid=236

    Content Management Systems

    1. *Umbraco - http://umbraco.org
    2. *DotNetNuke - http://www.dotnetnuke.com
    3. The Beer House - http://www.codeplex.com/Wiki/View.aspx?ProjectName=TheBeerHouse
    4. My Web Pages Starter Kit - http://www.codeplex.com/MyWebPagesStarterKit/ 
    5. Basic CMS - http://www.basic-cms.com
    6. JMD CMS - http://www.codeplex.com/JMDCMS/
    7. Nickel & Dime CMS - http://ndcms-net.sourceforge.net/
    8. Nolior EZNews - http://sourceforge.net/projects/nolioreznews/

    Blogs / Blogging

    1. *Blog Engine .NET - http://www.dotnetblogengine.net
    2. DasBlog - http://www.dasblog.info
    3. *Sub Text - http://www.subtextproject.com
    4. PressTopia - http://presstopia.com/dnn/Default.aspx?tabid=160 

    Link Directories

    1. *(ASPLD) ASP.NET 3.5 Link Directory - http://www.n3o.co.uk/software/aspld.aspx
    2. XD Link Directory - http://www.ex-designz.net/softwaredetail.asp?fid=835
    3. ASP.NET 2.0 Link Directory - http://www.davemackey.net/Applications/LinkDirectory/tabid/88/Default.aspx

    Customer Relationship Management (CRM)

    1. Splendid CRM - http://www.splendidcrm.com

    Wiki's

    1. FlexWiki - http://www.flexwiki.com
    2. *ScrewTurn Wiki - http://www.screwturn.eu/Default.aspx?Page=Wiki&AspxAutoDetectCookieSupport=1 

    Forum / Portals / Networks

    1. *Kigg (Digg like application) - http://www.codeplex.com/Kigg
    2. Club Starter Kit - http://www.codeplex.com/ClubStarterKit/
    3. Drop Things (Web 2.0 Portal) - http://www.dropthings.com
    4. Yet Another Forum - http://www.yetanotherforum.net
    5. DMG Forum - http://www.dmgforums.com/

    Recruitment / Job Systems

    1. Job Site Starter Kit - http://www.binaryintellect.net/articles/a203c824-aec1-41b7-b3ec-49a15d5c9ebb.aspx
    2. Stock / Inventory Tracker - http://itracker.df-software.com/download.aspx

    Web / E Mail

    1. DotNet Open Mail - http://dotnetopenmail.sourceforge.net/
    2. qqMail - http://www.umailcampaign.com/mailcom.aspx
    3. Sharp Web Mail - http://anmar.eu.org/projects/sharpwebmail/

    Image & Video Galleries

    1. Media Library Starter Kit - http://www.asp.net/downloads/starter-kits/media-library/
    2. ASP.NET Foto Gallery - http://www.pentabyte.de/software/WebControls/
    3. gPhotoNet - http://www.thezeal.com/software/index.php?gPhotoNet

    Classifieds

    1. Classifieds Starter Kit - http://msdn.microsoft.com/en-us/cc533489.aspx
    2. Dating .NET - http://www20.brinkster.com/joemay7/

    Misc

    1. ASP.NET Small Business Web Site Starter Kit - http://msdn.microsoft.com/en-us/cc533514.aspx
    2. ASP.NET Personal Web Site Starter Kit - http://msdn.microsoft.com/en-us/cc533486.aspx
    3. Time Tracking Website - http://msdn.microsoft.com/en-us/cc533488.aspx
    4. DinnerNow (Food Ordering System) - http://www.dinnernow.net
    5. Bug Tracker .NET - http://ifdefined.com/bugtrackernet.html

    If you would like your application added to this list please just post a link below and I'll add it

    Tags: , , ,

    Research | Tools | Programming

    Reading Continued

    by Mark Shiffer 16. July 2008 15:24

    My goal to read one book a month has continued, although I have shifted my reading efforts a bit. I have read a couple of books since March, but have not bothered to post about them as there was not much to say. One was a Microsoft Press book, Team Development with Visual Studio Team Foundation Server. The book was an excellent starting point for TFS research. It presented the basics of the system with links to study more advanced topics in-depth; very well written. The second was also a TFS book, Visual Studio Team System: Better Software Development for Agile Teams by Will Stott and James Newkirk. This book I did not like very much as it lost my attention rather quickly by using a story-like example with a fictional company/product to explain the processes. I actually stopped reading it halfway through as it was not providing much value for me.

    Currently I am reading Understanding Exposure by Bryan Peterson. This is a photography book that I am reading to help me understand how to extract more value out of my new Rebel Xti camera. I have been taking a lot of pictures lately now that I have a real camera. Not sure what to do with all of the photos though.

    I have no immediate plans to read more technical books as I now have a long list of technical blogs that I go through on a daily basis and also listen/watch channel 9 videos on occasion. In fact, just watched a video from the SoftGrid architect explaining how it works. Very cool stuff. Anyway, my goal with the reading is to keep my mind/body/soul in tune with the technical world as my day-to-day work does not always quench my thirst, if you know what I mean. I get to do some pretty cool technical work at times during my fulltime job, but, as goes with any job, there is the dirty, boring as well.

    Tags:

    Research

    Copyright © 2001-2010 MS Consulting, Inc. All Rights Reserved.