Кратко съдържание

Том 2

Кратко съдържание. 2

Съдържание. 13

Предговор към втория том. 33

Глава 15. Изграждане на графичен потребителски интерфейс с Windows Forms  55

Глава 16. Изграждане на уеб приложения с ASP.NET. 173

Глава 17. Многонишково програмиране и синхронизация. 283

Глава 18. Мрежово и Интернет програмиране. 349

Глава 19. Отражение на типовете (Reflection). 431

Глава 20. Сериализация на данни. 459

Глава 21. Уеб услуги с ASP.NET. 501

Глава 22. Отдалечени извиквания с .NET Remoting. 587

Глава 23. Взаимодействие с неуправляван код. 631

Глава 24. Управление на паметта и ресурсите. 675

Глава 25. Асемблита и разпространение. 747

Глава 26. Сигурност в .NET Framework. 815

Глава 27. Mono – свободна имплементация на .NET Framework. 863

Глава 28. Помощни инструменти за .NET разработчици. 909

Глава 29. Практически проект. 971

Заключение към втория том. 1031

 


Програмиране за .NET Framework

 

Светлин Наков и колектив

 

 


Александър Русев

Александър Хаджикръстев

Антон Андреев

Бранимир Ангелов

Васил Бакалов

Виктор Живков

Галин Илиев

Георги Пенчев

Деян Варчев

Димитър Бонев

Димитър Канев

Ивайло Димов

Ивайло Христов

Иван Митев

Лазар Кирчев

Манол Донев

Мартин Кулов

Михаил Стойнов

Моника Алексиева

Николай Недялков

Панайот Добриков

Преслав Наков

Радослав Иванов

Рослан Борисов

Светлин Наков

Стефан Добрев

Стефан Захариев

Стефан Кирязов

Стоян Дамов

Тодор Колев

Христо Дешев

Христо Радков

Цветелин Андреев

Явор Ташев


 

 

 

Българска асоциация на разработчиците на софтуер

София, 2004-2006


Програмиране за .NET Framework (том 2)

 

© Българска асоциация на разработчиците на софтуер (БАРС), 2006 г.

 

Настоящата книга се разпространява свободно при следните условия:

Читателите имат право:

-        да използват книгата и учебните материали към нея или части от тях за всякакви цели, включително да ги да променят според своите нужди и да ги използват при извършване на комерсиална дейност;

-        да използват сорс кода от примерите и демонстрациите, включени към книгата и учебните материали или техни модификации, за всякакви нужди, включително и в комерсиални софтуерни продукти;

-        да разпространяват безплатно непроменени копия на книгата и учеб­ните материали в електронен или хартиен вид;

-        да разпространяват безплатно оригинални или променени части от учебните материали, но само при изричното споменаване на източника и авторите на съответния текст, програмен код или друг материал.

Читателите нямат право:

-        да разпространяват срещу заплащане книгата, учебните матери­али или части от тях (включително модифицирани версии), като изключе­ние прави само програмният код;

-        да премахват настоящия лиценз от книгата или учебните материали.

 

Всички запазени марки, използвани в тази книга, са собственост на техните притежатели.

 

 

Официален уеб сайт:

www.devbg.org/dotnetbook/

 

ISBN: 954-775-672-9

ISBN: 978-954-775-672-4


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

Лекторите

» Светлин Наков е автор на десетки технически публи­ка­ции и ня­колко книги, свър­­зани с раз­работката на соф­ту­ер, заради което е тър­сен лектор и кон­султант.

Той е разработчик с дъл­гого­дишен опит, работил по раз­нообразни проекти, реали­зи­рани с раз­лични техноло­гии (.NET, Java, Oracle, PKI и др.) и преподавател по съвре­мен­ни софтуерни технологии в СУ "Св. Климент Охридски".

През 2004 г. е носител на награ­дата "Джон Атанасов" на прези­дента на България Ге­орги Пър­ва­нов.

Светлин Наков ръководи обу­чението по Java технологии в Академията.

 

» Мартин Кулов е софтуерен инженер и консул­тант с дългогодишен опит в изграждането на решения с платформите на Microsoft.

Мартин е опитен инструктор и сертифициран от Майкрософт разработчик по програмите MCSD, MCSD.NET, MCPD и MVP и меж­дународен лектор в световна­та организа­ция на .NET потре­бителски­те групи INETA.

Мартин Кулов ръководи обу­чението по .NET технологии в Академията.

Академията

» Национална академия по раз­ра­ботка на софтуер (НАРС) е център за професионално обу­чение на соф­ту­ерни специалисти.

 

» НАРС провежда БЕЗПЛАТНО кур­сове по разработка на софтуер и съв­ременни софтуерни тех­нологии в Со­фия и други градове.

 

» Предлагани специалности:

§      Въведение в програмирането (с езиците C# и Java)

§      Core .NET Developer

§      Core Java Developer

 

» Качествено обу­чение с много практически про­екти и индивиду­ално внимание за всеки.

 

» Гарантирана работа! Трудов до­говор при постъпване в Академията.

 

» БЕЗПЛАТНО!

Учите безплатно във въведителните курсове и по стипендии от работода­телите в следващите нива.

http://academy.devbg.org




 

 

 


 

 

www.devbg.org

 

 

Българска асоциация на разработчиците на софтуер (БАРС) е нестопанска организация, която подпомага про­фе­сионалното развитие на българските софтуерни специ­а­листи чрез образо­вателни и други инициативи.

БАРС работи за насърчаване обмяната на опит между раз­работ­чиците и за усъвършенстване на техните знания и умения в областта на проектирането и разработката на софтуер.

Асоциацията организира специализирани конференции, семи­нари и курсове за обучение по разработка на софту­ер и софту­ерни технологии.

БАРС организира създаването на Национална академия по раз­работка на софтуер – учебен център за професионал­на подго­товка на софтуерни специалисти.

 


Отзив от Теодор Милев

 

Свидетели сме как платформата Microsoft .NET се налага все повече в света на софтуерните технологии. Тази тенденция се наблюдава и в България, където прогресивно нараства броят на проектите, реализирани на базата на .NET. С увеличаване на .NET разработчиците расте и нуждата от качествена техническа литература и учебни материали, които да бъдат използвани при обучението на .NET специалисти.

"Програмиране за .NET Framework" е първата чисто българска книга за Microsoft .NET технологиите. Тя представя на читателя в последователен, структуриран, достъпен и разбираем вид основните концепции за разра­ботка на приложения с .NET Framework и езика C#. Книгата обхваща в детайли всички основни .NET технологии като набляга върху най-важните от тях – ADO.NET, ASP.NET, Windows Forms и XML уеб услуги.

По качество на изложения материал книгата се отличава с високо профе­сионално ниво и превъзхожда повечето преводни издания по темата. Тя е отлично структурирана, а стилът на изложени­ето е лесен за възприемане. Инфор­мацията е поднесена с много примери, а това е най-важното за един софтуерен разработчик.

Книгата е написана от широк екип доказани специалисти, работещи в партньорските фирми на Майкрософт – хора с опит в разработката на .NET приложения. Основният автор и ръководител на проекта, Светлин Наков, е изтъкнат .NET специалист, лектор в множество семинари и кон­ференции, търсен консул­тант и преподавател. Негови са заслугите за курсовете по програ­миране за платформа .NET във Факултета по матема­тика и информатика на Софийски университет. Негови са и основните заслуги за целия проект по изготвяне на изчерпателно учебно съдържа­ние и книга по програми­ране за .NET Framework.

Светлин Наков е носител на най-голямото отличие в областта на информа­ционните технологии – наградата "Джон Атанасов" на Президента Георги Първанов за принос към развитието на информационните техно­логии информационното общество. Той е автор на десетки статии и книги за програмиране, а настоящото издание е поредната му добра изява.

Настоящата книга е отлично учебно пособие както за начинаещи, така и за напреднали читатели, които имат желание и амбиции да станат профе­сионални .NET разработчици.

 

Теодор Милев,

Управляващ директор на "Майкрософт България"


Отзив от Божидар Сендов

 

Книгата е оригинално българско творение, с нищо неотстъпващо по каче­ство и обем на световните бестселъри с компютърна тематика. Мате­риалът е поднесен достъпно и е богато илюстриран с примери, което я прави не само отлично въведение в платформата .NET за начинаещия, но и отличен справочник за професионалиста-програмист на C#. Читателят може да се запознае в детайли не само с общите принципи, но и с редица тънкости на програмирането за .NET. Широко застъпени са редица "уни­версални" теми като обектно-ориентирано програмиране, регулярни изра­зи, XML, релаци­онни бази данни, програмиране в Интернет, многозадач­ност, сигурност и др.

Книгата се отличава със стегнат и ясен стил на изложението, като е постигнато завидно педагогическо майсторство. Това не бива да ни изне­надва – авторите са водещи специалисти с богат опит не само като профе­сионални софтуерни разработчици, но и като преподаватели във Факул­тета по математика и информатика (ФМИ) на СУ "Св. Климент Охридски". Самата книга в значителна степен се основава на работни лекции, изпол­звани и проверени в поредица от курсове по програмиране за .NET Framework във ФМИ. Сайтът на книгата съдържа над 2000 безплатни слайда, следващи стриктно съдържанието й, а книгата е напълно безплат­на в електронния си вариант, което максимално улеснява използването й в съответен курс по програмиране.

Не на последно място, заслужава да се отбележи систематичният опит за превод на всички термини на български език, съобразен с вече наложи­лата се българска терминология, но и с оригинални идеи при новите понятия.

Работата, която авторите са свършили, е наистина чудесна, а книгата е задължителна част от библиотеката на всеки с интерес към езика C# и изобщо към водещата платформа на Майкрософт .NET.

 

 

 

доц. д-р Божидар Сендов

Факултет по математика и Информатика,

Софийски Университет "Св. Климент Охридски"


Отзив от Стоян Йорданов

 

"Програмиране за .NET Framework" е уникално ръководство за платформа­та .NET. Въпреки, че не е учебник по програмиране, книгата е изключи­телно подходяща както за начинаещия програмист, сблъскващ се за пръв път с .NET, така и за опитния разработчик на .NET приложения, целящ да систематизира и попълни знанията си. Всяка тема в "Програмиране за .NET Framework" започва с основите на разглежданите в нея технологии, но към края на темата читателят е вече запознат с детайлите и тънкос­тите, необходими за успешното им прилагане в практиката.

Обхващайки най-важните аспекти на .NET Framework, книгата започва от основите на езика C# и .NET платформата и постепенно достига до сложни концепции като уеб услуги, сигурност, сериализация, работа с отдалечени обекти, манипулиране на бази данни чрез ADO.NET, потреби­телски интерфейс с Windows Forms, ASP.NET уеб приложения и т.н. Информацията е поднесена изключително достъпно и подкрепена с много­бройни примери и илюстрации. Всяка тема включва и упражнения за самостоятелна работа – неотменим елемент за затвърдяване на придоби­тите от нея знания.

Авторският колектив включва утвърдени специалисти от софтуерните среди. Въпреки, че авторите са над 30, "Програмиране за .NET Framework" не е просто сборник от статии; напротив – всеки от тях е допринесъл с опита и труда си, за да може книгата да бъде това, което е – добре структурирано и изчерпателно ръководство.

Учебник за студента или справочник за специалиста – "Програмиране за .NET Framework" е задължителна за библиотеката на всеки който има досег с .NET.

 

 

 

 

 

Стоян Йорданов,

Software Design Engineer,

Microsoft Corpartion (Redmond)

 

* Мнението е лично на автора му и не обвързва Microsoft Corporation по никакъв начин


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

Лекторите

» Светлин Наков е автор на десетки технически публи­ка­ции и ня­колко книги, свър­­зани с раз­работката на соф­ту­ер, заради което е тър­сен лектор и кон­султант.

Той е разработчик с дъл­гого­дишен опит, работил по раз­нообразни проекти, реали­зи­рани с раз­лични техноло­гии (.NET, Java, Oracle, PKI и др.) и преподавател по съвре­мен­ни софтуерни технологии в СУ "Св. Климент Охридски".

През 2004 г. е носител на награ­дата "Джон Атанасов" на прези­дента на България Ге­орги Пър­ва­нов.

Светлин Наков ръководи обу­чението по Java технологии в Академията.

 

» Мартин Кулов е софтуерен инженер и консул­тант с дългогодишен опит в изграждането на решения с платформите на Microsoft.

Мартин е опитен инструктор и сертифициран от Майкрософт разработчик по програмите MCSD, MCSD.NET, MCPD и MVP и меж­дународен лектор в световна­та организа­ция на .NET потре­бителски­те групи INETA.

Мартин Кулов ръководи обу­чението по .NET технологии в Академията.

Академията

» Национална академия по раз­ра­ботка на софтуер (НАРС) е център за професионално обу­чение на соф­ту­ерни специалисти.

 

» НАРС провежда БЕЗПЛАТНО кур­сове по разработка на софтуер и съв­ременни софтуерни тех­нологии в Со­фия и други градове.

 

» Предлагани специалности:

§      Въведение в програмирането (с езиците C# и Java)

§      Core .NET Developer

§      Core Java Developer

 

» Качествено обу­чение с много практически про­екти и индивиду­ално внимание за всеки.

 

» Гарантирана работа! Трудов до­говор при постъпване в Академията.

 

» БЕЗПЛАТНО!

Учите безплатно във въведителните курсове и по стипендии от работода­телите в следващите нива.

http://academy.devbg.org


Съдържание

Том 2

Кратко съдържание. 2

Съдържание. 13

Предговор към втория том. 33

За кого е предназначена тази книга? 33

Необходими начални познания. 33

Какво обхваща вторият том на тази книга? 34

Фокусът е върху .NET Framework 1.1. 34

Как е представена информацията? 34

Поглед към съдържанието на втория том. 35

Глава 15. Графичен потребителски интерфейс с Windows Forms. 35

Глава 16. Изграждане на уеб приложения с ASP.NET. 35

Глава 17. Многонишково програмиране и синхронизация. 36

Глава 18. Мрежово и Интернет програмиране. 36

Глава 19. Отражение на типовете (Reflection) 37

Глава 20. Сериализация на данни. 37

Глава 21. Уеб услуги с ASP.NET. 37

Глава 22. Отдалечено извикване на методи (Remoting) 38

Глава 23. Взаимодействие с неуправляван код. 38

Глава 24. Управление на паметта и ресурсите. 38

Глава 25. Асемблита и разпространение (deployment) 39

Глава 26. Сигурност в .NET Framework. 39

Глава 27. Mono - свободна имплементация на .NET. 39

Глава 28. Помощни инструменти за .NET разработчици. 39

Глава 29. Практически проект. 40

Авторският колектив. 40

Александър Русев. 40

Александър Хаджикръстев. 41

Антон Андреев. 41

Бранимир Ангелов. 41

Васил Бакалов. 41

Виктор Живков. 42

Деян Варчев. 42

Димитър Бонев. 42

Димитър Канев. 42

Галин Илиев. 43

Георги Пенчев. 43

Иван Митев. 43

Ивайло Димов. 44

Ивайло Христов. 44

Лазар Кирчев. 44

Манол Донев. 44

Мартин Кулов. 45

Михаил Стойнов. 45

Моника Алексиева. 45

Николай Недялков. 45

Панайот Добриков. 46

Преслав Наков. 46

Радослав Иванов. 47

Рослан Борисов. 47

Светлин Наков. 47

Стефан Добрев. 48

Стефан Кирязов. 48

Стефан Захариев. 48

Стоян Дамов. 49

Тодор Колев. 49

Христо Дешев. 49

Христо Радков. 49

Цветелин Андреев. 50

Явор Ташев. 50

Благодарности. 50

Светлин Наков. 50

Авторският колектив. 51

Българска асоциация на разработчиците на софтуер. 51

Microsoft Research. 51

SciForge.org. 51

Софийски университет "Св. Климент Охридски". 52

telerik. 52

Сайтът на книгата. 52

Лиценз 52

Общи дефиниции. 52

Права и ограничения на потребителите. 53

Права и ограничения на авторите. 53

Права и ограничения на БАРС. 54

Права и ограничения на Microsoft Research. 54

Глава 15. Изграждане на графичен потребителски интерфейс с Windows Forms  55

Автори. 55

Необходими знания. 55

Съдържание. 55

В тази тема ... 56

Какво е Windows Forms? 57

Windows Forms е базирана на RAD концепцията. 57

Windows Forms и другите библиотеки за изграждане на GUI 58

Контролите в Windows Forms. 58

Windows Forms и работа с данни. 59

Вградена поддръжка на Unicode. 59

Наследяване на форми и контроли. 59

ActiveX контроли. 59

Печатане на принтер. 60

Windows Forms контроли в Internet Explorer 60

Силна поддръжка на графика (GDI+) 60

Нашето първо Windows Forms приложение. 60

Библиотеките на .NET за изграждане на GUI 62

Пространството System.Windows.Forms. 62

Пространството System.Drawing. 63

Програмни компоненти. 63

Компонентен модел. 63

Компонентният модел на .NET Framework 63

Компоненти и контейнери. 63

Преизползваемост на компонентите. 63

Пространството System.ComponentModel 64

Windows Forms и компонентният модел на .NET. 64

Контроли и контейнер-контроли. 64

Програмен модел на Windows Forms 64

Форми. 64

Контроли. 65

Събития. 65

Жизнен цикъл на Windows Forms приложенията. 65

Модел на пречертаване на контролите. 67

Управление на фокуса и навигация. 69

Основни класове в Windows Forms 69

Йерархия на класовете. 70

Класът Control 71

Свойства на класа Control 71

Методи на класа Control 73

Събития на класа Control 73

Класът ScrollableControl 74

Класът ContainerControl 75

Форми, прозорци и диалози. 75

Класът System.Windows.Forms.Form.. 75

По-важни свойства на класа Form.. 75

По-важни методи на класа Form.. 77

По-важни събития на класа Form.. 78

Основни контроли в Windows Forms 78

TextBox. 78

Label 79

Button. 79

Поставяне на контроли във формата. 79

Управление на събитията. 79

Прост калкулатор – пример. 80

Windows Forms редакторът на VS.NET. 83

Създаване на форма. 83

Добавяне на контрола. 84

Добавяне на неграфични компоненти. 84

Настройка на свойства. 84

Добавяне на обработчици на събития. 85

Създаване на калкулатор с Windows Forms редактора на VS.NET – пример. 86

Диалогови кутии. 88

Стандартни диалогови кутии. 88

Извикване на диалогови кутии. 89

DialogResult и предаване на данни между диалози – пример. 89

Други Windows Forms контроли. 92

CheckBox. 92

RadioButton. 92

Panel 92

TabControl и TabPage. 93

ListBox. 93

CheckedListBox. 93

ComboBox. 94

TreeView.. 94

RichTextBox. 94

LinkLabel 95

PictureBox. 95

Работа с някои Windows Forms контроли – пример. 95

Менюта. 99

MainMenu. 99

ContextMenu. 99

MenuItem.. 99

Ленти с инструменти. 100

ToolBar 100

ToolBarButton. 100

ImageList 100

Статус ленти. 101

StatusBar 101

StatusBarPanel 101

Диалог за избор на файл. 101

OpenFileDialog. 101

SaveFileDialog. 102

Работа с файлов диалог – пример. 102

MDI приложения. 103

MDI контейнери (MDI parents) 104

MDI форми (MDI children) 104

Създаване на многодокументов текстов редактор – пример. 104

Валидация на данни. 115

Валидация на данни – пример. 116

Свързване на данни. 121

Източници на данни. 122

Контроли, поддържащи свързване на данни. 122

Видове свързване. 122

Просто свързване. 123

Сложно свързване. 131

Контролата DataGrid. 133

Работа с DataGrid контролата – пример. 133

TableStyles и дефиниране на стилове – пример. 135

Master-Details навигация. 137

Master-Details навигация – пример. 138

Проблеми при Master-Details навигацията. 141

Релации "много към много". 141

Наследяване на форми. 142

Наследяване на форми – пример. 142

Пакетът System.Drawing и GDI+. 146

Класът Graphics. 147

Работа със System.Drawing – пример. 147

Анимация със System.Drawing – пример. 148

Печатане на принтер. 150

Потребителски контроли. 151

Създаване на нова контрола, която не наследява съществуваща. 151

Създаване на нова контрола като комбинация от други контроли. 151

Създаване на нова контрола, която наследява съществуваща контрола. 152

Създаване на контрола – пример. 152

Хостинг на контроли в Internet Explorer 157

Хостинг на контроли в Internet Explorer – пример. 157

Нишки и Windows Forms 160

Използване на нишки в Windows Forms приложения – пример. 161

Влачене (Drag and Drop) 165

Влачене и пускане в Windows Forms – пример. 165

Конфигурационен файл на приложението. 167

Извличане на настройки от конфигурационен файл – пример. 167

Упражнения. 169

Използвана литература. 172

Глава 16. Изграждане на уеб приложения с ASP.NET. 173

Автори. 173

Необходими знания. 173

Съдържание. 173

В тази тема ... 174

Въведение. 175

Изпълнение на ASP.NET уеб приложение. 175

Преглед на технологията ASP.NET. 175

Разлики между ASP и ASP.NET. 176

Фундаменти на ASP.NET. 176

Как работи ASP.NET?. 177

Разделяне на визуализация от бизнес логика. 178

Компоненти на ASP.NET. 179

Пример за уеб приложение. 180

ASP.NET Web Application проекти във VS.NET. 181

Модел на изпълнение на ASP.NET. 182

Уеб форми. 183