Информационные технологии. Семестр 1. Язык программирования C#. Лекция 1. Введение. Тимошенко Павел Евгеньевич
Цели 3-х семестрового курса Платформа Microsoft.NET и ее стек технологий Язык программирования С# (стандарт ECMA) Объектно-ориентированное программирование Unified Modeling Language Системы управления базами данных Структурированный язык запросов (SQL) Шаблоны проектирования и тестирования Рефакторинг кода, разработка на основе тестирования Методология разработки программного обеспечения (Scrum, MSF)
Качество разрабатываемого программного обеспечения Методы анализа и проектирования (UML, Agile: UP, Scrum, MSF …) Стандартные подходы в программировании (использование паттернов проектирования) Парадигмы программирования (объектно-ориентированное программирование) Стили программирования. Инструменты, предоставляемые интерактивными средами разработки Технологии (.NET Framework, …) Языки программирования (С#, Java, C++, …)
Цели на текущий семестр Платформа Microsoft.NET Язык программирования С# (стандарт ECMA) Объектно-ориентированное программирование Научиться создавать Console и WinForms приложения
Платформа Microsoft.NET В 2002 году компания Microsoft выпустила платформу разработки и выполнения программ под управлением ОС Windows –.NET Framework, которая предлагает новый подход к решению проблем разработки программного обеспечения и соответствие целям информационных систем следующего поколения. Microsoft.NET Platform это новая интегрированная, объектно- ориентированная среда разработки и выполнения программ. С программной точки зрения.NET Platform это набор библиотек классов; среда выполнения программ CLR; набор программных инструментов (Visual Studio, компиляторы, отладчики и пр.).
Состав платформы.NET Общая среда выполнения (Common Language Runtime) Runtime engine (виртуальная машина) для управляемого кода Управление потоками и памятью Управление безопасностью (security) Межъязыковое управление исключениями, диагностика, отладка Библиотека классов (.NET Framework Class Libraries) Набор иерархически организованных библиотек классов Используется всеми языками.NET Встроенная общая система типов данных (common type system) Объектно-ориентированная, расширяемая Набор инструментов разработки и отладки программ Компиляторы (VB.NET, C# и C++) Инструменты (AL.exe, Disasm.exe)
Список версий.NET Framework Версия Дата выходаVisual Studio По умолчанию в Windows Visual Studio.NET Visual Studio.NET 2003Windows Server Visual Studio 2005Windows Vista, Windows 7, Windows Server 2008 R Visual Studio расширения Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R Visual Studio 2008Windows 7, Windows Server 2008 R Visual Studio 2010Windows 7, Windows Server 2008 R Visual Studio 2012Windows 8, Windows Server 2012
Установка.NET Framework Варианты установки Software Development Kit (SDK) (354 Mb) – для выполнения и создания управляемых приложений Redistributable Package (22.4 Mb) – выполнения управляемых приложений Базовый путь к.NET Аппаратная платформа (x86-32, x86-64)Версия платформы %SystemRoot%\Microsoft.NET\Framework\v \ Framework64\v \ v \ v3.0\ v3.5\ v \ v \
Факты об.NET Framework Microsoft.NET Framework SDK свободно распространяется (SDK – Software Development Kit) Microsoft.NET Framework SDK включает компиляторы для языков: C#, VB.NET и C++. Программирование на.NET Framework SDK не требует наличия среды разработки Visual Studio.NET Имеются бесплатные версии среды разработки Visual.Studio (Express Edition) Microsoft.NET Framework SDK включает набор инструментов, запускаемых из командной строки, такие как компиляторы, отладчики, и разные утилиты Rotor это открытый код реализации.NET Common Language Runtime (CLR) и C# языка
Проект Mono Проект по созданию полноценной реализации платформы системы.NET на базе свободного программного обеспечения. Выполняется компанией Novell, руководит Мигель деИказа. Включает следующие компоненты: компилятор языка C# mcs, среду исполнения (CLR) mono (с поддержкой JIT) и mint (без поддержки JIT), отладчик ряд библиотек, включая реализацию ADO.NET и ASP.NET. В рамках проекта также разрабатываются привязки для графической библиотеки GTK+ на платформу.NET. Среда исполнения mono может исполнять модули, написанные на языках C#, Visual Basic.NET, Java, Boo, Nemerle, Python, JavaScript, PHP и Object Pascal (при наличии компилятора в среду.NET/Mono). Ожидается также поддержка языков C, Ada 2005 и Eiffel. Реализации Mono существуют для таких операционных систем, как: GNU/Linux, FreeBSD, Solaris, Mac OS X, Microsoft Windows Unix.
Особенности платформы Microsoft.NET Кроссплатформенность:.NET может работать на разных компьютерах, начиная от серверов и настольных компьютеров и заканчивая планшетами и сотовыми телефонами. Единая модель и инструментарий разработки всех типов приложений (локальных и сетевых) Активная поддержка международных стандартов:.NET использует такие стандартные протоколы коммуникации, как XML, HTTP, SOAP и WSDL. Безопасность: данная платформа предоставляет безопасную среду выполнения, даже в случае получения программного кода из не надежных источников.
Microsoft.NET Framework Оборудование компьютера Операционная система Window XP/Vista и др. Виртуальная машина – Common Language Runtime (CLR) Библиотека Framework Class Library (FCL) ADO.NET Windows Forms ASP.NET Базовые классы (IO, string, collections, text, … ) Компилятор C#Компилятор VB Компилятор С++... Приложения пользователей Visual Studio.NET.NET Framework
Основные идеи.NET 1. Общий промежуточный язык (Common Intermediate Language - CIL) Все компиляторы.NET создают программу на специальном языке CIL 2. Общая среда выполнения (Common Language Runtime - CLR) Все программы выполняются под управлением специальной программы (CLR) 3. При выполнении программы, написанные на любом языке, используют общую библиотеку классов (Framework Class Library - FCL)
Стек технологий платформы Microsoft.NET
Примеры программ.NET: Microsoft VisualStudio 2012+
Примеры программ.NET: SharpDevelop (
Примеры программ.NET: Microsoft Office 2012+
Примеры программ.NET: XNA Games are written in XNA Game Studio
Примеры программ.NET: AutoDesk AutoCAD 2013
Примеры программ.NET: Windows PowerShell
Примеры программ.NET: Microsoft Blend
Основные требования к литературе Версия.NET не ниже 4.0! Наличие ООП, ADO.NET, LINQ, Entity framework, WPF
Книги Язык программирования C# 5.0 и платформа.NET 4.5, 6-е издание Авторы: Э. Троелсен Год издания: 2010 Издательство: Вильямс Страниц: 544 Признанный эксперт мирового уровня - Эндрю Троелсен, обучающий.NET с самой первой версии, поможет вам обрести с помощью книги «Язык программирования C# 5.0 и платформа.NET 4.5» глубокое понимание ключевых аспектов языка программирования C#, а также новых функциональных возможностей платформы, которые появились в версии.NET 4.5.
Microsoft Visual Studio
Интегрированная среда разработки Microsoft Visual Studio Это основная интегрированная среда разработки программ для платформы.NET компании Microsoft. Может использоваться для разработки программ с консольным и графическим интерфейсом, Web сайтов, web приложений и web сервисов для всех OC (Microsoft Windows, Windows Mobile), поддерживающих.NET Framework,.NET Compact Framework and Microsoft Silverlight. Это программа предоставляет программисту доступ ко множеству различных полезных инструментов.NET Framework компиляторы, редактор текста, отладчик, справочная система, система визуального проектирования и генерации программ) Обозреватель объектов (Object Browser)
Visual Studio поддерживает 1. Проектирование приложения (рассмотрим позже) 2. Управление разработкой программы 1. Проект – тип результата, отдельные папки и опции компилятора 2. Решение – набор проектов 3. Составление программы 1. Выбор языка программирования 2. Визуальное программирование интерфейса 3. Составление и редактирование кода 4. Отладку и выполнение программы 5. Справочное обеспечение 6. Общение с другими программистами
Типы проектов – создаваемых прикладных программ Application – Приложения Console (консольные приложения), Windows (windows приложения), Smart Device (PDAs, mobile phones ) ASP.NET Web (web приложения - сайты) ASP.NET Mobile Web (приложения для мобильного доступа к web ) Library – Библиотеки Class (библиотека классов), Windows Controls (библиотека элементов управления для Windows Form) Web Controls (библиотека элементов управления для Web Form) Services - Сервисы Windows services (фоновые программы) Web services (предоставление доступа к классам в WWW)
Console Applications Console User Interface (CUI)
Windows Applications Graphical User Interface (GUI)
Web Application
Разработка для планшетов и смартфонов
Начальная страница (start page) Скрытое окно Toolbox Последние проекты Создание Нового Проекта
Создание новых проектов Создание нового проекта Создание нового web-сайта Создание нового файла
Создание нового проекта (File/New Project/Project) Название проекта Выбор языка прогр. Выбор типа проекта Размещение проекта Название решения
Решения и проекты Project (проект) это набор файлов для создания отдельной программы Solution (решение) - это набор проектов для создания программного комплекса для решения сложной проблемы Site (сайт) это набор файлов для создания программы, которая будет работать в сети Интернет.
Проект Набор файлов для создания сборок Все файлы в одной папке с именем проекта Содержание проекта Описание проекта.csproj Описание сборки AssemblyInfo.cs Файлы с кодом.cs
Решение Оболочка для набора проектов Решение может размещаться в отдельной папке или в папке с проектов. Если решение в отдельной папке, то все проекты в подкаталогах этой папки Файлы решения Описание решения.sln Опции и конфигурация решения.suo Решение Проект АПроект BПроект CПроект D
Пример иерархии Решения Solution Projects Files
Управление проектами и решениями Создание проекта Окна для управления проектами Project Explorer Class View Project properties Задание начального проекта Управление ссылками Добавление ссылки Просмотр состава используемых модулей
Свойства проекта
Окно редактирования кода Editor Window Свертывае- мые области (Collapsed Region) Свертываемые Процедуры (Collapsed Procedure) Список классов (Class List) Список методов Method List Закладки - Tabs
Справочная система MS Visual Studio Documentation (F1) MSDN Library Локальная В Интернет ( На русском языке ( Dynamic help (Динамическая справка) IntelliSense Документирование собственного кода
MSDN Library
Библиотека MSDN на русском языке ( )
IntelliSense Выбор имени метода класса
IntelliSense Выбор параметров метода
Первая программа
1. Запускаем интерактивную среду разработки (IDE) MS Visual Studio
2. Создаем новый проект
1. Выбираем язык программирования C# 2. Выбираем версию.NET 4 3. Выбираем тип приложения (консольное) 4. Задаем название решения (MyFirstSolution) 5. Задаем название проекта (MyFirstProject) 6. Задаем расположение решения 7. Нажимаем кнопку «Ok»
3. Настраиваем среду разработки Обозреватель Решения (Solution Explorer) View Solution Explorer Область редактора кода (В обозревателе решения выбрать файл Program.cs)
4. Пишем код using System; namespace MyFirstProject { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadLine(); }
5. Выполняем код
6. Результат выполнения программы
Во время выполнения программы…
7. Компиляция (Debug/Release)
8. Результат компиляции
Задание для практического занятия. Попробуйте вставить в проект следующий код static void Main(string[] args) { Console.Write("Имя пользователя: "); String userName = Console.ReadLine(); Console.Write("Пароль: "); String userPassword = Console.ReadLine(); Console.WriteLine("Здравствуйте " + userName + "!"); Console.WriteLine("Ваг пароль: \"{0}\"!", userPassword); Console.ReadLine(); }
Первая программа
1. К решению MyFirstSolution добавляем новый проект
2. Создаем новый Windows Forms проект
3. Окон дизайнера формы Form1 проекта MyFirstWinApp
4. Делаем проект MyFirstWinApp активным (текущим)
5. Настраиваем свойства формы Для перехода к окну свойств необходимо выполнить любое из перечисленных ниже действий: нажать правую кнопку мыши на форме и в контекстном меню выбрать пункт «Properties» щелкнуть левой кнопкой мыши по элементу (форме) и нажать кнопку F4 в главном меню выбрать пункт «View» (вид) «Properties Window» (окно свойств)
6. Внешний вид панели настройки свойств компонентов
7. Настраиваем свойства окна BackColor: ControlDark Text: My First Windows Forms Application Size: 640, 480 StartPosition: ScreenCenter Opacity:75%
8. После настройки свойств, получим
9. Панель инструментов (View->Toolbox, Ctrl+Alt+X)
10. Выбираем StatusStrip и перетаскиваем на форму
11. Выбираем элемент управления StatusStrip
12. Настраиваем свойства компонента StatusStrip Выбираем элемент управления StatusStrip (Name): _statusStrip Выбираем свойство Items и вызываем встроенный редактор свойства
13. Настраиваем свойство Items компонента StatusStrip
14. Настраиваем свойство Items компонента StatusStrip
15. После настройки свойств, получим
16. Выбираем компонент Panel, расположенный на панели инструментов в разделе Containers и перетаскиваем его на форму
17. Настраиваем его свойства (Name):_panel BackColor:Transparent Dock:Top
18. Внутрь панели добавляем три кнопки (Button)
19. Внутрь панели добавляем метку (Label) и текстовое поле TextBox
20. На форму добавляем WebBrowser
21. Настраиваем свойства компонентов по порядку 1. webBrowser1: (Name):_webBrowser Dock:Fill 2. textBox1: (Name):_tbAddress Text: Anchor:Top,Left,Right 3. label1: (Name):_lblAddress Text:URL 4. button1: (Name):_btnBack Text: Back 5. button2: (Name):_btnStop Text:Stop 6. button3: (Name):_btnRefresh Text:Refresh 7._panel: AutoSize:true AutoSizeMode:GrowAndShrink
22. По завершении настройки всех свойств, получим
23. Выполняем двойной клик левой кнопкой мыши по кнопке «Back» и переходим в область кода... namespace MyFirstWinApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void _btnBack_Click(object sender, EventArgs e) { }
24. В область кода добавим следующие строки... private void _btnBack_Click(object sender, EventArgs e) { _webBrowser.GoBack(); MessageBox.Show("Go Back!"); }...
25. Вновь перейдем к дизайнеру формы
26. Выполняем двойной клик левой кнопкой мыши по кнопке «Stop» и, перейдя в область кода, напишем:... private void _btnStop_Click(object sender, EventArgs e) { _webBrowser.Stop(); MessageBox.Show("The page loading was stopped!"); }...
27. Аналогичным образом реализуем обработку события обновления страницы (кнопка «Refresh»):... private void _btnRefresh_Click(object sender, EventArgs e) { _webBrowser.Refresh(); MessageBox.Show("The page is refreshing!"); }...
28. В дизайнере форм выделим текстовое поле. В редакторе свойств компонента TextBox выполним переход к событиям: 1. Выбрать текстовое поле _tbAddress 2. В редакторе свойств выбрать кнопку с изображением "Молния" (перейти к событиям). 3. Выбрать пункт KeyPress 4. Выполнить на нем двойной клик левой кнопкой мыши Свойства = характеристики компонента События = поведение компонента Для того чтобы вернуться обратно к списку свойств нужно нажать на кнопку с изображением документа (Properties), которая расположена слева от кнопки "События" (Events).
29. Добавим следующий код, чтобы по нажатию клавиши Enter в текстовом поле происходило загрузка новой вэб-страницы... private void _tbAddress_KeyPress(object sender, KeyPressEventArgs e) { try { // Если нажали на кнопку Enter if (e.KeyChar == '\r' || e.KeyChar == '\n') { _webBrowser.Url = new Uri(_tbAddress.Text); } catch (Exception ex) {// В случае непредвиденной ошибки вывести о ней сообщение MessageBox.Show(ex.Message); }...
30. В результата успешного выполнения приведенных выше шагов получим следующую программу
Задание для практического занятия. Самостоятельно реализовать приведенные выше проекты, входящие в состав решения MyFirstSolution. К решению добавить проект MyLogin, реализующий диалоговое окно ввода логина и пароля пользователя. Когда пользователь нажмет на кнопку должно быть отображено диалоговое окно с сообщением: "Здравствуйте {0}! Ваш пароль {1}". Для форматирования строки использовать метод String.Fromat.
Вопросы?