SlideShare une entreprise Scribd logo
1  sur  1032
Télécharger pour lire hors ligne
Кратко съдържание
Том 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
14 Програмиране за .NET Framework (том 2)
Михаил Стойнов ......................................................................................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
Програмиране за .NET Framework (том 2) 15
Пространството 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
16 Програмиране за .NET Framework (том 2)
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
Програмиране за .NET Framework (том 2) 17
Създаване на нова контрола като комбинация от други контроли .............. 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
Какво е уеб форма (Web Form)?.............................................................. 183
Създаване на уеб форма ........................................................................ 183
Директиви............................................................................................. 184
Директивата <@Page …>........................................................................ 185
Атрибути на директивата <@Page …>...................................................... 185
Тагът <form> ........................................................................................ 186
Вградени обекти в ASP.NET .................................................................... 186
Уеб контроли ................................................................................ 186
ASP.NET сървърни контроли ................................................................... 187
HTML сървърни контроли (HTML server controls) ....................................... 188
Уеб сървърни контроли (Web server controls) ........................................... 190
Кои контроли да ползваме? .................................................................... 191
Категории уеб сървърни контроли........................................................... 192
Code-behind.................................................................................. 195
Добавяне на код в уеб форма ................................................................. 195
Inline code............................................................................................. 195
Code-behind класове .............................................................................. 196
Как работи code-behind?......................................................................... 196
JIT компилация...................................................................................... 196
Събития ....................................................................................... 197
Прихващане на събития ......................................................................... 197
18 Програмиране за .NET Framework (том 2)
Свойството AutoEventWireup ................................................................... 197
Жизнен цикъл на ASP.NET страниците ............................................ 198
Свойството IsPostBack............................................................................ 198
Свойството AutoPostBack ........................................................................ 199
HTML escaping проблеми................................................................ 200
HTML escaping проблеми – пример .......................................................... 200
Свързване с данни (Data binding) ................................................... 202
Как работи методът DataBind(…)?............................................................ 202
Свързване на контроли с данни – пример ................................................ 203
Работа с бази от данни от ASP.NET ................................................. 209
Обзор на ADO.NET ................................................................................. 209
Визуализиране на данни ........................................................................ 210
Свързване на данни (data binding) .......................................................... 210
Контроли за показване на данни............................................................. 212
Списъчни контроли................................................................................ 213
Итериращи контроли.............................................................................. 219
Управление на състоянието............................................................ 228
Бисквитки (Cookies)............................................................................... 228
Скрити полета ....................................................................................... 230
Параметризирани адреси (Query Strings) ................................................. 231
Технологията ViewState.......................................................................... 232
Състояние на приложението ................................................................... 234
Състояние на сесиите............................................................................. 237
Валидация на данни...................................................................... 239
RequiredFieldValidator – проверка за наличие на данни ............................. 240
CompareValidator – проверка на входните данни ...................................... 241
RangeValidator – проверка попадане в интервал....................................... 242
RegularExpressionValidator – сравняване с регулярен израз ....................... 243
CustomValidator – произволна проверка................................................... 243
ValidationSummary – списък на грешките................................................. 246
Йерархия на класовете валидатори ......................................................... 247
Общи свойства за валидаторите.............................................................. 247
Кога и къде се извършва валидацията? ................................................... 248
Защо винаги на сървъра? ....................................................................... 248
Особености при валидацията при клиента ............................................... 249
Потребителски контроли................................................................ 250
Потребителски контроли и уеб форми ..................................................... 250
Предимства при използването на потребителски контроли ........................ 250
Споделяне на потребителски контроли .................................................... 250
Използване на потребителски контроли................................................... 251
Създаване на потребителска контрола – пример ...................................... 251
Проследяване и дебъгване на уеб приложния.................................. 254
Информация по време на изпълнение...................................................... 254
Проследяване........................................................................................ 254
Отдалечено дебъгване ........................................................................... 257
Оптимизация, конфигурация и разгръщане на ASP.NET приложения.. 258
Оптимизиране чрез кеширане................................................................. 258
Конфигуриране на ASP.NET приложение.................................................. 262
Разгръщане на приложението ................................................................. 266
Сигурност в ASP.NET ..................................................................... 268
Автентикация и оторизация .................................................................... 268
Видове автентикация в ASP.NET.............................................................. 269
Програмиране за .NET Framework (том 2) 19
Сигурност на ниво сървър (IIS Security) .................................................. 276
Упражнения.................................................................................. 279
Използвана литература ................................................................. 281
Глава 17. Многонишково програмиране и синхронизация...........283
Автори ......................................................................................... 283
Необходими знания....................................................................... 283
Съдържание ................................................................................. 283
В тази тема .................................................................................. 284
Многозадачност ............................................................................ 285
Проблемът ............................................................................................ 285
Ползите от многозадачността.................................................................. 285
Защо е нужна многозадачност – пример .................................................. 285
Решението – процеси и нишки ................................................................ 287
Процеси и нишки................................................................................... 287
Какво предлагат нишките? ..................................................................... 288
Кога са удобни нишките? ....................................................................... 288
Многозадачност – видове ....................................................................... 288
Имплементации на многозадачност ......................................................... 289
Домейни на приложението (Application Domains) ...................................... 290
Нишки.......................................................................................... 291
Как работят нишките? ............................................................................ 291
Класът Thread ....................................................................................... 293
Приоритет............................................................................................. 298
Състояния............................................................................................. 299
Живот на нишките ................................................................................. 300
Прекратяване на нишка ......................................................................... 300
Thread Local Storage (локални за нишката данни)..................................... 305
Thread-Relative Static Fields (статични полета, свързани с нишката) ........... 306
Неудобства при работата с нишки ........................................................... 308
Проблеми при работа с общи данни......................................................... 308
Синхронизация ............................................................................. 310
Най-доброто решение за общите данни ................................................... 310
Синхронизирани "пасажи" код (synchronized code regions) ........................ 311
Синхронизирани контексти (Synchronized Contexts).................................. 315
MethodImplAttribute ............................................................................... 317
Неуправлявана синхронизация – класът WaitHandle ................................. 317
Класът Mutex......................................................................................... 318
Класовете AutoResetEvent и ManualResetEvent.......................................... 320
Класът Interlocked ................................................................................. 323
Класически синхронизационни задачи..................................................... 325
Пул от нишки (ThreadPool)............................................................. 329
Предимства ........................................................................................... 330
Недостатъци.......................................................................................... 330
Класът ThreadPool.................................................................................. 330
Методът ThreadPool.RegisterWaitForSingleObject() ..................................... 331
Интерфейсът ISynchronizeInvoke .................................................... 333
Използване на ISynchronizeInvoke........................................................... 333
Windows Forms и ISynchronizeInvoke ....................................................... 335
Таймери ....................................................................................... 335
System.Timers.Timer .............................................................................. 336
System.Threading.Timer.......................................................................... 338
20 Програмиране за .NET Framework (том 2)
System.Windows.Forms.Timer .................................................................. 340
Как да изберем таймер? ......................................................................... 341
Volatile полета .............................................................................. 341
Асинхронни извиквания................................................................. 342
Какво е асинхронно извикване?.............................................................. 342
Къде се ползва асинхронно извикване? ................................................... 342
Асинхронно извикване чрез делегат........................................................ 342
Модел за асинхронно програмиране ........................................................ 343
Сигнатура на методите за асинхронни извиквания.................................... 343
Интерфейсът IAsyncResult ...................................................................... 344
Проверка за приключване на асинхронното извикване ............................. 344
Упражнения.................................................................................. 348
Използвана литература ................................................................. 348
Глава 18. Мрежово и Интернет програмиране..............................349
Автори ......................................................................................... 349
Необходими знания....................................................................... 349
Съдържание ................................................................................. 349
В тази тема .................................................................................. 349
OSI модел .................................................................................... 350
Физическо ниво..................................................................................... 351
Свързващо ниво (канално ниво) ............................................................. 351
Мрежово ниво ....................................................................................... 351
Транспортно ниво .................................................................................. 351
Сесийно ниво ........................................................................................ 351
Представително ниво ............................................................................. 351
Приложно ниво...................................................................................... 351
Основи на мрежовото програмиране ............................................... 352
IP адрес................................................................................................ 352
Domain Name Service (DNS).................................................................... 352
Порт ..................................................................................................... 352
Основни мрежови услуги........................................................................ 353
Мрежов интерфейс ................................................................................ 353
Loopback интерфейс............................................................................... 353
Протоколът TCP ..................................................................................... 354
Протоколът UDP..................................................................................... 354
Как две отдалечени машини си "говорят"? ............................................... 354
Класове за мрежово програмиране в .NET ....................................... 355
Пространството System.Net.Sockets......................................................... 355
Пространството System.Net .................................................................... 356
Представяне на IP адреси в .NET Framework.................................... 357
Класът IPAddress ................................................................................... 357
Класът IPEndPoint .................................................................................. 359
Комуникация по TCP сокет с TcpClient............................................. 359
Създаване и свързване на TcpClient......................................................... 360
Създаване на прост TCP порт скенер – пример ......................................... 362
Предаване на данни по TCP сокет чрез TcpClient и NetworkStream ............. 363
Комуникация с TcpClient – пример........................................................... 366
Настройки на TCP връзката чрез свойствата на TcpClient........................... 370
Изграждане на TCP сървър с TcpListener ......................................... 371
Създаване на TcpListener........................................................................ 371
Приемане на TCP връзки ........................................................................ 371
Програмиране за .NET Framework (том 2) 21
Прост TCP сървър – пример .................................................................... 373
Обслужване на много клиенти едновременно .................................. 375
Едновременно обслужване на клиенти с TcpListener – пример.................... 376
Комуникация по UDP с UdpClient .................................................... 382
Конструктори на UdpClient...................................................................... 383
Задаване на отдалечен сървър по подразбиране ...................................... 383
Изпращане на UDP пакети – метод Send(…).............................................. 384
Получаване на UDP пакети – метод Receive(…) ......................................... 385
Комуникация с UdpClient – пример .......................................................... 385
Сокети на по-ниско ниво – класът Socket........................................ 387
Създаване на Socket обекти и тип на сокета ............................................ 387
Основни операции с класа Socket ........................................................... 388
Сокети с връзка по TCP .......................................................................... 389
Свойства на сокетите и задаване на опции .............................................. 396
Сокет по протокол UDP .......................................................................... 397
Няколко думи за асинхронните сокети ............................................ 403
Свойството Blocking ............................................................................... 403
Асинхронни методи................................................................................ 403
Методите Poll(…) и Select(…) ................................................................... 404
Multicasting в .NET Framework ........................................................ 406
Broadcasting сокети................................................................................ 406
Multicasting сокети ................................................................................. 406
Използване на DNS услуги чрез класа Dns ...................................... 408
Асинхронни DNS заявки ......................................................................... 409
Работа с уеб ресурси – класът WebClient......................................... 409
Извличане на данни по HTTP .................................................................. 410
Изпращане на данни по HTTP.................................................................. 413
Автентикация с Credentials ..................................................................... 414
Други полезни свойства на WebClient ...................................................... 415
HTTP заявки с класовете HttpWebRequest и HttpWebResponse ........... 416
Създаване на HHTP заявка ..................................................................... 416
Изпращане на данни към HTTP сървър..................................................... 416
Получаване на HTTP отговор................................................................... 417
Извличане на Cookies............................................................................. 418
Други видове WebRequest и WebResponse................................................ 419
Работа с HTTP заявки – пример ............................................................... 419
Работа с електронна поща ............................................................. 420
Протоколи за изтегляне на електронната поща ........................................ 421
Изтегляне на електронната поща с .NET Framework .................................. 421
Изпращане на електронна поща.............................................................. 421
Изпращане на електрона поща с .NЕТ Framework ..................................... 422
Упражнения.................................................................................. 428
Използвана литература ................................................................. 429
Глава 19. Отражение на типовете (Reflection) .............................431
Автор........................................................................................... 431
Необходими знания....................................................................... 431
Съдържание ................................................................................. 431
В тази тема .................................................................................. 431
Какво е Global Assembly Cache?...................................................... 432
Инсталиране на асемблита в GAC............................................................ 432
Поддръжка на много версии ................................................................... 433
22 Програмиране за .NET Framework (том 2)
Преглед на GAC през Windows Explorer .................................................... 433
Преглед на GAC през Administrative Tools................................................. 435
Отражение на типовете ................................................................. 437
Какво е Reflection?................................................................................. 437
Зареждане на асемблита ........................................................................ 437
Извличане информация за асембли ......................................................... 438
Премахване на асемблита от паметта ...................................................... 440
Изучаване на типовете в асембли ........................................................... 440
Reflection класове за видовете членове ................................................... 445
Извличане на методи и параметрите им ................................................... 446
Reflection Emit ....................................................................................... 453
Упражнения.................................................................................. 457
Използвана литература ................................................................. 458
Глава 20. Сериализация на данни.................................................459
Автор........................................................................................... 459
Необходими знания....................................................................... 459
Съдържание ................................................................................. 459
В тази тема .................................................................................. 459
Сериализация............................................................................... 460
Какво е сериализация (serialization)?....................................................... 460
Какво е десериализация (deserialization)? ................................................ 460
Кога се използва сериализация? ............................................................. 460
Защо да използваме сериализация? ........................................................ 461
Кратък пример за сериализация? ............................................................ 462
Форматери (Formatters).......................................................................... 462
Процесът на сериализиране.................................................................... 463
Кратък пример за сериализация.............................................................. 464
Кратък пример за десериализация .......................................................... 465
Бинарна сериализация – пример............................................................. 466
Сериализация по мрежата – пример ........................................................ 469
Дълбоко копиране на обекти – пример .................................................... 475
IDeserializationCallback ........................................................................... 478
ISerializable и контролиране на сериализацията ....................................... 481
За ефективността на сериализацията ...................................................... 487
XML сериализация......................................................................... 488
Какво е XML сериализация?.................................................................... 488
XML сериализация – пример ................................................................... 488
Проста XML сериализация – пример ........................................................ 489
Контролиране на изходния XML .............................................................. 491
Контрол на XML сериализацията – пример ............................................... 492
Външен контрол на XML сериализацията.................................................. 496
Външен контрол на сериализацията – пример .......................................... 497
Приложение: FormatterServices ...................................................... 498
Методи за сериализация......................................................................... 499
Методи за десериализация ..................................................................... 499
Упражнения.................................................................................. 499
Използвана литература ................................................................. 500
Глава 21. Уеб услуги с ASP.NET .....................................................501
Автори ......................................................................................... 501
Необходими знания....................................................................... 501
Програмиране за .NET Framework (том 2) 23
Съдържание ................................................................................. 501
В тази тема .................................................................................. 502
Възникването на уеб услугите........................................................ 503
Разпределени приложения ..................................................................... 503
Модели за разпределени приложения...................................................... 503
Нуждата от уеб услуги ........................................................................... 504
Уеб услуги.................................................................................... 506
Какво е услуга? ..................................................................................... 506
Какво е уеб услуга? ............................................................................... 506
Принцип на действие на уеб услугите...................................................... 507
Инфраструктура на уеб услугите .................................................... 508
Директории за уеб услуги....................................................................... 509
Откриване на уеб услуги ........................................................................ 511
WSDL описания на услуги....................................................................... 512
SOAP – формат на заявките .................................................................... 515
Протоколен стек на уеб услугите ............................................................ 520
Сценарии за използване на уеб услугите ........................................ 521
Доставяне на данни ............................................................................... 521
Услуги към клиентски приложения .......................................................... 522
Интеграция на приложения .................................................................... 522
В ролята на адаптери............................................................................. 522
Връзка между отделните компоненти на Enterprise приложения................. 523
Enterprise приложения................................................................... 523
Кои приложения са Enterprise?................................................................ 523
.NET Enterprise приложения .................................................................... 524
Уеб услугите в ASP.NET ................................................................. 526
Пространства от имена........................................................................... 526
Архитектура на ASP.NET уеб услугите...................................................... 527
Създаване на уеб услуги ........................................................................ 528
Уеб услугите и уеб приложенията ........................................................... 529
Публикуване на уеб услуги..................................................................... 529
Използване на уеб услуги....................................................................... 536
Уеб услугите и VS.NET – създаване и консумиране ................................... 540
Атрибути за уеб услугите ....................................................................... 542
Прехвърляне на типове (marshalling)....................................................... 544
Дебъгване на уеб услуги ........................................................................ 553
Моделът на изпълнение на уеб услугите в ASP.NET................................... 553
Асинхронно извикване на уеб услуги....................................................... 555
Уеб услуги и работа с данни ................................................................... 558
Поддръжка на сесии .............................................................................. 562
Сигурност на уеб услугите...................................................................... 566
Изключенията в уеб услугите ................................................................. 572
Упражнения.................................................................................. 584
Използвана литература ................................................................. 586
Глава 22. Отдалечени извиквания с .NET Remoting......................587
Автор........................................................................................... 587
Необходими знания....................................................................... 587
Съдържание ................................................................................. 587
В тази тема .................................................................................. 587
Разпределени приложения............................................................. 588
Какво е .NET Remoting? ................................................................. 588
24 Програмиране за .NET Framework (том 2)
Кога се използва Remoting? ........................................................... 588
Microsoft Indigo (WCF) ............................................................................ 589
Remoting инфраструктурата........................................................... 589
Как работи Remoting инфраструктурата? ................................................. 590
Remoting канали.................................................................................... 590
Форматери (formatters) .......................................................................... 592
Активация на обекти.............................................................................. 593
Регистрация на отдалечен обект ............................................................. 594
Създаване на инстанция на отдалечен обект............................................ 596
Маршализация (Marshaling) .................................................................... 598
Живот на обектите (Lifetime) .................................................................. 600
Remoting конфигурационни файлове....................................................... 606
Remoting сценарии........................................................................ 617
Чиста мрежова комуникация................................................................... 619
XML уеб услуги...................................................................................... 619
.NET Remoting ....................................................................................... 619
Remoting сървър и клиент – пример ............................................... 620
Създаване на общите типове .................................................................. 620
Създаване на сървър ............................................................................. 622
Създаване на клиент.............................................................................. 624
Сървърът и клиентът в действие ............................................................. 625
Проблемът с общите типове ........................................................... 628
Споделено асембли с типове................................................................... 628
Споделено асембли с интерфейси ........................................................... 628
Soapsuds.exe......................................................................................... 629
Хостинг на Remoting типове в IIS ................................................... 629
Упражнения.................................................................................. 629
Използвана литература ................................................................. 630
Глава 23. Взаимодействие с неуправляван код............................631
Автор........................................................................................... 631
Необходими знания....................................................................... 631
Съдържание ................................................................................. 631
В тази тема .................................................................................. 631
Какво разбираме под взаимодействие с неуправляван код?.............. 633
Обща среда или виртуална машина ................................................ 633
Среда за контролирано изпълнение .NET CLR (обща среда) ....................... 634
Виртуална машина JVM .......................................................................... 634
Платформено извикване (P/Invoke) ................................................ 636
Атрибут DllImport .................................................................................. 636
Как работи P/Invoke? ............................................................................. 640
Командата DUMPBIN............................................................................... 640
Зареждане на системна икона – пример................................................... 641
Преобразуване на данни (marshalling) ............................................ 643
Преобразуване на структури................................................................... 644
Разполагане на полетата от структурата .................................................. 644
Преобразуване на класове ..................................................................... 646
Преобразуване на низове....................................................................... 646
Атрибут MarshalAs.................................................................................. 648
Имплементиране на функция за обратно извикване (callback) ................... 649
Преобразуване на данни – пример .......................................................... 650
Взаимодействие с COM (COM interop).............................................. 655
Програмиране за .NET Framework (том 2) 25
Какво е COM?........................................................................................ 655
Видове COM обекти и регистрация .......................................................... 655
Структура на COM обектите .................................................................... 656
Извикване на COM обект от управляван код............................................. 657
Разкриване на .NET компонент като COM обект ........................................ 662
Взаимодействие със C++ чрез IJW.................................................. 667
IJW извикване от C++ – пример.............................................................. 667
Препоръки за използване на .NET типове от COM ............................ 668
Immutable ли са наистина символните низове?......................................... 669
Използване на броячи за производителност и CLRSpy – пример................. 670
Упражнения.................................................................................. 673
Използвана литература ................................................................. 673
Глава 24. Управление на паметта и ресурсите .............................675
Автори ......................................................................................... 675
Необходими знания....................................................................... 675
Съдържание ................................................................................. 675
В тази тема................................................................................... 676
Управление на паметта при различните езици и платформи.............. 677
Ръчно управление на паметта и ресурсите ...................................... 677
Предимства и недостатъци на ръчното управление на паметта и ресурсите. 679
Управление на паметта в .NET Framework ....................................... 681
Предимства и недостатъци на автоматичното управление на паметта ......... 682
Как се заделя памет в .NET? ................................................................... 685
Как работи garbage collector?.................................................................. 687
Поколения памет ................................................................................... 691
Блок памет за големи обекти .................................................................. 695
Увеличаване размера на хийпа ............................................................... 696
Финализацията на обекти в .NET .................................................... 696
Какво е финализация? ........................................................................... 697
Деструкторите в C# ............................................................................... 697
Финализация – пример........................................................................... 699
Зад кулисите......................................................................................... 699
Опашката Freachable.............................................................................. 701
Накратко за финализацията ................................................................... 701
Тъмната страна на финализацията .......................................................... 702
Какво да правим все пак?....................................................................... 703
Съживяване на обекти ........................................................................... 703
Ръчно управление на ресурсите с IDisposable .................................. 705
Интерфейсът IDisposable ........................................................................ 706
Операторът using................................................................................... 706
IDisposable и Finalize.............................................................................. 707
Примерна имплементация на базов клас, обвиващ неуправляван ресурс .... 709
Close() и експлицитна имплементация на IDisposable................................ 715
Кога да извикваме IDisposable.Dispose()?................................................. 716
Взаимодействие със системата за почистване на паметта ................. 716
Почистване на паметта........................................................................... 716
Потискане на финализацията.................................................................. 720
Изчакване до приключване на финализацията ......................................... 720
Регистриране на обекта за финализация.................................................. 720
Определяне поколението на обект .......................................................... 721
Pinning.................................................................................................. 721
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2
Svetlin Nakov - Programming for .NET Framework Book, Volume 2

Contenu connexe

Similaire à Svetlin Nakov - Programming for .NET Framework Book, Volume 2

Svetlin Nakov - E-Business And NASD Academy
Svetlin Nakov - E-Business And NASD AcademySvetlin Nakov - E-Business And NASD Academy
Svetlin Nakov - E-Business And NASD AcademySvetlin Nakov
 
University account brochure on e-learn.pro
University account brochure on e-learn.proUniversity account brochure on e-learn.pro
University account brochure on e-learn.proMoby2 Ltd.
 
Как се става програмист?
Как се става програмист?Как се става програмист?
Как се става програмист?Svetlin Nakov
 
Система за електронно обучение и видеоконференции iKnow
Система за електронно обучение и видеоконференции iKnowСистема за електронно обучение и видеоконференции iKnow
Система за електронно обучение и видеоконференции iKnowrobertbul
 
Академия на Телерик - безплатни курсове 2011
Академия на Телерик - безплатни курсове 2011Академия на Телерик - безплатни курсове 2011
Академия на Телерик - безплатни курсове 2011Svetlin Nakov
 
Tools for Developers
Tools for DevelopersTools for Developers
Tools for DevelopersSvetlin Nakov
 
eLearn.bg - Benefits for universities
eLearn.bg - Benefits for universitieseLearn.bg - Benefits for universities
eLearn.bg - Benefits for universitiesMoby2 Ltd.
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеDAVID Academy
 
Telerik Academy Introduction
Telerik Academy IntroductionTelerik Academy Introduction
Telerik Academy IntroductionDoncho Minkov
 
Vuvejdashta prezentacia may
Vuvejdashta prezentacia mayVuvejdashta prezentacia may
Vuvejdashta prezentacia mayValentinVelikov6
 
Защита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в ИнтернетЗащита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в ИнтернетAnton Shumanski
 
Vuvejdashta prezentacia march_2020
Vuvejdashta prezentacia march_2020Vuvejdashta prezentacia march_2020
Vuvejdashta prezentacia march_2020Stoyan Saev
 
Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериNeven Boyanov
 
NARS - High Quality Training for Software Engineers
NARS - High Quality Training for Software EngineersNARS - High Quality Training for Software Engineers
NARS - High Quality Training for Software EngineersSvetlin Nakov
 
Programming World in 2024
Programming World in 2024Programming World in 2024
Programming World in 2024Svetlin Nakov
 

Similaire à Svetlin Nakov - Programming for .NET Framework Book, Volume 2 (20)

Svetlin Nakov - E-Business And NASD Academy
Svetlin Nakov - E-Business And NASD AcademySvetlin Nakov - E-Business And NASD Academy
Svetlin Nakov - E-Business And NASD Academy
 
Studio projects
Studio projectsStudio projects
Studio projects
 
University account brochure on e-learn.pro
University account brochure on e-learn.proUniversity account brochure on e-learn.pro
University account brochure on e-learn.pro
 
Как се става програмист?
Как се става програмист?Как се става програмист?
Как се става програмист?
 
Система за електронно обучение и видеоконференции iKnow
Система за електронно обучение и видеоконференции iKnowСистема за електронно обучение и видеоконференции iKnow
Система за електронно обучение и видеоконференции iKnow
 
Programirane i organizaciq
Programirane i organizaciqProgramirane i organizaciq
Programirane i organizaciq
 
Академия на Телерик - безплатни курсове 2011
Академия на Телерик - безплатни курсове 2011Академия на Телерик - безплатни курсове 2011
Академия на Телерик - безплатни курсове 2011
 
eLearnbg
eLearnbgeLearnbg
eLearnbg
 
Tools for Developers
Tools for DevelopersTools for Developers
Tools for Developers
 
eLearn.bg - Benefits for universities
eLearn.bg - Benefits for universitieseLearn.bg - Benefits for universities
eLearn.bg - Benefits for universities
 
Курс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. ПредставянеКурс по информационни технологии (2013) - 0. Представяне
Курс по информационни технологии (2013) - 0. Представяне
 
Telerik Academy Introduction
Telerik Academy IntroductionTelerik Academy Introduction
Telerik Academy Introduction
 
Java kurs
Java kursJava kurs
Java kurs
 
Vuvejdashta prezentacia may
Vuvejdashta prezentacia mayVuvejdashta prezentacia may
Vuvejdashta prezentacia may
 
Защита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в ИнтернетЗащита при създаване на PHP приложения в Интернет
Защита при създаване на PHP приложения в Интернет
 
Vuvejdashta prezentacia march_2020
Vuvejdashta prezentacia march_2020Vuvejdashta prezentacia march_2020
Vuvejdashta prezentacia march_2020
 
Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролери
 
05. Loops
05. Loops05. Loops
05. Loops
 
NARS - High Quality Training for Software Engineers
NARS - High Quality Training for Software EngineersNARS - High Quality Training for Software Engineers
NARS - High Quality Training for Software Engineers
 
Programming World in 2024
Programming World in 2024Programming World in 2024
Programming World in 2024
 

Plus de Svetlin Nakov

BG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учителиBG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учителиSvetlin Nakov
 
AI Tools for Business and Startups
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and StartupsSvetlin Nakov
 
AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)Svetlin Nakov
 
AI Tools for Entrepreneurs
AI Tools for EntrepreneursAI Tools for Entrepreneurs
AI Tools for EntrepreneursSvetlin Nakov
 
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Svetlin Nakov
 
AI Tools for Business and Personal Life
AI Tools for Business and Personal LifeAI Tools for Business and Personal Life
AI Tools for Business and Personal LifeSvetlin Nakov
 
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин НаковДипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин НаковSvetlin Nakov
 
Дипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООПДипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООПSvetlin Nakov
 
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТСвободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТSvetlin Nakov
 
AI and the Professions of the Future
AI and the Professions of the FutureAI and the Professions of the Future
AI and the Professions of the FutureSvetlin Nakov
 
Programming Languages Trends for 2023
Programming Languages Trends for 2023Programming Languages Trends for 2023
Programming Languages Trends for 2023Svetlin Nakov
 
IT Professions and How to Become a Developer
IT Professions and How to Become a DeveloperIT Professions and How to Become a Developer
IT Professions and How to Become a DeveloperSvetlin Nakov
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)Svetlin Nakov
 
IT Professions and Their Future
IT Professions and Their FutureIT Professions and Their Future
IT Professions and Their FutureSvetlin Nakov
 
How to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a JobHow to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a JobSvetlin Nakov
 
Призвание и цели: моята рецепта
Призвание и цели: моята рецептаПризвание и цели: моята рецепта
Призвание и цели: моята рецептаSvetlin Nakov
 
What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?Svetlin Nakov
 
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)Svetlin Nakov
 
Blockchain and DeFi Overview (Nakov, Sept 2021)
Blockchain and DeFi Overview (Nakov, Sept 2021)Blockchain and DeFi Overview (Nakov, Sept 2021)
Blockchain and DeFi Overview (Nakov, Sept 2021)Svetlin Nakov
 
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)Svetlin Nakov
 

Plus de Svetlin Nakov (20)

BG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учителиBG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учители
 
AI Tools for Business and Startups
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
 
AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)
 
AI Tools for Entrepreneurs
AI Tools for EntrepreneursAI Tools for Entrepreneurs
AI Tools for Entrepreneurs
 
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
 
AI Tools for Business and Personal Life
AI Tools for Business and Personal LifeAI Tools for Business and Personal Life
AI Tools for Business and Personal Life
 
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин НаковДипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин Наков
 
Дипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООПДипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООП
 
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТСвободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
 
AI and the Professions of the Future
AI and the Professions of the FutureAI and the Professions of the Future
AI and the Professions of the Future
 
Programming Languages Trends for 2023
Programming Languages Trends for 2023Programming Languages Trends for 2023
Programming Languages Trends for 2023
 
IT Professions and How to Become a Developer
IT Professions and How to Become a DeveloperIT Professions and How to Become a Developer
IT Professions and How to Become a Developer
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
 
IT Professions and Their Future
IT Professions and Their FutureIT Professions and Their Future
IT Professions and Their Future
 
How to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a JobHow to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a Job
 
Призвание и цели: моята рецепта
Призвание и цели: моята рецептаПризвание и цели: моята рецепта
Призвание и цели: моята рецепта
 
What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?
 
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
 
Blockchain and DeFi Overview (Nakov, Sept 2021)
Blockchain and DeFi Overview (Nakov, Sept 2021)Blockchain and DeFi Overview (Nakov, Sept 2021)
Blockchain and DeFi Overview (Nakov, Sept 2021)
 
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)
Дигитални професии на бъдещето: не бъдете роботи! (юни 2021)
 

Svetlin Nakov - Programming for .NET Framework Book, Volume 2

  • 1.
  • 2. Кратко съдържание Том 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
  • 3. Програмиране за .NET Framework Светлин Наков и колектив Александър Русев Александър Хаджикръстев Антон Андреев Бранимир Ангелов Васил Бакалов Виктор Живков Галин Илиев Георги Пенчев Деян Варчев Димитър Бонев Димитър Канев Ивайло Димов Ивайло Христов Иван Митев Лазар Кирчев Манол Донев Мартин Кулов Михаил Стойнов Моника Алексиева Николай Недялков Панайот Добриков Преслав Наков Радослав Иванов Рослан Борисов Светлин Наков Стефан Добрев Стефан Захариев Стефан Кирязов Стоян Дамов Тодор Колев Христо Дешев Христо Радков Цветелин Андреев Явор Ташев Българска асоциация на разработчиците на софтуер София, 2004-2006
  • 4. Програмиране за .NET Framework (том 2) © Българска асоциация на разработчиците на софтуер (БАРС), 2006 г. Настоящата книга се разпространява свободно при следните условия: Читателите имат право: - да използват книгата и учебните материали към нея или части от тях за всякакви цели, включително да ги да променят според своите нужди и да ги използват при извършване на комерсиална дейност; - да използват сорс кода от примерите и демонстрациите, включени към книгата и учебните материали или техни модификации, за всякакви нужди, включително и в комерсиални софтуерни продукти; - да разпространяват безплатно непроменени копия на книгата и учеб- ните материали в електронен или хартиен вид; - да разпространяват безплатно оригинални или променени части от учебните материали, но само при изричното споменаване на източника и авторите на съответния текст, програмен код или друг материал. Читателите нямат право: - да разпространяват срещу заплащане книгата, учебните материали или части от тях (включително модифицирани версии), като изключе- ние прави само програмният код; - да премахват настоящия лиценз от книгата или учебните материали. Всички запазени марки, използвани в тази книга, са собственост на техните притежатели. Официален уеб сайт: www.devbg.org/dotnetbook/ ISBN: 954-775-672-9 ISBN: 978-954-775-672-4
  • 5. НАЦИОНАЛНА АКАДЕМИЯ ПО РАЗРАБОТКА НА СОФТУЕР Лекторите » Светлин Наков е автор на десетки технически публикации и няколко книги, свързани с разработката на софтуер, заради което е тър- сен лектор и консултант. Той е разработчик с дългого- дишен опит, работил по раз- нообразни проекти, реализи- рани с различни технологии (.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
  • 6.
  • 7.
  • 8. www.devbg.org Българска асоциация на разработчиците на софтуер (БАРС) е нестопанска организация, която подпомага про- фесионалното развитие на българските софтуерни специ- алисти чрез образователни и други инициативи. БАРС работи за насърчаване обмяната на опит между раз- работчиците и за усъвършенстване на техните знания и умения в областта на проектирането и разработката на софтуер. Асоциацията организира специализирани конференции, семинари и курсове за обучение по разработка на софту- ер и софтуерни технологии. БАРС организира създаването на Национална академия по разработка на софтуер – учебен център за професионал- на подготовка на софтуерни специалисти.
  • 9. Отзив от Теодор Милев Свидетели сме как платформата 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 разработчици. Теодор Милев, Управляващ директор на "Майкрософт България"
  • 10. Отзив от Божидар Сендов Книгата е оригинално българско творение, с нищо неотстъпващо по каче- ство и обем на световните бестселъри с компютърна тематика. Материалът е поднесен достъпно и е богато илюстриран с примери, което я прави не само отлично въведение в платформата .NET за начинаещия, но и отличен справочник за професионалиста-програмист на C#. Читателят може да се запознае в детайли не само с общите принципи, но и с редица тънкости на програмирането за .NET. Широко застъпени са редица "универсални" теми като обектно-ориентирано програмиране, регулярни изрази, XML, релаци- онни бази данни, програмиране в Интернет, многозадачност, сигурност и др. Книгата се отличава със стегнат и ясен стил на изложението, като е постигнато завидно педагогическо майсторство. Това не бива да ни изне- надва – авторите са водещи специалисти с богат опит не само като профе- сионални софтуерни разработчици, но и като преподаватели във Факул- тета по математика и информатика (ФМИ) на СУ "Св. Климент Охридски". Самата книга в значителна степен се основава на работни лекции, изпол- звани и проверени в поредица от курсове по програмиране за .NET Framework във ФМИ. Сайтът на книгата съдържа над 2000 безплатни слайда, следващи стриктно съдържанието й, а книгата е напълно безплат- на в електронния си вариант, което максимално улеснява използването й в съответен курс по програмиране. Не на последно място, заслужава да се отбележи систематичният опит за превод на всички термини на български език, съобразен с вече наложи- лата се българска терминология, но и с оригинални идеи при новите понятия. Работата, която авторите са свършили, е наистина чудесна, а книгата е задължителна част от библиотеката на всеки с интерес към езика C# и изобщо към водещата платформа на Майкрософт .NET. доц. д-р Божидар Сендов Факултет по математика и Информатика, Софийски Университет "Св. Климент Охридски"
  • 11. Отзив от Стоян Йорданов "Програмиране за .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 по никакъв начин
  • 12. НАЦИОНАЛНА АКАДЕМИЯ ПО РАЗРАБОТКА НА СОФТУЕР Лекторите » Светлин Наков е автор на десетки технически публикации и няколко книги, свързани с разработката на софтуер, заради което е тър- сен лектор и консултант. Той е разработчик с дългого- дишен опит, работил по раз- нообразни проекти, реализи- рани с различни технологии (.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
  • 13. Съдържание Том 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
  • 14. 14 Програмиране за .NET Framework (том 2) Михаил Стойнов ......................................................................................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
  • 15. Програмиране за .NET Framework (том 2) 15 Пространството 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
  • 16. 16 Програмиране за .NET Framework (том 2) 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
  • 17. Програмиране за .NET Framework (том 2) 17 Създаване на нова контрола като комбинация от други контроли .............. 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 Какво е уеб форма (Web Form)?.............................................................. 183 Създаване на уеб форма ........................................................................ 183 Директиви............................................................................................. 184 Директивата <@Page …>........................................................................ 185 Атрибути на директивата <@Page …>...................................................... 185 Тагът <form> ........................................................................................ 186 Вградени обекти в ASP.NET .................................................................... 186 Уеб контроли ................................................................................ 186 ASP.NET сървърни контроли ................................................................... 187 HTML сървърни контроли (HTML server controls) ....................................... 188 Уеб сървърни контроли (Web server controls) ........................................... 190 Кои контроли да ползваме? .................................................................... 191 Категории уеб сървърни контроли........................................................... 192 Code-behind.................................................................................. 195 Добавяне на код в уеб форма ................................................................. 195 Inline code............................................................................................. 195 Code-behind класове .............................................................................. 196 Как работи code-behind?......................................................................... 196 JIT компилация...................................................................................... 196 Събития ....................................................................................... 197 Прихващане на събития ......................................................................... 197
  • 18. 18 Програмиране за .NET Framework (том 2) Свойството AutoEventWireup ................................................................... 197 Жизнен цикъл на ASP.NET страниците ............................................ 198 Свойството IsPostBack............................................................................ 198 Свойството AutoPostBack ........................................................................ 199 HTML escaping проблеми................................................................ 200 HTML escaping проблеми – пример .......................................................... 200 Свързване с данни (Data binding) ................................................... 202 Как работи методът DataBind(…)?............................................................ 202 Свързване на контроли с данни – пример ................................................ 203 Работа с бази от данни от ASP.NET ................................................. 209 Обзор на ADO.NET ................................................................................. 209 Визуализиране на данни ........................................................................ 210 Свързване на данни (data binding) .......................................................... 210 Контроли за показване на данни............................................................. 212 Списъчни контроли................................................................................ 213 Итериращи контроли.............................................................................. 219 Управление на състоянието............................................................ 228 Бисквитки (Cookies)............................................................................... 228 Скрити полета ....................................................................................... 230 Параметризирани адреси (Query Strings) ................................................. 231 Технологията ViewState.......................................................................... 232 Състояние на приложението ................................................................... 234 Състояние на сесиите............................................................................. 237 Валидация на данни...................................................................... 239 RequiredFieldValidator – проверка за наличие на данни ............................. 240 CompareValidator – проверка на входните данни ...................................... 241 RangeValidator – проверка попадане в интервал....................................... 242 RegularExpressionValidator – сравняване с регулярен израз ....................... 243 CustomValidator – произволна проверка................................................... 243 ValidationSummary – списък на грешките................................................. 246 Йерархия на класовете валидатори ......................................................... 247 Общи свойства за валидаторите.............................................................. 247 Кога и къде се извършва валидацията? ................................................... 248 Защо винаги на сървъра? ....................................................................... 248 Особености при валидацията при клиента ............................................... 249 Потребителски контроли................................................................ 250 Потребителски контроли и уеб форми ..................................................... 250 Предимства при използването на потребителски контроли ........................ 250 Споделяне на потребителски контроли .................................................... 250 Използване на потребителски контроли................................................... 251 Създаване на потребителска контрола – пример ...................................... 251 Проследяване и дебъгване на уеб приложния.................................. 254 Информация по време на изпълнение...................................................... 254 Проследяване........................................................................................ 254 Отдалечено дебъгване ........................................................................... 257 Оптимизация, конфигурация и разгръщане на ASP.NET приложения.. 258 Оптимизиране чрез кеширане................................................................. 258 Конфигуриране на ASP.NET приложение.................................................. 262 Разгръщане на приложението ................................................................. 266 Сигурност в ASP.NET ..................................................................... 268 Автентикация и оторизация .................................................................... 268 Видове автентикация в ASP.NET.............................................................. 269
  • 19. Програмиране за .NET Framework (том 2) 19 Сигурност на ниво сървър (IIS Security) .................................................. 276 Упражнения.................................................................................. 279 Използвана литература ................................................................. 281 Глава 17. Многонишково програмиране и синхронизация...........283 Автори ......................................................................................... 283 Необходими знания....................................................................... 283 Съдържание ................................................................................. 283 В тази тема .................................................................................. 284 Многозадачност ............................................................................ 285 Проблемът ............................................................................................ 285 Ползите от многозадачността.................................................................. 285 Защо е нужна многозадачност – пример .................................................. 285 Решението – процеси и нишки ................................................................ 287 Процеси и нишки................................................................................... 287 Какво предлагат нишките? ..................................................................... 288 Кога са удобни нишките? ....................................................................... 288 Многозадачност – видове ....................................................................... 288 Имплементации на многозадачност ......................................................... 289 Домейни на приложението (Application Domains) ...................................... 290 Нишки.......................................................................................... 291 Как работят нишките? ............................................................................ 291 Класът Thread ....................................................................................... 293 Приоритет............................................................................................. 298 Състояния............................................................................................. 299 Живот на нишките ................................................................................. 300 Прекратяване на нишка ......................................................................... 300 Thread Local Storage (локални за нишката данни)..................................... 305 Thread-Relative Static Fields (статични полета, свързани с нишката) ........... 306 Неудобства при работата с нишки ........................................................... 308 Проблеми при работа с общи данни......................................................... 308 Синхронизация ............................................................................. 310 Най-доброто решение за общите данни ................................................... 310 Синхронизирани "пасажи" код (synchronized code regions) ........................ 311 Синхронизирани контексти (Synchronized Contexts).................................. 315 MethodImplAttribute ............................................................................... 317 Неуправлявана синхронизация – класът WaitHandle ................................. 317 Класът Mutex......................................................................................... 318 Класовете AutoResetEvent и ManualResetEvent.......................................... 320 Класът Interlocked ................................................................................. 323 Класически синхронизационни задачи..................................................... 325 Пул от нишки (ThreadPool)............................................................. 329 Предимства ........................................................................................... 330 Недостатъци.......................................................................................... 330 Класът ThreadPool.................................................................................. 330 Методът ThreadPool.RegisterWaitForSingleObject() ..................................... 331 Интерфейсът ISynchronizeInvoke .................................................... 333 Използване на ISynchronizeInvoke........................................................... 333 Windows Forms и ISynchronizeInvoke ....................................................... 335 Таймери ....................................................................................... 335 System.Timers.Timer .............................................................................. 336 System.Threading.Timer.......................................................................... 338
  • 20. 20 Програмиране за .NET Framework (том 2) System.Windows.Forms.Timer .................................................................. 340 Как да изберем таймер? ......................................................................... 341 Volatile полета .............................................................................. 341 Асинхронни извиквания................................................................. 342 Какво е асинхронно извикване?.............................................................. 342 Къде се ползва асинхронно извикване? ................................................... 342 Асинхронно извикване чрез делегат........................................................ 342 Модел за асинхронно програмиране ........................................................ 343 Сигнатура на методите за асинхронни извиквания.................................... 343 Интерфейсът IAsyncResult ...................................................................... 344 Проверка за приключване на асинхронното извикване ............................. 344 Упражнения.................................................................................. 348 Използвана литература ................................................................. 348 Глава 18. Мрежово и Интернет програмиране..............................349 Автори ......................................................................................... 349 Необходими знания....................................................................... 349 Съдържание ................................................................................. 349 В тази тема .................................................................................. 349 OSI модел .................................................................................... 350 Физическо ниво..................................................................................... 351 Свързващо ниво (канално ниво) ............................................................. 351 Мрежово ниво ....................................................................................... 351 Транспортно ниво .................................................................................. 351 Сесийно ниво ........................................................................................ 351 Представително ниво ............................................................................. 351 Приложно ниво...................................................................................... 351 Основи на мрежовото програмиране ............................................... 352 IP адрес................................................................................................ 352 Domain Name Service (DNS).................................................................... 352 Порт ..................................................................................................... 352 Основни мрежови услуги........................................................................ 353 Мрежов интерфейс ................................................................................ 353 Loopback интерфейс............................................................................... 353 Протоколът TCP ..................................................................................... 354 Протоколът UDP..................................................................................... 354 Как две отдалечени машини си "говорят"? ............................................... 354 Класове за мрежово програмиране в .NET ....................................... 355 Пространството System.Net.Sockets......................................................... 355 Пространството System.Net .................................................................... 356 Представяне на IP адреси в .NET Framework.................................... 357 Класът IPAddress ................................................................................... 357 Класът IPEndPoint .................................................................................. 359 Комуникация по TCP сокет с TcpClient............................................. 359 Създаване и свързване на TcpClient......................................................... 360 Създаване на прост TCP порт скенер – пример ......................................... 362 Предаване на данни по TCP сокет чрез TcpClient и NetworkStream ............. 363 Комуникация с TcpClient – пример........................................................... 366 Настройки на TCP връзката чрез свойствата на TcpClient........................... 370 Изграждане на TCP сървър с TcpListener ......................................... 371 Създаване на TcpListener........................................................................ 371 Приемане на TCP връзки ........................................................................ 371
  • 21. Програмиране за .NET Framework (том 2) 21 Прост TCP сървър – пример .................................................................... 373 Обслужване на много клиенти едновременно .................................. 375 Едновременно обслужване на клиенти с TcpListener – пример.................... 376 Комуникация по UDP с UdpClient .................................................... 382 Конструктори на UdpClient...................................................................... 383 Задаване на отдалечен сървър по подразбиране ...................................... 383 Изпращане на UDP пакети – метод Send(…).............................................. 384 Получаване на UDP пакети – метод Receive(…) ......................................... 385 Комуникация с UdpClient – пример .......................................................... 385 Сокети на по-ниско ниво – класът Socket........................................ 387 Създаване на Socket обекти и тип на сокета ............................................ 387 Основни операции с класа Socket ........................................................... 388 Сокети с връзка по TCP .......................................................................... 389 Свойства на сокетите и задаване на опции .............................................. 396 Сокет по протокол UDP .......................................................................... 397 Няколко думи за асинхронните сокети ............................................ 403 Свойството Blocking ............................................................................... 403 Асинхронни методи................................................................................ 403 Методите Poll(…) и Select(…) ................................................................... 404 Multicasting в .NET Framework ........................................................ 406 Broadcasting сокети................................................................................ 406 Multicasting сокети ................................................................................. 406 Използване на DNS услуги чрез класа Dns ...................................... 408 Асинхронни DNS заявки ......................................................................... 409 Работа с уеб ресурси – класът WebClient......................................... 409 Извличане на данни по HTTP .................................................................. 410 Изпращане на данни по HTTP.................................................................. 413 Автентикация с Credentials ..................................................................... 414 Други полезни свойства на WebClient ...................................................... 415 HTTP заявки с класовете HttpWebRequest и HttpWebResponse ........... 416 Създаване на HHTP заявка ..................................................................... 416 Изпращане на данни към HTTP сървър..................................................... 416 Получаване на HTTP отговор................................................................... 417 Извличане на Cookies............................................................................. 418 Други видове WebRequest и WebResponse................................................ 419 Работа с HTTP заявки – пример ............................................................... 419 Работа с електронна поща ............................................................. 420 Протоколи за изтегляне на електронната поща ........................................ 421 Изтегляне на електронната поща с .NET Framework .................................. 421 Изпращане на електронна поща.............................................................. 421 Изпращане на електрона поща с .NЕТ Framework ..................................... 422 Упражнения.................................................................................. 428 Използвана литература ................................................................. 429 Глава 19. Отражение на типовете (Reflection) .............................431 Автор........................................................................................... 431 Необходими знания....................................................................... 431 Съдържание ................................................................................. 431 В тази тема .................................................................................. 431 Какво е Global Assembly Cache?...................................................... 432 Инсталиране на асемблита в GAC............................................................ 432 Поддръжка на много версии ................................................................... 433
  • 22. 22 Програмиране за .NET Framework (том 2) Преглед на GAC през Windows Explorer .................................................... 433 Преглед на GAC през Administrative Tools................................................. 435 Отражение на типовете ................................................................. 437 Какво е Reflection?................................................................................. 437 Зареждане на асемблита ........................................................................ 437 Извличане информация за асембли ......................................................... 438 Премахване на асемблита от паметта ...................................................... 440 Изучаване на типовете в асембли ........................................................... 440 Reflection класове за видовете членове ................................................... 445 Извличане на методи и параметрите им ................................................... 446 Reflection Emit ....................................................................................... 453 Упражнения.................................................................................. 457 Използвана литература ................................................................. 458 Глава 20. Сериализация на данни.................................................459 Автор........................................................................................... 459 Необходими знания....................................................................... 459 Съдържание ................................................................................. 459 В тази тема .................................................................................. 459 Сериализация............................................................................... 460 Какво е сериализация (serialization)?....................................................... 460 Какво е десериализация (deserialization)? ................................................ 460 Кога се използва сериализация? ............................................................. 460 Защо да използваме сериализация? ........................................................ 461 Кратък пример за сериализация? ............................................................ 462 Форматери (Formatters).......................................................................... 462 Процесът на сериализиране.................................................................... 463 Кратък пример за сериализация.............................................................. 464 Кратък пример за десериализация .......................................................... 465 Бинарна сериализация – пример............................................................. 466 Сериализация по мрежата – пример ........................................................ 469 Дълбоко копиране на обекти – пример .................................................... 475 IDeserializationCallback ........................................................................... 478 ISerializable и контролиране на сериализацията ....................................... 481 За ефективността на сериализацията ...................................................... 487 XML сериализация......................................................................... 488 Какво е XML сериализация?.................................................................... 488 XML сериализация – пример ................................................................... 488 Проста XML сериализация – пример ........................................................ 489 Контролиране на изходния XML .............................................................. 491 Контрол на XML сериализацията – пример ............................................... 492 Външен контрол на XML сериализацията.................................................. 496 Външен контрол на сериализацията – пример .......................................... 497 Приложение: FormatterServices ...................................................... 498 Методи за сериализация......................................................................... 499 Методи за десериализация ..................................................................... 499 Упражнения.................................................................................. 499 Използвана литература ................................................................. 500 Глава 21. Уеб услуги с ASP.NET .....................................................501 Автори ......................................................................................... 501 Необходими знания....................................................................... 501
  • 23. Програмиране за .NET Framework (том 2) 23 Съдържание ................................................................................. 501 В тази тема .................................................................................. 502 Възникването на уеб услугите........................................................ 503 Разпределени приложения ..................................................................... 503 Модели за разпределени приложения...................................................... 503 Нуждата от уеб услуги ........................................................................... 504 Уеб услуги.................................................................................... 506 Какво е услуга? ..................................................................................... 506 Какво е уеб услуга? ............................................................................... 506 Принцип на действие на уеб услугите...................................................... 507 Инфраструктура на уеб услугите .................................................... 508 Директории за уеб услуги....................................................................... 509 Откриване на уеб услуги ........................................................................ 511 WSDL описания на услуги....................................................................... 512 SOAP – формат на заявките .................................................................... 515 Протоколен стек на уеб услугите ............................................................ 520 Сценарии за използване на уеб услугите ........................................ 521 Доставяне на данни ............................................................................... 521 Услуги към клиентски приложения .......................................................... 522 Интеграция на приложения .................................................................... 522 В ролята на адаптери............................................................................. 522 Връзка между отделните компоненти на Enterprise приложения................. 523 Enterprise приложения................................................................... 523 Кои приложения са Enterprise?................................................................ 523 .NET Enterprise приложения .................................................................... 524 Уеб услугите в ASP.NET ................................................................. 526 Пространства от имена........................................................................... 526 Архитектура на ASP.NET уеб услугите...................................................... 527 Създаване на уеб услуги ........................................................................ 528 Уеб услугите и уеб приложенията ........................................................... 529 Публикуване на уеб услуги..................................................................... 529 Използване на уеб услуги....................................................................... 536 Уеб услугите и VS.NET – създаване и консумиране ................................... 540 Атрибути за уеб услугите ....................................................................... 542 Прехвърляне на типове (marshalling)....................................................... 544 Дебъгване на уеб услуги ........................................................................ 553 Моделът на изпълнение на уеб услугите в ASP.NET................................... 553 Асинхронно извикване на уеб услуги....................................................... 555 Уеб услуги и работа с данни ................................................................... 558 Поддръжка на сесии .............................................................................. 562 Сигурност на уеб услугите...................................................................... 566 Изключенията в уеб услугите ................................................................. 572 Упражнения.................................................................................. 584 Използвана литература ................................................................. 586 Глава 22. Отдалечени извиквания с .NET Remoting......................587 Автор........................................................................................... 587 Необходими знания....................................................................... 587 Съдържание ................................................................................. 587 В тази тема .................................................................................. 587 Разпределени приложения............................................................. 588 Какво е .NET Remoting? ................................................................. 588
  • 24. 24 Програмиране за .NET Framework (том 2) Кога се използва Remoting? ........................................................... 588 Microsoft Indigo (WCF) ............................................................................ 589 Remoting инфраструктурата........................................................... 589 Как работи Remoting инфраструктурата? ................................................. 590 Remoting канали.................................................................................... 590 Форматери (formatters) .......................................................................... 592 Активация на обекти.............................................................................. 593 Регистрация на отдалечен обект ............................................................. 594 Създаване на инстанция на отдалечен обект............................................ 596 Маршализация (Marshaling) .................................................................... 598 Живот на обектите (Lifetime) .................................................................. 600 Remoting конфигурационни файлове....................................................... 606 Remoting сценарии........................................................................ 617 Чиста мрежова комуникация................................................................... 619 XML уеб услуги...................................................................................... 619 .NET Remoting ....................................................................................... 619 Remoting сървър и клиент – пример ............................................... 620 Създаване на общите типове .................................................................. 620 Създаване на сървър ............................................................................. 622 Създаване на клиент.............................................................................. 624 Сървърът и клиентът в действие ............................................................. 625 Проблемът с общите типове ........................................................... 628 Споделено асембли с типове................................................................... 628 Споделено асембли с интерфейси ........................................................... 628 Soapsuds.exe......................................................................................... 629 Хостинг на Remoting типове в IIS ................................................... 629 Упражнения.................................................................................. 629 Използвана литература ................................................................. 630 Глава 23. Взаимодействие с неуправляван код............................631 Автор........................................................................................... 631 Необходими знания....................................................................... 631 Съдържание ................................................................................. 631 В тази тема .................................................................................. 631 Какво разбираме под взаимодействие с неуправляван код?.............. 633 Обща среда или виртуална машина ................................................ 633 Среда за контролирано изпълнение .NET CLR (обща среда) ....................... 634 Виртуална машина JVM .......................................................................... 634 Платформено извикване (P/Invoke) ................................................ 636 Атрибут DllImport .................................................................................. 636 Как работи P/Invoke? ............................................................................. 640 Командата DUMPBIN............................................................................... 640 Зареждане на системна икона – пример................................................... 641 Преобразуване на данни (marshalling) ............................................ 643 Преобразуване на структури................................................................... 644 Разполагане на полетата от структурата .................................................. 644 Преобразуване на класове ..................................................................... 646 Преобразуване на низове....................................................................... 646 Атрибут MarshalAs.................................................................................. 648 Имплементиране на функция за обратно извикване (callback) ................... 649 Преобразуване на данни – пример .......................................................... 650 Взаимодействие с COM (COM interop).............................................. 655
  • 25. Програмиране за .NET Framework (том 2) 25 Какво е COM?........................................................................................ 655 Видове COM обекти и регистрация .......................................................... 655 Структура на COM обектите .................................................................... 656 Извикване на COM обект от управляван код............................................. 657 Разкриване на .NET компонент като COM обект ........................................ 662 Взаимодействие със C++ чрез IJW.................................................. 667 IJW извикване от C++ – пример.............................................................. 667 Препоръки за използване на .NET типове от COM ............................ 668 Immutable ли са наистина символните низове?......................................... 669 Използване на броячи за производителност и CLRSpy – пример................. 670 Упражнения.................................................................................. 673 Използвана литература ................................................................. 673 Глава 24. Управление на паметта и ресурсите .............................675 Автори ......................................................................................... 675 Необходими знания....................................................................... 675 Съдържание ................................................................................. 675 В тази тема................................................................................... 676 Управление на паметта при различните езици и платформи.............. 677 Ръчно управление на паметта и ресурсите ...................................... 677 Предимства и недостатъци на ръчното управление на паметта и ресурсите. 679 Управление на паметта в .NET Framework ....................................... 681 Предимства и недостатъци на автоматичното управление на паметта ......... 682 Как се заделя памет в .NET? ................................................................... 685 Как работи garbage collector?.................................................................. 687 Поколения памет ................................................................................... 691 Блок памет за големи обекти .................................................................. 695 Увеличаване размера на хийпа ............................................................... 696 Финализацията на обекти в .NET .................................................... 696 Какво е финализация? ........................................................................... 697 Деструкторите в C# ............................................................................... 697 Финализация – пример........................................................................... 699 Зад кулисите......................................................................................... 699 Опашката Freachable.............................................................................. 701 Накратко за финализацията ................................................................... 701 Тъмната страна на финализацията .......................................................... 702 Какво да правим все пак?....................................................................... 703 Съживяване на обекти ........................................................................... 703 Ръчно управление на ресурсите с IDisposable .................................. 705 Интерфейсът IDisposable ........................................................................ 706 Операторът using................................................................................... 706 IDisposable и Finalize.............................................................................. 707 Примерна имплементация на базов клас, обвиващ неуправляван ресурс .... 709 Close() и експлицитна имплементация на IDisposable................................ 715 Кога да извикваме IDisposable.Dispose()?................................................. 716 Взаимодействие със системата за почистване на паметта ................. 716 Почистване на паметта........................................................................... 716 Потискане на финализацията.................................................................. 720 Изчакване до приключване на финализацията ......................................... 720 Регистриране на обекта за финализация.................................................. 720 Определяне поколението на обект .......................................................... 721 Pinning.................................................................................................. 721