The blog has moved to a new address. The blog is now located at

Tuesday, May 30, 2006

SQL Prompt

SQL Prompt provides Intellisense® style auto-completion for Microsoft SQL Server editors. It will tell you the exact formatting you should use for your SQL commands, while you are writing them and will therefore help you write fast, perfectly formatted SQL statements. SQL Prompt improves the productivity of all SQL script creation. SQL Prompt can be downloaded free until 1st September 2006.

SQL Prompt simply sits behind the scenes and provides unobtrusive help when you press Ctrl-Space or when you type "." after a table/view/alias name.


  • Table/View name completion
  • Column name completion
  • Stored procedure name completion
  • USE completion
  • JOIN/JOIN ON completion
  • Auto-uppercasing of keywords
  • Auto-popup after keywords

SQL Prompt works with Microsoft Query Analyzer, SQL Server 2005 Management Studio, Visual Studio 2005, Visual Studio .NET 2003, SQL Server 2000 Enterprise Manager, UltraEdit32.

Get Free Copy Of SQL Promt

Technorati : , , ,
Ice Rocket : , , ,


{smartassembly} is an innovative all-in-one improvement and protection tool.


  1. Merges your Application dependencies with your main Assembly.
  2. Automatically Detects and Removes the non-useful code and metadata.
  3. {smartassembly} is a smart Obfuscator, which automatically detects which code can or can't be obfuscated. {smartassembly} also encodes the strings in order to improve protection.
  4. The combination of the previous features leads to an improvement of your Application's performances.
  5. Automatically adds missing exceptions handling, and Reports these exceptions with detailed snapshot information to the developer.
  6. One-stop Improvement and Protection tool in one single post-compilation process.

{smartassembly} is available in 3 editions:

The Standard edition is perfect for a small and simple project.
The Professional edition, thanks to its advanced debugging capabilities, enables to improve and protect larger and more complexes projects.
The Enterprise edition, thanks to its customization capabilities, enables to improve and protect your enterprise projects.

Download {smartassembly}

[Via Larkware News]

Technorati : , , ,
Ice Rocket : , , ,

Monday, May 29, 2006

Front-end application for ILMerge

Gilma is a front-end application for ILMerge: Microsoft's command-line utility that can be used to merge multiple .NET assemblies into a single assembly. ILMerge is freely available from Microsoft's web site. ILMerge's license does allow commercial usage.

[Via Larkware]

Technorati : , ,

Sunday, May 28, 2006

An easy way to find out if an application will cause troubles on Windows Vista

The Standard User Analyzer helps developers and IT professionals diagnose issues that would prevent a program from running properly without administrator privileges. On Windows Vista, even administrators run most programs with standard user privileges by default, so it is important to ensure that your application does not have administrator access as a dependency.

Using the Standard User Analyzer to test your application can identify the following administrator dependencies and return the results in a graphical interface:

  • File access
  • Registry access
  • INI files
  • Token issues
  • Security privileges
  • Name space issues
  • Other issues

This tool also complements the Application Compatibility Toolkit (ACT) 5.0. ACT 5.0 will include a User Account Control agent that you can deploy to user desktops to identify applications that require administer privileges. The Standard User Analyzer is designed to be run on the developer or tester's workstation to test and troubleshoot a specific application. Issues identified with the Standard User Analyzer can also be entered into you ACT 5.0 database so you can track the application compatibility across your environment.

Download Microsoft Standard User Analyzer.

Technorati : , , , ,

Friday, May 26, 2006

Live Gadget SDK version 0.5 (Beta)

The Windows Live Gadget SDK provides everything you need to get started with developing Gadgets that run on
The Windows Live Gadget SDK consists of the following:
  • Windows Live Gadget Developer's Guide If this is the first time you are developing a Live Gadget, we recommend that you start here.
  • API Reference Documentation on the complete the Windows Live Gadget API that you can program to.
  • Gadget Design Guide Guidelines to help you with building a beautiful Gadget that will follows our guidelines.
  • Windows Live Gadget Project Template A project template that you can install into Visual Studio 2005 or Visual Web Developer Express 2005 to make Live Gadget development much easier!
  • Additional Samples Extra samples to show you how to write code to accomplish certain tasks.
  • Developer FAQ Answers your most frequently asked questions.
  • Development Resources Other resources to help you be successful with building that awesome Gadget! Includes Community resources, references and tutorials on JavaScript & DOM, HTML & CSS, and much more!

Technorati : , , ,

Tuesday, May 23, 2006

NUnit 2.4 alpha has been released

NUnit 2.4 Alpha Release


  • The source code directory structure has been reorganized to separate NUnitFramework and NUnitCore.
  • A new nunit.common assembly isolates core interfaces.
  • The following assemblies are now strongly named: nunit.mocks, nunit.core.extensions and nunit.framework.extensions
  • NUnit may now be installed by non-administrators, subject to any security restrictions imposed by the particular site.
  • The .Net 2.0 builds of NUnit are now called "NUnit for .Net 2.0"
  • The NAnt build script has been simplified and now consists only of the and files.
  • The NAnt build script now has a target for building under the Mono 2.0 profile.
  • NUnit is now been built and tested using both Microsoft .Net (1.0, 1.1, 2.0) and Mono (1.0 and 2.0 profiles).


  • When multiple assemblies are loaded, they may use a single AppDomain, as now, or a separate AppDomain for each assembly. The new option provides greater isolation of the tests and allows use of separate config files for each assembly.

    Note: In the Alpha release, separate config files are required when this option is used, even if an NUnit project is loaded.
  • The automatic creation of test suites for each namespace is now optional. When the creation of these suites is suppressed, the fixtures are loaded as a simple flat list, without any hierarchy imposed.
  • When multiple assemblies are loaded, the tests may optionally be merged. If automatic namespace suites are enabled, namespaces are merged across assemblies. This option is only available if a single AppDomain is used.
  • The fixture object is created for the life of the test run and is no longer reused on subsequent runs. If the object implements IDisposable, Dispose is called before destroying it.
  • The current directory is set to the location of the test assembly before running each fixture. This change facilitates running fixtures in any order and eliminates interference between fixtures that change the current directory.
  • Non-public fixture classes are treated as non-runnable and display a warning message rather than being silently ignored.
  • A new SetUpFixture allows one-time SetUp and TearDown at the level of a NameSpace or for an entire assembly.

  • The TestRunner no longer passes "live" tests back to the gui or console. Instead, a data class that encapsulates the info about the test is sent.
  • Registry settings are now stored under Old settings are migrated automatically when the application is first run.
  • When the default config for a test project is set to "NUnitAutoConfig" the configuration of the current NUnit build is automatically selected for the tests, if available. This is intended for use by NUnit developers.


The DebuggerDisplay attribute (System.Diagnostics.DebuggerDisplayAttribute) controls how a class or field is displayed in the debugger variable windows. This attribute can be applied to:

  • Classes
  • Structs
  • Delegates
  • Enums
  • Fields
  • Interfaces
  • Properties
  • Assemblies

The following code example shows how to use DebuggerDisplay

namespace ConsoleApplication11


[DebuggerDisplay("OnlineResource: {_Url} {_Port}.")]

public class OnlineResource


public string _Url;

public int _Port;

public OnlineResource(string url,int port)


this.Url = url;

this.Port = port;


public string Url




return _Url;




_Url = value;



public int Port




return _Port;




_Port = value;





Invasion of the Robot Context

Microsoft is challenging developers worldwide to create conversational robots, or BOTs, for MSN® Messenger and Windows Live™ Messenger. The most original, useful robots collect $40,000 in total prizes.

Robots or "BOTs", are software programs that you can add to MSN® Messenger and Windows Live™ Messenger. If you add a robot to your contact list, it can chat, give you customer service support, perform searches, make suggestions, play games and more.

Registration is open until September 15, 2006

Sunday, May 21, 2006


PHLAT is a new interface for Windows Desktop Search (enabling search through a user's own email, files, and viewed web pages). PHLAT lets you easily specify queries and filters, attempting to integrate search and browse in one intuitive interface. In addition, Phlat supports a unified tagging (labeling) scheme for organizing personal content across storage systems (files, email, etc.).

Click here to read more about PHLAT!

Technorati : , , ,
Ice Rocket : , , ,

Sun Project Tango

Project Tango develops and evolves the codebase for Web Services Interoperability Technologies (WSIT) that enable interoperability between the Java platform and Windows Communication Foundation (WCF) (aka Indigo).
Project Tango uses JAX-WS and JAXB as a foundation upon which to build plugins to provide web services features such as bootstrapping communication, optimizing communication, reliable messaging, atomic transactions, security and trust.

Technorati : , , , , ,
Ice Rocket : , , , , ,

MSF 4.0 (Microsoft Solutions Framework) Resources

This is the list of resources about MSF 4.0 (Microsoft Solutions Framework) by Lorenzo Barbieri.
MSF 4 it's the first version that will be available not only as a set of documents and templates, but also integrated in a Microsoft product (Team Foundation Server, part of the Visual Studio Team System family)

Technorati : , , ,
Ice Rocket : , , ,

Saturday, May 20, 2006

C5 is a library of generic collection classes for C# and other CLI languages

The C5 collection library provides the following collection concepts, described by C# interfaces: Directed enumerable, collection value, directed collection value, extensible collection, collection, sequenced collection, indexed collection, sorted collection, indexed sorted collection, persistent sorted collection, list, LIFO stack, FIFO queue, priority queue, dictionary, and sorted dictionary.
The C5 collection library provides the following data structures, described by C# classes: array list, doubly linked list, hash-indexed array list, hash-indexed linked list, hash set, hash bag (multiset), sorted array, wrapped array, tree set, tree bag (multiset), stack, double-ended queue, circular queue, priority queue (interval heap), hash dictionary, and tree dictionary.

The C5 collection library provides the following unusual functionality on collections and dictionaries: collection update events, multiple updatable list views, reversible enumeration, hash indexes on lists, snapshottable tree-based collections, priority queues with item handles, and in general a design with emphasis on orthogonality, flexibility, and preservation of invariants.

Go to The C5 Generic Collection Library Site

[Via Roy Osherove's Blog]

Technorati : , , , ,
Ice Rocket : , , , ,

Thursday, May 18, 2006

Visual Studio 2005 add-in - x.doc

x.doc is a Visual Studio 2005 add-in that provides a means to manage and visualize source-code comment documentation interactively in the IDE.

x.doc Features:

x.doc provides two windows:

  • The Visualizer window which is the window that provides the rendered XML documentation text using a defined set of XSL templates and a CSS. This window is interactively updated as the caret is moved in a code-editor window. If the documentation is not well-formed XML or an error occurs in the rendering, an error is displayed in this window. If the caret is not positioned in a documentation block, the message "No documentation" is displayed. This window is implemented to work as a standard 'Tool Window' in the IDE, and can be floated, docked etc. like any other tool window.
  • The Output window which is similar to the IDE build window in that it displays the error with the appropriate source-code file path and line and character position offsets. Double-clicking the error line in this window will move the caret to the referenced editor window and offset in the code at which the error has occurred. It shares the standard output window and its content is displayed by selecting the x.doc menu-item in the 'Show output from:' selector.

x.doc provides a menu tool-strip above the Visualizer window, and the available commands are described below as they are ordered on the tool-strip (from left-to-right):

  • Prior Documentation Item: This button command moves the caret to the prior documentation block in the code editor window and selects the block as shown in Figure 1 above.
  • Next Documentation Item: This command moves the caret to the next documentation block.
  • Collapse All Documentation: This command traverses the entire code document and outlines the documentation blocks. Each documentation block is shown only by three ellipses ('...') and is an effective way to quickly hide all the documentation.
  • Import Documentation Item: This button command imports the documentation from an external file and embeds it as a documentation block in the source-code. This will only happen if the caret is positioned over a single-line documentation block containing a well-formed <include> tag that points to a valid external documentation file with a name attribute that can be resolved to a documentation item in the external file.
  • Export Documentation Item: This command reverses the action of the 'Import Documentation Item' above. The documentation block is exported to the external documentation file and a suitably formed <include> tag is substituted in its place. . Note that badly-formed XML is exported "as-is", so it is best to check the Output window for errors before exporting the documentation block.
  • Import All Documentation: This command works the same as the "Import Documentation Item" above, except that it traverses the entire source-code file and imports all documentation.
  • Export All Documentation: This command exports all documentation to the external documentation file, reversing the action executed by 'Import All Documentation' above.
  • Documentation Display Style Selector: This selection list will accommodate any number of XSL/CSS templates which are imported from external .xsl and .css files when the add-in is first loaded. The XSL/CSS files x.doc.xsl and x.doc.css are included with the x.doc add-in installer and provides a pseudo-MSDN documentation look-and-feel. Obviously, these files can be modified or more style files added, which can then be individually selected, causing the documentation to be immediately re-rendered using the selected style. It is also possible to extend the VS IDE documentation tags and provide customized documentation functionality. NDoc already does this to provide the various standards of documentation-styles, including their MSDN style, which is exactly like the Microsoft H1 and H2 Help.

x.doc is completely NDoc compatible, in that the XML files that are generated by VS when you compile with the /doc:file option can be used as-is with NDoc. This applies whether the documentation is read directly from the source-code, or from an external file.

Technorati : , , , ,
Ice Rocket : , , , ,

Windows Vista Upgrade Advisor beta

The Windows Vista Upgrade Advisor is a small beta application that you can run on your current Windows XP-based computer to find out if it's ready for an upgrade to Windows Vista. When you run the Upgrade Advisor, it will scan your computer and generate an easy-to-understand report of any known system and device compatibility issues, along with recommendations on how you can get your PC ready for Windows Vista. Microsoft plans to add functionality to Upgrade Advisor, such as checking how your software applications will run with Windows Vista.

Download Windows Vista Upgrade Advisor beta

Technorati : , , , , ,
Ice Rocket : , , , , ,

Binding to Data Created at Runtime

First, a class that represents an individual person should be declared.
The code below declares a class with the FirstName, LastName and Age public properties.
These properties will be data source fields.

class Person


private string _FirstName;

public string FirstName


get { return _FirstName; }

set { _FirstName = value; }


private string _LastName;

public string LastName


get { return _LastName; }

set { _LastName = value; }


private int _Age;

public int Age


get { return _Age; }

set { _Age = value; }


public Person(string firstName, string lastName, int age)


this.FirstName = firstName;

this.LastName = lastName;

this.Age = age;



Once the record class is declared, the data source object can be filled with records.
This example will use an ArrayList as the grid's data source. The code below fills a
List<Person> with records and assigns it to the DataGridView's DataGridView1.DataSource property.

List<Person> personList = new List<Person>();

personList.Add(new Person("Bill", "Gates", 55));

personList.Add(new Person("Joe", "Miller", 30));

personList.Add(new Person("Nataly", "Mix", 22));

this.dataGridView1.DataSource = personList;

After the above code has been executed, the DataGridView will look similar to the one displayed below.

Technorati : , , , ,
Ice Rocket : , , , ,

Compute Fibonacci numbers using yield statement

A program to compute Fibonacci numbers using yield statement.

class YieldUsageExample


static void Main(string[] args)


int n = 8;

foreach (int i in Fibonacci(n))


Console.Write("{0} ", i);




public static IEnumerable Fibonacci(int n)


int previous = -1;

int result = 1;

for (int i = 0; i <= n; ++i)


int sum = result + previous;

previous = result;

result = sum;

yield return result;