Archive for the 'Programming' Category

Jul 19 2009

SourceAnywhere for VSS 5.4 and SourceOffSite 4.2 Comparison

Published by under Programming

As the architect of SourceAnywhere for VSS, I was asked by many users about the performance of SourceAnywhere for VSS compared with other products.

SourceAnywhere for VSS is a Visual SourceSafe (VSS) remote access solution recommended by Microsoft. As a VSS add-on, SourceAnywhere for VSS solves the VSS performance issue and provides fast, reliable and secure remote access for users of VSS 6.0 and VSS 2005.

Recently, I did the test. Now I am posting the result here with the hope that it can save your time evaluating different SourceSafe remote access tools. I mainly focus on the features and remote-access performance comparison.

 

Below is the result:

Feature Comparison

Features Visual SourceSafe (VSS) Remote Access Tool Recommended by Microsoft SourceOffSite
Performance Features
Data compression Yes Yes
Client/Server architecture Yes Yes
Cache Server Yes No
Delta Transfer Yes No
Multithread file transfer Yes No
 
Security Features
Client/Server Architecture Yes Yes
Blowfish encryption Yes Yes
128 SSL Yes No
Password policy Yes No
Independent VSS database access control Yes No
 
IDE Integration
Visual Studio 6/2003/2005/2008 Yes Yes
SQL Server 2005 Yes Yes
Eclipse Plug-in Yes No
Dreamweaver Yes No
 
Cross Platform
Windows Yes Yes
Linux Yes Yes
Mac Yes Yes
Solaris Yes No
AIX Yes No
SCO Yes No
Any Java compatible platform Yes No

 

Performance Test

Result: (Unit: second)

  SourceAnywhere for VSS with cache server SourceAnywhere for VSS without cache server SourceOffSite (no cache server is available)
Add 195 193 408
Get (no local file exists) 175 213 1256
Check out (no local file exists) 189 232 1409
Check out (all local files exist) 79 90 160
Check in (no file is changed) 177 189 723
Check in (All files are changed) 259 273 842

 

Test Environment:
There are 3 machines used in the test:

Server : CPU Intel P4 2.66G, 256M RAM, Win 2003 Std sp1; SourceAnywhere for VSS Server 5.3.1; SourceOffSite Server 4.2

Client: CPU Intel P4 3.0G, 512M RAM, 160GB 5400RPM HD, Win XP sp2; SourceAnywhere for VSS Server 5.3.1; SourceOffSite Client 4.2

Cache server: CPU Intel Celeron 2.66G, 512M RAM, 160GB 5400RPM HD, Win2003 Std SP1; SourceAnywhere for VSS Cache Server 5.3.1

Broadband connection is used between the client and server machine.

The cache server and client are on the same LAN, which connects to the server through office ADSL.

 

Test Software:

SourceAnywhere for VSS 5.4, SourceAnywhere for VSS 5.4 Cache Server 5.4, SourceAnywhere for VSS Client 5.4.

SourceOffSite Server 4.2, SourceOffSite Client 4.2.

 

Test Data:

1. A project with 1,500 files; Total size is 17.1 MB.
2. 1,000 changed files (used for check-in).
3. Server and Client machines are restarted before each test.

I attached the test data I used here. You can download it and do the test in your own environment if you like.

 

Test method:

Every operation is carried out 5 times. The highest and lowest results are eliminated. The average value is calculated.

One response so far

Mar 28 2009

Microsoft released Silverlight 3 Beta !

Published by under Programming

Microsoft has just released Silverlight 3 Beta. There are big improvements in this release. It is good news for us, since we are developing a Silverlight 2 application. As a professional software development company developing tools for software development teams, we are not very interested in the rich media part of the new features. The parts that we are interested in are: 60+ controls with source code and out-of-browser capability. With the out-of-browser support, the applications built with Silverlight 3 can run both within and outside a browser. The auto update feature is also nice since the new version of our software can be downloaded and installed automatically on the client side.

You can read more at this page:
http://silverlight.net/getstarted/silverlight3/default.aspx

No responses yet

Sep 19 2008

Today, we reached the ZBB milestone for SourceAnywhere 3.0

Published by under General,Programming

I am very excited to announce that today at 5:25PM Pacific Time, 18th September 2008, our SourceAnywhere 3.0 team reached the Zero Bug Bounce (ZBB) milestone for the SourceAnywhere 3.0 cross-platform client. All together, we created 3362 issues, including bugs, tasks and notifications for the project.

In the coming 2 weeks, our team will continue to work on the cross-platform client to further improve the product quality. 2 weeks later, our testing team will start to do release testing for the client and our coding team will start to work on the Visual Studio IDE integration client.

No responses yet

Sep 18 2008

The difference between “Start with debugging” and “Start without debugging”

Published by under Programming

Today when I was browsing the MSDN VC++ forum, I saw a post asking the differences between “Start with debugging” and “Start without debugging”.

The original post is:

I’m having a problem with a network application I’m coding. I have this connection between a client and a server that only works when I start my application with “Start with debugging” and never with “Start without debugging”, both in Debug and Release configuration.

So my question is : what’s the differences with “Start with debugging” and “Start without debugging” that could possibly change the behaviour of a program? Because I don’t have a clue as of where to search for the problem… If it can help, my program is multi-threaded.

 

I also had the same question several years ago.

This issue is caused by the different variable initialization behavior of differnt run modes.

In the “Start with debugging” mode, the un-initialized variables are set to the default values. But in the “Start without debugging”, the variables are left random.

For example, you have:
int iHowMany;

In the “Start with debugging” mode, iHowMany is initialized to 0. But in the “Start without debugging” mode, the value of iHowMany is random.

It is easy to find all the un-initialized variables. The VC compiler generates a warning for using an un-initialized variable. Just go through the compiler warning list, find them and initialize them.

No responses yet