views:

261

answers:

1

Does anyone know of a 3rd party data import wizard that can be embedded into applications? It should import from Excel, Access, SQLServer, csv, tab-separated flat file, XML, Oracle etc. We have a fixed data structure within our application and the user should be able to configure the wizard to match his/her import fields to our own data structure.

The wizard should be a library of sorts – preferably a .Net type library. We may want to have it both web-based and desktop based (hence we may need an ASP.Net controls version and a Winforms version). We may also want integration with WPF and Silverlight.

If there’s no UI wizard available, does anyone know of a non-UI library that supports easily configurable import from many, many different datasources?

A: 

If you can assume that your application has SQL Server available, it is fairly straightforward to programmatically set up a SSIS package to do this type of transformation. Your application would provide a UI where you could set up the metadata for the data source and map it to the destination. You could possibly even just use SSIS package editor in BIDS itself for the job and incorporate a facility in your application to execute the package.

If SSIS is not available to you then you would have to purchase something commercial - I am not aware of any mature open-source .Net based ETL tooling of this sort.

If you don't strictly need a .Net based toolchain (for example, your application could possibly just shell out to an external executable) there are open source tools of this type, mostly written in Java. Take a look at the offerings from various open-source B.I. vendors such as Jasper or Pentaho.

Another alternative might be to embed a scripting language interpreter such as Python into your system (Check out IronPython - a .net based python system). These languages have quite a variety of library tooling for reading various types of files. The language can be used as a macro facility for the application and data imports can be implemented through this mechanism. This comes at the expense of being a somewhat technical, so it's something that would be done by support staff rather than directly by end users. Depending on the customer base and other implementation costs of your application this may or may not be acceptable.

ConcernedOfTunbridgeWells