2016-08-21 3 views
0

Использование .NET при использовании текстового текстового редактора и хранения информации мы хотели бы создать изображение предварительного просмотра созданного HTML-кода.Место выполнения для генерации уменьшенных изображений из HTML

До сих пор, как доказательство концепции, мы создали изображение из HTML и сохранили его, однако, что является лучшим местом для его выполнения (с учетом производительности).

  1. В бизнес-слой приложения

    • захватить HTML,
    • Создать изображение
    • сохранить изображение на файловом сервере
    • Отправить ссылку на миниатюру, наряду с остальные данные должны быть сохранены в базе данных.
  2. Создать CLR процедурный, который получает срабатывает на вставке в базу данных

    • Генерирование изображения с вставленной HTML
    • магазин изображение на файловом сервере
    • Обновление строки базы данных чтобы сохранить ссылку на новый миниатюру

ответ

0

Я не вижу здесь никакой пользы для этого в SQL Server через SQLCLR. Возможно, было бы полезно, если бы данные, поступающие в таблицу, поступали из разных внешних источников/приложений, которые не могли быть гарантированы при использовании подпрограммы генерации миниатюр. Но похоже, что данные поступают из одного источника, который вы контролируете. Таким образом, в этом случае, скорее всего, это будет вредно для производительности, чтобы сделать это в SQLCLR, а не обрабатывать его на уровне приложения (SQL Server является единственным источником для этой обработки, а серверы приложений можно масштабировать).

Кроме того, если вы можете использовать любую библиотеку, которая вам нравится в большинстве сред .NET (WebApp, Windows App, консольное приложение и т. Д.), Вы можете ограничить небольшую подмножество библиотек .NET Framework (Supported .NET Framework Libraries) среди других ограничений (CLR Integration Programming Model Restrictions и Host Protection Attributes and CLR Integration Programming). И это может получить очень сложно в зависимости от того, какие библиотеки используются для создания изображения: все, что требует пользовательский интерфейс для рисования, вероятно, не будет работать, поскольку пользовательский интерфейс недоступен в хосте CLR SQL Server.

Теперь может быть полезно хранить thumbnail image в SQL Server в столбце VARBINARY(MAX). Преимущество заключается в том, что эскиз будет скопирован вместе с данными, на которых он основан, и поэтому, если сервер сработает, вы вернете эскизы при восстановлении базы данных. Это также помогает гарантировать, что кто-то или какой-либо другой процесс не придет и не удалит один или несколько эскизов, что может произойти при хранении в файловой системе. И тогда вам также не нужно беспокоиться о очистке файловой системы, когда запись обновляется или удаляется. Конечно, это также зависит от того, сколько миниатюр вы ожидаете и насколько они будут большими. Я предполагаю, что они не слишком большие, как миниатюры.

Смежные вопросы