Вопрос

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

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

Это было полезно?

Решение

Хотя это не имеет прямого отношения к настольным приложениям, если вы ищете достойный исходный код для хорошо написанных проектов, я задал аналогичный вопрос:

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

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

Другие советы

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

Немного увеличив масштаб, вы могли бы взглянуть на различные фреймворки RCP, такие как:

Обновить:Было упомянуто (Марком Рейнхольдом на Devoxx '08), что JSR 296 будет включен в Java 7.

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

Появился новый Пакет рекомендаций по архитектуре .NET от Microsoft patterns & practices для WPF с кодовым названием "Prism" -- по сути, это блок приложений с составным пользовательским интерфейсом "следующего поколения" (без инструментов SCSF).Он использует внедрение зависимостей, составной шаблон повсюду и т.д.

Есть довольно хороший DNRTV скринкаст с демонстрацией этого.

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

Обзор

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

Фабрика программного обеспечения содержит коллекцию повторно используемых компонентов и библиотеки, решение Visual Studio 2008 шаблоны, мастера и расширения, Разделы с практическими рекомендациями, автоматизированные тесты, обширную документацию по архитектуре, шаблоны и справочную информацию реализация.Фабрика программного обеспечения использует Windows Forms, Windows Основа для презентаций, Windows Communication Foundation и Корпоративная библиотека 3.1 – май 2007 освобождение.В этом выпуске Блок приложений Composite UI включен в состав software factory.

В Java Голые объекты -- http://nakedobjects.org/home/index.shtml

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

оба они имеют открытый исходный код.

На стороне Java есть несколько проектов, нацеленных на расширенные клиентские платформы (RCP - новое модное слово для "настольных" приложений).:

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

Погуглите что-нибудь из вышеперечисленного, и вы получите массу информации.

При разработке клиента вы можете использовать некоторые из тех же подходов, что и при веб-разработке, например Model View Presenter.Система.Windows.Пространство имен Forms содержит все необходимое для создания клиентского приложения на C #, а остальная часть .NET Framework доступна для предоставления необходимых вам сервисов (таких как ввод-вывод и удаленное взаимодействие).

Что касается исходного кода для solid-архитектур в настольных приложениях, посмотрите на код для Paint.NET и Резкое развитие.У обоих очень разные подходы, которые будут вам интересны.

Извините за .ЧИСТЫЙ уклон этого ответа.Это то, что я знаю лучше всего.:)

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

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

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

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

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

Smart Client Factory (упомянутый Panos) также может быть вам полезен, хотя это не фреймворк, а скорее библиотека наилучших практических решений распространенных проблем.

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

Проверьте Cabana от IdeaBlade на наличие DotNet C #.http://www.ideablade.com/CAB.html

Пример приложения Cabana

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

Простой подход к прикладному блоку Composite UI от Microsoft ’s Patterns & Practices Group.Поддерживаемый, повторно используемый код с помощью композиции пользовательского интерфейса.Отделение модели (бизнес-логики и доступа к данным) от презентации.Шаблон Модель-Представление-Презентатор.Настройка производительности.И даже больше.

Недавно я опубликовал DesktopBootstrap.Это моя попытка выделить многие общие элементы создания средне- и крупномасштабных настольных приложений.

Вы можете найти его здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top