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

Wednesday, November 08, 2006

ReSharper UnitRun

ReSharper UnitRun is a free add-in for Microsoft Visual Studio 2005 that allows you to automatically run and profile unit tests. This user-friendly tool detects test fixtures of the supported unit testing frameworks and lets you run or profile them right from the code editor or from Visual Studio's Solution Explorer.

A dedicated window is provided to analyze test results, run or rerun any tests, and navigate from a failed test's output directly to the code line that originated the exception. Results are displayed in the Unit Test Tree View, which contains an overview of all tests in the build together with colored icons to indicate the state of each test. From this view you can start running, debugging or profiling tests.

ReSharper UnitRun


Download ReSharper UnitRun


Technorati tags: , , ,

Tuesday, October 31, 2006

Microsoft Visual Studio 2005 IDE Enhancements

Visual Studio 2005 IDE Enhancements are a set of Visual Studio extensions that are designed to make you more productive. These enhancements are directly integrated into the Visual Studio IDE. Previously, these enhancements were only available via the Visual Studio 2005 SDK. This installation does not require Visual Studio 2005 SDK.

Source Code Outliner : The Source Outliner tool is a Visual Studio extension that provides a tree view of your source code's types and members and lets you quickly navigate to them inside the editor.

Visual C++ Code Snippets:The Visual C++ Code Snippets tool lets you insert snippets in your code by using a pop-up menu that contains programming keywords. VB.NET and C# languages have this functionality in Visual Studio 2005.

Indexed Find : The Indexed Find tool is a Visual Studio extension that uses the Microsoft Indexing Service to provide improved Search capabilities to the integrated development environment (IDE). It sends the results of a search to the Output Window.

Super Diff Utility: The Super Diff Find tool is a Visual Studio extension that compares text files. It uses color coding and graphics to show the difference between the files in deleted text (red), changed text (blue), inserted text (green).

Event Toaster Utility: The Event Toaster tool is a Visual Studio extension that notifies users about specific events within the Visual Studio IDE.


Download Microsoft Visual Studio 2005 IDE Enhancements

Thursday, October 05, 2006

Foxit Reader 2.0 is just released.

"Foxit Reader 2.0 is a free PDF document viewer and printer, with incredible small size (only 1.5 M download size), breezing-fast launch speed and amazingly rich feature set. Foxit Reader 2.0 supports Windows 95/98/Me/2000/XP/2003. Its core function is compatible with PDF Standard 1.6."

New Features

  • Interactive form filler: Now you don't have to print out PDF forms first and then manually fill out paper forms. Instead, you can use PC to fill out interactive forms directly, and then print them out, save them, email them or export the form data into FDF file for further processing.
  • Multi-language UI that can be dynamically switched: The user interface of Foxit Reader now can be switched to different languages dynamically, thanks to the generous help from our user community.
  • On-demand download of add-on: With add-ons, the function of Foxit Reader can be extended unlimitedly. Advanced feature modules and seldom-used modules are packed as add-on to be downloaded when needed.
  • Self-upgrade: In the past, when you want to upgrade Foxit Reader, you have to frequently visit Foxit website, check for new release, and then manually download the new version, uninstall the old version and re-install the new version. Now this whole process is simplified and you only need to click on the menu item "Check for update now".
  • Javascript support: Advanced users are able to use Javascript to create complex logic for PDF forms, to validate user input and process data.
  • Improved printing speed: Printing a PDF file with many images on it to a PostScript printer used to be slow. Version 2.0 has been optimized for such printing.
  • Streamlined UI: Version 2.0 comes with a neat UI. Annotation tool buttons are grouped together and no longer being showed on several toolbars.

    Download Foxit Reader 2.0

    Wednesday, October 04, 2006

    The Most Intelligent Integrated Team Environment - TeamCity

    JetBrains has released their integrated team environment.

    TeamCity provides intelligent, automated running and monitoring of build processes, and facilitates integration of changes for developers working on both .Net and Java platforms.


    Top features include:

    • Continuous Integration Support - remotely integrate and test code changes many times a day utilizing NUnit (.NET) or JUnit (Java) testing frameworks. 
    •  Effective Build Management allows running builds using such popular build tools as NAnt, MSBuild, Ant, and Maven, and immediately provides information about build results via the web interface or a special Windows Tray Notifier add-in. When a build fails, any developer can take responsibility for fixing it and quickly notify other team members that the problem is being handled.
    • Innovative "Build Grid" which can utilize multiple computing
      resources anywhere on your network so developers' computers don't get bogged down. Each computer in the build grid can define its own environmental parameters and TeamCity intelligently distributes testing and builds among appropriate machines as resources are available.
    • Web-based Administration - developers and their managers can easily get build and test reports, see the current build status, and configure all the necessary build settings using the rich web interface. Build history and all built artifacts are also accessible.

    [Via LarkWare News]



    Technorati tags: , , ,

    Monday, October 02, 2006

    Replacing the DHTML Editing Control in Windows Vista and Beyond

    "The DHTML Editing Control will not be included in Windows Vista. Web pages and Windows applications that use the control must be modified to continue to provide a WYSIWYG HTML Editor."

    To read more about this, check out the MSDN article at


    Technorati tags: , , ,

    Friday, September 22, 2006

    Web Client Software Factory project Community site

    The Web Client Software Factory is a guidance offering currently under development that will provide comprehensive architecture guidance to help customers build web solutions using the Microsoft platform (ASP.NET, ASP.NET AJAX, Workflow Foundation, etc).

    The factory will include:

    • Scenario documentation (a description of the requirements and technical challenges that the factory will address)
    • Architecture documentation
    • Design patterns
    • How-tos
    • Guidance Packages (Visual Studio 2005 extensions for automating common tasks)
    • Reference Implementations (complete sample applications using the Factory)
    • Training content (Hands-On-Labs, demos, etc)

    Wednesday, September 06, 2006

    Server Side Validation Library by Chad Finsterwald

    This article will introduce you to a server side validation library. The objectives of the library are to:

    1. Provide a uniform and extensible approach for even complex validation scenarios.
    2. Reduce the amount of code required for user input validation.
    3. Create a consistent user experience with both visual and textual feedback regarding specific user input errors.
    4. Centralize page-level user validation so that it is easier to maintain and comprehend.


    Tuesday, September 05, 2006

    XML Notepad 2006


    XML Notepad 2006 provides a simple intuitive User Interface for browsing and editing XML documents.


    • Tree View synchronized with Node Text View for quick editing of node names and values.
    • Incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes.
    • Cut/copy/paste with full namespace support.
    • Drag/drop support for easy manipulation of the tree, even across different instances of XML Notepad and from the file system.
    • Infinite undo/redo for all edit operations.
    • In place popup multi-line editing of large text node values.
    • Configurable fonts and colors via the options dialog.
    • Full find/replace dialog with support for regex and XPath.
    • Good performance on large XML documents, loading a 3mb document in about one second.
    • Instant XML schema validation while you edit with errors and warnings shown in the task list window.
    • Intellisense based on expected elements and attributes and enumerated simple type values.
    • Support for custom editors for date, dateTime and time datatypes and other types like color.
    • Handy nudge tool bar buttons for quick movement of nodes up and down the tree.
    • Inplace HTML viewer for processing xml-stylesheet processing instructions.
    • Built-in XML Diff tool.

    Download XML Notepad 2006

    Tuesday, August 29, 2006

    Clean Sources

    This Application does one thing. It adds an explorer shell menu to folders that when selected will recursively delete the contents of the bin, obj and setup folders. If you have a .NET project that you wish to share with some one, this is useful to remove the unnecessary stuff from the folder before you zip it up and send it off.

    Download Clean Sources

    Monday, August 28, 2006

    Code Formatter Plugin for Windows Live Writer


    • The ability to format the code 'live'
    • The ability to wrap lines
    • The ability to change the background color
    • The ability to just quickly paste what's in the clipboard as code


    Download Code Formatter Plugin


    tags: , , ,

    Sunday, August 20, 2006

    Application Updater by Wilco Bauwer

    This new application updater is a new application updater component which is customizable and supports both WebDAV and BITS . BITS allows you to let the application download updates in the background, which means users would practically not notice anything, since BITS will use unused bandwidth.

    Add a reference to and implement the IAgent interface. Your IAgent implementation will be used for getting available updates and such.
    When you've done that, you write your own download implementation in case you don't want to use WebDAV or BITS to download updates.
    The next thing you got to do is initialize a new Updater, add eventhandlers, and that's basically all you got to do.
    If you want to check for updates, you call the Refresh method on the Updater instance, when you've detected an update you call the Download method, and when you're done with updating and want to restart the application, you use the ApplyUpdate method.


    Technorati Tags: 

    Saturday, August 19, 2006

    Threading in C# - By Joseph Albahari

    Threading in C# An extensive article on multi-threading in C#. This tackles difficult issues such as thread safety, when to use Abort, Wait Handles vs Wait and Pulse, the implications of Apartment Threading in Windows Forms, using Thread Pooling, Synchronization Contexts, Memory Barriers and non-blocking synchronization constructs.

    [Via Roy Osherove's Blog]

    Friday, August 11, 2006

    How can I prevent the SplitContainer from stealing focus?

    The default behavior for the splitter is to take focus once selected. If you want the splitter to be movable without taking focus you can do one of two things:
    Insert the following code in your project, and attach these events to all of the SplitContainers that you don't want stealing focus.

    // Temp variable to store a previously focused control
    private Control focused = null;
    private void splitContainer_MouseDown(object sender, MouseEventArgs e)
    // Get the focused control before the splitter is focused
    focused = getFocused(this.Controls);
    private Control getFocused(Control.ControlCollection controls)
    foreach (Control c in controls)
    if (c.Focused)
    // Return the focused control
    return c;
    else if (c.ContainsFocus)
    // If the focus is contained inside a control's children
    // return the child
    return getFocused(c.Controls);
    // No control on the form has focus
    return null;
    private void splitContainer_MouseUp(object sender, MouseEventArgs e)
    // If a previous control had focus
    if (focused != null)
    // Return focus and clear the temp variable for
    // garbage collection
    focused = null;

    Technorati : , , ,

    Why isn’t the splitter visible when I run my application?

    If the splitter is not distinguishable from the rest of the split container, it is due to the SplitContainerPanels having the same background color as the splitter, and the BorderStyle being set to None. To make the splitter easily recognizable, change the BackColor for the SplitContainerPanels, or set the SplitContainer's BorderStyle.

    Technorati : , ,

    How do I select the SplitContainer at design time?

    If you want to select a SplitContainer control at design time, click on the splitter. If you click on either of the SplitContainerPanels, you will select them instead. Also you can use the drop down menu in the property grid to select the SplitContainer by name. Finally you can use the Document Outline to select the SplitContainer and control the Z-order of the controls within it.

    Technorati : , ,

    Client Settings FAQ

    How do I persist application settings in the registry?

    For information on using the registry for settings, see the following SDK sample:

    How do I use a Web service client to retrieve application settings?

    For information on using the a Web service for settings, see the following SDK sample:

    Technorati : , ,

    How do I get the class to serialize correctly?

    While most common types can be serialized in one of two ways listed above, there are some types that may not. In such cases, you have a few different options:

    • Implement a TypeConverter for the type that can convert to and from string. The implementation can use a suitable serialization mechanism like one of the formatters/serializers that ship in the Framework or any custom mechanism you wish. You can then specify this converter on the type itself or on the property in your settings class.

    • Specify a particular SettingsSerializeAs enum value using a SettingsSerializeAsAttribute. For example, if you wish to serialize a setting in binary format, simply specify SettingsSerializeAs.Binary.

    Technorati : , ,

    Is there any way to change or customize the path of the user.config file?

    The LocalFileSettingsProvider does not provide a way to change the files in which settings are stored.

    Note: The provider itself doesn't determine the config file locations in the first place - it is the configuration system.

    If you need to store the settings in a different location for some reason, the recommended way is to write your own SettingsProvider. This is fairly simple to implement and you can find samples in the .NET 2.0 SDK that show how to do this. Keep in mind however that you may run into the same isolation issues mentioned above.

    Technorati : , ,

    How can I get the user.config file path programmatically in a non-Clickonce app?

    If you want to get to the path programmatically, you can do it using the Configuration Management API. For example, here is how you can get the local user.config file path:

    Note: You need to add a reference to System.Configuration.dll

    Configuration config =
    Console.WriteLine("Local user config path: {0}", config.FilePath);

    Technorati : , ,

    Why is there a version number in the user.config path?

    There are a couple of reasons why the user.config path is version sensitive:

    • To support side-by-side deployment of different versions of an application (you can do this with Clickonce, for example). It is possible for different versions of the application to have different settings saved out.

    • When you upgrade an application, the settings class may have been altered and may not be compatible with what's saved out, which can lead to problems.

    Technorati : , ,

    Why is the user.config path so obscure?

    The path construction algorithm has to meet certain rigorous requirements in terms of security, isolation and robustness. While we tried to make the path as easily discoverable as possible by making use of friendly, application supplied strings, it is not possible to keep the path totally simple without running into issues like collisions with other apps, spoofing etc.

    Technorati : , ,

    Where is the user.config file located in a non-Clickonce app?

    The path of the user.config files is structured as follows:
    <Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config


    • <Profile Directory> - is either the roaming profile directory or the local one. Settings are stored by default in the local user.config file. To store a setting in the roaming user.config file, you need to mark the setting with the SettingsManageabilityAttribute with SettingsManageability set to Roaming.

    • <Company Name> - is typically the string specified by the AssemblyCompanyAttribute (with the caveat that the string is escaped and truncated as necessary, and if not specified on the assembly, we have a fallback procedure).

    • <App Name> - is typically the string specified by the AssemblyProductAttribute (same caveats as for company name).

    • <Evidence Type> and <Evidence Hash> - information derived from the app domain evidence to provide proper app domain and assembly isolation.

    • <Version> - typically the version specified in the AssemblyVersionAttribute. This is required to isolate different versions of the app deployed side by side.

    Note: The file name is always simply 'user.config'

    Technorati : , ,

    Why can't I change application scoped settings at runtime?

    Application scoped settings are essentially read only from the application's point of view, and aren't meant to be changed by users, but rather only the administrator. An additional reason for this has to do with how the default SettingsProvider stores settings. Application scoped settings are stored in the exe configuration file, and user scoped settings are stored in user.config files located in the user data path. Generally, exe config files should not be written to at runtime by the application, since the user may not have access to them. In addition, it is normally not a good idea for a user to change a file that affects every other user of the application.

    Technorati : , , ,

    What is the difference between application scoped and user scoped settings?

    There are generally two main types of settings that applications want to store:

    1. Static data like connection strings and web references that don't change often, but should still be possible for an admin to change.

    2. User preferences and customization settings that can change at any time.

    Application scoped settings are useful in scenario (1) and user scoped settings are useful in scenario (2).

    Wednesday, July 19, 2006

    How do I use the WebBrowser as a HTML editor?

    You can access, and write to, the HTML behind a web page being displayed by the WebBrowser using the WebBrowser.DocumentText property.

    Technorati : ,

    Why does my application with multiple WebBrowser controls use so much memory?

    The WebBrowser control is a resource-intensive control. Be sure to call the Dispose method when you are finished using the control to ensure that all resources are released in a timely fashion. You must call the Dispose method on the same thread that attached the events, which should always be the message or user-interface (UI) thread.

    Technorati : , , ,

    Where can I find information on the native interfaces?

    The WebBrowser control is primarily a managed wrapper of the WebBrowser ActiveX object. There are four main unmanaged interfaces that are wrapped in one form or another:

    1. IWebBrowser2 - The core WebBrowser interface.

    2. DWebBrowserEvents2 - The WebBrowser events.

    3. IDocHostUIHandler - Provides advanced functionality such as: custom context menus, disabling accelerators & providing custom objects to the html script. The WebBrowser control QI's it's Site to obtain this interface.

    4. IinternetSecurityManager - Provides custom security for the browser control.

    Technorati : , , ,

    Tuesday, June 27, 2006

    mentas Ribbon

    Basic and easy .NET 2.0 control to make your application feel like MS Office 2007 UI experience.

    Download mentas Ribbon

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

    A free charting library for .NET

    ZedGraph is a set of classes, written in C#, for creating 2D line and bar graphs of arbitrary datasets. The classes provide a high degree of flexibility - almost every aspect of the graph can be user-modified. At the same time, usage of the classes is kept simple by providing default values for all of the graph attributes. The classes include code for choosing appropriate scale ranges and step sizes based on the range of data values being plotted.

    ZedGraph also includes a UserControl interface, allowing drag and drop editing within the Visual Studio forms editor, plus access from other languages such as C++ and VB.

    Example charts generated with ZedGraph
    filled_curve_150.gif vertical_bars_labels_150.gif

    pie_demo_150.gif combo_150.gif


    Technorati : , , ,
    Ice Rocket : , , ,

    TopMost Form

    "A topmost form is a form that overlaps all the other (non-topmost) forms even if
    it is not the active or foreground form. Topmost forms are always displayed at
    the highest point in the z-order of the windows on the desktop. You can use this
    property to create a form that is always displayed in your application,
    such as a Find and Replace tool window."

    The well known issue that the TopMost Form stealing focus ...
    The fallowing code can solve the problem.

    private const int SW_SHOWNA = 8;
    private const int SW_SHOWNA = 8;
    [DllImport("user32", CharSet = CharSet.Auto)]
    private extern static int ShowWindow( IntPtr hWindow, int nCmd );

    public void MakeTopMostForm(Form frm)
    ShowWindow(frm.Handle, SW_SHOWNA);

    Sunday, June 25, 2006

    BytesRoad.NetSuit Library 2.0

    BytesRoad.NetSuit Library 2.0 is a free network library for .NET platform distributed under GNU General Public License. The library is written in C# language and source codes are also available.

    FTP functionality is exposed by FtpClient class . This class contains high level methods that allow you to communicate with FTP server. Also available SocketEx class. This class may be used instead of the .NET Framework's Socket class wish your application to be able to communicate through the proxies (Socks4, Socks5 etc).

    FTP Implementation features

    • Fully compliant with RFC 959 (File Transfer Protocol) and related documents
    • Comprehensive reference for the component (as compiled HTML file) integrated with .NET Framework SDK v1.1 help
    • Support communication with FTP server through the proxies. Following proxies are currently supported:
      • Socks4
      • Socks4a
      • Socks5, username/password authentication method supported
      • Web proxy (HTTP CONNECT method), basic authentication method supported
    • All methods requiring networking hava synchronous and asynchronous versions
    • Implementation of asynchronous methods follows .NET Asynchronous methods pattern
    • Each operation may be configured with required time out period
    • "Store unique file" command can be customized by specifying regular expression
    • Directory listing parser supports common directory listing formats and can be customized by the user-defined parser
    • Exception oriented error handling
    • Provide events for monitoring the communication process:
      • Event during data transferring
      • Event during receiving ftp items
      • Event on each FTP command sent
      • Event on each FTP response received
    • Supported on .NET Framework v1.0 and later

    Sockets implementation features

    • Comprehensive reference for the component (as compiled HTML file) integrated with .NET Framework SDK v1.1 help
    • Following proxies are currently supported:
      • Socks4
      • Socks4a
      • Socks5, username/password authentication method supported
      • Web proxy (HTTP CONNECT method), basic authentication method supported
    • All methods requiring networking have synchronous and asynchronous versions
    • Implementation of asynchronous methods follows .NET Asynchronous methods pattern
    • Each operation may be configured with required time out period
    • Exception oriented error handling
    • Supported on .NET Framework v1.0 and later

    Download BytesRoad.NetSuit Library 2.0

    Technorati : , ,
    Ice Rocket : , ,

    Wednesday, June 21, 2006

    Free SharePoint 2007 Book

    "Future or current SharePoint developers should at least flip through the book to build a picture of how MOSS 2007 fits together and what the concepts are -- changes to the security model, site definitions, site features, Content Types, how Workflow is integrated, Excel Services -- there are a hundred small topics, you owe it to yourself to get a handle on the big picture."

    Table of Contents

    • Microsoft Windows SharePoint Services 3.0
    • Building Solutions with Office SharePoint Server 2007
    • Building a Basic SharePoint Site
    • Organizing List and Documents with Site Columns and Content Types
    • Working with Features in Windows SharePoint Services
    • Windows SharePoint Services Core Development
    • Creating Workflows: The Missing Piece of Office Productivity
    • Introducing Excel Services
    • Microsoft Office InfoPath 2007 and Microsoft Office Forms Server 2007


    [Via Roy Osherove's Blog]

    Technorati : , , ,
    Ice Rocket : , , ,

    Wednesday, June 14, 2006

    Creating clonable menu items in .Net 2.0 ( Implementing CloneMenu method )

    In Windows Forms FAQ( .Net 2.0) I found that the CloneMenu method is not implemented ...:-(

    "With the entire ToolStrip family of controls we do not have an integrated commanding
    architecture nor do we support cloning of items to appear in multiple places.
    We do support reusing the same ToolStripDropDown or ContextMenuStrip in multiple places (non-nested).
    We understand this may require more state management and maintenance code and are looking
    at ways to improve this in the future.
    Erick Ellis, 6 January 2005 # (MS)"

    Here's "fast and dirty" solution:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication66
    class CloneToolStripLabel:ToolStripLabel
    public CloneToolStripLabel( string text )
    : base(text)
    public CloneToolStripLabel CloneMenu()
    return ( CloneToolStripLabel )this.MemberwiseClone();


    CloneToolStripLabel menuItem = new CloneToolStripLabel("Kuku");

    Also you can read this post

    Technorati : , , ,
    Ice Rocket : , , ,

    Sunday, June 11, 2006

    Save and restore the size,location and state of a Windows Form in .NET 2.0

    The fallowing example saves the properties (location, size and windows state) of a form to app.config
    when the form is closed and restores the form state when it is loaded.

    Create three properties called Size ,Location and WindowState in project settings dialog as shown in picture:

    Modify Form.Load and FormClosing methods (Use DesktopBounds (instead Form.Location and Size)
    to place form correctly on a multi screen desktop )

    private void Form1_Load( object sender, EventArgs e )


    // restore location and size of the form on the desktop

    this.DesktopBounds =

    new Rectangle(Properties.Settings.Default.Location,


    // restore form's window state

    this.WindowState = ( FormWindowState )Enum.Parse(




    private void Form1_FormClosing( object sender, FormClosingEventArgs e )


    Properties.Settings.Default.Location = this.DesktopBounds.Location;

    Properties.Settings.Default.Size = this.DesktopBounds.Size;

    Properties.Settings.Default.WindowState =

    Enum.GetName(typeof(FormWindowState), this.WindowState);

    // persist location ,size and window state of the form on the desktop




    Technorati : , , ,

    Saturday, June 10, 2006

    PowerShell Editor and IDE.

    PowerShellIDE is the PowerShell Editor and IDE.

    It is a graphical user interface that helps explore and exploit the vast power available with PowerShell. It contains a debugger, lets you step through PowerShell scripts, explore variables as you run your scripts and also supports many Intellisense-like functions.

    Download PowerShellIDE

    Technorati : , , ,
    Ice Rocket : , , ,

    MSBuild Sidekick

    MSBuild Sidekick is a GUI application for creating and editing build project files for Microsoft Build engine. The application provides full-fledged graphic user interface as alternative to editing build project files by hand. The full range of MSBuild schema elements is supported.

    MSBuild Sidekick features:

    • Load and modify any file complying to MSBuild schema
    • View build project structure in a tree view that displays tasks used in build, property groups and properties, item groups and items, targets and targets tasks and imported build projects.
    • Show or hide presentation of imported definitions in a project tree view
    • View MSBuild project raw XML source as you modify the project
    • Modify project default targets
    • Add or remove tasks used in build project from external assembly
    • Add, remove or modify property groups
    • Add, remove or modify properties in property groups
    • Add, remove or modify item groups
    • Add, remove or modify items in item groups
    • Add, remove or modify targets
    • Add, remove or modify selected target's tasks, tasks order
    • Modify selected task properties (including output properties specification)
    • Import or remove external build projects
    • Open any imported project from the loaded project

    Download MSBuild Sidekick

    [Via Larkware News]

    Technorati : , , ,
    Ice Rocket : , , ,

    Thursday, June 01, 2006

    How to prevent the UserControl class to appear in the Visual Studio toolbox

    You can prevent the UserControl class to appear in the Visual Studio toolbox by adding fallowing attribute to it


    Remember that this attribute is inheritable ,so derived UserControls must place have a System.ComponentModel.ToolboxItem(false) attribute if they want to be available on the Visual Studio toolbox .

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

    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;