Классы .NET Framework и пространства имён 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Классы .NET Framework и пространства имён



Классы.NET Framework и пространства имён

 

Классы.NET Framework

 

Возможно, наибольшее преимущество написания управляемого кода — по крайней мере, с точки зрения разработчика — состоит в том, что он, разработчик получает возможность использовать библиотеку базовых классов.NET (Base Class Library).

 

Базовые классы.NET представляют огромную коллекцию классов управляемого кода, позволяющие решать практически любые задачи, которые раньше можно было решать с помощью Windows API. Все эти классы следуют той же объектной модели IL с одиночным наследованием. Это значит, что можно либо создавать объекты любого из базовых классов.NET, либо наследовать от них собственные классы.

Отличие базовых классов.NET заключается в том, что они спроектированы интуитивно понятными и простыми в использовании. Например, для запуска потока необходимо вызвать метод Start из класса Thread. Чтобы сделать недоступным объект TextBox, свойству Enabled этого объекта присваивается значение false. Такой подход, хорошо знакомый разработчикам Visual Basic 6 и Java, чьи библиотеки использовать столь же легко, принесёт огромное облегчение разработчикам С++, которым в течение многих лет приходилось «воевать» с такими API-функциями, как GetDIBits, RegisterWndClassEx и IsEqualIID, а также с множеством функций, которые требовали передачи дескрипторов окон.

Однако разработчики на С++ всегда имели легкий доступ к полному набору Windows API, в то время как разработчики на Visual Basic 6 и Java были ограничены в использовании базовой функциональности операционной системы, доступ к которой они получали из своих языков. Что касается базовых классов.NET, то они комбинируют простоту использования, присущую библиотекам Visual Basic и Java, с относительно полным покрытием набора функций Windows API. Многие средства Windows не доступны через базовые классы, и в этих случаях придется обращаться к API-функциям, но, в общем, это касается лишь наиболее экзотических функций. Для каждодневного применения набора базовых классов, в основном, будет достаточно. Но если понадобится вызвать API-функцию, то для этого.NET предоставляет так называемый механизм вызова платформы ( platform-invoke ),гарантирующий корректное преобразование типов данных, поэтому теперь эта задача не труднее, чем вызов этих функций непосредственно из кода С++, причем независимо от того, на каком языке пишется код — С#, С++ или Visual Basic 2010.

 

Пространства имён

 

Пространства имен (namespace) — это способ, благодаря которому.NET избегает конфликтов имён между классами. Они предназначены для того, чтобы исключить ситуации, когда разработчик определяет класс, представляющий заказчика, называяе его, например Customer, а после этого кто-то другой делает то же самое (подобный сценарий достаточно распространён).

Пространство имён — это не более чем группа типов данных, но дающая тот эффект, что имена всех типов данных в пределах пространства имён автоматически снабжаются префиксом ― названием пространства имён. Пространства имён можно вкладывать друг в друга. Например, большинство базовых классов.NET общего назначения находятся в пространстве имен System. Базовый класс Array относится к этому пространству, поэтому его полное имя — System.Array.

Платформа.NET требует, чтобы все имена были объявлены в пределах пространства имён; например, разработчик может поместить свой класс MyClass в пространство имён MyCompany. Тогда полное имя этого класса будет выглядеть как MyCompany.MyClass (где «точка» является оператором; действует ещё и для реализации неявного вызова функциональности технологии автодополнения IntelliSense).

Запомним, что если пространство имён не указано явно, тип будет добавлен к безымянному глобальному пространству имён.

В большинстве ситуаций Microsoft рекомендует применять хотя бы два вложенных пространства имён: первое — наименование, напримеркомпании, а второе — название технологии или пакета программного обеспечения, к которому относится класс, чтобы это выглядело примерно так: MyCompany.SomeNamespace.MyClass. В большинстве случаев такой подход защитит классы приложения от возможных конфликтов с именами классов, написанных разработчиками из других компаний.

 

В следующей таблице приведён краткий список некоторых (но, конечно же, не всех) предлагаемых в.NET пространств имён, которые были поделены на группы на основе функциональности:

 

Пространство имён в.NET Описание
System Внутри пространства имён System содержится множество полезных типов, позволяющих иметь дело с внутренними данными, математическими вычислениями, генерированием случайных чисел, переменными среды и сборкой мусора, а также ряд наиболее часто применяемых исключений и атрибутов
System.Collections System.Collections.Generic В этих пространствах имён содержится ряд контейнерных типов, а также несколько базовых типов и интерфейсов, которые позволяют создавать специальные коллекции
System.Data System.Data.Common System.Data.EntityClient System.Data.SqlClient Эти пространства имён применяются для взаимодействия с базами данных с помощью ADO.NET
System.IO System.IO.Compression System.IO.Ports В этих пространствах содержится много типов, предназначенных для работы с операциями файлового ввода-вывода, сжатия данных и манипулирования портами
System.Reflection System.Reflection.Emit В этих пространствах имён содержатся типы, которые поддерживают обнаружение типов во время выполнения, а также динамическое создание типов
System.Runtime.InteropServices В этом пространстве имён содержатся средства, с помощью которых можно позволить типам.NET взаимодействовать с "неуправляемым кодом" (например, DLL-библиотеками на базе С и серверами СОМ) и наоборот
System.Drawing System.Windows.Forms В этих пространствах имён содержатся типы, применяемые для построения настольных приложений с использованием исходного набора графических инструментов.NET (Windows Forms)
System.Windows System.Windows.Controls System.Windows.Shapes Пространство System.Windows является корневым среди этих нескольких пространств имен, которые представляют собой набор графических инструментов Windows Presentation Foundation (WPF)
System.Linq System.Xml.Linq System.Data.DataSetExtensions В этих пространствах имён содержатся типы, применяемые при выполнении программирования с использованием API-интерфейса LINQ
System.Web Это пространство имён является одним из многих, которые позволяют создавать веб-приложения ASP.NET
System.ServiceModel Это пространство имен является одним из многих, которые позволяется применять для создания распределенных приложений с помощью API-интерфейса Windows Communication Foundation (WCF)
System.Workflow.Runtime System.Workflow.Activities Эти два пространства имен являются главными представителями многочисленных пространств имен, в которых содержатся типы, применяемые для построения поддерживающих рабочие потоки приложений с помощью API-интерфейса Windows Workflow Foundation (WF)
System.Threading System.Threading.Tasks В этом пространстве имен содержатся многочисленные типы для построения многопоточных приложений, способных распределять рабочую нагрузку среди нескольких ЦП.
System.Security Безопасность является неотъемлемым свойством мира.NET. В относящихся к безопасности пространствах имен содержится множество типов, которые позволяют иметь дело с разрешениями, криптографической защитой и т.д.
System.Xml В этом ориентированном на XML пространстве имён содержатся многочисленные типы, которые можно применять для взаимодействия с XML-данными

 



Поделиться:


Последнее изменение этой страницы: 2016-12-28; просмотров: 336; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.230.44 (0.005 с.)