TeamCity - an excellent .Net Continuous Build Environment

October 21, 2008 08:30 by ndibek

Having worked with CruiseControl.Net for years, and understanding the slow adoption of that valuable tool due to simply too high learning path for soemone who needs to quickly setup an automated build system, TeamCity promised to be an interesting alternative.

Naturally there is a TFS also, but the problem with the TFS is that it is huge, provides much more than Continous Integration - there is the Source Control and Work Item tracking.  And if you already have an existing source control like SVN, and an existing item tracking(BugTracker.Net), migration of all that to TFS just to gain the automated build capabilities is simply too much work.  Not to mention the added cost of several thousands of dollars.

So I downloaded and installed a free "Professional Edition" of TeamCity.  With this free edition one gets a CI server with support for up to 20 developers and 20 build configurations, with a limit of 3 build agents  - allowing us to have builds queued up on 3 separate computers. 

 What trully amazed me was that I had this server installed, configured and then my first build configuration setup against the version control and running in a matter of 10 minutes or so.  Everything was easy and intutitive.  I highly recommend it for folks that are new to the Continuous Integration and need to setup solution quickly and without a hassle.

 It appears that all of the major Source Control systems are supported, with the exception of Source Gear Vault.  Supported .NET platform build runners are:

  • MSBuild
  • NAnt
  • Microsoft Visual Studio Solutions
    • 2003
    • 2005
    • 2008
  • Duplicates Finder for Visual Studio 2003, 2005 and 2008 projects (C# up to version 2.0 and Visual Basic .NET up to version 8.0)

Plus you can select the Command Line runner and use any script to build your projects. 

 

 All in all this appears to be an excellent product.  Check it out for yourself at:

http://www.jetbrains.com/teamcity/ 

 

Team City - Project Build History
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

CSLA.NET VB and C# Visual Studio Class Templates

October 17, 2008 09:02 by ndibek

As a part of upcoming CSLA.NET 3.6 beta 2 release we have added one more feature - Csla.Net Class Templates for VB.NET and C# integrated in Visual Studio 2008.  So for example, when you select "Add New Item" in Visual Studio you get following options: 

Each of the class templates from the dialog above generates a Csla object with the template selected.  So for example, for selected CommandObject template in the dialog above with the selected name CommandObject2 you get the code generated below:

using System;
using System.Collections.Generic;
using System.Text;
using Csla;
namespace ClassLibrary1
{
[Serializable]
public class CommandObject2 : CommandBase
{
#region Authorization Methods
public static bool CanExecuteCommand()
{
// TODO: customize to check user role
//return Csla.ApplicationContext.User.IsInRole("Role");
return true;
}
#endregion
#region Factory Methods
public static bool Execute()
{
if (!CanExecuteCommand())
throw new System.Security.SecurityException("Not authorized to execute command");
CommandObject1 cmd = new CommandObject1();
cmd.BeforeServer();
cmd = DataPortal.Execute(cmd);
cmd.AfterServer();
return cmd.Result;
}
private CommandObject1()
{ 
/* require use of factory methods */ 
}
#endregion
#region Client-side Code
// TODO: add your own fields and properties
bool _result;
public bool Result
{
get { return _result; }
}
private void BeforeServer()
{
// TODO: implement code to run on client
// before server is called
}
private void AfterServer()
{
// TODO: implement code to run on client
// after server is called
}
#endregion
#region Server-side Code
protected override void DataPortal_Execute()
{
// TODO: implement code to run on server
// and set result value(s)_result = true;
}
#endregion
}
}
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Google's Chrome Shines

September 2, 2008 07:15 by ndibek

So what is Google Chrome?  It is a new Web Browser. But before you say: "Enough, I can't keep track of IE7/8, Mozilla, Safari, now I have to take a look at yet another browser!!!", there is something interesting and different about this one.

 It appears that the Google team has been writing a browser from scratch, not worrying about baggage like what is found in IE or Mozilla.  It is Open Source so they have been able to take existing bits and pieces from other projects as needed - shortening development time, and at the same time adding a ton of completely new stuff.

First reason to take a look at this browser would be:

- How many times do you deal with IE that fails to load one of the tabs, end up locking the whole browser process, and there is nothing you can do about it but kill the process.  Mozilla is a bit better, but to me it seems that it is "allergic" to Flash.  

Chrome's Solution:  Each Page loads in its own Process.  There is no way that JavaScript failing on one page can hang the whole browser - you just get what they call "Unhappy Tab".  Each Tab manages its own memory and garbage collection, assuring that once the tab is closed all of its memory is released, which is not the case with the other 2 browsers.

Talking about JavaScript - they have build a brand new Virtual Machine for their JavaScript that besides supporting objects also adds support for classes in JavaScript.  Not just that but all of the existing JavaScript objects are assigned to "hidden" JavaScript classes, allowing categorization, and caching.  In addition, there is a built-in performance advantage of VM where JavaScript is compiled and then binary is re-used instead of re-interpreted each time JavaScript is re-executed is priceless.  Google site points to huge performance increases.  I have not run a numbers, but just a visual rendering part of UI components that are generated by JavaScript looks awesome.  I have run Chrome against the ExtJs.com demos - ExtJs being most JavaScript intensive UI/Ajax library, and have not seen yet such a performance out of those components.

From that we move onto rendering engine.  Used with dozen or so web sites - it is flawless.  Smoothest page rendering, and there are no visual differences when compared to IE.  It appears that google.com cached searches help Chrome folks in their automated testing of the layout engine - they virtually have whole of the web at their fingertips.

and finally some typical Google touches:

- if I type "news." in my url bar, I get news.google.com, and news.yahoo.com in the dropdown below it and not 500 articles I have previously visited on those 2 web sites

- when I open a new tab in Chrome, by default I get a sidebar with my most used bookmarks, as well as thumbnails of my most visited pages, allowing me to open one with a single click (image below)

 

All in all this product has left an excellent first impression and even though it is still beta I would recommend everyone to check it out. 

 http://www.google.com/chrome

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

SVN Bridge from CodePlex

August 26, 2008 03:46 by ndibek

Working with CodePlex on one of the projects I was faced with dilemma – download TFS explorer to get the latest source code from their TFS server, or…
I was about to give up and download/run a 300 TFS Explorer on my latest development VPC image (project required some beta MS tools; hence the VPC as a development platform, but that is story for some other time).  But then I noticed following text:

!! Warning !! - If you use the Team Explorer client then it will add source control binding information into your project files. When users download your source code and try to open it in Visual Studio they will get error messages because of the source control bindings. You can use any of the other available source control clients as an alternative.


So the Codeplex folks do not recommend using Team Explorer?!  Other options included several console tools, and one mentioned TortoiseSVN – which I am using anyways on a daily basis.  It appeared that you can use TortoiseSVN for any of your CodePlex source control operations, as long as you install and sun this SVN Bridge service on your local computer.


So I gave it a try - It is truly simple.  You download the executable from the Codeplex’s site, and run it – that creates a service that runs and can be seen in your windows trey. This service runs as a “fake” SVN server that runs on port 8081 by default and does nothing but translate SVN API calls to remote TFS.

You might wonder how does a call to the “local” SVN repository gets directed to correct CodePlex TFS server.  It is simple:
1)    You create a folder which will contain your project source from TFS.
2)    Right click on the folder in Win Explorer, and using SVN Checkout command of your Tortoise client, bring up the Checkout dialog.
3)    The format for your checkout URI is then:
http://localhost:8081/<CodePlex TFS Server domain>/<CodePlex Project Name>


And that is it.  I have tried a number of TortoiseSVN commands including “Repo-browser”.  Everything seems to work fine.  In the weeks and months ahead I will continue to use and evaluate this tool, but as it stands now, it was extremely easy to configure and use.  I highly recommend it.

kick it on DotNetKicks.com

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5