Компонентное программирование .NET Framework



Эволюция развития лямбда-исчисления и комбинаторной логики

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

Эволюция развития формализации с типами и рекурсивных вычислений

Эволюция развития модели абстрактной машины и концепций ООП

Современные подходы к программированию

Основные подходы:

· Модульный (имеет чётко опр-ю структуру)

· Функциональный (функции вып-т нек-е действия)

· Логический

· Объектно-ориентированный подход

· Смешанный

· Компонентно-ориентированный

· Объектный подход

Декларативный язык

(программирование представляет собой описание действий которые необходимо осуществить ):

· простота верификации и тестирования (+)

· строгость мат формализации (+)

· высокая степень абстракции (+)

· сложность реализации (-)

· необходимость мат знаний (-)

   Примеры: LISP, SML, Haskell, Prolog

Процедурный язык

(программа представляет собой набор операторов, которые сгруппированы в отдельные блоки операторов - процедуры):

· более высокий уровень абстракции (+)

· меньшая машинная зависимость (+)

· более широкая совместимость (+)

· содержательная значимость текстов (+)

· унификация программного кода (+)

· увелич. производительности труда программистов(+)

· большие трудозатраты на обучение (-)

· меньшая эффективность программного кода (-)

  Примеры: Fortran, ALGOL, PL/1, APL, BPL, Pascal, C, Basic, COBOL

Функциональный язык

(программа – функция, аргументы которой также возможно функции):

· автоматическое управление памятью (сборка мусора) (+)

· простота повторного использования кода (+)

· использование функций с параметрическими аргументами (+)

· абстрагирование от машинного представления данных (+)

· использование рекурсий (вызов самих себя) (+)

· удобство символьной обработки (+)

· нелинейная структура программы (-)

· низкая эффективность (-)

   Примеры: LISP, SML, Haskell, CaML, Miranda, Hope

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

· описание любой предметной области (+)

· моделирование сложных предметных областей (+)

· событийная ориентированность (+)

· высокий уровень абстракции (+)

· повторное использование объектов (+)

· параметризация методов обработки объектов (+)

· сложность тестирования и верификации (-)

   Примеры: С++, VB, C#, Eiffel, Oberon

Основные понятия и принципы ООП

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

· описание любой предметной области (+)

· моделирование сложных предметных областей (+)

· событийная ориентированность (+)

· высокий уровень абстракции (+)

· повторное использование объектов (+)

· параметризация методов обработки объектов (+)

· сложность тестирования и верификации (-)

   Примеры: С++, VB, C#, Eiffel, Oberon

Принципы ООП:

1. Абстракция:

это выражение языка программирования, отличное от идентификаторов.

Переменная является значением абстракции.

Поведение абстракции это приложение функции к аргументу.

Моделируется при помощи лямбда- счисления

2. Наследование:

означает свойства произвольного объекта сохранять поведение базового объекта.

Моделируется наследование 2 подходами:

· Фреймовая нотация Руссополоса

· диаграмма Hasse

3. Инкапсуляция:

доступность объекта исключительно при помощи свойств и методов.

Свойства: совместное хранение данных и методов; скрытие внутренней информации об пользователе; изоляция пользователя от особенности реализации

4. Полиморфизм:

оперирование объектами не обладая точными значением их типов

Аспекты платформы .NET Framework

Платформа.net означает:

· Совокупность технологий, которые позволяют работать с инф. в любое время на любом устройстве

· Программы становятся услугами

· Платформа поддерживает различные языки

· Стандартная инфраструктура по разработке, использованию, хостингу и интеграции XML Web услуг

· Маркетинговая стратегия

Составляющие концепции:

· Новая идеология проектирования

· Модель поддержки жизненного цикла

· Современная, интегрированная платформа

· Современный инструментарий

1. Идеология:

· Легкость развертывания приложений в среде Интернет

· Эконом. разраб. путем испол. готовых компонентов

· Интеграция как с программными прод-ми, так и с аппаратными средствами

· Использование сервисов, кот предлагаются пользователям или приложениям

· Безопасность и удобство использования

2. Модель:

§ компонентный подход

§ универ. сист. типизации (любой тип является объектом)

§ иерархия (упорядочивание классов)

§ универсальный интерфейс

§ вариативность экземпляров прогр-го об-я

3. Платформа:

· многоязыковая поддержка

· интерапирабельность (повт-е исп-е кода) и масштабируемость

· унификация доступа к библиотекам

· соответствие современным стандартам

4. Инструментарий:

· многоязыковая среда

· создание компонентов на наиболее подходящем языке

· доступность средств данной платформы для широкого использования

· одинаковость сервисных возможностей

самостоятельность в разработке трансляторов

Архитектура .NET Framework

Компонентное программирование .NET Framework

Работы:

· 1924 – Шейнфинкель – простая теория функций

· 1934 – Черч – Лямбда- счисление, исследование теории множеств

· 1971 – Скотт - Полные и непрерывные решетки

· 80е – Скотт – исследование механизма определённых дескрипций

· 90е – Вольфангаген – схема двухуровневой концентрализации

Компоненты это:

· независимые повторно используемые и типизируемые модули

· в целом более крупные, чем объект

· могут содержать множественные классы

· независимы от языка реализации

Сравнение ООП и КОП:

1)Основные понятия Ооп

· класс

· интерфейс

2)основные понятия КОП

· свойства (property)

· события (event)

· сборка (assembly)

Модели КОП:

1) Component object model (com) – для конкретизации и использования компонента внутри процесса, между процессами и между компьютерами. Основа для Actuve X, OLE

2) Java beans- стандарт SunMicrosystem для компонентов (не является независимым от языка)

3) Corba- громоздкий IDL – интерфейс, сложность отображения одного языка в реализации другого.

Web- сервисы в .NET:

заменяют компонентный подход в среде Internet

1.программируемые компоненты приложений, доступные посредством стандартных Интернет-протоколов

2.центральная часть архитектуры .NET

3.распределяют функциональность по глобальной сети

4.строятся на существующих развивающихся стандартах

Преимущества КОП:

1. снижение стоимости ПО

2.возможность повторного использования

3.унификация обработки объектов различной природы

4.менее человекозависимый процесс создания ПО

5.строгое математическое основание (лямбда-счисление)

концепция универсальна и одинакова

9. Эволюция и основные возможности C#

Эволюция:

Начало развития в 1963г. Томпсон-язык B

1972г. Томпсон-язык С.

1984г. Язык С++

2000г. Язык С#.

Что такое С#:

· смесь С++, java, Delphi

· концепция разделения типов на ссылочные и значимые

· поддержка xml документации

Особенности программ на C#:

· Совокупность описаний (набор классов и интерфейсов)

· Классы содержат как один, так и много точек входа программы

· Программы состоят из нескольких файлов

Пространство имен может быть разнесено на несколько файлов

10. Структура программы и синтаксис конструкций C#

Конструкции:

§ элементарные

§ составные

§ прогр-е конст. упр-я switch и case

§ усл-е

§ повт. и циклов

§ перехода break, continue, return, goto

§ + конст. управления исключениями (throw, try-catch, finally)

спец. констр. (lock – блок. объектов, cheked/uncheked, fixed)


Дата добавления: 2018-04-15; просмотров: 470; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!