SlideShare ist ein Scribd-Unternehmen logo
1 von 21
   Каждый раз приходится заново решать одни и те же задачи?

   "Копипастите" из проекта в проект?

   Приходится повсюду использовать наборы узкоспециализированных библиотек?

    (из разряда log4net, unity, nunits, ...)

   Даже небольшие фантазии заказчика отражается головной болью и большими

    изменениями?

   Изменения в одном месте влекут за собой проблемы в других местах проекта?

   Мечтаете об архитектурных решениях?
Хватит это терпеть!
Решение:



           Genome
  – программная компонентная платформа
   программная платформа широкого назначения
   интегрируется во все слои приложения
   разработан на .NET 4 (Client profile)
       портирован под Silverlight 4
   проект стартовал осенью 2008г
   распространяется по лицензии LGPL:
       с открытым исходным кодом
       бесплатный
       можно использовать для разработки коммерческого ПО
   принцип компонентной системы
       каждая подсистема обособлена
       зависимость подсистем организована в древовидном порядке, корнем этого дерева
        является Ядро
   Внедрение зависимостей
       Регистрация в реестре объектов
      Извлечение объектов по идентификатору, типу или интерфейсу
   Каталогизация объектов
       Размещение объектов в реестре в отдельных категориях
     Извлечение коллекции объектов по идентификатору категории или типу объектов
   Идентификация и обобщение реализаций
       Выделение типов реализаций и объектов реализаций.
     Идентификация объекта реализации путём реализации специального интерфейса
      или подключения композитной части
   Композиция объектов
       Принцип композитного(составного) объекта.
      Представление композитного объекта в коде как единой сущности
   Возможность декларативного способа предоставления механизмов
   Абстракция графического пользовательского интерфейса
   Широкие возможности использования паттерна ‘Команда’
   Гибкая система конфигурирования
       Обработчики конфигурационных данных.
     Поддержка многофайловых конфигурационных файлов.
   Журналирование
       Поддержка различных целевых адресатов (файл, консоль, Trace - ‘из коробки’)
      Поддержка различных форматов лог-файлов (текстовый, бинарный - ‘из коробки’)
   Расширяемость
      Возможность расширения практически любой подсистемы и механизма платформы.
   Средства тестирования
       Объекты: Заглушки, Моки, Шпионы
      Инфраструктура тестирования нацелена на подход AAA (Arrange Act Assert)
   Набор вспомогательных утилит
       Утилита для чтения логов
       Утилита для unit-тестирования
   Классы «на каждый день»
     Разнородный набор полезных классов
     Расширения платформы для объектов



   Интерфейсы платформы
     Основополагающие общие интерфейсы платформы
       (Например: поставщики объектов, фабрики и т.д.)
     Некоторые реализации этих интерфейсов



   Внутренние классы платформы
     Закрытые классы, инкапсулирующие внутренние основополагающие механизмы
       платформы
Ядро wiki
Ядро– базовая часть
платформы, выполняет и контролирует
основополагающие платформенные
процессы приложения. Ядро содержит
набор внутренних механизмов, а так же
компоненты сквозного
функционала, которые используются во
всех слоях приложения.
Реестр wiki

   Каталогизация объектов (объединение
    в категориях)

   Внедрение зависимостей
    (возможность извлекать
    зарегистрированные объекты по
    идентификационным данным)
Фабрика ядра wiki

   Создание объектов

   Возможность определять
    инициализирующие действия над
    всеми объектами конкретного класса
    или при создании конкретного объекта

   Гибрид внедрения зависимости и
    абстрактной фабрики


   Конвейерный принцип создания и
    подготовки объекта
Система логирования wiki

   Ведение логов

   Перенаправление и
    распределение лог-сообщений
Мета система wiki

Мета система предназначена для
поддержки декларативного способа
использования различных механизмов.
Основной идеей этой системы является
использование атрибутов в качестве
инициаторов служебных
процессов, связанных с помеченными
типами или членом типа.
Система композиции wiki


Система композиции позволяет создавать
композитные объекты и работать с ними.
Композитные объекты представляют
собой составной объект, части которого
равнозначны и объединены центральным
объектом-композитором.

Система композиции позволяет
конструировать такие объекты и работать с
ними как с единым объектом.
Система команд wiki

Набор средств, связанных с
реализацией и использованием
паттерна «Команда» Команда
инкапсулирует выполнение конкретной
логики. Позволяет таким образом
абстрагироваться от конкретных
реализаций.
Система конфигурации wiki

Предназначена для настройки
приложения после его запуска в
соответствии с файлом конфигурации.
Конфигурационные данные могут
находиться как в недрах app.config, так и в
отдельном файле.
Система ГИП wiki

Предоставляет механизмы для
графического представления данных и
ведения диалогов с пользователем.
Система скрывает реализацию
используемой графической системы от
клиентского кода. Представление
информации организуется с помощью
паттерна проектирования MVVM.
Система реализаций wiki

Совокупность механизмов обобщения и
идентификации реализаций. Суть системы
заключается в выделении общих
признаков объектов реализаций в объект-
тип. Этот объект-тип так же является
фабрикой объектов реализации.
   Типы приложений:
     Десктоп приложения
     Веб-приложения
     Win службы
     Каркасы приложений
     Специализированные платформы
   Слои приложения:
     Графическоий пользовательский интерфейс
     Бизнес-логика
     Сквозной функционал
   Окружение
     Основная версия
       ▪ ОС: Windows подробнее
       ▪ .NET Framework 4(Client profile) и более
     Silverlight-версия
       ▪ Silverlight 4 и более подробнее
       ▪ ОС: Windows, Macintosh (Intel-based)
   E-Mail: genome.sdk.net@gmail.com
   Сайт: http://genome-sdk.net
   Wiki: http://kenai.com/projects/genome-sdk/pages/Home_ru
   Баг трэккер: http://kenai.com/projects/genome-sdk/pages/Home_ru
   Блог: http://genome-sdk.blogspot.com/
   Форум: http://kenai.com/projects/genome-sdk/forums
   Исходники: http://kenai.com/projects/genome-sdk/sources
   Бинарники: http://kenai.com/projects/genome-sdk/downloads
   Лента новостей (twitter): http://twitter.com/#!/Genome_sdk

Weitere ähnliche Inhalte

Ähnlich wie Genome

10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoftKewpaN
 
Инсталляторы
ИнсталляторыИнсталляторы
Инсталляторыaepetelin
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3rit2011
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1guestcaef82
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложенийKewpaN
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).DressTester
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
Интеграция мобильных приложений с Window azure
Интеграция мобильных приложений с Window azureИнтеграция мобильных приложений с Window azure
Интеграция мобильных приложений с Window azureИлья Родин
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаSQALab
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологийОтшельник
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 

Ähnlich wie Genome (20)

10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
 
Инсталляторы
ИнсталляторыИнсталляторы
Инсталляторы
 
документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3документирование долгоживущих веб проектов. г. белогорцев. зал 3
документирование долгоживущих веб проектов. г. белогорцев. зал 3
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
Интеграция мобильных приложений с Window azure
Интеграция мобильных приложений с Window azureИнтеграция мобильных приложений с Window azure
Интеграция мобильных приложений с Window azure
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проекта
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 

Genome

  • 1.
  • 2. Каждый раз приходится заново решать одни и те же задачи?  "Копипастите" из проекта в проект?  Приходится повсюду использовать наборы узкоспециализированных библиотек? (из разряда log4net, unity, nunits, ...)  Даже небольшие фантазии заказчика отражается головной болью и большими изменениями?  Изменения в одном месте влекут за собой проблемы в других местах проекта?  Мечтаете об архитектурных решениях?
  • 4. Решение: Genome – программная компонентная платформа
  • 5. программная платформа широкого назначения  интегрируется во все слои приложения  разработан на .NET 4 (Client profile)  портирован под Silverlight 4  проект стартовал осенью 2008г  распространяется по лицензии LGPL:  с открытым исходным кодом  бесплатный  можно использовать для разработки коммерческого ПО  принцип компонентной системы  каждая подсистема обособлена  зависимость подсистем организована в древовидном порядке, корнем этого дерева является Ядро
  • 6. Внедрение зависимостей  Регистрация в реестре объектов  Извлечение объектов по идентификатору, типу или интерфейсу  Каталогизация объектов  Размещение объектов в реестре в отдельных категориях  Извлечение коллекции объектов по идентификатору категории или типу объектов  Идентификация и обобщение реализаций  Выделение типов реализаций и объектов реализаций.  Идентификация объекта реализации путём реализации специального интерфейса или подключения композитной части  Композиция объектов  Принцип композитного(составного) объекта.  Представление композитного объекта в коде как единой сущности  Возможность декларативного способа предоставления механизмов  Абстракция графического пользовательского интерфейса
  • 7. Широкие возможности использования паттерна ‘Команда’  Гибкая система конфигурирования  Обработчики конфигурационных данных.  Поддержка многофайловых конфигурационных файлов.  Журналирование  Поддержка различных целевых адресатов (файл, консоль, Trace - ‘из коробки’)  Поддержка различных форматов лог-файлов (текстовый, бинарный - ‘из коробки’)  Расширяемость  Возможность расширения практически любой подсистемы и механизма платформы.  Средства тестирования  Объекты: Заглушки, Моки, Шпионы  Инфраструктура тестирования нацелена на подход AAA (Arrange Act Assert)  Набор вспомогательных утилит  Утилита для чтения логов  Утилита для unit-тестирования
  • 8.
  • 9. Классы «на каждый день»  Разнородный набор полезных классов  Расширения платформы для объектов  Интерфейсы платформы  Основополагающие общие интерфейсы платформы (Например: поставщики объектов, фабрики и т.д.)  Некоторые реализации этих интерфейсов  Внутренние классы платформы  Закрытые классы, инкапсулирующие внутренние основополагающие механизмы платформы
  • 10. Ядро wiki Ядро– базовая часть платформы, выполняет и контролирует основополагающие платформенные процессы приложения. Ядро содержит набор внутренних механизмов, а так же компоненты сквозного функционала, которые используются во всех слоях приложения.
  • 11. Реестр wiki  Каталогизация объектов (объединение в категориях)  Внедрение зависимостей (возможность извлекать зарегистрированные объекты по идентификационным данным)
  • 12. Фабрика ядра wiki  Создание объектов  Возможность определять инициализирующие действия над всеми объектами конкретного класса или при создании конкретного объекта  Гибрид внедрения зависимости и абстрактной фабрики  Конвейерный принцип создания и подготовки объекта
  • 13. Система логирования wiki  Ведение логов  Перенаправление и распределение лог-сообщений
  • 14. Мета система wiki Мета система предназначена для поддержки декларативного способа использования различных механизмов. Основной идеей этой системы является использование атрибутов в качестве инициаторов служебных процессов, связанных с помеченными типами или членом типа.
  • 15. Система композиции wiki Система композиции позволяет создавать композитные объекты и работать с ними. Композитные объекты представляют собой составной объект, части которого равнозначны и объединены центральным объектом-композитором. Система композиции позволяет конструировать такие объекты и работать с ними как с единым объектом.
  • 16. Система команд wiki Набор средств, связанных с реализацией и использованием паттерна «Команда» Команда инкапсулирует выполнение конкретной логики. Позволяет таким образом абстрагироваться от конкретных реализаций.
  • 17. Система конфигурации wiki Предназначена для настройки приложения после его запуска в соответствии с файлом конфигурации. Конфигурационные данные могут находиться как в недрах app.config, так и в отдельном файле.
  • 18. Система ГИП wiki Предоставляет механизмы для графического представления данных и ведения диалогов с пользователем. Система скрывает реализацию используемой графической системы от клиентского кода. Представление информации организуется с помощью паттерна проектирования MVVM.
  • 19. Система реализаций wiki Совокупность механизмов обобщения и идентификации реализаций. Суть системы заключается в выделении общих признаков объектов реализаций в объект- тип. Этот объект-тип так же является фабрикой объектов реализации.
  • 20. Типы приложений:  Десктоп приложения  Веб-приложения  Win службы  Каркасы приложений  Специализированные платформы  Слои приложения:  Графическоий пользовательский интерфейс  Бизнес-логика  Сквозной функционал  Окружение  Основная версия ▪ ОС: Windows подробнее ▪ .NET Framework 4(Client profile) и более  Silverlight-версия ▪ Silverlight 4 и более подробнее ▪ ОС: Windows, Macintosh (Intel-based)
  • 21. E-Mail: genome.sdk.net@gmail.com  Сайт: http://genome-sdk.net  Wiki: http://kenai.com/projects/genome-sdk/pages/Home_ru  Баг трэккер: http://kenai.com/projects/genome-sdk/pages/Home_ru  Блог: http://genome-sdk.blogspot.com/  Форум: http://kenai.com/projects/genome-sdk/forums  Исходники: http://kenai.com/projects/genome-sdk/sources  Бинарники: http://kenai.com/projects/genome-sdk/downloads  Лента новостей (twitter): http://twitter.com/#!/Genome_sdk