Симон Робинсон - C# для профессионалов. Том II
- Название:C# для профессионалов. Том II
- Автор:
- Жанр:
- Издательство:Лори
- Год:2003
- Город:Москва
- ISBN:5-85582-187-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Симон Робинсон - C# для профессионалов. Том II краткое содержание
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
Основные темы книги• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
listBoxProperties.Items.Clear();
foreach (string s in properties) {
listBoxProperties.Items.Add(s);
}
}
В методе GetSchemaProperties()
мы снова обращаемся к активному каталогу. В этот раз вместо rootDSE
используется имя LDAP в схеме, которое мы обнаружили ранее. Свойство systemMayContain
содержит коллекцию всех атрибутов, которые допустимы в классе objectType
:
protected string[] GetSchemaProperties(string schemaNamingContext, string objectType) {
string [] data;
using (DirectoryEntry de = new DirectoryEntry()) {
de.Username = username;
de.Password = password;
de.Path = "LDAP://" + hostname + "/CN=" + objectType + "," + schemaNamingContext;
DS.PropertyCollection properties = de.Properties;
DS.PropertyValueCollection values = properties["systemMayContain"];
data = new String[values.Count];
values.CopyTo(data, 0);
}
return data;
}
Одно интересное замечание к этому коду: в приложении Windows Forms класс PropertyCollection
пространства имен System.DirectoryServices
имеет конфликт имен с System.Data.PropertyCollection
. Поскольку писать такие длинные имена как System.DirectoryServices.PropertyCollection
не всегда хочется, то с целью разрешения конфликта имя пространства имен можно сократить с помощью
namespace DS = System.DirectoryServices;
Именно отсюда появляется DS.PropertyCollection
.
Шаг 2 приложения завершен. Окно списка ( listbox
) содержит все имена свойств объектов User
.
Поиск объектов User
Обработчик для кнопки поиска вызывает вспомогательный метод FillResult()
:
private void buttonSearch_Click(object render, System.EventArgs e) {
try {
FillResult();
} catch (Exception ex) {
MessageBox.Show("Check your input: " + ex.Message)
}
}
В методе FillResult()
выполняется обычный поиск в полном домене активного каталога, как мы видели раньше. SearchScope
задается как Subtree
, Filter
для строки мы получаем из TextBox
, а свойства, которые должны быть загружены в кэш, задаются значениями, которые пользователь выбирает в окне списка
protected void FillResult() {
using (DirectoryEntry root = new DirectoryEntry()) {
root.Username = username;
root.Password = password;
root.Path = "LDAP://" + hostname + defaultNamingContext;
using (DirectorySearcher searcher = new DirectorySearcher()) {
seacher.SearchRoot = root;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = textboxfilter.Text;
searcher.PropertiesToLoad.AddRange(GetProperties());
SearchResultCollection results = searcher.FindbAll();
StringBuilder summary = new StringBuilder();
foreach (SearchResult result in results) {
foreach (string propName in result.Properties.PropertyNames) {
foreach (string s in result.Properties[propName]) {
summary.Append(" " + propName + ": " + s + "\r\n");
}
}
summary.Append("\r\n");
}
textBoxResults.Text = summary.ToString();
}
}
}
Запустив приложение, мы получим список всех объектов, которые прошли через фильтр:

Заключение
В этой главе рассматривалась архитектура активного каталога, важные концепции о доменах, деревьях и лесах. Теперь мы можем получить информацию обо всем предприятии. Создавая приложения, которые обращаются к активному каталогу, необходимо знать, что данные, которые мы считываем, возможно, не являются современными в связи с задержкой репликации.
С помощью классов из пространства имен System.DirectoryServices
мы получаем простые способы доступа к активному каталогу для провайдеров ADSI. Класс DirectoryEntry
делает возможным чтение и запись объектов непосредственно в хранилище данных.
С помощью класса DirectorySearcher
можно выполнять сложный поиск и определять фильтры, задержки времени, свойства для загрузки, и область действия. Используя глобальный каталог, мы ускоряем поиск объектов по всему предприятию так как он хранит версию только для чтения всех объектов леса.
Глава 16
Страницы ASP.NET
Для новичков в мире C# и .NET может показаться странным, почему в книгу включена глава, посвященная ASP.NET. Это совершенно новый язык, не так ли? Не совсем. Фактически, как мы увидим, можно использовать C# для создания страниц ASP.NET. Но мы забегаем вперед. Прежде всего необходимо обсудить, что же такое ASP.NET.
ASP.NET (Active Server Pages.NET — активные серверные страницы .NET), поставляется как часть платформы .NET и является технологией, которая позволяет динамически создавать документы на сервере Web, когда они запрашиваются через HTTP. Это в основном документы HTML, хотя в равной степени можно создавать, например, документы WML для использования в браузерах WAP или на самом деле что-то еще с помощью типа MIME.
Технология ASP.NET аналогична таким технологиям, как PHP, ColdFusion и другим, но между ними имеется одно существенное различие. ASP.NET, как предполагает ее название, была создана с целью полной интеграции в платформу .NET, часть которой включает поддержку C#.
Вполне возможно, что читатель обладает опытом работы с последней технологией компании Microsoft для получения динамической генерации содержимого — ASP. В этом случае, он должен, вероятно, знать, что программирование в этой технологии использует язык сценариев, такой как VBScript или JScript. Это работало, но некоторые вещи были затруднительны для тех программистов, которые привыкли использовать 'правильные' языки программирования, что приводило в результате к потере производительности.
Одним из основных отличий, связанных с использованием более развитых языков программирования, является обеспечение полной серверной объектной модели для использования во время работы. ASP.NET предоставляет доступ ко всем элементам управления на странице, как к объектам в обширном окружении. Также на стороне сервера мы имеем доступ ко всем другим требуемым классам .NET, позволяя интеграцию многих полезных служб. Элементы управления, используемые на странице, функциональны, фактически можно делать все то же, что и с классами форм в Windows, что дает большую гибкость. По этой причине страницы ASP.NET, создающие содержимое HTML, часто называют формами Web.
В этой главе мы проведем более подробное рассмотрение ASP.NET, включая то, как она работает, что мы можем с ней делать и где используется C#.
Введение в ASP.NET
ASP.NET пользуется Информационным сервером Интернета (Internet Information Server, IIS) для доставки содержимого в ответ на запросы HTTP. Страницы ASP.NET находятся в файлах с расширением .aspx
, и базовая архитектура выглядит следующим образом:

Во время обработки ASP .NET мы имеем доступ ко всем классам .NET, специальным компонентам, созданным на C# или других языках, базам данных и т.д. Фактически мы обладаем такими же возможностями, как при выполнении приложения C#, т.е. использование C# в ASP.NET заключается в эффективном выполнении приложения C#. Файл ASP.NET может содержать любые элементы из следующего списка:
Читать дальшеИнтервал:
Закладка: