This page summarizes a few of the most popular .NET and ASP.NET tools and components
that I have published in the last few years or so. Some are free tools,
but most were presented as part of an article or presentation and the link to those will
point to the articles from which you can download the actual tools or
components.
Tools
West Wind Web
& AJAX Toolkit for ASP.NET This toolkit provides many of the components published in my
articles and blog entries in a single source library. Includes AJAX and
jQuery components for easy Ajax and REST Callbacks, HoverPanels, Modal Popups,
DragPanels and many interative UI features. Also includes several
ASP.NET controls like a two-way DataBinder control, Tab Control,
MessageDisplay and ErrorDisplay controls. Included also is the
data-driven ASP.NET Resource Provider, that allows dynamic resource
editing through a Web interface. Finally there are many system level and
utility classes for day to day ASP.NET and .NET development.
Article which includes full source code and describes a set of
wrapper classes around the ASP.NET Razor templating engine so it can be
hosted in any kind of application. Includes basic hosting for template
parsing and sophisticated hosting scenarios that support template
compilation and caching for better performance and reuse.
Small JavaScript utility that lets you easily see keycodes for input
keys in the various HTML DOM events exposed on key presses. Shows key
codes for each event as well as translated character values and shift
states. Online utility.
West Wind Web
Configuration Utility Ever
need to quickly install a Web application on a different server? You
copy files and then you start fiddling with IIS to create a virtual
directory, set directory permissions, possibly configure your Visual
Studio.NET solution file to run in the different application path or
configure MSDE/SQL Server to create a accounts? If you do this a lot
this utility is for you. This utility performs these tasks through
either an easy to use Windows Forms interface or through a command line
interface that uses an XML configuration file that can 'just do it'.
Free single file utility.
JavaScript Minifier Utility
This GUI and Command Line application strips white space and comments
from JavaScript files reducing JavaScript file size significantly. The
tool provides both a WinForms and command line interface that supports
single file or directory batch conversion of JavaScript files. You can
also run the
ClickOnce Application online.
SnagIt Screen Capture Plugin for Windows Live Writer
This tool is a small plugin for Windows Live Writer that allows you to
directly use the powerful SnagIt utility from Techsmith to capture
screen shots directly into Blog entries in Windows Live Writer.
ASP.NET Controls and Components
jQuery
Calendar ASP.NET Wrapper Control This control provides a wrapper around Marc Garbanski's cool jQuery
Calendar control providing simple dragging and dropping of the calandar
and postback support of this popular calendar control.
wwDataBinder - a two-way data binding Extender As much as ASP.NET 2.0 improves data binding, one aspect - simple
control binding for controls like textboxes, checkboxes and selected
values of lists for example - is still tedious especially when it comes
to unbinding data. This powerful Extender control extends any ASP.NET
control on a page and allows binding any property value to a data value
or object property. The control supports declarative binding and
unbinding, managing of binding errors and managing error display in a
consistent fashion.
DbResourceProvider - A data driven Resource Provider and Editor for
ASP.NET Need to created localized ASP.NET applications, but struggling
with the Resx resources? Take a look at this data driven resource
provider implementation that lets you store localization resources in a
database. The tool also includes a rich ASP.NET based resource
administration interface that can be used to edit resource in a running
ASP.NET application and see the changes immediately. An additional
control can be used to provide context sensitive resource lookup to this
administration form simply by dropping a small control on a form.
PreservePropertyControl - Easily persist values across page
postbacks What? Another state mechanism for ASP.NET? Yup - this one provides
similar functionality to ViewState, but without requiring that ViewState
is enabled. PreserveProperty() allows automatic storage and restoration
of property values on a page. For example, say you have ViewState of on
a DataGrid and you want to track the CurrentPageIndex:
Persist.PreserveProperty(this.dgCustomers,"CurrentPageIndex"); and
you're done. Same with things like ID values or even objects persisted
on a form. You can simply change the values and forget about. The value
will still be there on the postback. Comes with source code. requires ASP.NET 2.0
wwWebTabControl - a simple TabStrip control The wwWebTabControl is a simple, client side driven Tab control that
uses ID tags to show and hide content on an ASP.NET page. Easy to use
and flexible and comes with source code. A relatively simple
demonstration of how to build a control with child collections that can
be edited through the designer.
wwMessageDisplay - A generic
Message Display class for ASP.Net Creating messages in your Web application should be
quick and easy and most importantly, consistent. They should look like
they belong with the rest of the application even if - low and behold -
an error occurs. How often have you created a new page to display some
simple text or a notification message to your users? Wouldn't it be much
nicer if you could reuse an existing template and simply passed in a few
parameters to tell it to render an application specific message? This
class provides a generic message implementation via ASP.NET's internal
page redirection features that encapsuates the process of creating
message pages reducing required application code to call it down to a
single line of code.
Components with Source Code
wwAppConfiguration - a better Configuration class for .NET .NET provides rudimentary support for storing and retrieving
configuration settings out of .config files. But there are a number of
important features missing. Find out how to build a better mousetrap by
creating a class that provides strong typing, read/write capability and
encryption for values stored in your config files. Works with all types
of .NET applications including ASP.NET, WinForms and Console apps.
wwRuntimeHost - ASP.NET Runtime Hosting class Want to embed the power of ASP.Net into your application to provide
rich and dynamic HTML displays in your applications? Add the ability to
dynamically execute script code that is changeable after compilation?
Don't want to give up debugging and the rich VS environment even in
script code? Then take a look at hooking the ASP.Net runtime into your
own applications. This article describes what it takes to integrate the
ASP.Net runtime in desktop apps and provides an easy to use class that
makes integration a matter of a few lines of code.
wwScripting -
Dynamic Code
Execution Class Executing code that is created or read in at runtime is no trivial task
in .NET. It takes a fair amount of code to accomplish this task, but it
also offers a fair amount of power. This article discusses what's
involved and provides an easy to use wwScripting wrapper class that
provides for dynamic code execution.
wwHTTP - an easier HTTP Client class .NET provides a powerful WebRequest class for accessing HTTP content
over the Web. Unfortunately, although very powerful it leaves out some
crucial functionality and hides common functionality fairly deeply in
its hierarchy. The wwHTTP class provides a simpler property based model
that wrappers many common tasks such as creating POST variables properly
for various POST types, automatic cookie-handling and single method
retrieval of HTTP content into strings, streams or Reader objects.
InputBox Class for WinForms C# doesn't have an input box and VB.NET's version is somewhat
limited. Here's an InputBox class that provides easy input of single
values with support for typed values (string, numerics and dates) and
type validation, format strings and a number of additional format
options to make your input forms professional and not like some cheesy
canned dialog. Supports both class and static method InputBox()
interface. Source includes a sample form that demonstrates both.