2016-08-21 66 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中的縮略圖圖像。好處是縮略圖會隨着它所基於的數據一起備份,所以如果服務器崩潰,當您恢復數據庫時,您將收到縮略圖。它還有助於確保某個人或其他進程不會出現並刪除一個或多個縮略圖,這些縮略圖可能會在存儲在文件系統上時發生。然後,當條目更新或刪除時,您也不必擔心文件系統的清理問題。當然,這也取決於您期望的縮略圖數量以及它們的大小。我認爲不是太大,因爲它們是縮略圖。