Невозможно описать в одной главе, или даже в одной книге, все классы каркаса .NET Framework. Хотя и не полностью, классы .NET охватывают большую часть интерфейса 32-разрядных Windows-приложений (Win32 API), так же как и много чего другого. Несмотря на то, что основное внимание было уделено функциональным возможностям, связанным с Internet, однако изменилась и модель разработки приложений в среде Windows.
В этой главе мы сосредоточим наше внимание на классах, которые иллюстрируют ключевые концепции и модели, проявляющиеся повсюду в каркасе .NET Framework. Такой подход представляется нам более плодотворным, чем просто попытаться немного рассказать о каждом классе, который когда-либо мог бы понадобиться, без того, чтобы дать читателю общее представление о классах .NET. В других главах глубже рассматриваются иные части каркаса, такие как Windows Forms (Формы Windows), ASP.NET, безопасность ADO.NET, и сетевые службы (Web Services).
Мы начинаем с рассмотрения концепций отражения и метаданных. Метаданные появляются всюду в .NET и важно понимать, как общеязыковая среда времени выполнения CLR (Common Language Runtime) предоставляет разные услуги (службы, сервисы) прикладным программам. Затем по нескольким причинам мы исследуем файловый ввод/вывод. Во-первых, при этом вводится важное понятие сериализации (преобразования в последовательную форму). Во-вторых, класс Path (Путь) позволяет проиллюстрировать, как отдельные классы каркаса реализуют некоторые или все свои функциональные возможности с помощью статических методов. В-третьих, рассматриваемые в применении к файловому вводу/выводу классы используются для форматирования во многих местах .NET.
Разобравшись в понятии сериализации, читатель получит конкретную идею относительно того, как каркас может управлять объектами прозрачным для нас способом. Ведь сериализация появляется во вспомогательной роли в любом месте, где объекты должны будут сохраняться или транспортироваться. Обсуждение интерфейса ISerializable снова демонстрирует, насколько проще реализовать интерфейс, используя .NET, чем с помощью модели компонентных объектов Microsoft (COM).