Гробов И.Д., Разработка Web-портала в ASP.NET 2.0 и SharePoint 2007 (+ CD-ROM)
серия: Профессиональное программирование
БХВ-Петербург, 2008 г., 656 стр., 978-5-9775-0229-0 , 232*163*28 мм., тираж: 2000
Описание книги
Ключевые слова
Поделиться ссылкой на книгу
Содержание книги
Структура книги 16
Выбор технологии 17
Цель написания этой книги 18
Для кого предназначена эта книга 18
Какими навыками необходимо владеть, чтобы
начать создание портала? 19
Введение 20
Системные требования 21
ЧАСТЬ I. Знакомство с ASP.NET и Visual Studio 2005
23
Определение портала 24
Составные части портала 25
Преимущества Web-порталов в сравнении с
Web-сайтами 26
Пользовательский интерфейс 26
Программные средства для разработки портала 27
Архитектура программных средств 28
Глава 1. Начало работы в ASP.NET 31
1.1. Знакомство с архитектурой ASP.NET 2.0 32
1.1.1. Создание сайта 32
1.1.2. Установка Visual Studio 32
1.1.3. Установка примеров QuickStart 32
1.2. Первая страница в ASP.NET 32
1.3. Создание приложения с помощью Visual Studio
2005 35
1.3.1. Работа в среде создания приложений в Visual
Studio 2005 38
1.3.2. Компиляция приложения 40
1.4. Публикация приложения 41
1.4.1. Использование встроенного Web-сервера 42
1.5. Модель клиент-сервер в ASP.NET 43
1.6. Какое место занимает ASP.NET во
взаимодействии клиента и сервера 44
1.7. Технология объектно-ориентированного
программирования 45
1.8. Серверные элементы управления 46
1.9. Теги в странице ASP.NET 47
1.9.1. Тег <form> и серверная форма 48
1.9.2. Атрибут runat ="server" 48
1.9.3. Тег <% ... %> 48
1.9.4. Теги <asp:... — объявляем серверный
элемент управления 49
1.9.5. Тег <script ... runat=server> 49
1.9.6. Знакомство с панелью инструментов 49
1.9.7. Модель соответствия клиентской формы
серверному документу 50
1.10. Обработка страницы клиентом 51
1.10.1. Механизм взаимодействия сервера и
клиента 53
1.11. Стандартные элементы управления 54
1.11.1. Элемент управления "поле ввода" 54
1.11.2. Элемент управления "выпадающий список"
(dropdownlist) 54
1.11.3. Класс System.Web.UI.Page 56
1.11.4. Страничная директива @ Page 57
1.12. Пространство имен в ASP.NET 57
1.13. Обзор среды разработки (IDE) 61
1.13.1. Используем стандартную панель
управления 62
1.14. Индивидуальная настройка среды Visual
Studio 2005 63
1.15. Заключение 64
Глава 2. Web-формы 66
2.1. Структура серверной Web-формы 67
2.2. Как происходит взаимодействие кодовой
формы и Web-формы 69
2.3. Создаем первую Web-форму 69
2.3.1. Режимы создания формы 70
2.3.2. Временное хранение фрагментов кода 73
2.3.3. Используем режим редактирования Source 74
2.3.4. Используем редактор кода 74
2.3.5. Создаем сценарий для кнопки 74
2.4. Предварительная компиляция кодовых форм
76
2.5. Технология программирования Web-форм 77
2.6. Модель обработки событий от пользователя
78
2.6.1. Методы GET и POST в обмене данными 79
2.7. Возврат формы серверу 80
2.7.1. Идентификация возврата формы сервером 81
2.7.2. Перекрестная отправка форм 82
2.8. Обработка событий в ASP.NET 83
2.8.1. Обработчик событий 84
2.9. Обработка событий от серверного элемента
управления 84
2.10. Порядок обработки Web-формы 85
2.10.1. Жизненный цикл формы 86
2.11. Методы Page_Init и Page_Load 87
2.11.1. Переопределение виртуальных методов
Page_Init и Page_Load 88
2.12. Хранение состояния 90
2.13. Трассировка страницы 92
2.13.1. Динамическая компиляция страниц в
ASP.NET 94
2.13.2. Среда исполнения Common Language
Runtime 95
2.13.3. Выполнение кода в CLR 96
2.14. Заключение 97
Глава 3. Создание шаблонов сайта 98
3.1. Эталонные страницы 99
3.2. Программная модель эталонных страниц 100
3.2.1. Элемент управления ContentPlaceHolder 102
3.2.2. Элемент управления Content 102
3.2.3. Архитектура построения эталонных страниц
103
3.3. Знакомство со структурой и методикой
построения эталонных страниц 104
3.3.1. Разрабатываем дочернюю страницу 106
3.3.2. Обработка событий в эталонной странице
108
3.4. Разрабатываем профессиональную эталонную
страницу 109
3.4.1. Размечаем страницы с помощью панели
Layout 109
3.4.2. Создание разметки для эталонной страницы
109
3.4.3. Разработка дочерней страницы 113
3.4.4. Создание дочерней страницы по прототипу
эталонной 115
3.4.5. Организация системы навигации 117
3.5. Программирование эталонной страницы 118
3.5.1. Используем несколько эталонных страниц в
проекте 119
3.5.2. Работа с эмулятором браузера 120
3.6. Заключение 121
Глава 4. Пользовательские элементы управления
122
4.1. Написание пользовательских элементов
управления в ASP.NET 122
4.1.1. Пользовательские элементы управления как
средство для повторного использования форм 123
4.1.2. Основы создания пользовательского
элемента управления 123
4.2. Разработка пользовательского элемента
управления в Visual Studio 2005 125
4.2.1. Технология связывания пользовательского
элемента управления с Web-формой 125
4.2.2. Используем пользовательский элемент
управления 127
4.2.3. Обмен данными с пользовательским
элементом управления 128
4.2.4. Используем редактируемые свойства 129
4.3. Обработка событий от пользовательских
элементов управления 130
4.4. Пользовательские серверные элементы 132
4.4.1. Создаем серверный элемент 133
4.4.2. Атрибуты серверного элемента управления
133
4.4.3. Интегрируем серверный элемент в среду
разработки Visual Studio 2005 136
4.5. Обработка событий страницы 137
4.6. Заключение 138
Глава 5. Конфигурация приложения 140
5.1. Система конфигурации в ASP.NET 141
5.1.1. Виртуальный каталог 142
5.1.2. Создаем виртуальный каталог 143
5.2. Файл конфигурации web.config в проекте Visual
Studio 143
5.2.1. Структура файла web.config 144
5.3. Мастер конфигурирования приложения 145
5.4. Создаем пользовательскую переменную в
файле конфигурации 148
5.5. Разделы конфигурации 150
5.5.1. Раздел <appSettings> 150
5.5.2. Раздел <system.web> 150
5.5.3. Раздел <sessionState> 150
5.5.4. Раздел <customErrors> 151
5.5.5. Раздел <authentication> 151
5.5.6. Раздел <authorization> 152
5.6. Управляем наследованием с помощью тега
<location> 152
5.6.1. Атрибут Path и тег <location> 152
5.6.2. Запрещаем переопределение параметров в
web.config с помощью атрибута allowOverride 153
5.7. Чтение и запись данных конфигурации 153
5.7.1. Запись данных в файл конфигурации 154
5.8. Шифрование данных конфигурации 155
5.8.1. Что не подлежит шифрованию? 156
5.9. Обработчики событий в ASP.NET 157
5.9.1. Обработчик httpHandler или HTTP-обработчик
157
5.9.2. Некоторые секции раздела <system.web>
158
5.9.3. Изучаем область объявления обработчиков
159
5.9.4. Создаем пользовательский обработчик
событий 159
5.10. Заключение 161
Глава 6. База данных пользователей портала 163
6.1. Основы создания Web-портала 164
6.1.1. Модель обработки запроса 165
6.1.2. Проверка подлинности клиента 166
6.1.3. Авторизация пользователя 167
6.1.4. Аутентификация пользователя на форме 168
6.2. Microsoft SQL Server 2005 как средство для
хранения данных о пользователе 169
6.2.1. Создание базы данных с помощью Visual
Studio 2005 169
6.2.2. Создаем соединение с SQL-сервером 172
6.2.3. Создание таблиц для хранения данных
персонализации 173
6.2.4. Строка соединения 175
6.3. Конфигурация узла 175
6.3.1. Мастер конфигурации webadmin.axd 176
6.3.2. Создание ролей 179
6.3.3. Создаем пользователя 180
6.3.4. Создаем права 181
6.3.5. Знакомимся с составом базы данных,
хранящей данные о пользователях 184
6.4. Элементы управления регистрацией 187
6.4.1. Класс FormsAuthentication 188
6.4.2. Элемент управления PasswordRecovery 188
6.4.3. Создаем меню для входа в систему 189
6.4.4. Элемент управления LoginStatus 193
6.4.5. Элемент управления LoginView 197
6.4.6. Элемент управления CreateUserWizard 199
6.5. Программные способы управления системой
пользователей 200
6.5.1. Класс Membership 201
6.5.2. Класс MembershipUser 203
6.5.3. Программные способы обработки
пользователей 204
6.5.4. Диспетчер ролей 205
6.5.5. Создание роли программным способом 207
6.6. Модель работы провайдеров 212
6.7. Персонализация страниц с помощью профилей
213
6.8. Распределенная схема прав для нескольких
приложений 216
6.9. Разработка политики конфиденциальности 217
6.10. Заключение 218
Глава 7. Работа с базами данных 219
7.1. Трехуровневая модель приложений 220
7.2. Отсоединенная модель 222
7.2.1. Объект DataSet 222
7.2.2. Связывание с данными при помощи DataBind
223
7.2.3. Особенность связывания с DataSet 224
7.2.4. Использование свойства ViewState 225
7.3. Элементы управления для работы с данными
225
7.3.1. Элементы управления — источники данных
226
7.3.2. Элементы управления для отображения
данных 230
7.3.3. События элементов GridView и DetailsView 235
7.4. SQL Server 2005 237
7.4.1. Новые типы данных в SQL Server 2005 237
7.4.2. Работаем с SQL Server 2005 239
7.4.3. Разработка базы данных 240
7.4.4. Декларативное связывание с данными 242
7.5. Связь с Microsoft Access 246
7.5.1. Использование ODBC 250
7.6. Работаем с XML 251
7.7. Вызываем встроенные процедуры 254
7.7.1. Создание новой встроенной процедуры 254
7.7.2. Передача параметров встроенной процедуре
255
7.8. Использование представлений (Views) 257
7.9. Кэширование 260
7.9.1. Способы кэширования в ASP.NET 260
7.9.2. Простейший способ кэширования —
кэширование выходных данных 261
7.9.3. Кэширование с помощью провайдеров
AccessDataSource и SQLDataSource 262
7.9.4. Зависимости кэша от данных в базе данных
SQL 262
7.10. Заключение 263
Глава 8. Навигация и профессиональное
оформление сайта 264
8.1. Система навигации сайта 265
8.1.1. Навигация с помощью объектов 265
8.1.2. Переадресация у клиента 265
8.2. Переадресация формы с передачей параметров
266
8.2.1. Переадресация пользователя с помощью
объекта Response 266
8.2.2. Свойство PostBackUrl 267
8.2.3. Метод Transfer 270
8.3. Элементы управления навигацией 271
8.3.1. Карта сайта или файл навигации 271
8.3.2. Провайдер данных SiteMapDataSource 273
8.3.3. Панель инструментов для отображения
системы навигации 273
8.3.4. Используем элементы управления навигации
274
8.4. Придаем профессиональный внешний вид 280
8.4.1. Создание пользовательских тем 280
8.4.2. Применение темы для страницы 283
8.4.3. Использование файлов стилей (CSS) 284
8.4.4. Привязка файла CSS к Web-странице 287
8.5. Заключение 289
Глава 9. Глобальные ресурсы сервера 290
9.1. Глобальные события в global.asax 291
9.1.1. Время жизни приложения 293
9.1.2. Сессия 293
9.2. Обработка запроса в HTTP Runtime 294
9.2.1. События уровня приложения 299
9.2.2. События уровня сессии 301
9.3. Класс HttpApplication 301
9.3.1. События класса HttpApplication 302
9.3.2. Трассировка событий страницы 304
9.3.3. Динамическая компиляция файла global.asax
309
9.4. HTTP-обработчики и модули в ASP.NET 309
9.4.1. Встроенные HTTP-модули 309
9.4.2. Что использовать — global.asax или
HTTP-модули? 311
9.4.3. Написание пользовательских HTTP-модулей
311
9.4.4. Написание пользовательских
HTTP-обработчиков или файл с расширением ashx
316
9.4.5. Взаимодействие с внутренними
приложениями сервера 317
9.4.6. Приемы и способы регистрации ошибок в
ASP.NET 317
9.5. Создание компилированных библиотек 319
9.5.1. Модель использования сборок в
инфраструктуре .NET 319
9.5.2. Создание локальных библиотек 321
9.5.3. Получение номера версии сборки
программным способом 324
9.5.4. Создаем сборку 324
9.5.5. Создание глобальных библиотек 326
9.5.6. Присвоение версии для глобальных
библиотек 326
9.5.7. Технология цифровой подписи 328
9.5.8. Вызываем сборку в сценарии 329
9.6. Заключение 332
Глава 10. Профессиональные приемы разработчика
334
10.1. Динамическое изменение основных
компонентов страницы 334
10.1.1. Динамическое создание элементов
управления в форме 335
10.1.2. Динамическое изменение в эталонных
страницах 336
10.2. Шаблоны проектов 340
10.2.1. Создание шаблона сайта 340
10.2.2. Создание шаблона для отдельных
компонентов проекта 342
10.3. Заключение 343
ЧАСТЬ II. Инфраструктура WebPart в ASP.NET 2.0
345
История настраиваемых элементов WebPart в
SharePoint 346
Знакомство с порталом SharePoint Services 3.0 346
Глава 11. Инфраструктура портала WebParts 352
11.1. Объектная модель Web-портала 353
11.1.1. Архитектура элементов управления
WebPart 354
11.1.2. Панель инструментов WebPart в Visual Studio
355
11.2. Архитектура классов инфраструктуры
WebPart 356
11.2.1. Классификация зон 357
11.2.2. WebPartZone 358
11.2.3. CatalogZone 359
11.2.4. DeclarativeCatalogPart 359
11.2.5. PageCatalogPart 359
11.2.6. ImportCatalogPart 360
11.2.7. EditorZone 361
11.2.8. AppearanceEditorPart 362
11.2.9. BehaviorEditorPart 362
11.2.10. LayoutEditorPart 362
11.2.11. PropertyGridEditorPart 362
11.2.12. ConnectionZone 362
11.2.13. Элементы управления WebPart 362
11.3. Режимы отображения формы 364
11.4. Планирование портала 366
11.5. Построение элементов WebPart 367
11.5.1. Работа с элементом управления
WebPartManager 367
11.5.2. Работа с WebPartZone 368
11.5.3. Свойства зон 370
11.5.4. Используем стили в элементах WebPart 372
11.5.5. Подробнее об элементе WebPartZone 375
11.5.6. Шаблон ZoneTemplate 376
11.6. Изменяем режим работы формы 378
11.6.1. Создаем элемент управления для
управления режимом отображения 379
11.6.2. Добавляем элементы WebPart на страницу
381
11.7. Режим редактирования 381
11.8. Режим Design 392
11.9. Режим каталога 394
11.10. Импорт и экспорт элементов WebPart 398
11.10.1. Экспортируем элемент WebPart 398
11.10.2. Импортируем элемент WebPart 399
11.10.3. Элемент управления DeclarativeCatalogPart
401
11.11. Элементы меню элемента WebPart 404
11.11.1. Ограничиваем редактирование элементов
в зоне 405
11.12. Программные способы использования
инфраструктуры портала на уровне классов 406
11.12.1. Классы семейства Chrome 411
11.13. Заключение 412
Глава 12. Соединение элементов WebPart 413
12.1. Обмен данными между элементами WebPart
414
12.1.1. Соединение WebPartConnection 416
12.2. Модель соединений WebPart 417
12.2.1. Атрибут [ConnectionProvider] 417
12.2.2. Атрибут [ConnectionConsumer] 418
12.2.3. Зона соединения ConnectionZone 419
12.2.4. Статическое соединение элементов
WebPart 420
12.3. Подготовка страницы 421
12.3.1. Создаем страницу 421
12.3.2. Подготавливаем источник 422
12.3.3. Подготавливаем приемник 423
12.4. Обеспечиваем возможность связывания
элементов WebPart 426
12.4.1. Создание интерфейса 427
12.4.2. Реализуем интерфейс в источнике 428
12.4.3. Реализация обмена данными 430
12.5. Приемник работает с интерфейсом 431
12.5.1. Создание приемника 431
12.5.2. Создаем соединение 433
12.6. Организация соединений в процессе
выполнения формы 436
12.6.1. Работаем с зоной соединения 436
12.7. Как вернуть состояние элементов портала в
исходное 440
12.8. Предопределенные интерфейсы 440
12.8.1. Обзор интерфейса IWebPartField 441
12.8.2. Реализация интерфейса IWebPartField в
источнике 441
12.8.3. Реализация интерфейса IWebPartField в
приемнике 443
12.8.4. Интерфейсы IWebPartTable и IWebPartRow
447
12.8.5. Интерфейс IWebPartParameters 447
12.9. Способы организации соединений 447
12.9.1. Типы соединений 447
12.9.2. Реализация предопределенных соединений
448
12.9.3. Объект WebPartConnection 450
12.9.4. Реализация временных соединений
(Transient) 450
12.10. Наблюдение за жизненным циклом событий
451
12.10.1. Жизненный цикл страницы 452
12.10.2. События этапа соединения 453
12.11. Использование несовместимых интерфейсов
453
12.11.1. Создаем пользовательский
преобразователь интерфейса 454
12.11.2. Используем предопределенные
преобразователи 457
12.12. Заключение 458
Глава 13. Эталонные страницы портала 459
13.1. Организация соединения с помощью Proxy
460
13.1.1. Элемент управления WebPartManager 460
13.1.2. Элемент управления ProxyWebPartManager
460
13.2. Используем ProxyWebPartManager для
организации статических соединений в дочерней
странице 462
13.2.1. Обмен данными между Источником и
Приемником, расположенными в дочерней и
эталонной странице 469
13.3. Модель работы провайдера персонализации
471
13.3.1. Какие возможности следует предоставлять
пользователям? 473
13.4. Заключение 474
Глава 14. Пользовательские элементы WebPart 475
14.1. Создание пользовательских элементов
WebPart 476
14.1.1. Создание ASP.NET WebPart в
компилированных сборках 477
14.2. Подробнее о внутренней реализации
элементов WebPart 478
14.2.1. Интерфейсы класса WebPart 478
14.3. Разработка элемента управления WebPart 480
14.3.1. Добавление новых пунктов меню 482
14.3.2. Отображение пользовательских элементов
verbs 484
14.3.3. Обработка события у клиента 485
14.3.4. Создание пользовательского интерфейса
486
14.3.5. Практическая реализация
пользовательского элемента 486
14.3.6. Формат и свойства отображения пунктов
меню 492
14.4. Используем элемент PropertyGridEditorPart 493
14.5. Заключение 496
Глава 15. Персонализация 497
15.1. Предпосылки персонализации 498
15.1.1. Какие данные участвуют в персонализации
498
15.2. Персонализация элементов WebPart 499
15.2.1. Процесс записи данных персонализации 500
15.3. Персонализация элементов WebPart 501
15.3.1. Элементы управления WebPart 501
15.3.2. Как персонализация отличается от
хранения состояния и можно ли использовать ее
самостоятельно? 502
15.4. Модель персонализации элементов WebPart
503
15.4.1. Область совместного использования
ресурсов 504
15.4.2. Класс WebPartPersonalization 505
15.4.3. Необходимые компоненты персонализации
507
15.5. Конфигурация системы персонализации 509
15.5.1. Конфигурация проекта для совместного
использования ресурсов 509
15.6. Создание пользовательского элемента
WebPart 510
15.6.1. Реализация персонализации для свойства
пользовательского элемента управления 511
15.6.2. Метод SetPersonalizationDirty 512
15.6.3. Совместное использование свойств для
группы пользователей 513
15.6.4. Использование элемента управления
BehaviorEditorPart 514
15.7. Провайдер данных персонализации 515
15.7.1. Класс PersonalizationProvider 516
15.7.2. Необходимость в пользовательских
поставщиках данных 518
15.8. Пользовательский элемент WebPartManager
519
15.8.1. Класс WebPartAuthorizationEventArgs 519
15.8.2. Свойство AuthorizationFilter 520
15.9. Интерфейсы персонализации 537
15.10. Заключение 537
Глава 16. Разработка сервисных функций портала
539
16.1. Разработка поисковой системы 540
16.1.1. Разновидность поисковых систем 541
16.1.2. Создание пользовательской системы поиска
541
16.1.3. Семантическое ядро запросов 542
16.1.4. Подготовка сайта для регистрации в
поисковых системах 542
16.2. Использование поисковых форм известных
поисковых систем 543
16.3. Использование Web-служб 545
16.3.1. Распределенные программные средства 546
16.3.2. Технологии, используемые в Web-службах
547
16.3.3. Используем удаленную Web-службу в Visual
Studio 549
16.4. Построение эффективных приложений 558
16.4.1. Технология AJAX 559
16.5. Развертывание сайта на удаленном сервере
560
16.5.1. Работаем с локальным информационным
сервером IIS 561
16.5.2. Публикуем Web-сайт на удаленный сервер
средствами Visual Studio 562
16.6. Заключение 564
ЧАСТЬ III. Решения для портала SharePoint 565
Узел SharePoint 567
SharePoint Services 3.0 и SharePoint Portal Server
2007 567
Интерфейс 568
Глава 17. Aspx-страницы в SharePoint 570
17.1. Создание узла в SharePoint 571
17.1.1. SharePoint Designer 2007 574
17.2. Создание aspx-страницы, совместимой с
SharePoint 576
17.2.1. Публикация страницы в SharePoint 578
17.2.2. Редактируем домашнюю страницу
средствами SharePoint Designer 579
17.2.3. Конфигурация системы безопасности
портала SharePoint 582
17.3. Заключение 582
Глава 18. Инфраструктура WebPart в SharePoint 584
18.1. Инфраструктура WebPart в SharePoint 585
18.1.1. Пространство имен Microsoft.SharePoint 585
18.2. Инфраструктура WebPart в SharePoint Services
V3.0 585
18.2.1. Импорт и экспорт WebPart 589
18.2.2. В каких случаях целесообразно
использовать класс Microsoft.SharePoint 590
18.3. Пространство имен Microsoft.SharePoint.Portal
591
18.4. Создание WebPart с помощью Visual Studio
2005 595
18.4.1. Интеграция решения 598
18.4.2. Интеграция пользовательского элемента
WebPart в SharePont 603
18.4.3. Персонализация элементов WebPart в
SharePoint 609
18.5. Использование клиентской формы в WebPart,
в SharePoint 610
18.5.1. SharePoint Server и ASP.NET AJAX 614
18.6. Способы улучшения Web-порталов 616
18.6.1. Информационные порталы для совместного
использования 616
18.6.2. Характеристики успешных Web-порталов
617
18.7. Заключение 619
Приложения 621
Приложение 1. Обзор элементов управления 623
Обзор часто встречающихся стандартных
элементов управления 623
Элементы управления для проверки достоверности
данных 628
Элементы управления для отображения данных
629
Элементы управления источники данных 632
Приложение 2. Директивы и основные объекты
ASP.NET 2.0 634
Библиография 650
Об авторе
Отзывы
Тем, кто хочет изучить SharePoint - мало информации. Тем кто хочет изучить ASP.NET - посмотрите на другие специализированные книги по ASP.NET
Последние поступления в рубрике "Локальные и корпоративные сети"
Виртуализация настольных компьютеров с помощью VMware View 5 Андрэ Л., Джейсон Л.
VMware View - решение для виртуализации настольных компьютеров, которое помогает автоматизировать управление настольными компьютерами и приложениями, сократить затраты и повысить уровень безопасности данных за счет централизации среды настольных компьютеров.... | |
Проектирование и расчет структурированных кабельных систем и их компонентов Семенов А.В.
B книге даются общие сведения о структуре и допустимых длинах кабельных линий различных подсистем СКС при основных вариантах ее реализации.... | |
SharePoint 2010 Workflows in Action Wicklund P.
SharePoint 2010 is a huge technology with tens of thousands of companies adopting it from all across the globe. Within the SharePoint product stack, workflows are one of the most compelling and ROI generating features for many business.... |
Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Гробов И.Д., Разработка Web-портала в ASP.NET 2.0 и SharePoint 2007 (+ CD-ROM) в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.