Настольные приложения: архитектурные платформы?

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

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

22
задан ThinkingStiff 22 July 2012 в 18:57
поделиться

12 ответов

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

проекты C# С открытым исходным кодом, которые имеют чрезвычайно высокое качество кода для приобретения знаний из.

Люди дали некоторые довольно хорошие предложения там:

Платформы
8
ответ дан Community 29 November 2019 в 04:57
поделиться

Проверьте Cabana IdeaBlade для DotNet C #. http://www.ideablade.com/CAB.html

Образец приложения Cabana

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

Простой подход к составному блоку приложений пользовательского интерфейса из паттернов Microsoft & amp; Группа практики. Сопровождаемый, повторно используемый код через композицию пользовательского интерфейса. Отделение модели (бизнес-логика и доступ к данным) от представления. Шаблон Модель-Вид-Презентатор. Настройка производительности. И больше.

0
ответ дан AlejandroR 29 November 2019 в 04:57
поделиться

Конкретно к организованной платформе представления функций ui мы использовали infonode прикрепляющиеся окна , это - платформа работы с окнами с помощью затмения как появление (перетащите представления куда угодно, закройте их, расстыкуйте их и т.д., со сменными окнами, конечно). существует gpl версия для продуктов с открытым исходным кодом, хотя afaik лицензия разработчика не является настолько дорогим (299$ каждый).

0
ответ дан Daniel Hiller 29 November 2019 в 04:57
поделиться

Мы разрабатываем в технологиях.NET здесь.

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

Умная Клиентская Фабрика (упомянутый Panos) может также быть полезна для Вас, хотя это не платформа, но больше библиотеки решений для лучшей практики типичных проблем.

0
ответ дан Odd 29 November 2019 в 04:57
поделиться

Я просто нашел Руководство Составного приложения WPF и Silverlight, который выглядит очень интересным. Это было опубликовано в феврале 2009.

1
ответ дан Christophe Herreman 29 November 2019 в 04:57
поделиться

Я рекомендовал бы платформу.NET CSLA Рокфордским Lhotka: http://www.lhotka.net/cslanet/Default.aspx

, Это прибывает, будет полный исходный код, а также демонстрационные клиентские приложения, созданные в ASP.NET, WinForms и WPF.

1
ответ дан Vassili Altynikov 29 November 2019 в 04:57
поделиться

На стороне Java существует несколько проектов, нацеленных на Платформы Толстого клиента (RCP является новым модным словечком для 'настольных' приложений):

  • RCP Eclipse (если Вы в порядке с помощью SWT вместо Swing)
  • RCP Spring (который находится в процессе того, чтобы быть перестроенным в Рабочий стол Spring)
  • NetBeans RCP (который я особенно не впечатлен, но это получает некоторую тягу)
  • (среда разработки приложения) JSR 296 - мне на самом деле действительно нравится этот

Google любое вышеупомянутое, и Вы получите тонны информации

3
ответ дан Kevin Day 29 November 2019 в 04:57
поделиться

В Java, Явных Объектах - http://nakedobjects.org/home/index.shtml

JMatter - реализация явных объектов - http://jmatter.org/ . довольно хороший.

они оба - открытый исходный код.

3
ответ дан anjanb 29 November 2019 в 04:57
поделиться

Проверьте Microsoft Умная Фабрика клиентского программного обеспечения . Это содержит примеры кода и документацию.

Обзор

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

фабрика программного обеспечения содержит набор допускающих повторное использование компонентов и библиотек, шаблоны решений Visual Studio 2008 года, мастера и расширения, темы с практическими рекомендациями, автоматизировали тесты, обширную документацию архитектуры, шаблоны и ссылочную реализацию. Фабрика программного обеспечения использует Windows Forms, Windows Presentation Foundation, Windows Communication Foundation и Библиотеку Предприятия 3,1 †“выпуск мая 2007. С этим выпуском Составной объект Блок приложений UI включен в фабрику программного обеспечения.

6
ответ дан Panos 29 November 2019 в 04:57
поделиться

Существует новое .NET архитектурный пакет руководства от шаблонов Microsoft & методы для WPF, который является кодом под названием "Призма" - это - в основном Составной объект "следующего поколения" Блок приложений UI (без SCSF, оснащающего). Это использует Внедрение зависимости, Составной шаблон повсюду, и т.д.

существует довольно хорошее экранная демонстрация DNRTV, демонстрирующая его.

7
ответ дан Guy Starbuck 29 November 2019 в 04:57
поделиться

В легкой категории приложений JSR 296 для Java (чтобы быть в будущем Java 7 возможно) является платформой, обрабатывающей основы как управление ресурсами и действия. Много ссылок здесь:

Увеличение масштаба немного, Вы могли посмотреть на различные платформы RCP как:

ОБНОВЛЕНИЕ: Это было упомянуто (Mark Reinhold в Devoxx '08), что JSR 296 будет включен в Java 7.

Дальнейшее обновление: JSR 296 мертв. JavaFX является текущим направлением для клиентского Java.

7
ответ дан Alex Miller 29 November 2019 в 04:57
поделиться

Можно использовать некоторые из тех же подходов в клиентской разработке, которую Вы используете в веб-разработке, такой как Образцовый Предъявитель Представления. Система. Windows. Пространство имен форм имеет все, что необходимо создать клиентское приложение в C# с остальной частью Платформы.NET, доступной для предоставления услуг, в которых Вы нуждаетесь (такие как IO и дистанционная работа).

До исходного кода для надежных архитектур в настольных приложениях, посмотрите на код для Paint.NET и SharpDevelop. У обоих есть совсем другие подходы, которые будут интересны Вам.

Извините за наклон.NET этого ответа. Это - то, что я знаю лучше всего.:)

1
ответ дан Robert S. 29 November 2019 в 04:57
поделиться