Skip to main content


Showing posts from 2005

Open Workbench - Open Source Project Management and Project Scheduling for Windows - What is Open Workbench?

What is Open Workbench? Print E-mail

Open Workbench is an open source Windows-based desktop application that provides robust project scheduling and management functionality and is free to distribute throughout the enterprise. When users need to move beyond desktop scheduling to a workgroup, division or enterprise-wide solution, they can upgrade to CA's Clarity™ system, a project and portfolio management system that offers bidirectional integration with Open Workbench.

Why do Visual Studio Express version suck?

I tell you exactly why do they suck so bad.

Okay, i take it back, it is good effor on MS' part to actually give out anything free like that. So lets give the credit where it's due.

Now as to why do i find the C# express verison lame? simply because darn thing doesn't even have support for:

1) Extensibility. Lack of support for Add-ins and Macros. One must wonder, how can you get more users to use a system for which you aren't even providing a way to improve upon. Take example of Firefox. How simple and elegant is it to create extensions for it and as a result not only you have developers and like-minded folks developing extensions for it, but others are enjoying the ever lasting extensions for it as well. Imagine now, what if same could be true for C# express version.

2) No VSS or Unit testing integration. One must wonder, are express editions really for students and hobbiests type persons? If so, they why don't they get the opportunity to learn what should be the fir…

Msnspaces sucks so bad!

Can't even use my lovely firefox to blog anything there. Thats pretty pathetic for Microsoft to:

1) Not support firefox users
2) Add stuff that is supported by only the lamest browser on planet, i.e. Internet Explorer
3) Not even have a msn toolbar for firefox.

I don't see how MS wants to take lead in this competition when they don't even have the very fundamental stuff developed to begin with.

Need to create dynamic Web Reference from XML Web Service consumer application

You can configure the web service to pull the URL based on a setting in a
configuration file, rather than a hardcoded value. To change the location,
simply change the config file with no recompile.

Here’s how to do it:
Add your web reference. Go to "Solution Explorer", right click on the web
reference name (eg. "localhost") and choose properties. In the property
window change "Url Behavior" from "Static" to "Dynamic".

If the web service client is a non-web application, this will automatically
create a file name app.config with the URL to the web service.


After you comiple your client app, the configuration file of it (such as
something.exe.config) will have the same content as the app.config.
Now, you can deploy the configuration along with the client executable. If
you ever need to change the web service location, you can open the
something.exe.config file in notepad and ch…

BuildBot: build/test automation


The BuildBot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not. Warning counts, lint checks, image size, compile time, and other build parameters can be tracked over time, are more visible, and are therefore easier to improve.

The overall goal is to reduce tree breakage and provide a platform to run tests or code-quality checks that are too annoying or pedantic for any human to waste their time with. Developers get immediate (and potentially public)…

VMware Player

How can I use VMware Player?

Run virtual machines created by VMware Workstation, GSX Server or ESX Server. VMware Player also supports Microsoft virtual machines and Symantec LiveState Recovery disk formats.Easily and safely evaluate pre-built application environments, beta software, or other software that is distributed in virtual machines, without any installation or configuration hassles. Share a virtual machine with a colleague or friend. Accessing a Cisco Router

If you're setting up a Cisco router for the first time, find the long, flat, light blue rollover cable that came with the router. This cable is easy to recognize if you compare both ends of the cable. You'll also see why it's called a rollover cable as the pinouts are opposite to each other; in effect, the cable was rolled over when the second connection was crimped on.

Guy Davis: Outreach Project Tool

OPT Max is a branch of the current Outreach Project Tool originally created by CSO Lanifex. This version's goal is to add a number of new features that integrate well with the rest of the application. It is currently the only actively developed version of OPT available.

This enhanced version of OPT is in use by 80+ users in the hardware/software development group at Pason Systems as well as the 20+ users at a theatre production company among many other users. Please visit the Sourceforge project site for more details and downloads.

Demystifying Microsoft Intermediate Language. Part 1 - Introduction

In these series of articles, I will sheen the complexity of surrounding IL by representing complex concepts in a simple and comprehensive manner. These concepts have been supplemented with detailed examples. We will compare the source code of the program in C# or VB.NET language and the same code written in IL to better understand the limitation of our compilers and will learn to write better and faster code. The aim of this series is to explain the complexity surrounding IL and to make you adept at understanding IL code. I also want to alleviate your fear of lower languages. : Article info : Twelve Tips for Realistic Scheduling

Summary: Whether you're managing a software development project, or coordinating your children's soccer and dance lessons, schedules are helpful tools for orchestrating a sequence of events. Most schedules involve a start and end-date, and include tasks, task duration, and dependencies between tasks. But no matter how well you plan for a series of events, unexpected events will compete for time and threaten deadlines. People you hadn't anticipated will step into your plans, and begin to influence, control, and often complicate things. When we do not handle unexpected events and the interpersonal elements well, our schedules fall apart. Good scheduling is very difficult, a combination of art and science. In this article, I will discuss realistic scheduling, which seeks to cover all the above types of events--the planned, the possible, and the unimagined. There are some techniques that can help you keep your sanity, which go beyond the notes, checklists, milestones dates, an…

Phalanger - the PHP Language Compiler for .NET Framework

Main Features

The aim of the Phalanger project is to create a module enabling execution of PHP scripts on the Microsoft .NET platform. This module is cooperating with the ASP.NET technology enabling it to generate web-pages written in PHP the same way ASP.NET pages are.

In contrast to the original PHP interpreter, our module is compiling the scripts into the MSIL (Microsoft Intermediate Language). While the first page access is delayed due to compilation, all following accesses benefit of the fast execution of the native code which is always far more effective than script interpretation. This gain is most important in case of common PHP-script libraries (for example PHPLIB, PEAR, Nuke etc.) which are complex yet immutable and thus their script files are compiled only once. On the other hand there may be some code in the PHP scripts which is not known in the time of compilation and has to be compiled at run-time. The .NET platform fully supports run-time code generation. Although this …

try ruby! (in your browser)

Got 15 minutes? Give Ruby a shot right now!

This tutorial is only partway complete.. but it's getting better! Now you can hop chapters, you know? That's decent!

Ruby is a programming language from Japan (available at which is revolutionizing the web. The beauty of Ruby is found in its balance between simplicity and power.

Video Series: Visual Web Developer for Beginners

This video series is designed specifically for individuals who are interested in learning the basics of how to create dynamic Web applications using ASP.NET 2.0 and Visual Web Developer 2005 Express Edition in either Visual Basic or C#. The series includes over 6 hours of video-based instruction that walks you through creating and deploying your first Web page to creating a fully functioning Quiz Engine Web site.

Mondrian Ruby IDE

Mondrian is a cross-platform project-manager and editor for the Ruby language. Written in 100% native Ruby using the FOX GUI toolkit, Mondrian has the familiar look and feel of a modern IDE while remaining dedicated to the uniqueness of the Ruby language and its community. Some features include:

* a dynamic object browser
* runtime error integration
* a full-featured project manager
* syntax highlighting
* runs identically on Windows and Linux

Using System.DirectoryServices to Configure IIS

System.DirectoryServices can be used to get and set String and DWORD properties in the IIS metabase, and invoke most methods. However, you cannot perform the following tasks unless you are using Windows XP Professional with Service Pack 2 or Windows Server 2003 with Service Pack 1. Doing so results in errors like "The directory cannot report the number of properties":

OTRS::Email Management::Trouble Ticket System::Welcome!

OTRS is an Open source Ticket Request System (also well known as trouble ticket system) with many features to manage customer telephone calls and e-mails. The system is built to allow your support, sales, pre-sales, billing, internal IT, helpdesk, etc. department to react quickly to inbound inquiries. Do you receive many e-mails and want to answer them with a team of agents? You're going to love the OTRS!

Web service test data generator


TestOracle is a very powerful program that allows developers to quickly generate test data for their web-services before publicly or internally releasing the web service for production. Having a code tested has many intrinsic advantages, including less buggy code and reduced time in fixing and finding these bugs later. There are many products in the market today to automate generating test data, including DataTect. However, some of the major disadvantages and limitations of all these commercially available products make TestOracle a unique-first of its kind-product. For instance, commercial program are not only expensive (at least $600+ per license) but are also limited to producing only scalar data (i.e. records of a database table), and thus can not produce data for complex data objects. Complex objects include are formal function parameters, which can include complex n-level object hierarchy(s).

Nini: Manual - Storing configuration data in a database

Nini: Manual: "5.2 Storing configuration data in a database

If you are running an ASP.NET application then you probably have multiple users in each system. You will probably also have a bunch of user settings to edit. Most web applications are entirely configured with a database so the following is an example of using Nini along with your database.

Here's a very simple example with a SQL Server table. This can easily be adapted to any other database. Here is the structure of the database table:

UserId ID,
Settings TEXT

The ConfigSettings field stores a Nini configuration value. Now you can load a Nini configuration values like this:

string userId = GetUserId(); // retrieve the user id somehow

SqlCommand command = new SqlCommand('SELECT Settings FROM UserSettings WHERE ID = '
+ userId, connection);


SqlDataReader reader = command.ExecuteReader();

if(reader.HasRows) {

Visual Studio 2005 Web Deployment Projects (Beta Preview)

Visual Studio 2005 Web Deployment Projects (Beta Preview)

Visual Studio 2005 Web Deployment Projects provide additional functionality for building and deploying Web site applications that you create in ASP.NET 2.0 and Visual Studio 2005. This add-in includes a new tool that enables you to merge the assemblies created during ASP.NET 2.0 precompilation, and it provides a comprehensive UI within Visual Studio 2005 for managing build configurations, merging, and pre-build and post-build task using MSBuild.

Using Visual SourceSafe for ASP.NET--Start to Finish

Use Labeling for Your Versions of Software
Instead of relying on these internal version numbers that SourceSafe assigns to files, you will most likely want to create your own "label" for a set of code that defines a release for your software. A release could be your first beta milestone, your first version of the product, an incremental release, or the second, or third release of a product.
Each file will get its own internal version number, and depending on how often a file is modified, these numbers will never match up across a whole project. So instead you can apply your own label to a complete project to identify all of the files checked in at the point in time when you create this label.

You might create a label (up to 31 characters) with the text: "1.0," "2.01b," "Final Beta," or "Approved for QA." After you apply a label, you can retrieve all the files associated with this label from the History dialog box. While individual fil…

Web Services Made Easy with Ruby

It's easy to develop Web services using Ruby. This article looks at how to develop a Web service client to access the Web services that are hosted in the Internet and how to develop a Web service with simple steps using Ruby.

Automated Smart Client Deployment and Update - Today and Tomorrow

Smart client application architecture is gaining ground as a replacement for many intranet and some internet web applications. Smart client architectures have many considerations that you need to take into account to build a well robust, reliable, scalable, performant, and secure app. However, building the application is only part of the battle. Once you get the smart client application designed and tested along with its supporting middle tier components, you need to deploy the application to client machines and support it with (possibly frequent) updates while it is there. This article will discuss some of your options, including capabilities that exist today with .NET 1.1 such as Windows Installer, No Touch Deployment, and the Updater Application Block, as well as those that will soon arrive with the release of .NET 2.0, specifically ClickOnce.

Using the Ruby Development Tools plug-in for Eclipse

Why Ruby?

Why would any self-respecting Java developer care about Ruby? Ruby is a general-purpose scripting language created 10 years ago in Japan. Contrary to popular belief, it is a pure object-oriented language. Unlike Java technology, Ruby has no scalars, so everything, including integers, are first-class objects. Ruby's syntax borrows heavily from Smalltalk, Python, and Ada. Like the Java programming language, Ruby is a single inheritance language, but it offers some advanced features that Java technology does not, such as closures (think anonymous inner classes on steroids) and mix-ins (similar to interfaces, but less tightly bound to the class). Ruby is also highly portable, running on all major operating systems.

Ruby is also red-hot right now. People are starting to use it for the types of applications where it excels. Because it is interpreted and uses dynamic typing, you can do all sorts of magic tricks at run time that are very difficult in Java. One of the surprising …

Hack the Build: Programmatically Converting Older VS .NET Projects to MSBuild

<a href="Hack the Build: Programmatically Converting Older VS .NET Projects to MSBuild <br /> <br />Jomo Fisher--There are plenty of reasons you might want to programmatically convert projects from VS .NET 2003 format to MSBuild format. Maybe you have a bunch of old .csproj files and you'd like to convert them in batch. Maybe you'd like to keep your projects in VS7 format and convert them to MSBuild format on the fly. These are definitely Hack-the-Build-worthy pursuits, so let's dig in. <br /> <br /> <br /> <br />MSBuild ships with an assembly called Microsoft.Build.Conversion.dll which contains the code that Visual Studio .NET 2005 uses to convert older C# and VB projects into MSBuild format (unfortunately C++ is not supported). <br /> <br /> <br /> <br />The code for calling this API is so simple, I can paste it right here: <br /> <br /> <br /> <br />/* <br /> <br />…

MSBuild Wiki

Visual Studio 2005 will radically improve the software build process with the introduction of Click to read this topic

4/28/2005 11:23:10 PM - Neil
MSBuild. This new build platform:

Will deliver an XML-based file format that is well-documented and backed up by a published XML schema definition,
Will be a core component of the .NET Framework redistributable (i.e. will not require VS for build lab scenarios),
Will allow developers to customize, augment or completely redefine the build process, and
Will provide seamless integration with the Visual Studio 2005 IDE.

JIS : Rake - Ruby Build System

JIS : Rake - Ruby Build System: "The main task is build. It is defined by the call task :build. Then we pass an array of dependencies to task that :build depends on (in this case only one “:clean”). Then we simply shell (sh) out to csc to build everything for me. Not much different from a BAT file in its current state. Here is a piece of my real build that handles versioning...

task :version_main do |t|
versions.transaction do |o|
v = versions['main'].increment
File::open('Main.AssemblyVersion.cs', 'w') do |av|
av.write '[System.Reflection.AssemblyVersion(\'#{v.major}.#{v.minor}.#{}.#{v.revision}\')]'

task :version => [:version_main] do |t|
print 'Everything versioned'

The versions variable is an instance of PStore. It is a hashtable that holds a bunch of Version objects for each project. It is pretty similar to the tag in NAntContrib as I show it above. But the …

NAnt - Conditional Execution

NAnt - Targets: "Conditional Execution

A target also has the ability to perform its execution if or unless a property has been set. This allows, for example, better control on the building process depending on the state of the system (OS, command-line property defines, etc.). To make a target sense this property, you should add the if or unless attribute with an expression that the target should react to. For example:

If no if and no unless attribute is present, the target will always be executed.

Note: the dependencies of a target are always executed before testing the target's condition."

Steve Hebert's Development Blog : NAnt-ing my database build

I finished the process of performing my database build using NAnt (actually NAntContrib). I dusted off an old class library I used with a .Net plug-in I built for automating the database build and modified it so it could handle the NAnt.Core.Project object for floating messages, warnings and errors.

Our database project under VS contains all of our stored procs, functions and trigger scripts (among others). Each script is responsible for testing if the contained object currently exists and takes appropriate steps. Because the processing is order-critical, I've created an XML file format that enforces creation order and also allows for individual files or entire projects to be processed using a given line.

I could have gotten this to run using only my class library instead of NAntContrib's SourceSafe additions (for grabbing the BuildScript), but I'll need some of NAntContribs functionality beyond the database build. My NAnt script does the following:

Nant build files using his style sheet

Gordon Weakliem has some good info on using VS.Net and NAnt:

He also has a Nant build script to convert existing VS.Net projects into Nant build files using his style sheet:

Jeffrey McManus on when and why to use Nant over
He also has a Nant build script to convert existing VS.Net projects into Nant build files using his style sheet:

Using NAnt you can also tie your build process into a daily build tool such as CruiseControl.Net(

Just some options for those that dislike the VS.Net 1.0 build features :-)

Hippo.NET BuildFile Builder Beta

The Hippo.NET BuildFile Builder will generate NAnt buildfiles, bases upon Visual Studio project files. This tool will become integrated in the Hippo.NET Build Tool which can be used to automate the build process in team environments. If you want to be informed about updates or you want to give feedback, report bugs, ... visit my weblog (RSS Feed).

15 Seconds : Automated Deployment for Side By Side .NET Web Apps for Visual Studio .NET 2003

I had been asked by a client to find a way to "silently" auto-deploy a web app to a remote server everyday as a result of a daily build process. The objective of this was to regularly deliver the application to a testing team for regression testing. I decided I wanted to use MSI (Windows Installer) 2.0 technology to do it, mainly because that's what is built in to the Visual Studio .NET 2003 deployment projects. There was also the requirement to have multiple versions of the same application auto-deployed to the web server, with only one version being active at any given time, and a simple way to switch between versions. This is what the Web Server would look like:

Expose MSN Messenger Events Using C#

Tutorial on how to use the MSN Messenger API in C#. This includes a fix for exposing the events of Messenger so that developers can have full function of the API as in COM based development environments. The article keeps it quite simple and shows how a developer could receive email alerts and chat session text.

Running Transact-SQL Script Files Using osql

Accessing and Changing Relational Data
Running Transact-SQL Script Files Using osql

Topic last updated -- January 2004

You can use osql to execute database script files, which are text files containing a mix of Transact-SQL statements and osql commands. osql works with the statements and commands in the script file in a manner very similar to how it works with statements and commands entered interactively. The main differenc