Sky Software Homepage LogicNP Software Knowledge Base And FAQ

 
Contact Product Support    SearchSearch      Subscribe to the RSS feed for this forum

ARTICLE : EZNamespaceExtensions.Net : Rapid development of Windows shell namespace extensions in .Net

 
Subscribe to the RSS feed for this forum  Forum Index -> Announcements
View previous topic :: View next topic  
Author Message
Support



Joined: 18 Jul 2005
Posts: 731

Posted: Fri Apr 14, 2006 8:59 am    Post subject: ARTICLE : EZNamespaceExtensions.Net : Rapid development of Windows shell namespace extensions in .Net

EZNamespaceExtensions.Net : Rapid development of Windows shell namespace extensions in .Net

View Original Article at :
http://www.ssware.com/articles/eznamespaceextensions.net-rapid-development-of-windows-shell-namespace-extensions-in-.net.htm

Introduction

EZNamespaceExtensions.Net is a framework for fast, painless and easy development of Windows Explorer namespace extensions in .Net . EZNamespaceExtensions.Net eliminates the time-consuming, error-prone and complicated process of developing namespace extensions using an innovative yet simple and easy-to-use object model. With EZNamespaceExtensions.Net, you can concentrate on writing the functionality of your namespace extension and not worry about the hundred things that are necessary to integrate the namespace extension seamlessly into Windows Explorer. Shell namespace extensions developed with EZNamespaceExtensions.Net support all kinds of features including folder/non-folder items, sub-folders, sub-folder navigation, custom views, details/column view, contextmenus, background contextmenus, drag-drop, icons, overlay icons, thumbnails, groups/categories, tile-view, property sheets and many other features which enable the shell namespace extension to integrate smoothly and seamlessly into Windows Explorer and other browsers.

What are shell namespace extensions
The namespace extension is a hierarchical organization of items that can be integrated into Windows Explorer. The items in the namespace extension can represent various kinds of data such as entries in a database, the contents of a network/web/FTP location, actual file system objects or the contents of the system registry. The namespace extension can be plugged into Windows Explorer hierarchy at various locations like the 'Desktop', 'My Computer' or even as a file system folder.

Developing shell namespace extensions in .Net from scratch
Anybody who has attempted shell programming will attest to the difficulties, subtleties, and even the bugs and limitations of the Windows Shell and of the Shell API itself. Terms such as PIDL and ITEMIDLIST can give developers nightmares. All these combined with skimpy and often erroneous documentation means that developing namespace extensions from scratch is extremely time-consuming effort. It can take days just to get a minimal namespace extension going and this is just the beginning. As soon as you start to add other features such as context menu support, drag-drop support, details/report view, thumbnail view and group/category view support, the time required can get blown into weeks and weeks on end and put a project schedule out of orbit.

Developing namespace extensions in .Net only make the matters worse. Now one has to deal with the additional complexities of COM Interop, correct and working shell interface definitions and API structures and plenty of other arcane things.

Developing shell namespace extensions in .Net with EZNamespaceExtensions.Net
To developers looking for relief, EZNamespaceExtensions.Net is the prefect solution. EZNamespaceExtensions.Net is a well designed and thoroughly tested framework which relieves you of all the time-consuming tasks required for developing namespace extensions in .Net and can reduce the time required to write namespace extensions by as much as 80%. With EZNamespaceExtensions.Net, you can concentrate on writing the functionality of your namespace extension and not worry about the hundred things that are necessary to integrate the namespace extension seamlessly into Windows Explorer.

VB.Net and C# Visual Studio.Net Project Wizards
EZNamespaceExtensions.Net comes with VB.Net and C# Project Wizards integrated within the Visual Studio.Net IDE. Just select a new 'Shell Namespace Extension" project and skeletal code for a read-to-build-and-view namespace extension is automatically generated. This enables you to directly start adding the functionality of your namespace extension and not waste time laying the groundwork.

EZNamespaceExtensions.Net object model
All items in your namespace extension are instances of either the NSEItem or NSEFolder class depending on whether they are folder or non-folder items. The classes have virtual methods which are overridden and are used for retrieving the properties of the items such as the item's display name, icon, overlay icon, thumbnail, etc. Some virtual methods are called when an event occurs which concerns the item, for example when a drag-drop operation occurs over the item or when the item is renamed or deleted. The children of a folder item are specified using another overridden method which is called to retrieve the child items of the folder.

Serialization and deserialization of items
The namespace extension mechanism of Windows Explorer depends on the ability of items in the namespace extension to be saved in data form and later restored from the saved data.This saved data is called a PIDL or an ITEMIDLIST in shell terminology. PIDL management is one of the most difficult and bug-prone tasks in namespace extension development. EZNamespaceExtensions.Net alleviates the developer of this and automatically manages the serialization and deserialization of items. In EZNamespaceExtensions.Net, each item is responsible for serializing itself and a folder item is responsible for deserializing child items from the serialized data.

Features and functionality supported by EZNamespaceExtensions.Net


Details/Report View support
In Windows Explorer Details View, multiple columns can be displayed for each item and each column displays information about the item. Namespace extensions developed with EZNamespaceExtensions.Net have full support for Details View with the ability to specify multiple columns and item data for each column and column-based sorting.

Context Menu Support
When a user right-clicks on items in Windows Explorer, a context menu is displayed contained various commands which can be performed on the items. EZNamespaceExtensions.Net fully supports item context menus as well as folder background context menus which are displayed when the user right-clicks on the empty space of the view. The context menus can also contain owner-drawn menu items and submenus.

Drag-drop support
Items in the namespace extension fully support drag-drop operations from/to/within the namespace extension. When items from your namespace extension are being dragged on an external folder such as a file system folder, the 'create shortcut' functionality is made available automatically by EZNamespaceExtensions.Net. As a result, shortcuts to items in namespace extension can be created by Windows Explorer.

If you want the ability to Copy/Move your items to an external folder, then you must add the appropriate data to the dataobject. File system folders understand the FileDrop data format. If your items map to actual file system objects then you should use this data format to enable Move/Copy operations to external file system folders. If your items do not map to file system objects, you can still enable your items to be copied/moved to external file system folders by presenting the items in the namespace extension as data streams which Windows Explorer can read and transfer data from.

EZNamespaceExtensions.Net also supports drag-drop (both external and within your own namespace extension) on items within your namespace extension.

Cut-Copy-Paste operations
Namespace extension developed with EZNamespaceExtensions.Net fully support Cut-Copy-Paste operations.

Icons, OverlayIcons and Infotips
Items in the namespace extension have full support for icons, overlay icons and infotips using single overridden methods for each. Icons and overlay icons can be specified using icon files, exe or dll files, using actual icon handles or as an index of an icon in the system image list.

Thumbnail View Support
When Windows Explorer is showing items in Thumbnail View, a small bitmap known as a thumbnail is shown for items. EZNamespaceExtensions.Net has full support for item thumbnails.

Tile View Support
Starting with Windows XP, Windows Explorer supports display of items in a new view called the Tile View in which items can display additional lines of text below its display name. EZNamespaceExtensions.Net fully supports this view for namespace extensions.

Groups/Category View support
Starting with Windows XP, items in Windows Explorer can be grouped/categorized together for easy presentation. EZNamespaceExtensions.Net fully supports this view and comes with a couple of default categorizers Developers can also write their own categorizers

Toolbar buttons and frame menu merging.
EZNamespaceExtensions.Net also has the ability to add toolbar buttons to the toolbar of Windows Explorer. Additionally, menu items specific to your namespace extension can also be merged in the main frame menu of Windows Explorer. The merged menu items fully support owner-drawn menu items and submenus.

File Open/Save Common Dialog Support
EZNamespaceExtensions.Net fully supports browsing of the namespace extension from the File Open/Save common dialogs without any additional effort needed on the part of the developer.

Custom View Support
By default, the user interface (UI) of a folder in the namespace extension consists of a listview control which displays the child items of the folder. The listview control can display items in different modes (Large Icon, Details, Thumbnail, etc) and handles much of the work on your behalf. The advantages of this approach are obvious : easy of use and most importantly, familiarity of the UI to users. However, you can choose to use a custom view (UI) for folders in your namespace extension and such functionality is fully supported by EZNamespaceExtensions.Net.

Types of namespace extensions supported by EZNamespaceExtensions.Net
Namespace extensions can be plugged into the Windows Explorer hierarchy at various locations known as junction points. EZNamespaceExtensions.Net supports all junction points supported by Windows Explorer such as the Desktop, Control Panel, My Computer, Remote Computer and the Network Neighborhood. In addition, namespace extensions can also use a file system folder as the junction point.

Tool and language support
EZNamespaceExtensions.Net supports all version of Visual Studio.Net including Visual Studio.Net 2002, Visual Studio.Net 2003 and Visual Studio 2005. It supports all versions of the .Net runtime library including .Net 1.0, .Net 1.1 and the latest .Net 2.0. It supports VB.Net, C#, Managed C++.Net and many other languages which have support for .Net.

Conclusion

With its simple yet intuitive object model, EZNamespaceExtensions.Net makes developing namespace extensions in .Net a breeze. It supports all features which ensure that your namespace extension integrates smoothly and seamlessly into Windows Explorer and other browsers. This well designed and thoroughly tested framework is an obvious choice when it comes to developing namespace extensions in .Net.
Back to top
Display posts from previous:   
Forum Index -> Announcements All times are GMT
Page 1 of 1

 
Jump to:  


Powered by phpBB © 2001, 2005 phpBB Group