Showing posts with label TFS. Show all posts
Showing posts with label TFS. Show all posts

How do you apply changes to your codebase? When should we merge the JoeBranch?

At our yearly 1 week Zühlke web camp a couple of us took the opportunity to share experiences with branching and release techniques.

code changes workshop

TL DR;

  • Focus on Continuous Integration
  • Every change that you have locally is a branch (a code version that is different than main)
  • Every kind of branching delays Continuous Integration
  • Only a healthy code base with a “green” Build + Automated Tests let you sleep like a baby at night.

Fast = $$$ How do you make sure to have a fast application?

Speed = $$$
Many articles on the web, books and statistics tell us that “faster = better” and even more important: faster = more revenue.

For Google an increase in page load time from 0.4 second to 0.9 seconds decreased traffic and ad revenues by 20%.
For Amazon every 100 ms increase in load times decreased sales with 1%.

 

Also Google uses site speed in their web search ranking. So make sure to optimize your website for speed as per my other blog post.

Is Web Performance Optimization (WPO) something for you?

TFS source control - Watch your application grow like a garden

Start little and grow a garden
Figure: Not a garden yet, but everything starts small

On every project that I am part of, I setup an email alert that sends me an email for each check-in that happens.
This helps me to follow what's going on on the codebase and to watch the application grow. I say "grow" because we construct software by growing it like a garden, and *not* constructing it like a building.

"Architecture is a bad metaphor. We don't construct our software like a building, we grow it like a garden."
from Craig Larman, http://www.infoq.com/articles/large-scale-agile-design-and-architecture

It's official: Manual deployments are BAD, Automated Deployments are a WIN!

*Updated* 14 November 2011: Video is not on vimeo anymore but on tv.ssw.com

 

The video video recording of my talk "Continuous Delivery with TFS, msbuild and msdeploy" is finally online.

Please say
"Thanx" to Raj.
Thanks to Adam Cogan for introducing me so nicely, he almost got my last name right this time Winking smile

The video is on tv.ssw.com -> which just launched BTW and is a great learning resource)  
and embedded here


Figure: Video recording of Continuous Delivery - SSW Sydney User Group - Peter Gfader

 

Have fun and send me some feedback

 

My related blog posts about Continuous Delivery

  1. The pain with deployments can be found in this blog post.
  2. How to and some tips and tricks for TFS2010 regarding deployment

The slides are on SlideShare

Continuous Delivery with TFS, msbuild and msdeploy

We had a great crowd last Wednesday night at the Sydney .NET UG. Thanks everyone!

For everyone who couldn't make it, ping Raj (our video guy) and tell him to get the recording up and running Winking smile
The video is online: Continuous Delivery with TFS, msbuild and msdeploy!


Agenda of the talk

  1. Pain
  2. Goals
  3. How To
    1. Start from scratch
    2. Existing System
  4. Best Practices

 

Tired of manual deployments?

Have you ever come across this?

"Only Bob knows how to deploy... And he is on holidays..."

Or maybe this…

You spent an hour on a bug fix,
   but customers will not see it for months

TFS 2010 Build - Lesson learned --> Treat warnings as errors

We came across a weird issue with our TFS 2010 build server. We have an MVC3 web application where we added a new Silverlight application. Since we added that Silverlight application our build fails. We get error messages like these:

#1
image C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1852): Copying file ClientBin\BuildAuction.xap to obj\Release\Package\PackageTmp\ClientBin\BuildAuction.xap failed. Could not find file 'ClientBin\BuildAuction.xap'.

#2
image Copying file C:\Builds\4\WoolTradePlus\WooltradePlus - Build and Test on Checkin\Binaries\BuildAuction.xap failed. Access to the path 'C:\Builds\4\WoolTradePlus\WooltradePlus - Build and Test on Checkin\Sources\trunk\WoolTradePlus\MvcApplicationXXX\ClientBin\BuildAuction.xap' is denied.

image
Figure: Spiderman and Batman to the rescue


Here is my journey to fix this problem

Running NUnit Tests in TFS 2010 Continuous Build Environment

I tried different ways to run nunit on our build server.
From
"NUnit for Team Build", to "executing nunit-console on cmd" and eventually customizing our project files…
None of those methods made me happy.
image
Figure: Sad - Broken builds and mucking around with XML make dev's unhappy

TFS - Fail a build when the warning count increases

I am a big fan of "measuring", because what you don't measure you can't improve.
Measuring over time allows us to establish a trend and the trend is often more interesting that the hard numbers.

Trends that might be interesting are:

Silverlight - 5 easy steps to obfuscate auto-magically on the build server

Disclaimer
Before you start flaming me, I am aware that all business relevant code and IP stuff must be on the server side. Just funny how much bit**** you see in forums and stackoverflow if you search for "Silverlight obfuscation"

Problem

With tools like Reflector, ILSpy (which is a good Reflector replacement BTW, since Reflector is not free anymore) and Silverlight Spy, it is VERY easy to look into Silverlight XAP files and discover some interesting stuff. We cannot completely hide our source code, but we can at least make it harder to disassemble and see.
If you are a serious Silverlight developer, make sure to get a copy of Silverlight Spy. No, I am not related to them, working for them nor affiliated.

 

Do you automate your deployment process? (aka Continuous Deployment)

As you may know I am a big fan of automation. I try to automate as many things in my life as possible.
Major reason for automating, is:
I don't have to worry about those "things" anymore, and can focus on other nice "things".

"Things" to automate:

Let me know what you automate in your life!

Latest Posts

Popular Posts