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.
有谁知道可以嵌入到应用程序中的第三方数据导入向导?它应该从Excel,Access,SQLServer,csv,制表符分隔的平面文件,XML,Oracle等导入。我们的应用程序中有一个固定的数据结构,用户应该能够配置向导以匹配他/她的导入字段我们自己的数据结构。
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.
该向导应该是一个各种类型的库 - 最好是.Net类型库。我们可能希望基于Web和基于桌面(因此我们可能需要ASP.Net控件版本和Winforms版本)。我们可能还希望与WPF和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?
如果没有可用的UI向导,是否有人知道非UI库支持从许多不同的数据源轻松配置导入?
1 个解决方案
#1
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.
如果您可以假设您的应用程序具有可用的SQL Server,则以编程方式设置SSIS包以执行此类转换非常简单。您的应用程序将提供一个UI,您可以在其中设置数据源的元数据并将其映射到目标。你甚至可以在BIDS本身中使用SSIS包编辑器来完成这项工作,并在你的应用程序中加入一个工具来执行包。
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.
如果您无法使用SSIS,那么您将不得不购买商业广告 - 我不知道有任何成熟的基于开源.Net的ETL工具。
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.
如果您不需要基于.Net的工具链(例如,您的应用程序可能只是外部可执行文件),那么这类开源工具大多用Java编写。看看各种开源B.I.的产品。 Jasper或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.
另一种方法可能是将Python等脚本语言解释器嵌入到您的系统中(查看IronPython - 基于.net的python系统)。这些语言具有各种用于读取各种类型文件的库工具。该语言可以用作应用程序的宏设施,并且可以通过此机制实现数据导入。这是以某种技术性为代价的,所以这是由支持人员而不是最终用户直接完成的。根据您的应用程序的客户群和其他实施成本,这可能是也可能是不可接受的。
#1
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.
如果您可以假设您的应用程序具有可用的SQL Server,则以编程方式设置SSIS包以执行此类转换非常简单。您的应用程序将提供一个UI,您可以在其中设置数据源的元数据并将其映射到目标。你甚至可以在BIDS本身中使用SSIS包编辑器来完成这项工作,并在你的应用程序中加入一个工具来执行包。
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.
如果您无法使用SSIS,那么您将不得不购买商业广告 - 我不知道有任何成熟的基于开源.Net的ETL工具。
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.
如果您不需要基于.Net的工具链(例如,您的应用程序可能只是外部可执行文件),那么这类开源工具大多用Java编写。看看各种开源B.I.的产品。 Jasper或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.
另一种方法可能是将Python等脚本语言解释器嵌入到您的系统中(查看IronPython - 基于.net的python系统)。这些语言具有各种用于读取各种类型文件的库工具。该语言可以用作应用程序的宏设施,并且可以通过此机制实现数据导入。这是以某种技术性为代价的,所以这是由支持人员而不是最终用户直接完成的。根据您的应用程序的客户群和其他实施成本,这可能是也可能是不可接受的。