Настольные приложения:Архитектурные рамки?
-
02-07-2019 - |
Вопрос
Мне интересно, существуют ли какие-либо архитектурные фреймворки для создания настольных или автономных приложений, например, на Java или C #.Кажется, что для веб-приложений доступно множество таких ресурсов, но я не могу найти много хороших ресурсов по фреймворкам или архитектурным рекомендациям для разработки настольных компьютеров.
В идеале я хотел бы знать, доступен ли какой-либо исходный код настольных приложений, которые считались бы имеющими хорошую архитектуру или построенными с использованием определенного фреймворка.
Решение
Хотя это не имеет прямого отношения к настольным приложениям, если вы ищете достойный исходный код для хорошо написанных проектов, я задал аналогичный вопрос:
Люди дали там несколько довольно хороших предложений:
- Скотта Хансельмана Еженедельный Исходный код серия (обычно управляемая C #)
- Код, написанный Шаблоны и практики Microsoft Команда.
- Резкое развитие (написано на C #)
- Моно (большая часть фреймворка на C #)
- Paint.Net (написано на C #)
- NHibernate на (написано на C #)
- Проект Замка (написано на C #)
- xUnit ( единица измерения ) (написано на C #)
- Исходный код .Net Framework
Другие советы
В категории легких приложений JSR 296 для Java (возможно, появится в будущей Java 7) - это фреймворк, обрабатывающий такие основы, как управление ресурсами и действия.Здесь много ссылок:
Немного увеличив масштаб, вы могли бы взглянуть на различные фреймворки RCP, такие как:
- Затмение RCP: http://wiki.eclipse.org/index.php/Rich_Client_Platform
- Платформа NetBeans: http://www.netbeans.org/products/platform/
- Пружинный RCP: http://spring-rich-c.sourceforge.net/1.0.0/index.html
- Сравнительная статья: http://www.infoq.com/news/eclipse-rcp-netbeans-platform
Обновить:Было упомянуто (Марком Рейнхольдом на 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.Это моя попытка выделить многие общие элементы создания средне- и крупномасштабных настольных приложений.
Вы можете найти его здесь.