Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_19.pptx
Скачиваний:
112
Добавлен:
16.04.2015
Размер:
298.96 Кб
Скачать

Архитектуры и модели программ и знаний

Лекция 19

Язык C# и LINQ

Сафонов Владимир Олегович

Профессор кафедры информатики Заведующий лабораторией Java-технологии

(http://polyhimnie.math.spbu.ru/jtl)

Санкт-Петербургский государственный университет

Email: vosafonov@gmail.com

WWW: http://www.vladimirsafonov.org

Язык C#

Полностью отражает возможности

.NET

В настоящее время – наиболее мощный и гибкий из всех языков программирования

C# более сложен, чем Java. Он требует детального изученияДля программистов, имеющих опыт

использования C++, изучить C# прощеЛитература: Petzold Ch. Programming Windows in C#. – MS Press, 2002.

(C) Сафонов В.О. 2012

Цели

Введение в C#

СинтаксисБазовые концепции

Технологии

Обзор C# и инструментов .NET

(C) Сафонов В.О. 2012

Содержание

Часть 1: Обзор C#Часть 2: Элементы C#Часть 3: Инструменты программирования на C#Часть 4: Общая картинаРезюме

(C) Сафонов В.О. 2012

Часть 1: Обзор C#

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

Конкепция компоненты в .NETПреимущества C#

(C) Сафонов В.О. 2012

системы

CORBA (1988): первая попытка построения компонентно-

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

распределенной модели программирования

COM

 

 

Наиболее успешная компонентная модель из всех известных

 

Единственная жизнеспособная коммерческая компонентная

 

модель

Обеспечивает повторное использование и интеграцию

Но:

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

 

COM имеет весьма солидный возраст (около 20 лет)

 

 

DCOM не обеспечивает нормальную работу через Internet

 

 

Появляются новые компонентно-ориентированные системы

 

 

“ад DLL” – проблема новых версий библиотек

 

 

Сложна для использования, даже если применяются

 

 

адекватные инструменты

COM не является по-настоящему языково-независимой

 

 

Использует неявные соглашения относительно двоичного

 

 

представления данных

 

Поддерживает минимальную систему типов

(C) Сафонов В.О. 2012

Концепция компоненты в

.NET

Использует лучшие возможности COM+

Основана на интерфейсах как абстрактных контрактах

Компоненты основаны на использовании и

определении интерфейсовАнализ полномочий и контрактов во время

выполненияПоведение, управляемое атрибутами

Дополнения:

Объектная ориентированность, включая наследование

Естественная модель события

Общая система типов и система поддержки

выполнения

Расширяемость на любом уровне

(C) Сафонов В.О. 2012

Преимущества C#

Первый компонентно-ориентированный языкОснован на опыте COM+

Поддерживает:

Пространства именУправление версиями

Разработку на основе атрибутов

Мощь C++ плюс легкость Microsoft Visual Basic®

Более концептуально чист, чем C++Более структурирован, чем Visual BasicБолее мощный, чем Java

С самого начала основан на международных стандартах (в отличие от C++ и Java).

г. Действующий стандарт: ECMA-334, июнь 2006

(C) Сафонов В.О. 2012

Часть 2: элементы C#

Форма и структураОбзор системы типов C#Обзор C#

(C) Сафонов В.О. 2012

C#: форма и структура

Нет заголовочных файлов (в отличие от C/C++)

Модель определений и объявлений

Похожая на Visual Basic, Pascal, Modula, Java

Реализация сходна с C++

Код, объединенный с объявлениями

Поддержка корректности и сопровождения кода

Применимость для коллективной разработки

Объявления доступны через метаданныеМакросы: Есть условная компиляция, но нет макроопределений

#define MYAPP

а не (как в C / C++) : #define CRASH(x) (x/0)

(C) Сафонов В.О. 2012

C#: система типов

Основана на общей системе типов .NET Framework

Естественный доступ к системе типов NET: - int , System.Int32 , native int

C# – любая из этих форм ссылок на тип корректна в

C# “рожден” вместе с .NET и для .NET

Базовые концепции:

Все сущности являются объектами

Неявное наследование от System.ObjectЯвное разделение на типы-значения и типы-

ссылкиЗначения: примитивные типы, перечисления,

структуры

Ссылки: интерфейсы, классы, массивы

(C) Сафонов В.О. 2012

Соседние файлы в папке Safonov