Опубликована: 04.10.2012 | Уровень: для всех | Стоимость: 490.00 руб. | Длительность: 14 дней
Курс посвящен методам создания программ, автоматически генерирующих код приложений.
Описываются назначение, методы создания, условия применения генераторов кода, позволяющих значительно ускорить и повысить эффективность создания приложений. Рассматриваются способы генерации программного кода для доступа к базам данных, запросов SQL, пользовательских интерфейсов, тестов, технической документации приложения. Также обсуждаются организационные задачи, возникающие в процессе внедрения генераторов кода.
Необходимые знания: Основы программирования, объектно-ориентированное программирование, проектирование и разработка баз данных, веб-программирование, XML.

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
4 минуты
Введение
Оглавление
    -
    Лекция 2
    34 минуты
    Основные представления о генерации кода
    В этой лекции дается обзорная информация о генерации кода. Описываются принципы работы генераторов кода, их назначение, характеристики, ключевые составляющие, области и условия эффективного применения. Также приведены преимущества и недостатки применения генераторов.
    Оглавление
      -
      Тест 1
      24 минуты
      -
      Лекция 3
      40 минут
      Техники генерации кода
      В данной лекции проводится обзор базовых методик генерации кода, а также приводятся примеры. Рассматривается применение регулярных выражений и XML. Также рассматривается генерация кода с помощью текстовых шаблонов T4 в Visual Studio. Изучается обобщенный процесс генерации кода.
      Оглавление
        -
        Лекция 4
        47 минут
        Генерация запросов SQL
        В данной лекции изучается генерация запросов SQL. Рассматриваются представление структуры базы и таблиц в программе генератора, хранение этих структур в файлах. Даются примеры генерации простых запросов с применением операторов SELECT, UPDATE и DELETE. Кроме того, даются примеры генерации запросов DML и сложных запросов SELECT. Рассматривается генерация запросов средствами SQL и PL/SQL.
        Оглавление
          -
          Тест 2
          24 минуты
          -
          Лекция 5
          36 минут
          Технология текстовых шаблонов T4
          Обсуждается генерация кода с применением шаблонов T4 в Visual Studio. Изучаются синтаксис шаблонов T4, принцип их работы, контроль отступов, применение моделей UML и DSL. Также рассматриваются возможности расширения технологии T4, плюсы и минусы ее применения.
          Оглавление
            -
            Тест 3
            27 минут
            -
            Лекция 6
            58 минут
            Применение языка преобразований XSLT
            Рассматривается генерация кода преобразованиями XSLT. Изучается синтаксис XSLT, особенности применения преобразований, а также выполнение таких операций, как фильтрация, сортировка, выборка по условию в шаблонах. Выполнение трансформации программным путем в C#. Преимущества и недостатки технологии.
            Оглавление
              -
              Тест 4
              27 минут
              -
              Лекция 7
              42 минуты
              Генерация объектно-ориентированного кода. Технология CodeDom
              Изучается генерация объектно-ориентированного кода с применением технологии CodeDom. Рассматриваются инициализация пространств имен, создание классов, методов, переменных, массивов, циклов и так далее. Даются примеры сгенерированного кода на языках C# и Visual Basic. Изучается автоматическая компиляции кода, приводятся преимущества и недостатки применения технологии CodeDom.
              Оглавление
                -
                Лекция 8
                47 минут
                Применение генераторов кода
                В данной лекции рассматриваются особенности генерации пользовательского интерфейса, документации, применения генерации в манипулировании данными, тестировании программного кода. Дается информация о способах, нюансах и преимуществах указанных применений генераторов.
                Оглавление
                  -
                  Лекция 9
                  42 минуты
                  Организация процесса разработки и применения генераторов
                  В лекции подробно изложены вопросы, касающиеся проектирования, организации разработки и применения генераторов. Рассмотрены условия эффективного применения генератора, рекомендации по организации разработки и началу применения генератора. Рассматриваются наиболее часто возникающие предубеждения касательно применения генераторов.
                  Оглавление
                    -
                    Тест 5
                    27 минут
                    -
                    Дополнительный материал 
                    58 минут
                    Приложение А. Пример генератора пакетов PL/SQL
                    Приводится пример генератора пакетов PL/SQL. Рассматривается код генератора, сгенерированный код, а также код, созданный вручную и необходимый для работы сгенерированного кода.
                    Оглавление
                      -
                      5 часов
                      -

                      ( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0455101222456watchdog( )../bootstrap.inc:0
                      23.0461101224912module_invoke( )../bootstrap.inc:967
                      33.0461101226768call_user_func_array ( )../module.inc:462
                      43.0461101227104devel_watchdog( )../module.inc:462
                      53.0463101227952decode_entities( )../devel.module:382
                      63.0464101229872drupal_error_handler( )../devel.module:340
                      73.0464101233480watchdog( )../common.inc:663
                      83.0465101235536module_invoke( )../bootstrap.inc:967
                      93.0465101237392call_user_func_array ( )../module.inc:462
                      103.0465101237728devel_watchdog( )../module.inc:462
                      113.0465101238424decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0455101222456watchdog( )../bootstrap.inc:0
                      23.0461101224912module_invoke( )../bootstrap.inc:967
                      33.0461101226768call_user_func_array ( )../module.inc:462
                      43.0461101227104devel_watchdog( )../module.inc:462
                      53.0463101227952decode_entities( )../devel.module:382
                      63.0464101229872drupal_error_handler( )../devel.module:340
                      73.0464101233480watchdog( )../common.inc:663
                      83.0465101235536module_invoke( )../bootstrap.inc:967
                      93.0465101237392call_user_func_array ( )../module.inc:462
                      103.0465101237728devel_watchdog( )../module.inc:462
                      113.0465101238424decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0455101222456watchdog( )../bootstrap.inc:0
                      23.0461101224912module_invoke( )../bootstrap.inc:967
                      33.0461101226768call_user_func_array ( )../module.inc:462
                      43.0461101227104devel_watchdog( )../module.inc:462
                      53.0463101227952decode_entities( )../devel.module:382
                      63.0471101230064drupal_error_handler( )../devel.module:340
                      73.0471101233752watchdog( )../common.inc:663
                      83.0471101235808module_invoke( )../bootstrap.inc:967
                      93.0471101237664call_user_func_array ( )../module.inc:462
                      103.0471101238000devel_watchdog( )../module.inc:462
                      113.0472101238776decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0455101222456watchdog( )../bootstrap.inc:0
                      23.0461101224912module_invoke( )../bootstrap.inc:967
                      33.0461101226768call_user_func_array ( )../module.inc:462
                      43.0461101227104devel_watchdog( )../module.inc:462
                      53.0463101227952decode_entities( )../devel.module:382
                      63.0471101230064drupal_error_handler( )../devel.module:340
                      73.0471101233752watchdog( )../common.inc:663
                      83.0471101235808module_invoke( )../bootstrap.inc:967
                      93.0471101237664call_user_func_array ( )../module.inc:462
                      103.0471101238000devel_watchdog( )../module.inc:462
                      113.0472101238776decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0479101223000watchdog( )../bootstrap.inc:0
                      23.0479101225056module_invoke( )../bootstrap.inc:967
                      33.0479101226912call_user_func_array ( )../module.inc:462
                      43.0479101227248devel_watchdog( )../module.inc:462
                      53.0480101227952decode_entities( )../devel.module:382
                      63.0480101229872drupal_error_handler( )../devel.module:340
                      73.0480101233480watchdog( )../common.inc:663
                      83.0480101235536module_invoke( )../bootstrap.inc:967
                      93.0480101237392call_user_func_array ( )../module.inc:462
                      103.0480101237728devel_watchdog( )../module.inc:462
                      113.0481101238424decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0479101223000watchdog( )../bootstrap.inc:0
                      23.0479101225056module_invoke( )../bootstrap.inc:967
                      33.0479101226912call_user_func_array ( )../module.inc:462
                      43.0479101227248devel_watchdog( )../module.inc:462
                      53.0480101227952decode_entities( )../devel.module:382
                      63.0480101229872drupal_error_handler( )../devel.module:340
                      73.0480101233480watchdog( )../common.inc:663
                      83.0480101235536module_invoke( )../bootstrap.inc:967
                      93.0480101237392call_user_func_array ( )../module.inc:462
                      103.0480101237728devel_watchdog( )../module.inc:462
                      113.0481101238424decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0479101223000watchdog( )../bootstrap.inc:0
                      23.0479101225056module_invoke( )../bootstrap.inc:967
                      33.0479101226912call_user_func_array ( )../module.inc:462
                      43.0479101227248devel_watchdog( )../module.inc:462
                      53.0480101227952decode_entities( )../devel.module:382
                      63.0487101230064drupal_error_handler( )../devel.module:340
                      73.0487101233752watchdog( )../common.inc:663
                      83.0487101235808module_invoke( )../bootstrap.inc:967
                      93.0487101237664call_user_func_array ( )../module.inc:462
                      103.0487101238000devel_watchdog( )../module.inc:462
                      113.0487101238776decode_entities( )../devel.module:382

                      ( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
                      Call Stack
                      #TimeMemoryFunctionLocation
                      13.0479101223000watchdog( )../bootstrap.inc:0
                      23.0479101225056module_invoke( )../bootstrap.inc:967
                      33.0479101226912call_user_func_array ( )../module.inc:462
                      43.0479101227248devel_watchdog( )../module.inc:462
                      53.0480101227952decode_entities( )../devel.module:382
                      63.0487101230064drupal_error_handler( )../devel.module:340
                      73.0487101233752watchdog( )../common.inc:663
                      83.0487101235808module_invoke( )../bootstrap.inc:967
                      93.0487101237664call_user_func_array ( )../module.inc:462
                      103.0487101238000devel_watchdog( )../module.inc:462
                      113.0487101238776decode_entities( )../devel.module:382