Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# Лекция_1 Язык программирования и среда разра....docx
Скачиваний:
49
Добавлен:
18.12.2018
Размер:
1.81 Mб
Скачать

Основы программирования на С# 3.0: ядро языка

1. Лекция: Язык программирования и среда разработки. Цели курса

Обзорная лекция, в которой вводятся основные понятия курса, рассматривается среда разработки – Visual Studio 2008 и Framework .Net 3.5. Рассматриваются типы проектов, и строится пример достаточно большого проекта.

Проект к данной лекции Вы можете скачать здесь.

1.Язык C# 2

1.1.Будущее С# 4

2.Visual Studio 2008 4

2.1.Открытость 4

3.Framework .Net - единый каркас среды разработки приложений 5

3.1.Библиотека классов FCL - статический компонент каркаса 5

3.2.Единство каркаса 5

3.3.Встроенные примитивные типы 6

3.4.Структурные типы 6

3.5.Архитектура приложений 6

3.6.Модульность 6

3.7.Общеязыковая исполнительная среда CLR - динамический компонент каркаса 6

3.7.1.Двухэтапная компиляция. Управляемый модуль и управляемый код 7

3.8.Виртуальная машина 7

3.9.Дизассемблер и ассемблер 8

3.10.Метаданные 8

3.11.Сборщик мусора - Garbage Collector и управление памятью 8

3.12.Исключительные ситуации 9

3.13.События 9

3.14.Общие спецификации и совместимые модули 9

3.15.Framework .Net 3.5 10

3.15.1.LINQ и деревья выражений 10

3.15.2.Windows Presentation Foundation 10

3.15.3.Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) 10

3.15.4.ASP.NET 11

3.15.5.Другие новинки 11

3.16.Управляемый и неуправляемый код 11

4.Проекты C# в Visual Studio 2008 12

5.Создание проекта 14

6.Определение основных понятий 17

6.1.Класс (Class) 17

6.2.Объект (Object) 17

6.3.Пространство имен (Namespace) 18

6.4.Проект (Project) 18

6.5.Сборка (Assembly) 19

6.6.Решение (Solution) 19

7.Пример 19

7.1.Постановка задачи 19

7.2.Создание DLL - проекта типа "Class Library" 20

7.2.1.Вычисление конечных и бесконечных сумм 23

7.2.2.Код 26

7.3.Консольный проект 28

7.3.1.Начало начал - точка "большого взрыва" 29

7.3.2.Связывание с DLL 30

7.3.3.Организация консольного интерфейса 30

7.4.Windows- проект 32

7.4.1.Построение интерфейса формы 34

7.4.2.Как оценить время работы метода 36

7.4.3.Предварительные сведения о делегатах - функциональном типе данных 37

7.4.4.Класс TimeValue 37

8.Итоги 39

В этом курсе в качестве языка программирования выбран язык C# и его версия 3.0, в качестве среды разработки программных проектов - Visual Studio 2008, Professional Edition и Framework .Net в версии 3.5.

  1. Язык c#

Язык C# является наиболее известной новинкой в области языков программирования. По сути это язык программирования, созданный уже в 21-м веке. Явившись на свет в недрах Microsoft, он с первых своих шагов получил мощную поддержку. Язык признан международным сообществом. В июне 2006 года Европейской ассоциацией по стандартизации принята уже четвертая версия стандарта этого языка: Standard ECMA-334 C# Language Specifications, 4-th edition - http://www.ecma-international.org/publications/standards/Ecma-334.htm.

Международной ассоциацией по стандартизации эта версия языка узаконена как стандарт ISO/IEC - 23270. Заметим, что первая версия стандарта языка была принята еще в 2001 году. Компиляторы Microsoft строятся в соответствии с международными стандартами языка.

Язык C# является молодым языком и продолжает интенсивно развиваться. Каждая новая версия языка включает принципиально новые свойства. Не стала исключением и версия 3.0, рассматриваемая в данном учебном курсе.

Руководителем группы, создающей язык C#, является сотрудник Microsoft Андреас Хейлсберг. Он был известен в мире программистов задолго до того, как пришел в Microsoft. Хейлсберг входил в число ведущих разработчиков одной из самых популярных сред разработки - Delphi. В Microsoft он участвовал в создании версии языка Java - J++, так что опыта в написании языков и сред программирования ему не занимать. Как отмечал сам Андреас Хейлсберг, C# создавался как язык компонентного программирования, и в этом одно из главных достоинств языка, дающее возможность повторного использования созданных компонентов. Создаваемые компилятором компоненты являются само-документируемыми, помимо программного кода содержат метаинформацию, описывающую компоненты, и поэтому могут выполняться на различных платформах.

Из других важных факторов отметим следующие:

  • C# создавался и развивается параллельно с каркасом Framework .Net и в полной мере учитывает все его возможности;

  • C# является полностью объектно-ориентированным языком;

  • C# является мощным объектным языком с возможностями наследования и универсализации;

  • C# является наследником языка C++. Общий синтаксис, общие операторы языка облегчают переход от языка С++ к C#;

  • сохранив основные черты своего родителя, язык стал проще и надежнее;

  • благодаря каркасу Framework .Net, ставшему надстройкой над операционной системой, программисты C# получают преимущества работы с виртуальной машиной;

  • Framework .Net поддерживает разнообразие типов приложений на C#;

  • реализация, сочетающая построение надежного и эффективного кода, является немаловажным фактором, способствующим успеху C#.

В каком направлении развивается язык C#? Назовем новинки, появившиеся в версии 3.0.

На первое место я бы поставил возможности создания качественно новых типов проектов на C#. Конечно, новые типы проектов нельзя отнести к новинкам языка C#. Эти возможности предоставляет каркас Framework .Net 3.5 и Visual Studio 2008. Но поскольку язык, среда разработки и каркас среды тесно связаны, то с точки зрения программистов, работающих на C#, возможности построения программных проектов на C# существенно расширились.

Введение в язык инструмента, получившего название LINQ (Language Integrated Query). Сегодня ни один серьезный проект на C# не обходится без обмена данными с внешними источниками данных - базами данных, Интернет и прочими хранилищами. В таких ситуациях приходилось использовать специальные объекты (ADO .Net или их более ранние версии). При работе с ними нужно было применять SQL - специальный язык запросов. Благодаря LINQ язык запросов становится частью языка программирования C#. Тем самым реализована давняя мечта программистов - работать с данными, находящимися в различных внешних источниках, используя средства, принадлежащие языку программирования, не привлекая дополнительные инструментальные средства и языки.

Введение в язык инструментария, характерного для функционального стиля программирования, - лямбда-выражений, анонимных типов и функций. Андреас Хейлсберг полагает, что смесь императивного и функционального стилей программирования упрощает задачи разработчиков, поскольку функциональный стиль позволяет разработчику сказать, что нужно делать, не уточняя, как это должно делаться.

Новые возможности появились при реализации параллелизма в программных проектах.