Организация проекта Flex для использования в команде - PullRequest
2 голосов
/ 03 февраля 2011

Я новичок в Flex / Actionscript / FlashBuilder и не совсем понимаю все концепции организации. Проект нашей команды в основном основан на ASP.NET, поэтому он не имеет большого количества кода на Flex. На самом деле не было необходимости в организации / повторном использовании общих библиотек. Я добавляю довольно большой компонент с большим количеством файлов, и я хотел бы начать организовывать его для будущих разработчиков.

На мой взгляд, .NET имеет:

  • Файл решения: указывает на группу файлов проекта.
  • Файл проекта: содержит фактический код и зависимости.
  • Пространство имен: упорядочивает код в иерархическом порядке.

В Flex я хочу иерархию, похожую на этот пример:

  • Автосалон
    • Бизнес-уровень
      • Клиент
      • Сотрудник
    • UI Компоненты
      • Реклама
      • Метка окна
      • Car
    • Инфраструктура
      • Расчет заработной платы
      • База данных
    • Проекты SWF
      • InventoryViewer
      • CarFeatureViewer

В .NET у меня мог быть файл проекта InventoryViewer и файл решения, который открывал файл проекта InventoryViewer вместе с файлом проекта Infrastructure.Database, от которого он зависит. В качестве альтернативы, у меня мог бы быть файл решения, который бы просто указывал на InventoryViewer, если бы я не хотел работать и над проектом базы данных, но зависимость все еще существует. Как это переводится на организацию кода Flex? Мне трудно понять разницу между пакетами, проектами и простой иерархией папок. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Если вы хотите отразить представление стиля решений VisualStudio, лучший способ сделать это - создать несколько проектов в «решение» рабочее пространство .

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

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

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

Относительно различий между пакетами, проектами и иерархией простых папок:

  • Проект: папка с метаданными Eclipse (хранится в папке, а также в папке родительского рабочего пространства), которая представляет проектпроекты могут иметь несколько целей сборки, но только одна создается одновременно с использованием стандартных кнопок Выполнить или Отладка , чтобы создать несколько целей в одном проекте, необходимо использовать Ant или какой-либо другой инструмент сборки.

  • Пакеты: более тесно связаны с тем, что .net называет пространствами имен, однако Flex имеет свои собственные концепции пространств имен, в основном относящиеся к XML /MXML, но это довольно большая тема, поэтому я буду избегать этого.Пакеты должны относиться к папкам, в которых они хранятся, например,

.

package com.example.view {
    class SomeViewClass extends SomeFlexComponent {
    // .... etc
    }
}

Этот класс будет храниться в src/com/example/view/SomeViewClass.as - в отличие от имен классов / пакетов C # /и папки должны совпадать, иначе компилятор выдаст ошибку.

Я уверен, что не все здесь освещено, поэтому дайте мне знать, если вам нужны дополнительные разъяснения по любому изэто.

1 голос
/ 05 февраля 2011

Если вы посещаете некоторые сайты фреймворков и просматриваете примеры, вы можете увидеть, как они структурируют свои приложения. Вот исходный вид программы, найденной на сайте Flex Framework компании Mate. Вы можете скачать исходный код и открыть его в FlashBuilder, чтобы лучше почувствовать себя.

http://mate.asfusion.com/assets/content/examples/intranet/srcview/

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

Автосалон
* Инвентарь
- мнения (взгляды, относящиеся к инвентарю)
--компоненты (компоненты, относящиеся к инвентарю) --events
--presenters
--services

Преимущество этого заключается в том, что он обеспечивает модульность, поэтому вам не нужно загружать все приложение сразу.

...