Download | Documentation | White Paper | Samples 


wwDbResourceProvider

A data driven Resource Provider and Editor for ASP.NET



© West Wind Technologies, 2006-2008
 
License: Free use and modification
Requires: ASP.NET 2.0 or later

The wwDbResource Provider is a database driven ResourceProvider and ResourceManager for ASP.NET and .NET applications in general. It provides for the ability to create and maintain resources in a database and modify these resources dynamically, including at runtime in ASP.NET Web applications.

Features:

  • Storage of resources in a single table of a database
  • Dynamic resource editing at runtime
  • Ajax based, interactive, context sensitive Resource Administration
  • Supports Visual Studio 'Generate Local Resources' functionality
  • Basic translation features built in
  • Support for live preview of resource changes
  • Runtime configurability
  • Exporting to ASP.NET ResX resources
  • Support for Explicit and Implicit Resource Expressions
  • Uses stock ASP.NET localization mechanisms
  • Uses .NET ResourceManager implementation so performance is similar to ResX resources
  • Resources are cached - database is used only to load resources once
  • Support for binary and file resources
  • Two providers: wwDbResourceProvider and wwDbSimpleResourceProvider (ASP.NET only - slightly more efficient)

Web Based Resource Administration

Resources can be edited in real-time in a live Web application through a Web Form that talks to the wwDbResourceProvider's database directly. The form uses an AJAX based interface that is quick and interactive and quickly displays all locale specific resources for a given resourcekey in one place. You can easily edit or add a new value.

Some key features of this form are the ability create new resource keys for any language in one place. You can easily create new entries, add completely new resources (although those need to be hooked up in ASP.NET forms/controls). You can also use a simple translation feature to attempt to translate text with Google or Yahoo Babelfish and immediately assign the value to the value field for the appropriate language.

Most actions of the form use AJAX access so the page is very fast in refreshing resource navigation. Most of the more complex operations, like adding new resources or doing translation pop up modeless windows on top of the active form to provide a more fluid user interface.

One useful feature (for demos and 'first cut translation at least <s>) is the ability to query Google and BabelFish for translations of phrases:

The LocalizeAdmin form can be manually invoked or you can use a context sensitive mechanism that lets you show all localizable resources on a page and jump directly to the appropriate resource. This is made possible by a wwDbResource control which can be placed onto ANY ASP.NET page and which enables the page for resource provider localization:

The little red icons next to each field denotes one or more localizable properties on the control. You can hover over the icons to see the control name. Clicking on the icon takes you directly into the Rsource Localization form and if the resource exists goes straight to it and selects it. This context sensitive lookup is a great time saver in working on resources interactively.

The wwDbResourceControl can be globally enabled or disabled so that it's invisble for live applications, but visible while translation is in progress. You can also simply set Visible to .F. to disable the translation functionality declaratively.

Version 0.91 released!
NEW.GIF (147 bytes) 3/10/2008
Updated release that fixes a few bugs and updates the Resource editor administration interface.

This tool is completely free and comes  with source code. Use it as you see fit


Donations
Feel generous or really think that this provider and editor are making your life easier? A lot of time and effort went into this tool and while I'm happy to share it, it's always nice to get some lovin' back.




Like what you see? Don't like it or thinking of another feature? Leave us a comment on the original blog post related to the release of this plugin.