Приложение ColdFusion сегодня - Flex в следующем году. Соображения по максимизации повторного использования логического уровня в следующем году? - PullRequest
7 голосов
/ 04 февраля 2009

Я начал разработку приложения ColdFusion, которое полностью основано на веб-технологиях. Не так много форм использования Flash или AJAX.

Первая версия - строгое веб-приложение. Версия 2 будет интерфейсом Flex.

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

Что стоит задуматься / спроектировать / внедрить сейчас, что может значительно помочь в разработке приложения таким способом?

Ответы [ 3 ]

6 голосов
/ 04 февраля 2009

Я согласен с Кристианом, что лучшее, что вы можете сделать, это поместить все, что касается логики базы данных или любой другой логики для приложения в CFC, и, в частности, я бы предложил использовать веб-сервисы. Основная причина этого заключается в том, что это в конечном итоге позволит вам иметь свой код cf, который представляет собой всю сохранность и логику вашей базы данных на сервере, отличном от того, с которого вы обслуживаете приложения flex, и позволил бы повторное использование кода и для других приложений. , Приятно также то, что при написании ваших cfc в качестве веб-сервисов вы можете использовать их как веб-сервисы или непосредственно как компоненты в Flex, используя AMF (удаленный объект). Теперь, конечно, насколько эти преимущества действительно применимы к вам, зависит от вашей ситуации, но это хороший план для подражания.

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

Кроме того, может быть полезно отлавливать любые выданные ошибки и возвращать сообщения как результаты (с любыми результатами, как в структуре) из всех методов. У Flex неприятная привычка сообщать вам, что что-то пошло не так, но не передавать информацию об ошибках. Это поможет вам отлаживать и обрабатывать любые ошибки, которые выдают намного проще.

6 голосов
/ 04 февраля 2009

Одно большое предложение, в зависимости от того, откуда вы пришли (поскольку это довольно большой вопрос), состоит в том, чтобы максимально использовать компонент ColdFusion (CFC); Архитектура CFC превосходна, универсальна и мощна, она прекрасно интегрируется с Flex (и сделает это еще лучше в будущих версиях Flex и CF), поэтому, если вы сможете сконструировать уровень компонентов с учетом этого, вы рад, что ты сделал.

Прошло много времени с тех пор, как я написал код CF, но в последнем большом проекте, который я сделал с ним, я потратил много времени на разработку функционального уровня из CFC, который будет использоваться простым веб-приложением. как это звучит, как вы делаете, а потом, когда пришло время использовать Ajax UI для подраздела сайта (это мог быть Flex, но в моем случае это была реализация YUI ), Я создал фасадный слой публично представленных ХФУ, задача которого заключалась в том, чтобы обернуть и раскрыть специализированное подмножество функций, предоставляемых первым уровнем. Это позволило мне использовать и расширять существующий код таким способом, который уникален для сервисов, которым он был необходим, без необходимости непосредственного предоставления базовых (первого уровня) ХФУ.

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

3 голосов
/ 20 февраля 2009

Проверьте Презентация Мэтта Вудворда по теме, она очень информативна:

И несколько общих вещей, которые можно добавить к ответам, которые предоставили все остальные:

  • Инкапсулируйте ваше взаимодействие с данными в CFC (обычно в сервисах, которые делегируют шлюзы и DAO)
  • В большинстве случаев вам понадобится создать "bean" CFC для представления ваших бизнес-объектов (пользователей, виджетов и т. Д.), Которые будут перенесены в Flex как классы ActionScript. Вам нужно будет добавить к ним теги cfproperty, чтобы сделать их сериализуемыми для ActionScript (чувствительными к регистру и порядку!), Поэтому обратите внимание на это при создании, чтобы избежать необходимости иметь дело с ним позже, и использовать один из кода инструменты для создания, такие как Adobe CF Extensions для Eclipse или Illudium PU36 , чтобы сделать это для вас.
  • Создайте CFC для удаленного фасада (или набор CFC в зависимости от размера приложения), который делегирует методы вашим Сервисам - именно здесь вы устанавливаете доступ к своим методам как «удаленный» - как правило, единственное место, куда вы хотите сделайте это (будет казаться, что вы выполняете много делегирования, но окупается централизация всех ваших удаленных служб)
  • Когда вы разрабатываете с HTML, рассматривайте свои CFC удаленного фасада как свой API и делайте ваши представления HTML как можно более "тупыми". Подумайте об этом так: любая логика, которую вы пишете в своем представлении CF, должна быть воспроизведена в вашем представлении Flex. Если вы строите проект только с помощью удаленного API, у вас будет хорошее представление о том, как Flex будет взаимодействовать с приложением.
  • Проверьте ColdSpring , он предлагает множество замечательных функций для управления всеми объектами, которые вы собираетесь создать!

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

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