Как написать модульное приложение JavaScript? - PullRequest
4 голосов
/ 31 августа 2011

Я планирую переписать существующее приложение Silverlight, используя HTML, JavaScript и CSS. Это будет многофункциональное интернет-приложение, подключающееся к серверу только для данных (веб-сервисы на основе JSON), поэтому не будет никакой инфраструктуры представления на стороне сервера, такой как JSP или ASP.NET. Приложение состоит из около 8 экранов, большинство из них в виде вкладок. Вопрос в том ...

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

Есть мысли о том, на какие рамки мне смотреть? У вас был хороший опыт их использования? Я начинаю смотреть на Backbone.js , JavaScriptMVC и SproutCore . Я что-то упустил, что стоит рассмотреть?

Заранее спасибо за ваше время.

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

Ответы [ 3 ]

3 голосов
/ 01 сентября 2011

У меня еще не было возможности попробовать SproutCore, но я слышу об этом много хорошего и хочу в какой-то момент разобраться.Я бы порекомендовал попробовать хотя бы Backbone и Sproutcore, чтобы увидеть, какой из этих двух вариантов лучше соответствует вашим потребностям и вашему стилю программирования.

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

Существует множество отличных обучающих программ и скринкастов для магистрали.Вот некоторые из них, которые, я надеюсь, должны дать вам некоторую необходимую вам информацию (включая мои собственные сообщения в блоге):

снова, не просто выберите один и никогда не оглядывайтесь назад.стоит потратить ваше время, чтобы хотя бы сделать несколько простых пробных приложений в магистрали и sproutcore, если не в дополнительных платформах.

надеюсь, это поможет.

2 голосов
/ 31 августа 2011

С Sproutcore вы можете создавать так называемые фреймворки, чтобы отделить ваше приложение. Каждый проект SC имеет каталог frameworks, вы просто добавляете каталог для своих пользовательских фреймворков и включаете их в свой файл сборки.

Для SC неплохая идея, по крайней мере, разделить ваш уровень Model на его собственную среду для слабой связи и тестирования (SC в значительной степени MVC). Возможно, имеет смысл разделить ваши экраны на их собственные структуры, в зависимости от того, насколько они сложны. Одним из преимуществ этого подхода является то, что при необходимости вы можете повторно использовать свои фреймворки в других проектах.

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

1 голос
/ 24 августа 2012

Вы пробовали фреймворк Relay?Вы пишете свои отдельные экраны как отдельные модули и используете систему событий реле, чтобы связать их вместе.

http://relay.github.com

...