У меня есть приложение, которое показывает экран миниатюр изображений, каждое изображение составляет около 80 КБ, и они хранятся в базе данных. Чтобы обеспечить разумное время отклика, приложение отображает изображение заполнителя при первом запуске, а затем загружает изображения с сервера. Я ожидаю показать около 40 изображений на экране одновременно, так что это мой размер пакета. Как лучше всего передать эти изображения клиенту? Я имею в виду два варианта.
Создайте службу данных ADO.NET, которая предоставляет клиенту таблицу базы данных изображений. Клиент может асинхронно запрашивать изображения, по одному, и отображать их, когда они возвращаются с сервера. Я реализовал это решение, и оно, кажется, работает хорошо; скорость не велика, и я чувствую, что могу лучше использовать канал Http, запрашивая, возможно, 3 изображения одновременно.
Создайте HttpModule на сервере, который ищет запросы, похожие на /Images/1.jpg, а затем читает базу данных и возвращает запрошенные данные. На стороне клиента у меня может быть много объектов Image, источник которых указывает на виртуальные URL-адреса на сервере. Моя теория состоит в том, что, просто предоставив Silverlight много URL-адресов для обработки, вы сможете передавать изображения более эффективно, чем мой код в варианте 1.
Будет ли какой-либо из этих методов более эффективным или есть другой метод для достижения этой цели? Спасибо!