Этот вопрос содержит много справочной информации, чтобы убедиться, что вы полностью понимаете, почему мы рассматриваем эти технологии.
Вопрос в основном такой:
Для большого модуля типа электронных таблиц, который нам нужно разработать для нашего веб-модуля для нашего приложения, есть ли какие-либо подводные камни, о которых нам следует знать, если мы решим использовать 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 / инструмент, если это все равно позволило бы нам сократить время разработки вдвое, а затем, пожалуйста, предоставьте нам некоторую информацию о том, как это может работать, но я осмелюсь сказать, что в действительности этого не произойдет.