Опитвам се да разработя приложение, базирано на HTML5 Canvas. Приложението е основно приложение за визуализация на финансови данни, което работи изцяло на HTML5 Canvas, т.е. всеки бутон, обработка на събития, графики, всичко се прави в HTML5 Canvas.
Досега използвах две библиотеки за управление на огромната кодова база:
- jCotton за рисуване и предаване на събития, трябваше да модифицираме и добавим обширни други функционалности към jCotton и той работи много добре за нас
- RequireJS за модулиране, което също работи добре
Въпреки това, тъй като бяхме във фаза на прототип, не инвестирахме в подходяща MVC рамка, така че разделянето на проблемите, т.е. моделите на данни, ексклузивните изгледи, не бяха правилно поддържани, тъй като тогава беше проект за доказване на концепцията, но сега аз Мисля да преработя кода и да използвам тежка MVC рамка, за да организирам по-добре кодовата си база.
Ето проблемът, пред който съм изправен, наистина съм объркан каква рамка да избера. Има Backbone, EmberJS, SpineJS и т.н. Всички те изглеждат много добри. Но не мога да взема оптимално решение за нито един от тях. Не съм JS експерт, кодирах JS само от 1 година, така че това е още една причина, поради която имам тези трудности.
Много от тези рамки изглежда поставят голям акцент върху манипулирането на DOM, което е ненужно за моя проект, имаме наша персонализирана структура от данни, за да представяме сцените в Canvas. JS клиентът използва персонализиран xml за комуникация и предаване на данни с сървъра в задния край. От известно време копая Backbone. Рутерът не би ми бил от полза, тъй като приложението работи вътре в Canvas. Събитийният модел обаче изглежда доста привлекателен.
Чудя се дали някой от вас се е сблъсквал с подобни ситуации и какво е направил за това. Трябва ли да избера Backbone, EmberJS и т.н. или трябва да е по-добре да проектирам своя собствена минималистична MVC рамка. Кой да избера, ако ми предложите да използвам MV* рамка на трета страна? Както казах, разрових Backbone, за да видя дали отговаря на нуждите ми, бих искал да знам повече за други рамки в тази конкретна ниша.