Оберг Р. Дж, Торстейнсон П. Архитектура. NET и программирование на Visual C++. Пер. с англ. М.: Издательский дом "Вильямс" 2002. - 656 с.
Если судить по названию, то может показаться, что эта книга вряд ли чем-то отличается от множества подобных, вышедших в последние годы и посвященных разбору принципов программирования для .NET. Но данное издание выделяется в этом потоке как полнотой охвата рассматриваемых тем, так и высоким качеством их изложения.
Непосредственно самой архитектуре .NET, ее общему обзору посвящены только первые две главы. Три следующие главы знакомят на прикладных примерах с наиболее важными элементами .NET. Читатель узнает о библиотеке классов .NET Framework, приемах стыковки стандартных классов и типов .NET с пользовательскими классами программы и способах обращения из программ на С++ к таким системным механизмам, как сборка мусора. Все важнейшие понятия новой архитектуры - интерфейсы, делегаты, события, свойства, исключительные ситуации - сопровождаются исходными текстами. Будут полезны примеры стыковки кода С++ с IDL-описаниями и подготовки системы резервирования билетов, учитывающей все особенности, накладываемые средой .NET. А страницы, отведенные созданию клиент-серверной чат-программы, полезно прочитать всем сетевым разработчикам.
Авторы книги, без сомнения, большие знатоки и поклонники С++. И хотя Visual Studio.NET не содержит средств визуального проектирования пользовательского интерфейса (из-за чего немало книг по программированию на С++ для .NET обходят эту тему стороной), читатель найдет в издании полезные советы по разработке такого интерфейса. Для этого авторы предлагают несколько путей: во-первых, вручную готовить на С++ тот код определения элементов управления форм, который дизайнер форм генерирует на C# автоматически, а во-вторых - воспользоваться полученным от дизайнера форм текстом C# и переделать его в программу на С++. В книге предлагаются довольно хитроумные приемы такого переноса, подчас напоминающие хакерские.
Седьмая глава отведена подготовке сборок .NET, упрощающих развертывание сложных приложений, а также контролю версий программ (авторы остаются верны традиционному подходу и предлагают исследование двоичного кода приложений с помощью консольных утилит). В главах 8-11 подробно рассматриваются стандартные классы среды .NET Framework. Читатель знакомится сначала с моделью приложений .NET, затем - с техникой работы с БД через интерфейс ADO.NET, организацией SQL-запросов, поддержкой транзакций и т. д. Далее описываются принципы создания Интернет-приложений на базе ASP.NET и Web-форм с использованием XML. Особое внимание уделено развертыванию Web-служб.
Из 12-й главы можно узнать о способах работы с сервером ATL Server через интерфейс ISAPI. Сервер написан на неуправляемом коде C++, поэтому обращаться к нему можно только из программ на С++. Он будет полезен в ситуациях, когда от приложения требуется максимальная производительность.
Вопросам защиты проекта на уровне доступа к коду .NET и защиты на основе ролей посвящена 13-я глава, а следующая, 14-я, рассказывает о средствах трассировки и отладки .NET приложений. В заключительной главе рассмотрены подходы к смешиванию управляемого и неуправляемого кодов и стыковки компонентов .NET и COM.
Текст книги довольно плотный. Авторы собрали в ней на удивление много законченных и практически полезных примеров самой разной сложности. Их изучение принесет немалую пользу всем желающим познакомиться с возможностями перспективной среды .NET, а интересная авторская техника программирования доставит поклонникам С++ немало приятных минут в процессе разбора хорошо прокомментированных исходных текстов.