Статьи

Тунисский национальный заказ фармацевтов на платформе NetBeans

Daoud AbdelMonem Faleh ( блог здесь ) — разработчик программного обеспечения из Туниса с 7-летним опытом работы в области информационных технологий. Его первое знакомство с технологиями Java и Java EE произошло на его первой работе в WebOne, где он занимал должность системного и сетевого администратора. Там он создавал, развертывал и управлял приложениями Java EE и с тех пор влюбился в эту технологию.

Дауд, вы недавно выпустили свое первое коммерческое приложение на платформе NetBeans. Пожалуйста, расскажите нам все об этом!

Мои первые знакомства с Java были исключительно на стороне сервера. Это первый раз, когда я получил контракт на настольное приложение. Приложение для местного Национального ордена фармацевтов, оно в основном управляет членскими организациями. Члены имеют доступ к документации, проданной организацией, которая также обрабатывается приложением.

Нажмите, чтобы увеличить изображение главного окна ниже:

Какие две или три вещи, которые вам больше всего нравятся в этом приложении?

  1. Это мое первое коммерческое настольное приложение. Это открыло для меня совершенно новый горизонт, с новыми возможностями для бизнеса.
  2. Приятный, отзывчивый и дружественный графический интерфейс, который мое приложение предлагает пользователю.
  3. Модульная инфраструктура платформы NetBeans, которая позволяет мне быть очень гибким в управлении пользовательскими запросами и ожиданиями.

Под этим приложением находится платформа NetBeans. Почему?

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

Далее, доступная документация и большое сообщество действительно помогают в снижении кривой обучения и решении технических проблем.

В-третьих, с помощью оконной системы NetBeans Platform я смог предложить концепцию «рабочей области», где пользователи могут управлять различными представлениями, которые они хотели бы видеть, наряду с их размещением (которое сохраняется при перезапуске). ), так что приложение адаптируется к предпочтениям пользователя … а не наоборот, как это обычно бывает.

Как вы узнали об этом? Когда? Почему вы начали использовать его?

Я долгое время был счастливым пользователем среды IDE NetBeans. В последнее время я широко использовал его для разработки и поддержки большого проекта Java EE, который я перенес из коммерческой IDE в NetBeans, предоставляя при этом услуги быстрого консультирования.

Летом прошлого года у меня была возможность провести тренинг по JSF / Richfaces с IDE NetBeans, и участники были очень довольны функциональностью, которую предлагает IDE NetBeans. Поэтому я искал способы дальнейшего расширения IDE и создания инструментов, которые мне могут понадобиться позже, так как я считаю, что хорошие инструменты разработчика являются ключом к производительности. Поэтому я попытался разработать некоторые подключаемые модули IDE NetBeans, работая над инструментами для инфраструктуры jMaki Ajax. Я закончил тем, что создал « создателя виджета jMaki », который в настоящее время прекращен из-за нехватки времени, но когда-нибудь я вернусь к нему!

Какие три вещи вы приобрели на платформе NetBeans?

  1. Исходя из серверного программирования Java EE, я привык к парадигме контейнера, которую платформа NetBeans предлагает для настольных приложений. Таким образом, я смог разделить свое приложение на отдельные модули с помощью платформы NetBeans, управляющей их жизненным циклом и взаимодействующей в соответствии с контрактами, выполняемыми платформой NetBeans.
  2. Кодирование интерфейсов — хорошая практика. С этой точки зрения. Модульность платформы NetBeans позволяет мне организовывать мой код в отдельные модули API (интерфейса) и модули реализации. Это позволило мне поиграть с реализациями и поменять их местами, не нарушая зависимые модули приложения.
  3. Платформа NetBeans — это все Swing, что я считаю большим преимуществом перед конкурирующим Eclipse RCP, особенно в отношении широкой доступности открытого компонента Swing, такого как SwingX, который я использую в графическом интерфейсе приложения.

Какие API вы использовали? Какие из них ваши любимые и почему?

Поиск в целом, а также центральный поиск, предоставленный участником NetBeans Dream Team Уэйдом Чендлером. Это работает как DI и коммуникационные слоты между различными слабосвязанными модулями.

Wizards API обеспечивает реализацию сценариев использования на основе мастера, таких как добавление пользовательской подписки или получение новой документации, которая оказалась предпочтительной функциональностью для конечных пользователей:

Я также использовал класс ModuleInstall для начальной загрузки встроенной базы данных Derby для работы в качестве поставщика постоянного хранилища:

public class Installer extends ModuleInstall {
...
static {
..
server = new NetworkServerControl(localhost, 1527);
..
}

@Override
public void restored() {
...
server.start(null);
...
}

@Override
public void close() {
...
server.shutdown();
...
}

Каталог хранилища задается пользователем с предоставленным расширением окна опций, сохраненным в хранилище NbPreferences:

NbPreferences.forModule(DataDirectoryOptionsPanelController.class).put("datadir",
dataDirTextField.getText());

Получено позже в модуле реализации Derby Connection Manager, который является модулем реализации для модуля API Connection Manager, со следующим:

NbPreferences.forModule(DataDirectoryOptionsPanelController.class).get("datadir",
"");

Эта прикладная архитектура в сочетании с доступом к JPA позволяет нам при необходимости заменить Derby, скажем, на MySQL.

Вот пример вывода приложения:

Что можно улучшить в платформе NetBeans?

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

У вас есть несколько советов и рекомендаций для начинающего, который начинает работу с платформой NetBeans?

Я настоятельно рекомендую то, что уже является мантрой с открытым исходным кодом: просто клонируйте исходные коды NetBeans, все, что вам нужно, уже есть. Вы можете найти похожие реализации для того, что вы пытаетесь сделать в одном из многочисленных модулей в источниках NetBeans. Повторно используйте эти биты. Они там для этой цели. Это просто красота с открытым исходным кодом! И не стесняйтесь вносить свой вклад в большую семью NetBeans. 🙂

Что-нибудь еще, что ты хочешь сказать?

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

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