2016-08-21 73 views
0

使用.NET,当用户使用联机文本编辑器并存储信息时,我们希望生成已创建HTML的预览图像。用于从HTML生成缩略图图像的执行位置

到目前为止,作为一个概念证明,我们已经从HTML创建了图像并存储了这个图像,但是,执行此操作的最佳位置是什么(注意性能)。

  1. 在应用

    • 抓住HTML的业务层,
    • 创建图像
    • 存储在文件服务器上的图片缩略图
    • 发送链接,以及其余的数据将被存储在数据库中。
  2. 从插入HTML

  3. 存储在文件服务器
  4. 更新数据库行的图像创建将产生触发插入到数据库

    • 一个CLR PROC生成图像存储链接到新的缩略图

回答

0

我看不出有什么好处,可以通过SQLCLR在SQL Server中执行此操作。如果来自表格的数据来自各种不能保证使用缩略图生成例程的外部来源/应用程序,可能会有好处。但是这听起来像数据来自您控制的单一来源。因此,在这种情况下,在SQLCLR中执行此操作可能会有损性能,而不是在应用程序层处理它(SQL Server是处理的单一来源,而应用程序服务器可以扩展)。另外,虽然您可以在大多数.NET环境(WebApp,Windows App,Console App等)中使用任何您喜欢的库,但您高度受限于.NET框架库的一小部分(Supported .NET Framework Libraries)以及其他限制(CLR Integration Programming Model RestrictionsHost Protection Attributes and CLR Integration Programming)。它可能可能变得非常棘手取决于什么库正在用于生成图像:任何需要用于绘图的用户界面可能无法正常工作,因为在SQL Server的CLR主机中无法访问用户界面。

现在,可能会在VARBINARY(MAX)列中存储 SQL Server中的缩略图图像。好处是缩略图会随着它所基于的数据一起备份,所以如果服务器崩溃,当您恢复数据库时,您将收到缩略图。它还有助于确保某个人或其他进程不会出现并删除一个或多个缩略图,这些缩略图可能会在存储在文件系统上时发生。然后,当条目更新或删除时,您也不必担心文件系统的清理问题。当然,这也取决于您期望的缩略图数量以及它们的大小。我认为不是太大,因为它们是缩略图。