Это хороший подход для создания библиотеки изображений в .NET? - PullRequest
0 голосов
/ 27 марта 2012

Мне дали проект, который включает в себя создание библиотеки фотографий для внутренней сети нашей компании, и я не уверен, как лучше всего подойти к этому.Я бы очень хотел услышать ваше мнение о том, как я должен решить это.Я также заранее прошу прощения, если мой вопрос не подходит для этих досок, поскольку я понимаю, что он может быть субъективным, но я не знаю, где еще его поставить?

ПРОБЛЕМА:

Для начала, мы будем искать в регионе несколько сотен тысяч изображений различных размеров, и это должно быть сетевое решение.Я также буду разрабатывать в .Net / MS Sql Server. В идеале Я бы хотел включить это в Umbraco CMS, так как большинство наших администраторов знакомы с этим интерфейсом.Данные не обязательно должны храниться в CMS - они просто должны быть доступны для редактирования и позволять пользователям добавлять / удалять элементы внутри них.

Моя самая большая проблема здесь - это производительность.Мы не хотим, чтобы пользователи ждали минут результатов.В идеале мы хотим, чтобы они вернулись в считанные секунды.

В основном я хочу подражать чему-то вроде alamy / istockphoto.Я хочу, чтобы с каждым изображением были связаны название, номер задания, название проекта, категория, теги и т. Д. С миниатюрой, а затем, конечно, ссылка на необработанное, полное изображение.

Просто для пояснения некоторых из этих изображенийочень большие (1 ГБ + TIFF).У нас также уже есть все файлы на отдельном файловом сервере.Роль этой библиотеки фотографий должна заключаться в том, чтобы просто сопоставлять записи в базе данных с физическими файлами, а не изменять структуру существующей файловой системы или что-либо подобное.

МОЕ ПРЕДЛАГАЕМОЕ РЕШЕНИЕ:

Я думаю, что первой задачей должно быть создание базы данных, в которой будут храниться все свойства по умолчанию, такие как идентификатор, номер задания, псевдоним, путь к файлу изображения и т. Д. Затем я создам отдельные теги /таблицы категорий с отношением «многие ко многим».

После создания таблиц я напишу несколько пользовательских элементов управления для CMS, которые позволяют администратору входить в систему и добавлять / редактировать / удалять записи избазы данных.

Затем я думаю о реализации Lucene.net для поиска по моим записям.Судя по тому, что я могу извлечь, это хороший API для получения быстрых результатов.

Это достойное решение?Я никогда не имел дело со многими проектами такого масштаба, поэтому я немного запутался в своих возможностях.Если бы кто-то мог просто направить меня в правильном направлении, я был бы очень благодарен.Я также хотел бы сохранить решение как можно более простым.

Большое спасибо!

1 Ответ

1 голос
/ 27 марта 2012

Я бы сказал, что вы на правильных линиях.

  • Не поддавайтесь искушению попытаться сохранить изображения в БД. Разрешить файловому серверу обрабатывать физические файлы.
  • Создайте несколько небольших изображений JPG / PNG для изображений. Таким образом, при запросах и поиске не будет замедления. Я бы выбрал два варианта - один для показа в результатах поиска и один более качественный для детализации.
  • Подумайте, как вы собираетесь предоставлять пользователям изображения в Гб.
  • Попробуйте добавить метаданные к самим изображениям. Таким образом, данные с фактическими изображениями тоже.
  • Я не могу комментировать Lucene .Net, поскольку я не использовал его, но я бы сказал, что сервер SQL должен быть более чем способен выполнять поиск и обработку данных изображения с использованием собственного Полнотекстового поиска функциональность. Я, конечно, начну с этого и посмотрю, как у тебя дела.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...