- •1. Эволюция языков программирования. Что такое net?
- •Internet и появление языка Java.
- •2.Компоненты платформы net.
- •3.Модель выполнения приложения в среде .Net Framework. Промежуточный язык Microsoft (Microsoft Intermediate Language, msil). Сборки.
- •4. Обзор встроенных типов данных c#. Применение встроенной функциональности типов данных.
- •5.Операции ввода/вывода. Формат вывода. Пространство имён System. Класс System.Math.
- •6.Операции, операторы и выражения в c# .
- •Операторы
- •7. Массивы в c# (одномерные и двумерные). Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •8. Структуры в c#, создание структуры.
- •9. Понятие объектно-ориентированного программирования.
- •10. Классы в c#. Члены класса: методы, поля, свойства и события. Форма определения класса.
- •11. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •12. Конструкторы и деструкторы. Сборка «мусора».
- •13. Определение пользовательских методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов. Модификаторы ref, out, params параметров методов.
- •14. Возвращение методами объектов класса. Возвращение методами массивов.
- •15. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •Ограничения на static-методы.
- •16.Область видимости и время существования переменных. Преобразование и приведение типов.
- •17.Обработка исключительных ситуаций.
- •18.Перегрузка методов. Перегрузка конструкторов.
- •19.Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •20. Инкапсуляция и свойства. Формат записи свойств.
- •21.Индексаторы. Специальные приемы построения типов. Создание одномерного индексатора.
- •22.Создание двумерного индексатора.
- •23.Механизмы реализации инкапсуляции в c#.
- •24.Базовые классы и наследование. Доступы к членам классов.
- •25.Конструкторы и наследование.
- •26.Ссылки на базовый класс и объекты производных классов.
- •27.Виртуальные методы и их переопределение.
- •28.Использование абстрактных классов.
- •29.Механизмы реализации полиморфизма в c#.
- •30.Интерфейсы. Реализация интерфейсов. Стандартные интерфейсы среды .Net Framework.
- •31.Коллекции. Классы коллекций общего назначения.
- •32.Делегаты. Назначение делегатов. Многоадресатная передача.
- •33.События. Объявление и генерация событий. Реализация обработчиков событий
- •34.Обзор технологий программирования Windows-приложений.
- •35.Архитектура Windows Forms. Класс Form.
- •36.Элементы управления формы
1. Эволюция языков программирования. Что такое net?
Языков программирования существует великое множество, но только некоторые из них по-настоящему сильны. Эффективность языка заключается в его мощности и одновременно – в гибкости. Синтаксис языка должен быть лаконичным, но ясным.
Языки программирования связаны друг с другом, причем на каждый новый язык в той или иной форме влияют его предшественники. Средства из одного языка адаптируются другим языком, отжившие конструкции отбрасываются. Так происходит эволюция компьютерных языков и развитие искусства программирования, появляются новые методологии программирования.
Internet и появление языка Java.
Следующей ступенью на лестнице прогресса языков программирования стал язык Java, который первоначально назывался Oak («дуб»). Java – это структурный объектно-ориентированный язык программирования, синтаксис и основные принципы взяты из С++.
Еще до появления Internet программы предназначались для выполнения с использованием определенного процесса и под управлением конкретной операционной системы. Проблема переносимости программ из одной среды в другую не решалась. Однако с появлением всемирной сети Internet, в которой оказались связанные различные типы процессов и операционных систем, проблема переносимости заявила о себе. Для ее решения понадобился новый язык программирования, и им стал Java. В Java переносимость достигается посредством преобразования исходного кода программы в промежуточный код, именуемый байт-кодом (bytecode), т. е. машиннонезависимый код, генерируемый Java – компилятором.
Байт-код выполняется машиной Java (Java Virtual Machine – JVM) – специальной операционной системой. В итоге, Java – программа может работать в любой среде, где допущены JVM, а так как JVN относительна проста для реализации, она быстро стала доступной для большого количества сред. Основная характеристика Java – «однажды написанное работает везде».
С/С++ - программы компилировались для получения исполняемого кода. Машинный код связан с конкретным процессором и операционной системой. Поэтому, если С/С++ - программу нужно выполнить в другой системе, ее нужно перекомпилировать в машинный код, соответствующий этой среде. Это было непрактично и дорого. Использование для выполнения Java – программы промежуточного языка было элегантным и рентабельным решением. Именно это решение было адаптировано для языка С#.
Создание С#. Разработчики Java успешно решили проблему с переносимостью в среде Inernet, но далеко не все. Одна из них – межязыковая возможность взаимодействия программных и аппаратных изделий разных поставщиков, или многоязыковое программирование.
Как программы, написанные на разных языках, должны работать одна с другой? Такое взаимодействие необходимо для:
создания больших систем с распределенным программным обеспечением (ПО),
программирования компонентов ПО, которое можно использовать в разных языках программирования и в разных операционных системах.
В Java не достигнута полная интеграция с платформой Windows. Хотя Java –программы могут выполняться в среде Windows (при условии установки виртуальной машины Java). А т.к. Windows – это наиболее широко используемая операционная система в мире, то отсутствие прямой поддержки Windows – серьезный недостаток Java.
В связи с этим Microsoft начала разработку в конце 90-х годов С# ,который объединил бы лучшие свойства языков С/С++ и Java. С# является частью общей .NET-стратегией Microsoft. Первая его версия вышла в середине 2000 года. Главный архитектор С# - Андерс Хейлсберг.
C# непосредственно связан с С, С++ и Java. Эти три языка – самые популярные и самые любимые языки программирования в мире. Более того, почти все профессиональные программисты сегодня знают С и С++, и большинство знает Java. Поэтому переход к C# происходит без особых трудностей.
«Дедушкой» C# является язык С. От С язык С# унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, C# построен на улучшенной объектной модели, определенной в С++.
С# и Java связаны между собой несколько сложнее. Java – потомок С и С++, у него общий с ними синтаксис и сходная объектная модель. Подобно Java, C# предназначены для создания переносимого кода. Однако С# - не потомок Java. Скорее С# и Java можно считать двоюродными братьями.
Или технология, или модель платформа .NET – это совершенно новая модель для создания приложений под Windows
.NET была разработана Microsoft как Web-ориентированная платформа для создания единой инфраструктуры разработки и эксплуатации служб нового поколения.
Для разработчиков .NET предоставляет обширную библиотеку классов, инфраструктуру и инструментальные средства для создания межплатформенных и не зависящих от языка программирования приложений. .NET поддерживает большинство языков программирования. [Это современная , новейшая технология программирования под Windows]. .NET представляет собой совершенно новый способ создания распределенных, настольных и встроенных приложений. Специально для .NET Microsoft разработала С#.
Основные возможности .NET.
платформа .NET является полностью независимой от используемых языков программирования. Можно использовать несколько .NET – совместимых языков программирования даже в рамках одного проекта. Один из главных принципов .NET звучит так: «Изменяйте все, что хотите, откуда вам угодно».
Полные возможности взаимодействия с существующим программным кодом (создаются двоичные файлы .NET)
Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они были созданы. Один из важных моментов при этом – то, что для всех языков используется один и тот же набор встроенных типов данных.
Использование библиотеки базовых классов скрывает сложности вызовов АРI (Windows Application Programming Interface – интерфейс прикладного программирования под Windows, в 32-разрядных версиях Windows –Win32API. Win32API состоит из тысяч глобальных функций).