Настольные приложения: архитектурные рамки?
Мне интересно, существуют ли какие-либо архитектурные рамки для создания настольных или автономных приложений, например, в Java или С#. Похоже, что для веб-приложений их много, но я не могу найти много хороших ресурсов в инфраструктурах или лучших архитектурных решениях для разработки настольных систем.
В идеале я хотел бы знать, есть ли какой-либо исходный код для настольных приложений, которые считаются имеющими хорошую архитектуру или построены с определенной структурой.
Ответы
Ответ 1
Не имея прямого отношения к настольным приложениям, если вы ищете достойный исходный код для хорошо написанных проектов, я задал аналогичный вопрос:
Проекты с открытым кодом С#, которые имеют чрезвычайно высокое качество кода для изучения.
Люди дали несколько хороших предложений:
Ответ 2
Там есть новый .NET архитектурный пакет рекомендаций от шаблонов и практик Microsoft для WPF, который называется кодом Prism - это в основном блок "Composite UI Application" следующего поколения (без инструмента SCSF). Он использует инъекцию зависимостей, композитный шаблон и т.д.
Существует довольно хороший DNRTV screencast, демонстрирующий его.
Ответ 3
В категории легкого приложения JSR 296 для Java (возможно, в будущем Java 7, возможно) представляет собой платформу, обрабатывающую основы, такие как управление ресурсами и действия. Здесь много ссылок:
Масштабирование немного, вы можете посмотреть на различные рамки RCP, например:
ОБНОВЛЕНИЕ: было упомянуто (Марк Марк Рейнхольд в Devoxx '08), что JSR 296 будет включен в Java 7.
Дальнейшее обновление: JSR 296 мертв. JavaFX - это текущее направление для клиентской Java.
Ответ 4
Проверьте Microsoft Программное обеспечение Smart Client Factory. Он содержит образцы кода и документацию.
Обзор
Это программное обеспечение factory обеспечивает проверенные решения общих проблем при построении и интеллектуальных клиентских приложений. Помогает архитекторов и разработчиков модульные системы, которые можно развернутых независимыми командами. Приложения, созданные с помощью программного обеспечения factory использовать проверенные методы для операций, таких как централизованные исключение.
Программное обеспечение factory содержит сбор повторно используемых компонентов и библиотеки, решение Visual Studio 2008 шаблоны, мастера и расширения, Практические темы, автоматизированные тесты, обширная документация по архитектуре, шаблонов и ссылки реализация. Программное обеспечение factoryиспользует Windows Forms, Windows Презентационный фонд, Windows Коммуникационный фонд и Корпоративная библиотека 3.1 - май 2007 г. выпуск. С этим выпуском Компонентный блок пользовательского интерфейса включен в программное обеспечение factory.
Ответ 5
В Java, Голые объекты - http://nakedobjects.org/home/index.shtml
JMatter - реализация голых объектов - http://jmatter.org/. довольно хорошо.
оба из них с открытым исходным кодом.
Ответ 6
На стороне Java существует несколько проектов, нацеленных на Rich Client Platforms (RCP - новое модное слово для приложений для настольных компьютеров):
- Eclipse RCP (если вы используете SWT
вместо Swing).
- Spring RCP (который
находится в процессе
переработан в рабочий стол Spring)
- NetBeans RCP (который я не особенно впечатлен, но что получает некоторую тягу)
- JSR 296 (Application Framework) - я действительно действительно нравится этот
Google любой из вышеперечисленных, и вы получите тонны информации.
Ответ 7
Вы можете использовать некоторые из тех же подходов в разработке клиентов, которые вы используете в веб-разработке, например Model View Presenter. В пространстве имен System.Windows.Forms есть все, что вам нужно для создания клиентского приложения на С#, а остальная часть платформы .NET Framework доступна для предоставления необходимых вам услуг (например, ввода-вывода и удаленного доступа).
Что касается исходного кода для твердых архитектур в настольных приложениях, посмотрите код Paint.NET и SharpDevelop. Оба имеют очень разные подходы, которые будут вам интересны.
Извините за уклон .NET этого ответа. Это то, что я знаю лучше всего.:)
Ответ 8
Я бы рекомендовал CSLA.NET framework Rockford Lhotka: http://www.lhotka.net/cslanet/Default.aspx
Он поставляется с полным исходным кодом, а также с примерами клиентских приложений, созданных в ASP.NET, WinForms и WPF.
Ответ 9
Я только что нашел Руководство по композитным приложениям для WPF и Silverlight, которое выглядит очень интересно. Он был опубликован в феврале 2009 года.
Ответ 10
Мы разрабатываем технологии .NET здесь.
Наши друзья, работающие над клиентскими приложениями, разрабатывают свое программное обеспечение для шаблона проектирования Model View Presenter, который часто ассоциируется с веб-разработкой. Для них они находят, что это работает очень хорошо, я считаю, что стоит проверить.
Смарт-клиент Factory (упомянутый Panos) также может быть вам полезен, хотя он не является основой, а скорее представляет собой библиотеку лучших практических решений общих проблем.
Ответ 11
В частности, для организованной структуры представления функций ui мы использовали инфодонные стыковочные окна, что каркас окон с использованием затмения, подобного внешнему виду (drag взгляды в любом месте, закройте их, отстыкуйте их и т.д., скины, конечно). есть версия gpl для продуктов с открытым исходным кодом, хотя афайк лицензии разработчика не так дорог (по 299 долларов США).
Ответ 12
Проверьте IdeaBlade Cabana для DotNet С#.
http://www.ideablade.com/CAB.html
Пример приложения Cabana
Приложение Cabana - это простое приложение для клиентских приложений, обладающее четким, многофункциональным пользовательским интерфейсом, которое легко развертывается и работает через Интернет. Кабана демонстрирует:
Простой подход к составному блоку приложений пользовательского интерфейса из группы шаблонов и практик Microsoft.
Поддерживаемый, многоразовый код через композицию пользовательского интерфейса.
Разделение модели (бизнес-логика и доступ к данным) из презентации.
Модель-View-Presenter.
Настройка производительности.
И более.
Ответ 13
Недавно я опубликовал DesktopBootstrap. Это моя попытка отделить многие из общих элементов создания настольных приложений среднего и крупного масштаба.
Вы можете найти здесь.