Подводные камни в использовании Silverlight для модуля веб-приложений типа электронных таблиц? - PullRequest
0 голосов
/ 08 января 2010

Этот вопрос содержит много справочной информации, чтобы убедиться, что вы полностью понимаете, почему мы рассматриваем эти технологии.

Вопрос в основном такой:

Для большого модуля типа электронных таблиц, который нам нужно разработать для нашего веб-модуля для нашего приложения, есть ли какие-либо подводные камни, о которых нам следует знать, если мы решим использовать Silverlight для него?

Проблемы, которые мы уже знаем, и не нуждающиеся в обсуждении / напоминаниях:

  • Нам известно о проблемах, связанных с использованием решения типа плагина, которое может быть или не быть установлено на компьютере пользователя (а в некоторых случаях, вероятно, не может быть установлено). Эти риски необходимо уменьшить, но мы знаем о них. Пожалуйста, не зацикливайтесь на этом.
  • Мы - компания .NET, поэтому, хотя ruby ​​on rails и множество других различных платформ и архитектур хороши для этого решения, они не входят в сферу действия решения. У нас уже есть много кода, написанного на .NET, которым мы должны воспользоваться, иначе проект никогда не будет завершен независимо от платформы.

Фон

У нас есть веб-модуль для нашего приложения с информацией о сотрудниках и некоторыми формами ввода. Наше настольное приложение для Windows - это, в основном, приложение типа руководителя отдела, для управления сотрудниками, но веб-модуль содержит в основном функции, ориентированные на сотрудников. Веб-модуль содержит в основном веб-страницы типа отчета для отображения информации из системы или форм ввода.

Модуль, который нам нужно добавить, - это скорее приложение для работы с большими таблицами. Вы меняете что-то в одном месте, а что-то меняется в другом месте, например, суммы, что включено / отключено и т. Д.

Мы знаем, что можем справиться со всем этим с помощью AJAX, но другая проблема здесь заключается в том, что приложение потенциально может загрузить много данных из базы данных, чтобы поместить данные перед пользователем, и с помощью решения AJAXy мы ' боюсь, что метод запроса / ответа здесь должен будет перезагружать довольно много информации по каждому запросу, даже чтобы отвечать на казалось бы простые вопросы.

Способ смягчения, который в основном заключается в загрузке информации в Session-объект или тому подобное, но это большая проблема, нет, поэтому мы бы предпочли этого не делать. Это многопользовательский модуль, и некоторые данные довольно статичны, но некоторые данные также должны время от времени обновляться, поэтому, если 10 пользователей загружают много данных в сеанс, это происходит быть довольно большим ударом памяти.

Мы будем использовать ASP.NET (MVC) для этого, если мы решим пойти по этому пути, то есть разработать модуль на чистом HTML и аналогичных технологиях.

Затем мы посмотрели на Silverlight и затем загрузили всю информацию в приложение Silverlight на клиенте. Оно будет содержать текущее состояние, и потребуется лишь прикоснуться к базе данных, чтобы обновить часть информации, иногда вместо этого, так как мы думаем, что модель запрос / ответ с ASP.NET (MVC) будет работать на каждом маленьком запрос.

Но, поскольку мы сделали только незначительные вещи с Silverlight, мы не настолько опытны с ним, и мы боимся, что некоторые предположения, которые мы могли бы сделать, заявленные или неосознанные, оказываются неверными или ошибочными, что приведет к сделать этот проект невозможным или очень сложным для управления в какой-то момент.

Например, просто для примера, есть ли предел тому, сколько памяти разрешено загружать приложению Silverlight (я знаю, если мне придется спросить, я, вероятно, не могу себе это позволить), например, если есть ограничение в 10 МБ, тогда об этом было бы неплохо узнать, прежде чем мы окажемся на полпути и начнем загружать действительно тяжелые данные.

Чтобы упростить приведение примеров, давайте просто предположим, что мы создаем электронную таблицу, в которой содержится так много данных, что для простого «изменил число здесь, что еще изменилось», слишком много данных из базы данных должно быть загруженным для правильной модели запроса / ответа, и если мы переместим все это в Silverlight, что сделает этот проект трудным или невозможным?

Знание о таких вещах, по крайней мере, даст нам возможность подумать, приемлема ли цена.

Короче, почему мы не должны использовать Silverlight для этого и вместо этого перейти на ASP.NET (MVC)?

И снова, «вместо этого используйте Ruby on Rails», здесь не совсем ответ. Варианты: ASP.NET (MVC), с которым у нас есть опыт, или Silverlight, с которым у нас нет, но мы можем получить.

Конечно, если Ruby на рельсах, учитывая, что нам пришлось бы начинать с нуля с точки зрения инфраструктуры, и нам нужно выучить новый язык программирования и структуру, а также загрузить и изучить новую среду IDE / инструмент, если это все равно позволило бы нам сократить время разработки вдвое, а затем, пожалуйста, предоставьте нам некоторую информацию о том, как это может работать, но я осмелюсь сказать, что в действительности этого не произойдет.

Ответы [ 2 ]

2 голосов
/ 14 января 2010

Вы должны знать, что Silverlight (версия 3.0) не поддерживает какую-либо печать, что для меня звучит как громогласная демонстрация (извините, я не удержался). Хорошей новостью является то, что в версии 4 была добавлена ​​полная поддержка печати, но она все еще находится в бета-версии. Слухи говорят, что должно быть до лета, если все будет работать по плану, поэтому, если это соответствует вашей дорожной карте, я бы использовал SL4 с самого начала.

В Silverlight нет ограничений памяти, но для механизма локального хранилища (IsolatedStorage) ограничение по умолчанию составляет 1 МБ. Но вы можете легко обойти это, запросив у пользователя разрешение на увеличение места на локальном хранилище при запуске приложения. Подробнее об этом здесь: Совет дня Silverlight №20 - Как увеличить квоту на изолированное хранилище.

(Edit) Помимо отсутствующей функциональности печати, которая будет исправлена ​​в SL4, я не вижу никаких проблем с вашим сценарием. Я бы с легкостью пошел по маршруту Silverlight на вашем месте, тем более что у вас уже есть обширные знания .NET / C #.

1 голос
/ 08 января 2010

Для богатого интерфейса, как вы описали, я бы определенно выбрал Silverlight или Flash, а не html / javascript / ajax.

Эти технологии обеспечивают намного лучшие и согласованные интерфейсы на разных платформах. Вы можете купить различные компоненты, чтобы ускорить процесс и поддерживать такие вещи, как копирование и вставка и кодирование более структурированным образом.

Другим элементом являются навыки, если у вас есть навыки для достижения этой цели в определенной технологии, тогда используйте это.

К ответу вы задаете вопрос как можно лучше; Вы не должны использовать Silverlight, если вы решили использовать вспышку.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...