Знайомство з Microsoft. NET Framework 2.0

Зміст


Що нового в бібліотеці класів


У середині майбутнього року компанія Microsoft планує випуск ряду продуктів та технологій для розробників, що створюють додатки на платформі Microsoft. NET. До цих продуктів належить оновлена лінійка засобів розробки Visual Studio. NET 2005, у складі якої будуть як кошти, розраховані на непрофесійних розробників (Express-версії Visual Studio. NET 2005), так і кошти, адресовані колективам програмістів і дозволяють використовувати Visual Studio. NET 2005 для автоматизації всього процесу розробки програмних продуктів і систем.

Крім цього планується і вихід нової версії СУБД – SQL Server 2005, що також буде представлена у вигляді різних версій, призначених для вирішення широкого кола завдань, пов'язаних із зберіганням, обробкою і аналізом даних.

Усі зазначені продукти базуються на новій версії платформи для створення розподілених додатків компанії Microsoft -. NET Framework 2.0.

Дана публікація відкриває обширну статтю, присвячену розгляду змін та доповнень до. NET Framework 2.0, і почнемо ми з огляду основних нововведень і модифікацій чергової версії. NET Framework.

У цій частині статті ми не будемо стосуватися змін і доповнень в мовах програмування – в основному вони носять функціональний характер і спрямовані на вирішення таких цілком конкретних завдань, як, наприклад, покращена підтримка засобів розробки, кодогенераціі, компіляції та відлагодження, синхронізація можливостей C # і Visual Basic. NET, спрощення виконання ряду рутинних операцій і т.п.

Також не представляється можливим розглянути всі зміни, що відбулися в бібліотеках класів. NET Framework 2.0, тому всі бажаючі більш детально вивчити це питання, можуть звернутися до онлайнової утиліті Whidbey Inspector (http://www.dotnet2themax.com/DotNetBrowser/ShowAssemblies.aspx), яка дозволяє порівняти збірки, простору імен, типи, члени класів і т.п. у версіях 1.1 та 2.0 і швидко визначити, чи були вони додані, видалені або модифіковані в порівнянні з попередньою версією.

Що нового в бібліотеці класів


Наше знайомство з бібліотекою класів буде доцільно пов'язати з основними рівнями класичної трирівневої архітектури, активно використовується розробниками при створенні додатків на платформі Microsoft . NET. Після розгляду основних класів, необхідних для реалізації рівня уявлень, рівня бізнес-логіки та рівня доступу до даних, ми перейдемо до додаткових груп класів, що забезпечує підтримку реалізації Web-сервісів, до засобів розгортання додатків, до класів, що реалізують доступ до різних системним сервісів, а також розповімо про деякі додаткові зміни в бібліотеці класів. NET Framework 2.0.

Рівень представлення


Платформа Microsoft. NET надає кілька механізмів для реалізації рівня подання – це кошти створення класичних товстих клієнтів (Windows Forms), тонких клієнтів (Web Forms) і комбінація з кращих характеристик тонких і товстих клієнтів, відома під назвою Smart Client, за допомогою якої можна створювати додатки, здатні завантажуватися з Web, автоматично оновлюватися і працювати як з онлайновими, так і з вщ'еднаним даними.

Основна функціональність, реалізована на рівні представлення, – введення і перевірка даних, їх відображення. Додаткова ж функціональність пов'язана з підтримкою цих операцій. Залежно від типу додатки, на клієнтському рівні можуть знаходитися функції, що відповідають за навігацію, кешування даних, локалізацію і глобалізацію і пр.

Windows-додатки на основі Windows Forms
У бібліотеці класів. NET Framework 2.0 істотно розширено набір компонентів, що застосовуються для створення клієнтських додатків з використанням Windows Forms (простір імен System.Windows.Forms). У табл. 1 ми коротко перерахуємо нові компоненти, а в одній з наступних частин статті розглянемо їх більш докладно.

Таблиця 1. Короткі характеристики нових компонентів Windows Forms

Крім появи нових компонентів, що використовуються для реалізації користувальницьких інтерфейсів Windows-додатків, відбулися деякі зміни в моделі зв'язку таких компонентів з джерелами даних (Data Binding). Новий компонент DataConnector служить сполучною ланкою між інтерфейсним елементом та джерелом даних і автоматично управляє функціями підтримки поточного стану, події в джерелах даних та зміни джерел даних. DataConnector призначений для спільного використання з такими компонентами, як DataNavigator і DataGridView.

Web-додатки на основі Web Forms
Про нововведення в ASP. NET 2.0 ми обов'язково розповімо в рамках даної статті, але тут ми зупинимося лише на питаннях, що мають безпосереднє відношення до створення інтерфейсів Web-додатків, тобто розглянемо нові і змінені компоненти, а також зв'язку з джерелами даних.

До числа основних змін відносяться наступні: тепер усі компоненти генерують код, сумісний зі стандартом XHMTL 1.1, і підтримують адаптивний рендеринг, можливість завдання різних колірних схем, а також функції, що дозволяють підраховувати кількість звернень до того чи іншого елементу.

Функції апаратної фільтрації дозволяють задавати різні значення властивостей для різних пристроїв. Підтримується угруповання компонентів перевірки вводу, які можуть бути включені або виключені для деяких компонентів.

Нові компоненти, реалізовані в ASP. NET, представлені в табл. 2.

Таблиця 2. Короткі характеристики нових компонентів ASP. NET 2.0

Зміни в механізмах зв'язку з джерелами даних включають появу нових компонентів, які об'єднують рядка з'єднання, запити і параметри в одне ціле і підтримують різні джерела даних, у тому числі Microsoft SQL Server, Microsoft Access, XML-файли, Web-сервіси та бізнес-об'єкти, які повертають набори даних.

Для реалізації доступу до даних з бізнес-компонентів служить новий компонент ObjectDataSource, який надає користувачам стандартний набір інтерфейсів для зв'язку з інтерфейсними елементами, проте замість безпосереднього зв'язку з джерелами даних спирається на функціональність, що надається бізнес-компонентами, що задаються користувачами.

У числі нових компонентів для відображення даних слід особливо відзначити:


Рівень бізнес-логіки


Завдання рівня бізнес-логіки – забезпечити основну функціональність програми, тому саме на вказаному рівні реалізуються такі функції, як обробка введених користувачем даних, програмна реалізація бізнес-правил, ініціація транзакцій, взаємодія з внутрішніми і зовнішніми компонентами системи і т.д. Основні зміни і доповнення в. NET Framework 2.0, пов'язані з рівнем бізнес-логіки, пов'язані з розширеною підтримкою транзакцій, серіалізациі, з поліпшеннями у взаємодії з COM-об'єктами, а також з деякими змінами в. NET Remoting.

Підтримка транзакцій
Новий простір імен System.Transactions містить класи, що використовуються в додатках, які повинні брати участь у транзакціях, керованих транзакційними менеджерами типу Microsoft Distributed Transaction Coordinator (DTC).

Для створення простих транзакційних блоків коду можна використовувати клас TransactionScope, тоді як інтерфейси ITransaction і IEnlistmentNotification надають можливість управляти кожною фазою багатофазові розподілених транзакцій.

Нова транзакційна інфраструктура розширює і доповнює засоби підтримки COM + транзакцій, реалізовані в просторі імен System.EnterpriseServices.

З метою реалізації простих транзакцій (у рамках одного локального домену додатків) в якості альтернативи DTC можна використовувати клас LightweightTransactionManager, реалізований у просторі імен System.Transactions.Ltm.

Серіалізация
У тих випадках, коли потрібна передача об'єктів між рівнями додатка, застосовуються механізми серіалізациі. Починаючи з версії 1.0 підтримуються два механізми серіалізациі – XML-серіалізация і бінарна серіалізация.

У версії 2.0 клас BinaryFormatter, що відповідає за бінарну серіалізацию, розширений підтримкою версійність: об'єкт може бути десеріалізовать з серіалізациі іншою версією.

У XML-серіалізациі тепер підтримуються використання властивостей (а не полів) для представлення елементів схем; серіалізация узагальнених типів; використання структури Nullable для представлення елементів, які можуть мати нульові значення. Крім того, інтерфейс IXmlSerializable підтримує генерацію нестандартних схем.

Поліпшення взаємодії з COM-об'єктами
Нові класи SafeHandle і CriticalHandle і класи, побудовані на їх основі, служать для маніпуляції ресурсами операційної системи і захищають ці ресурси від можливих атак, які може вжити некерований код.

Розширення механізмів маршалинга істотно полегшує взаємодію з некерованим кодом – додана можливість перетворювати покажчики на функції у делегати і виконувати маршалинга масивів вкладених структур фіксованого розміру.

Крім цього значно збільшена продуктивність більшості стандартних викликів між додатками, що знаходяться в різних доменах. Розширена функціональність утиліт Type Library Importer (Tlbimp.exe) і Type Library Exporter (Tlbexp.exe) дозволяє виявляти посилання на бібліотеки типів без звернення до реєстру.

Зміни в. NET Remoting
У новій версії для. NET Remoting реалізовані підтримка адресації по протоколу IPv6 і можливість обміну узагальненими типами. Класи в просторі імен System.Runtime.Remoting.Channels.Tcp підтримують аутентифікацію і шифрування на рівні інтерфейсу Security Support Provider Interface (SSPI).

Класи в новому просторі імен System.Runtime.Remoting.Channels.Ipc дозволяють додаткам, що виконуються на одному комп'ютері, обмінюватися даними без використання мережі.

У просторі імен System.Runtime.Remoting.Channels додана підтримка безпеки на рівні каналів, внаслідок чого канал TCP тепер підтримує аутентифікацію і шифрування, а також функції, що поліпшують підтримку балансування навантаження.

Рівень доступу до даних


На рівні доступу до даних вирішуються проблеми забезпечення простих механізмів для доступу до джерел даних у міру можливостей абстракції від конкретних даних. Крім того, на цьому рівні ставиться завдання дозволити розробнику реалізувати простий набір операцій для маніпуляції даними. В. NET-додатках традиційно використовуються механізми та компоненти доступу до даних, відомі під назвою ADO .NET.

ADO .NET
Зміни та розширення, включені до складу ADO. NET 2.0, будуть докладно висвітлені в одній з наступних частин даної статті, а зараз ми дамо лише їх короткий перелік.

До нової функціональності в ADO. NET 2.0 можна віднести підтримку типів, визначених користувачем (User-Defined Types, UDT), асинхронні операції з базами даних, підтримку типів даних XML і нових типів даних для SQL Server – varchar (max), nvarchar (max) і varbinary (max), можливість роботи з набором активних результатів запиту (Multiple Active Result Sets, MARS): отримання більш одного відкритого об'єкта SqlDataReader в рамках з'єднання, коли кожен примірник SqlDataReader був створений окремою командою.

Крім цього керовані провайдери підтримують функції перерахування примірників Microsoft SQL Server 2000 і більш пізніх версій; реалізовані підтримка операції швидкого копіювання і вставки даних для SQL Server і доступ до статистики SQL Server 2005 через 21 лічильник продуктивності; новий клас DataTableReader надає вміст DataSet або DataTable в режимі тільки для читання з можливістю переміщення по записах тільки вперед.

Новий набір інтерфейсів – Schema Discovery API – дозволяє запитувати інформацію про метаданих.

XML.NET
В. NET Framework 2.0 включена підтримка мови XQuery, додано нове сховище даних XML (нова модель обробки XML-даних в пам'яті, що підтримує як XML DOM, так і XPath), а також реалізована технологія відображення даних, що зберігаються у реляційній СУБД, на XML-представлення або на об'єктне представлення CLR.

До того ж розширена функціональність існуючих XML-класів, включаючи підтримку типів для класів XmlReader, XmlWriter і XPathNavigator, нову модель створення об'єктів XmlReader і XmlWriter і новий процесор для перетворень XSLT: метод Compile дозволяє відкомпілювати опис трансформації, а метод Execute – виконати попередньо відкомпільоване опис.

Web-сервіси


Простір імен System.Web.Services тепер підтримує протокол SOAP 1.2 і елементи, які можуть мати нульові значення та базовий профіль WS-I Basic Profile 1.0 (http://www.ws-i.org/Profiles/Basic/2003-08/ BasicProfile-1.0a.html).

Також реалізована підтримка асинхронних викликів методів Web-сервісів і додана можливість використання подієво-орієнтованої моделі виклику методів.

Безпека


Деякі зміни в. NET Framework 2.0 ставляться до розширення функціональності, пов'язаної із створенням безпечних додатків.

Операції з ACL
У класах, пов'язаних з управлінням реєстром, потоками і виконанням операцій введення-виведення, з'явилася підтримка перевірки доступу на основі ACL (Access Control List). Нові класи (простір імен System.Security.AccessControl) дозволяють створювати і модифікувати ACL безпосередньо з керованого коду.

Підтримка сертифіката X.509
У новій версії. NET Framework реалізована підтримка сертифіката X.509 (простір імен System.Security.Cryptography.X509Certificates) на рівні сховищ сертифікатів, ланцюжків сертифікатів та розширень полів сертифікатів. Крім цього XML-документи можуть бути підписані і зашифровані за допомогою PKCS7 і CMS – розширення стандарту PCKS7, підтримуваного в Microsoft Windows 2000 і пізніших версіях.

Клас System.Security.SecurityException
Розширення в класі System.Security.SecurityException надають додаткові дані, що дозволяють більш точно визначити причини появи винятків, пов'язаних з порушеннями безпеки. Нові властивості класу дозволяють визначити метод, в якому відбулося виняток, зону або адресу збірки, операцію, яка викликала виняток, а також дії на рівні стека – Deny або PermitOnly.

Потоки з аутентифікацією
За допомогою нових класів NegotiateStream і SslStream клієнтські та серверні компоненти програми cмогут обмінюватися захищеною інформацією. Потоки з аутентифікацією підтримують взаємну аутентифікацію, шифрування даних і дані з електронним підписом. Клас NegotiateStream використовує для аутентифікації протокол Negotiate Security Protocol, а клас SslStream – протокол Secure Socket Layer (SSL).

Розширені мережеві функції


У бібліотеці класів. NET Framework 2.0 з'явилися зміни і доповнення, пов'язані з підтримкою мережних функцій. Наприклад, клас NetworkChange дозволяє додаткам отримувати нотифікації про зміни IP-адреси мережевого інтерфейсу, які можуть бути пов'язані зі змінами мережевої карти або адаптера, з від'єднанням мережевого кабелю, з виходом комп'ютера за кордону покриття бездротової мережі або зі збоями в обладнанні.

У просторі імен System.Net реалізовані підтримка запитів від FTP-клієнтів (розширена функціональність класів WebRequest, WebResponse і WebClient), функції кешування HTTP-ресурсів, механізми автоматичного виявлення проксі та можливості отримання інформації про мережевий трафік та статистичної інформації.

Клас для створення Web-сервера
Простір імен System.Net тепер включає клас для реалізації HttpWebListener – Web-сервера, який можна використовувати для обробки HTTP-запитів. Такий Web-сервер буде активним протягом всього часу життя об'єкта HttpWebListener, а його функціональність підтримується на платформах Windows XP Service Pack 2 і Windows Server 2003.

Інформація про мережевий трафік
Використовуючи класи в просторі імен System.Net.NetworkInformation, додатки можуть отримувати інформацію про мережевий трафік по протоколах IP, IPv4, IPv6, TCP і UDP. Також можна програмно отримувати інформацію про адреси та конфігурації локальних мережевих адаптерів, подібну до тієї, яка повертається утилітою ipconfig.exe.

Перевірка доступності віддалених серверів
Клас Ping дозволяє програмно визначити доступність віддаленого комп'ютера, виконавши синхронний або асинхронний виклик.

Підтримка електронної пошти
Використовуючи класи у просторах назв System.Net.Mail і System.Net.Mime, додатки можуть виконувати розсилку електронної пошти одному або декільком одержувачам, включаючи CC-і BCC-адресати.

Кешування мережевих ресурсів
Класи в просторі імен System.Net.Cache дозволяють додаткам керувати кешуванням ресурсів, отриманих з використанням класів WebRequest, WebResponse і WebClient. Користувачі можуть застосовувати зумовлені механізми кешування або ставити власні, причому як для кожного окремого запиту, так і для всіх запитів в рамках однієї сесії.

Крім того, розширена підтримка безпеки і збільшена продуктивність класів System.Net.Sockets.Socket і System.Uri.

Зазначимо, що ряд розглянутих тут мережевих функцій доступний користувачам мови Visual Basic. NET через властивості і методи класу Network, розташованого в просторі імен My.Computer.

Інші зміни та доповнення


Крім розглянутих вище, в бібліотеці класів. NET Framework 2.0, з'явився ряд розширень, які не відносяться до конкретних категорій.

Розширення для консольних додатків
Розширена функціональність для консольних додатків (клас Console) включає можливості керування розмірами консольного вікна та екранного буфера, переміщенням вікна в екранному буфері, що може знадобитися для реалізації простої анімації, для управління квітами тексту і фону консольного вікна, розміром і видимістю курсору, а також тривалістю і частотою подачі звукових сигналів.

Функції захисту даних
Новий інтерфейс Data Protection API (DPAPI) надає методи, що дозволяють додаткам шифрувати паролі, ключі, рядка з'єднання та іншу інформацію, не викликаючи системних функцій, що представляються платформою. Для додатків, що виконуються під управлінням Windows Server 2003 і більш пізніх версій, також підтримується шифрування блоків пам'яті.

Розширення функцій вводу-виводу
Ряд класів, пов'язаних з операціями вводу-виводу, отримав розширену функціональність, за рахунок чого спрощені операції читання і запису текстових файлів, а також отримання інформації про пристрої. Класи, розташовані в просторі імен System.IO.Compression, можуть використовуватися для читання і запису даних, упакованих за допомогою алгоритму GZIP.

Підтримка послідовних портів
Новий клас SerialPort надає програмний доступ до послідовних портів комп'ютера і дозволяє управляти пристроями, підключеними до цього порту. За допомогою даного класу можна виконувати синхронні або подієво-орієнтовані операції введення-виведення, звертатися до відповідних драйверам, а також проводити потокові операції введення-виведення, використовуючи спадкоємці класу BaseStream.

Відзначимо, що користувачі Visual Basic. NET також можуть звертатися до COM-портів через об'єкт My.Computer.Ports.

Активація додатків через маніфест
Підтримка програм, що запускаються за технологією ClickOnce, реалізована через механізми завантаження і активації на базі маніфесту. Традиційно додатки запускаються через посилання на складання, яка містить точку входу в додаток. Подвійний клацання мишею по виконуваного файлу програми (*. exe) в оболонці Windows призводить до завантаження CLR і до передачі управління точці входу в головній збірці цього додатка.

Модель активації на базі маніфесту використовує маніфест, а не складання для активації програми. Маніфест повністю описує додаток, складання, від яких вона залежить, вимоги безпеки та іншу інформацію, необхідну для активації програми. Модель активації на базі маніфесту має ряд переваг у порівнянні з активацією зборок, що особливо важливо для Web-додатків. Наприклад, маніфест містить вимоги безпеки, які дозволяють користувачеві без власне завантаження коду прийняти рішення про те, чи дозволяти виконання програми.

Модель активації на базі маніфесту надає набір програмних інтерфейсів, що дозволяють додаткам-хостам активувати програми та розширення, описані в маніфесті. Базова функціональність активації на базі маніфесту реалізована в методі AppDomain.ExecuteManifest класу AppDomain.

Запуск додатків за технологією ClickOnce дозволяє розгортати клієнтські програми з Web-сервера, запускаючи їх за посиланням, що містить адресу файлу з маніфестом цього додатка. Після того як маніфест завантажений, активізується спеціальний сервіс Windows – Click-Once Host, який перевіряє вміст файлу маніфесту, завантажує необхідні для функціонування програми збірки, встановлює посилання на додаток і створює новий елемент стартового меню.

Отже, ми розглянули основні зміни та доповнення нової версії. NET Framework 2.0. Слід зазначити, що дана публікація грунтується на бета-версії продукту і що до моменту випуску в ньому можуть відбутися певні зміни. У наступних частинах цієї статті ми постараємося врахувати це і зробити пропоновану читачам інформацію як можна більш актуальною.

Частина 2


Додаткова інформація



Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*