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



страница2/73
Дата21.07.2018
Размер8.57 Mb.
1   2   3   4   5   6   7   8   9   ...   73

Съдържание


Том 1

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

Съдържание 17

Предговор 39

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

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

Какво представлява .NET Framework? 40

Какво обхваща тази книга? 40

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

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

Защо C#? 41

Поглед към съдържанието на книгата 42

Глава 1. Архитектура на .NET Framework 43

Глава 2. Въведение в езика C# 43

Глава 3. Обектно-ориентирано програмиране в .NET 43

Глава 4. Обработка на изключения в .NET 43

Глава 5. Обща система от типове 44

Глава 6. Делегати и събития 44

Глава 7. Атрибути 44

Глава 8. Масиви и колекции 44

Глава 9. Символни низове 44

Глава 10. Регулярни изрази 45

Глава 11. Вход/изход 45

Глава 12. Работа с XML 45

Глава 13. Релационни бази от данни и MS SQL Server 46

Глава 14. ADO.NET и работа с данни 46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

За използваната терминология 50

Конвенция за кода 51

Константите пишем с главни букви 51

Член-променливите пишем с префикс "m" 51

Параметрите на методите пишем с префикс "a" 51

Именуване на идентификатори 52

Именуване на контроли 52

Конвенции за базата данни 53

Как възникна тази книга? 53

Курсът по програмиране за платформа .NET в СУ (2002/2003 г.) 53

Проектът на Microsoft Research и БАРС 53

Курсът по програмиране за .NET Framework в СУ (2004/2005 г.) 54

Курсът по програмиране за .NET Framework в СУ (2005/2006 г.) 54

Проектът за настоящата книга 54

Авторският колектив 56

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

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

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

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

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

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

Деян Варчев 57

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

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

Галин Илиев 58

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

Иван Митев 58

Ивайло Димов 58

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

Лазар Кирчев 59

Манол Донев 59

Мартин Кулов 59

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

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

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

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

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

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

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

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

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

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

Стоян Дамов 62

Тодор Колев 63

Христо Дешев 63

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

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

Явор Ташев 64

Благодарности 64

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

Авторският колектив 64

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

Microsoft Research 65

SciForge.org 65

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

telerik 65

Други 65

Сайтът на книгата 66

Лиценз 66

Общи дефиниции 66

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

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

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

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



Глава 1. Архитектура на платформата .NET и .NET Framework 71

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

Съдържание 71

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

Какво представлява платформата .NET? 73

Визията на Microsoft 73

Архитектура на .NET платформата 73

.NET Enterprise Servers 74

.NET Framework и Visual Studio .NET 2003 75

.NET Building Block Services 76

.NET Smart Clients 76

Какво е .NET Framework? 77

Компоненти на .NET Framework 77

Архитектура на .NET Framework 77

Операционна система 78

Common Language Runtime 78

Base Class Library 78

ADO.NET и XML 79

ASP.NET и Windows Forms 79

Езици за програмиране 79

Common Language Runtime 79

Задачи и отговорности на CLR 80

Управляван код 81

Управление на паметта 82

Intermediate Language (IL) 83

Компилация и изпълнение 84

Архитектура на CLR 85

Как CLR изпълнява IL кода? 86

Асемблита 87

Проблемът "DLL Hell" 88

Метаданни 88

IL код 89

Ресурси 89

Разгръщане на асемблита 89

.NET приложения 90

Преносими изпълними файлове 90

Application domains 91

Интеграция на езиците за програмиране 92

Common Language Specification (CLS) 92

Common Type System (CTS) 92

Common Language Infrastructure (CLI) 93

.NET езиците 94

Framework Class Library 95

Пакетите от FCL 96

Visual Studio .NET 97

Писане на код 97

Създаване на потребителски интерфейс 98

Компилиране 99

Изпълняване и тестване 100

Проследяване на грешки 100

Създаване на инсталационен пакет 101

Получаване на помощ 101

VS.NET е силно разширяема среда 101

Упражнения 102

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

Глава 2. Въведение в C# 104

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

Съдържание 104

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

Какво е C# 105

Принципи при дизайна на езика C# 105

Компонентно-ориентиран 105

Всички данни са обекти 105

Сигурност и надеждност на кода 106

Всичкият код е на едно място 108

Програмите на C# 108

Нашата първа програма на C# 108

Как работи програмата? 109

Създаване на проект, компилиране и стартиране от Visual Studio.NET 110

Запазени думи в C# 112

Типове данни в C# 112

Стойностни типове (value types) 113

Референтни типове (reference types) 113

Примитивни типове 113

Типове дефинирани от потребителя 113

Преобразуване на типовете 114

Изброени типове (enumerations) 115

Идентификатори 116

Декларации 116

Константи 117

Оператори 117

Изрази (expressions) 118

Програмни конструкции (statements) 118

Елементарни програмни конструкции 118

Съставни конструкции 118

Програмни конструкции за управление 119

Специални конструкции 122

Коментари в програмата 122

Вход и изход от конзолата 122

Вход от конзолата 123

Изход към конзолата 123

Дебъгерът на Visual Studio .NET 124

Инструментът ILDASM 126

XML документация в C# 127

Тагове в XML документацията 128

Извличане на XML документация от C# сорс код 128

Генериране на HTML документация от VS.NET 130

Директиви на предпроцесора 131

Директиви за форматиране на сорс кода 131

Директиви за условна компилация 132

Директиви за контрол над компилатора 132

Документацията на .NET Framework 133

MSDN Library 133

.NET Framework и MSDN Library 134

Упражнения 135

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

Глава 3. Обектно-ориентирано програмиране в .NET 137

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

Съдържание 137

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

Предимства и особености на ООП 139

Моделиране на обекти от реалния свят 139

Преизползване на програмния код 139

Основни принципи на ООП 139

Капсулация на данните 139

Наследяване 140

Полиморфизъм 140

Основни понятия в ООП 140

Клас 141

Обект 141

Инстанциране 141

Свойство 141

Метод 141

Интерфейс 141

Наследяване на класове 141

Абстракция на данните 141

Абстракция на действията 142

ООП и .NET Framework 142

Типове данни 142

Реализация на понятието клас 142

Множествено наследяване 143

Класове 143

Членове на тип 144

Видимост на членовете 145

Член-променливи 145

Константни полета 146

Полета само за четене 147

Методи 147

Статични членове 149

Конструктори 150

Статичен конструктор 156

Свойства 159

Индексатори 164

Структури 169

Структури – пример 170

Предаване на параметрите 170

Параметри за връщане на стойност (out) 171

Предаване по референция (ref) 172

Предаване по стойност (in) 173

Променлив брой параметри 175

Предаване на променлив брой параметри от различен тип 175

Предефиниране на оператори 176

Приоритет и асоциативност 176

Операторите в C# 177

Предефинируеми оператори 177

Предефиниране на оператори – пример 177

Наследяване 182

Класове, които не могат да се наследяват (sealed) 184

Наследяване при структурите 184

Конвертиране на обекти 185

Интерфейси 186

Членове на интерфейс 187

Реализиране на интерфейс 188

Обекти от тип интерфейс 191

Явна имплементация на интерфейс 192

Абстрактни класове 194

Абстрактни членове 194

Наследяване на абстрактни класове 195

Виртуални членове 198

Предефиниране и скриване 198

Клас диаграми 201

Изобразяване на типовете и връзките между тях 201

Пространства от имена (namespaces) 203

Дефиниране 204

Достъп до типовете 204

Подпространства 205

Как да организираме пространствата? 206

Принципи при обектно-ориентирания дизайн 207

Функционална независимост (loose coupling) 208

Силна логическа свързаност (strong cohesion) 208

Упражнения 208

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



Глава 4. Управление на изключенията в .NET 213

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

Съдържание 213

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

Изключенията в ООП 214

Изключенията в .NET Framework 214

Прихващане на изключения 215

Програмна конструкция try-catch 215

Как CLR търси обработчик за изключенията? 216

Прихващане на изключения – пример 216

Прихващане на изключения на нива – пример 217

Свойства на изключенията 219

Йерархия на изключенията 220

Подредбата на catch блоковете 221

Изключения и неуправляван код 222

Предизвикване (хвърляне) на изключения 223

Хвърляне и прихващане на изключения – пример 224

Хвърляне на прихванато изключение – пример 224

Собствени изключения 225

Дефиниране на собствени изключения 226

Собствени изключения – пример 226

Конструкцията try–finally 229

Къде е проблемът? 230

Решението 230

Конструкцията try-catch-finally 231

try-finally за освобождаване на ресурси 233

Препоръчвани практики 234

Упражнения 235

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

Глава 5. Обща система от типове
(Common Type System) 237

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

Съдържание 237

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

Какво е CTS? 238

CTS и езиците за програмиране в .NET 238

CTS e обектно-ориентирана 238

CTS описва .NET типовете 238

Стойностни и референтни типове 238

Къде са ми указателите? 239

Йерархията на типовете 239

Типът System.Object 240

Стойностни типове (value types) 240

Референтни типове (reference types) 240

Стойностни срещу референтни типове 241

Стойностни и референтни типове – пример 242

Защита от неинициализирани променливи 246

Автоматична инициализация на променливите 246

Типът System.Object 246

Защо стойностните типове наследяват референтния тип System.Object? 247

Потребителските типове скрито наследяват System.Object 247

Методите на System.Object 247

Предефиниране на сравнението на типове 248

Оператори за работа с типове в C# 251

Оператор is 251

Оператор as 251

Оператор typeof 251

Оператори is и as – пример 252

Клониране на обекти 253

Плитко клониране 253

Дълбоко клониране 254

Плитки срещу дълбоки копия 254

Интерфейсът ICloneable 254

Клониране на обекти в .NET Framework 254

Имплементиране на ICloneable – пример 254

Опаковане (boxing) и разопаковане (unboxing) на стойностни типове 257

Опаковане (boxing) на стойностни типове 257

Разопаковане (unboxing) на опаковани типове 258

Особености при опаковането и разопаковането 258

Как работят опаковането и разопаковането? 258

Пример за опаковане и разопаковане 259

Аномалии при опаковане и разопаковане 260

Интерфейсът IComparable 262

Системни имплементации на IComparable 263

Имплементиране на IComparable – пример 263

Интерфейсите IEnumerable и IEnumerator 264

Интерфейсът IEnumerable 265

Интерфейсът IEnumerator 265

Имплементиране на IEnumerable и IEnumerator 265

Упражнения 268

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

Глава 6. Делегати и събития 272

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

Съдържание 272

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

Какво представляват делегатите? 273

Инстанциране на делегат 273

Делегатите и указателите към функции 273

Callback методи и делегати 273

Статични или екземплярни методи 273

Пример за делегат 273

Видове делегати 274

Единични (singlecast) делегати 274

Множествени (multicast) делегати 275

Инструментът .NET Reflector 279

Използване на .NET Reflector 279

Събития (Events) 280

Шаблонът "Наблюдател" 281

Изпращачи и получатели 281

Събитията в .NET Framework 281

Деклариране на събития 281

Операции върху събития 281

Разлика между събитие и делегат 282

Конвенция за събитията 282

Събития – пример 283

Делегатът System.EventHandler 287

Пример за използване на System.EventHandler 288

Събития и интерфейси 288

Имплементиране на събития в интерфейс 289

Събития и интерфейси – пример 289

Интерфейси, събития, делегати 291

Упражнения 293

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



Глава 7. Атрибути 295

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

Съдържание 295

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

Какво представляват атрибутите в .NET? 296

Прилагане на атрибути 296

Атрибутите са обекти 298

Параметри на атрибутите 298

Задаване на цел към атрибут 299

Къде се използват атрибутите? 300

Декларативно управление на сигурността 300

Използване на автоматизирана сериализация на обекти 300

Компонентен модел на .NET 301

Създаване на уеб услуги в ASP.NET 301

Взаимодействие с неуправляван (Win32) код 302

Синхронизация при многонишкови приложения 302

Дефиниране на собствени атрибути 302

Собствени атрибути – пример 303

Дефиниране на собствен атрибут – пример 303

Извличане на атрибути от асембли 304

Мета-атрибутът AttributeUsage 305

Как се съхраняват атрибутите? 306

Какво се случва по време на компилация? 306

Какво се случва при извличане на атрибут? 307

Упражнения 307

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



Глава 8. Масиви и колекции 310

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

Съдържание 310

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

Какво e масив? 311

Деклариране на масиви 311

Заделяне на масиви 311

Масивите в .NET Framework 311

Елементи на масивите 312

Видове масиви 312

Масиви – пример 312

Прости числа – пример 313

Масиви от референтни типове – пример 314

Многомерни масиви 316

Инициализиране и достъп до елементите 316

Разположение в паметта 316

Многомерни масиви – пример 317

Масиви от масиви 319

Инициализиране и достъп до елементите 320

Разположение в паметта 320

Триъгълник на Паскал – пример 320

Типът System.Array 322

Свойства 322

Методи 322

Имплементирани интерфейси 323

Създаване на ненулево-базиран масив – пример 324

Сортиране на масиви 326

Сортиране с IComparer – пример 327

Двоично търсене 328

Двоично търсене – пример 329

Съвети за работа с масиви 329

Какво е колекция? 330

Колекциите в .NET Framework 330

Списъчни и речникови колекции 330

Колекциите са слабо типизирани 331

Интерфейсите за колекции 331

Списъчни колекции 332

Интерфейсът IList 332

Класът ArrayList 332

Други списъчни колекции 334

Речникови колекции 335

Интерфейсът IDictionary 336

Класът Hashtable 336

Производителност на Hashtable 337

Собствени хеш-функции 339

Класът SortedList 341

Силно типизирани колекции 342

Специални колекции 342

Упражнения 343

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



Глава 9. Символни низове
(Strings) 346

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

Съдържание 346

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

Стандартът Unicode 348

В началото бе ASCII 348

Unicode 349

Символите в Unicode 349

Кодови двойки 350

Графични знаци (графеми) 350

Типът System.Char 351

Методи за класификация на символите 351

Методи за смяна на регистъра 351

Символни низове в .NET Framework 351

Символните низове и паметта 352

Класът System.String 353

Правила за сравнение на символни низове 353

Методи и свойства на System.String 354

Escaping последователности 361

Ефективно конструиране на низове чрез класа StringBuilder 364

Проблемът с долепването на низове 364

Решението на проблема – класът StringBuilder 364

Членове на StringBuilder 365

Използване на StringBuilder – пример 366

Задаване на първоначален размер за StringBuilder 367

Сравнение на скоростта на String и StringBuilder – пример 368

Класът StringInfo 369

Използване на StringInfo – пример 369

Интерниране на низове 370

Форматиращи низове 371

Използване на форматиращи символи 371

Форматиране на числа 372

Отместване при форматирането 374

Форматиране на дати и часове 375

Потребителско форматиране 376

Интернационализация 378

Културите в .NET Framework 378

Класът CultureInfo 378

Свойства на класа CultureInfo 378

Класът CultureInfo – пример 379

Списък на културите – пример 379

Извличане на списък от всички култури в .NET Framework – пример 380

Парсване на типове 381

Парсване на числови типове 382

Парсване на дати 384

Кодиращи схеми 385

Кодиращи схеми UTF 385

UTF-8 386

UTF-16 386

UTF-32 387

Подредба на байтовете при UTF-16 и UTF-32 387

Други кодиращи схеми 387

Кодиращи схеми – пример 388

Конвертиране със System.Text.Encoding 388

Кодиране Base64 390

Работа с Unicode във Visual Studio.NET 391

Упражнения 396

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



Глава 10. Регулярни изрази 402

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

Съдържание 402

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

Регулярни изрази 403

Какво е регулярен израз? 403

За какво се използват регулярните изрази? 403

Регулярни изрази и крайни автомати 404

История на регулярните изрази 404

Няколко прости примера 405

Лесен пример за начало 405

Търсене на телефонни номера 405

Пример за регулярен израз в .NET 405

Езикът на регулярните изрази 406

Литерали 407

Метасимволи 407

Escaping при регулярните изрази 407

Най-важното за работата с регулярни изрази 409

Шаблонът не е за съвпадение с целия низ 409

Съвпаденията се откриват в реда на срещане 409

Търсенето приключва, когато се открие съвпадение 409

Търсенето продължава от последното съвпадение 410

Регулярният израз търси за всички възможности подред 410

Основни метасимволи 410

Класове от символи 410

Метасимволи за количество 413

"Мързеливи" метасимволи за количество 415

Метасимволи за местоположение 416

Метасимволът за избор | 419

По-обстоен пример с разгледаните метасимволи 420

Регулярните изрази в .NET Framework 422

Пространството System.Text.RegularExpressions 422

Представяне на шаблони 423

Търсене с регулярни изрази 424

Няколко основни правила при търсенето 424

Класът Match 424

Последователно еднократно търсене с Match(…) и NextMatch() 425

Тагове за хипервръзки в HTML код – пример 426

Още нещо за позицията на следващото търсене 428

Търсене за съвпадения наведнъж с Matches(…) и MatchCollection 428

Групи в регулярните изрази 429

Предимства на групите 429

Неименувани (анонимни) групи 430

Именувани групи 431

Номериране на групите 431

Търсене с групи в .NET 432

Класовете Group и GroupCollection 432

Как извличаме информацията от групите? 432

Парсване на лог – пример 434

Извличане на хипервръзки в HTML документ – пример 435

Работа с обратни препратки 436

Обратни препратки към именувани групи 437

Извличане на HTML тагове от документ – пример 438

Работа с Captures 440

Валидация с регулярни изрази 441

Видове валидация 441

Полезни съвета за валидация с регулярни изрази 442

Валидация с метода IsMatch(…) 442

Валидни e-mail адреси – пример 442

Валидни положителни цели числа – пример 443

Заместване с регулярни изрази 444

Заместване със заместващ шаблон 444

Специални символи в заместващия шаблон 445

Заместване с MatchEvaluator 447

Разделяне на низ по регулярен израз 447

Разделяне с групи в шаблона 448

Методите Escape(…) и Unescape(…) 449

Методът Unescape(…) 450

Настройки и опции при работа с регулярните изрази 450

Multiline 450

Singleline 450

IgnoreCase 451

ExplicitCapture 451

RightToLeft 452

Compiled 452

Допълнителни възможности на синтаксиса на регулярните изрази 452

Символът \G – последователни съвпадения 453

Групи, които не запазват съвпадение 453

Метасимволи за преглед напред и назад 454

Условен избор 456

Коментари в регулярните изрази 457

Модификатори на регулярните изрази 457

Особености и метасимволи, свързани с Unicode 458

Метасимволите за Unicode категории 458

Възможни проблеми с Unicode 459

Предварително компилиране и запазване на регулярни изрази 459

Кога да използваме регулярни изрази 461

Няколко думи за ефективността 462

Няколко регулярни израза от практиката 463

Размяна на първите две думи в низ 463

Парсване на декларации = 463

Парсване на дати 464

Премахване на път от името на файл 465

Валидация на IP адреси 465

Полезни Интернет ресурси 465

Инструментът The Regulator 466

Упражнения 469

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



Глава 11. Вход и изход 473

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

Съдържание 473

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

Какво представляват потоците? 474

Потоци – пример 474

Потоците в .NET Framework 475

Базови потоци (base streams) 476

Преходни потоци (pass-through streams) 476

Основни операции с потоци 476

Типът System.IO.Stream 476

Четене от поток 477

Писане в поток 478

Изчистване на работните буфери 478

Затваряне на поток 478

Промяна на текущата позиция в поток 480

Буферирани потоци 480

Файлови потоци 480

Създаване на файлове поток 480

Четене и писане във файлов поток 481

Пример – замяна на стойност в двоичен файл 481

Четци и писачи 482

Двоични четци и писачи 482

Текстови четци и писачи 484

Четци, писачи и кодирания 488

Потоци в паметта 488

Четене от MemoryStream – пример 488

Писане в MemoryStream – пример 489

Операции с файлове. Класове File и FileInfo 490

File и FileInfo – пример 490

Работа с директории. Класове Directory и DirectoryInfo 491

Рекурсивно обхождане на директории – пример 491

Класът Path 493

Специални директории 494

Наблюдение на файловата система 495

Наблюдение на файловата система – пример 495

Как работи примерът? 496

Работа с IsolatedStorage 497

IsolatedStorage – пример 497

Упражнения 499

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

Глава 12. Работа с XML 502

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

Съдържание 502

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

Какво е XML? 504

XML (Extensible Markup Language) 504

Какво представлява един markup език? 504

XML markup – пример 504

Универсална нотация за описание на структурирани данни 504

XML съдържа метаинформация за данните 505

XML е метаезик 505

XML е световно утвърден стандарт 505

XML е независим 505

XML – пример 505

XML и HTML 505

Прилики между езиците XML и HTML 506

Разлики между езиците XML и HTML 506

Добре дефинирани документи 506

XML изисква добре дефинирани документи 507

Пример за лошо дефиниран XML документ 507

Кога се използва XML? 507

Обмяна на информация 507

Съхранение на структурирани данни 507

Недостатъци на XML 508

Обемисти данни 508

Повишена необходимост от физическа памет 508

Намалена производителност 508

Пространства от имена 508

Дефиниране на пространства от имена 509

Използване на тагове с еднакви имена – пример 509

Пространства по подразбиране 510

Пространства по подразбиране – пример 510

Пространства от имена и пространства по подразбиране – пример 510

Схеми и валидация 511

XML схеми – защо са необходими? 511

XML схеми – видове 512

Езикът DTD 512

XSD схеми 513

XDR схеми 516

Редакторът за схеми на VS.NET 518

XML парсери 522

XML парсери – приложение 523

XML парсери – видове 523

DOM 523


SAX 524

XML и .NET Framework 524

.NET притежава вградена XML поддръжка 524

.NET и DOM моделът 525

Парсване на XML документ с DOM – пример 525

Класовете за работа с DOM 527

Класът XmlNode 528

Класът XmlDocument 529

Промяна на XML документ с DOM – пример 529

Построяване на XML документ с DOM – пример 532

SAX парсери и XmlReader 533

Класът XmlReader 533

Разлика между pull и push парсер моделите 533

Push парсер 533

Pull парсер 533

XmlReader – основни методи и свойства 533

Класът XmlReader – начин на употреба 534

XmlReader – пример 534

Кога да използваме DOM и SAX? 536

Класът XmlWriter 536

XmlWriter – основни методи 536

Работа с XmlWriter 537

XmlWriter – пример 537

Валидация на XML по схема 540

Класът XmlValidatingReader 540

XmlValidatingReader – основни методи, свойства и събития 541

Валидация на XML – пример 541

Валидация на XML при DOM 546

XPath 547

Описание на езика 547

XPath в .NET Framework 550

XSLT 558


Технологията XSLT 558

XSLT и .NET Framework 559

Упражнения 563

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



Глава 13. Релационни бази от данни и MS SQL Server 568

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

Съдържание 568

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

Релационни бази от данни 570

Модели на базите от данни 570

Системи за управление на БД 571

Таблици 572

Схема на таблица 573

Първичен ключ 573

Външен ключ 573

Връзки (релации) 573

Множественост на връзките 574

Релационна схема 575

Нормализация 578

Ограничения (Constraints) 581

Индекси 582

Езикът SQL 582

Изгледи (Views) 583

Съхранени процедури (stored procedures) 584

Тригери (Triggers) 585

Транзакции 586

Въведение в SQL Server 591

История на SQL Server 591

Системни компоненти на SQL Server 2000 591

Програмиране за SQL Server 2000 593

Въведение в T-SQL 595

Data Definition Language (DDL) 595

Data Manipulation Language (DML) 599

DBCC команди в SQL Server 610

Съхранени процедури 612

Транзакции в SQL Server 616

Пренасяне на база от данни 620

Упражнения 625

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

Глава 14. Достъп до данни с ADO.NET 628

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

Съдържание 628

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

Модели за работа с данни в ADO.NET 630

Свързан модел (connected model) 630

Несвързан модел (disconnected model) 631

Еволюция на приложенията 633

Еднослойни приложения 633

Двуслойни приложения (клиент-сървър) 633

Трислойни приложения 634

Многослойни приложения 636

Какво е ADO.NET? 637

Пространства от имена на ADO.NET 638

Еволюция на ADO към ADO.NET 638

Компоненти на ADO.NET 639

Доставчици на данни (Data Providers) в ADO.NET 640

Стандартни доставчици на данни в ADO.NET 642

Компоненти за работа в несвързана среда 643

SqlClient Data Provider 643

Видове автентикация в SQL Server 2000 643

Символен низ за връзка към база от данни (Connection String) 644

Connection Pooling 645

Реализация на свързан модел в ADO.NET 646

Кога да използваме свързан модел? 646

Свързан модел от гледна точка на програмиста 646

Класовете в свързана среда 647

Класът SqlConnection 648

Експлицитно отваряне и затваряне на връзка 648

Имплицитно отваряне и затваряне на връзка 649

Използване на метода Dispose() 649

Събитията на SqlConnection 649

Класът SqlCommand 651

По-важни свойства на SqlCommand 652

По-важни методи на SqlCommand 652

Класът SqlDataReader 653

По-важни методи и свойства на SqlDataReader 653

Свързан модел – пример 653

Описание на примера 655

Създаване на SqlCommand 655

Създаване на SqlCommand чрез Server Explorer 656

Създаване на SqlCommand чрез Toolbox 656

Параметрични SQL заявки 658

Необходимост от параметрични заявки 658

Класът SqlParameter 660

Параметрични заявки – пример 660

Първичен ключ с пореден номер – извличане 663

Използване на транзакции 664

Работа с транзакции в SQL Server 664

Работа с транзакции в ADO.NET 664

Транзакции – пример 665

Връзка с други бази от данни 667

OLE DB Data Provider 668

Стандартът OLE DB 668

Връзка към OLE DB 669

Връзка с OLE DB – пример 669

Правилна работа с дати 671

Работа с дати – пример 672

Описание на примера 675

Работа с картинки в база от данни 675

Двоични данни в MS SQL Server 676

Двоични данни в Oracle 676

Двоични данни в MS Access 676

Съхранение на графични обекти – пример 676

Как работи примерът? 680

Работа с големи обеми двоични данни 681

Четене на обемни данни 681

Запис на обемни данни 681

ADO.NET в несвързана среда 682

Типични сценарии за работа в несвързана среда 683

Несвързан модел в ADO.NET, XML и уеб услуги 683

Класове за достъп до данните в несвързана среда 684

DataSet – обектен модел 685

Колекции в DataSet 685

Схема на DataSet 685

Силно типизирани DataSets 686

Създаване на DataSet 687

Поддръжка на автоматично свързване 691

Класът DataTable 692

DataTable поддържа списък на всички промени 692

Основни свойства на DataTable 693

Основни методи на DataTable 693

Работа с DataTable 694

Използване на ограничения (constraints) 697

Първичен ключ 697

ForeignKey и Unique ограничения 698

Потребителски изрази 699

Пример за дефиниране на колона чрез израз 700

DataRelation обекти 700

Релации и ограничения 700

Релации и потребителски интерфейс 701

Релации и потребителски изрази 701

Основни методи, използващи релации 702

Класът DataView 702

Филтриране чрез израз 703

Филтриране по версията на данните 703

Сортиране по колона (колони) 703

Запазване и зареждане на данните от DataSet 704

DataSet.ReadXml() 704

DataSet.WriteXml() 705

ReadXml() и WriteXml() – пример 706

Използване на DataAdapter 708

Архитектура на класа DataAdapter 708

Адаптерни класове за различните доставчици 709

Създаване на DataAdapter 709

Методът Fill() на класа DataAdapter 710

Свойството MissingSchemaAction 710

Запълване на няколко таблици 710

Задаване на съответствие за таблици и колони 711

Извличане на информация за схемата на източника 712

Свойства AcceptChangesDuringFill и ContinueUpdateOnError 712

Събития на DataAdapter 712

Обновяване на данните в източника 713

Класът CommandBuilder 713

Потребителска логика за обновяване на източника 715

Извличане на обновени стойности в DataSet 715

DataAdapter – пример 716

Обновяване на свързани таблици 719

DataSet.GetChanges() и DataSet.HasChanges() 719

Параметри на методите 719

Какво правят двата метода? 720

Кога да използваме GetChanges() и HasChanges()? 720

DataSet.GetChanges() – пример 720

Грешките в DataSet и DataTable обектите 721

Несвързан модел – типичен сценарий на работа 722

Реализация на несвързан модел с DataSet и DataAdapter – пример 723

Класът XmlDataDocument 729

Предимства на XmlDataDocument 729

Начини за синхронизация 729

XmlDataDocment – пример 730

Сигурността при работа с бази от данни 731

Сигурност при динамични SQL заявки 732

Connection pooling и сигурност 732

Съхраняване на connection string 732

Защитна стена 732

Криптиране на комуникацията 733

Упражнения 733

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение 751






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

Лекторите

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

Той е разработчик с дъл­гого­дишен опит, работил по раз­нообразни проекти, реали­зи­рани с раз­лични техноло­гии (.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
1   2   3   4   5   6   7   8   9   ...   73


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница