Вступление Программированием на PHP я занялся не слишком то и давно, и поэтому особого опыта разработки на этом языке не имел, но зато у меня имеется неплохой опыт программирования с использованием модного нынче .NET Framework'а, возможности данной штуки безграничны, тем более, что он установлен почти на каждом компьютере.
Что сподвигло меня на написание данной статьи? Ну, во-первых, навеяно этой темой, о использовании COM объектов в своих программах на Devel Studio.
Во-вторых, изучение PHP и DevelStudio
По умолчанию, фреймворк не доступен как COM объект для пользователей, но разработчики оставили такую шикарную возможность всем программистам, которые не хотят изучать отдельные языки для разработки с использованием .NET Framework'а.
Немного пошевелив извилинами, мне взбрело — а почему бы не попробовать аналогично использовать классы фреймворка как COM объекты в Devel Studio?
Трюк заключается в следующем, в папке с фреймворком есть файл — RegAsm.exe, сие файл позволяет регистрировать dll библиотеки фреймворка в системе как COM объект, и тем самым давая нам шикарную возможность их дальнейшего использования.
Запускаем командную строку (Пуск->Выполнить->cmd.exe), и прописываем:
Код
%WinDir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe System.dll
Вот и все, теперь весь .NET Framework доступен для нашего использования!
Описание классов Перед тем как кинутся в использование, мы рассмотрим базовые классы, и их описание:
Код
System.Net — Классы для работы с сетью
System.Text — Классы для работы с текстом (кодировки)
System.IO — Классы для работы с файловой системой
System.Threading — Классы для работы с потоками
System.Xml — Классы для работы с Xml
System.Runtime — Использование Windows API
System.Security — Безопасность, криптография
System.CodeDom — Компилятор .NET сборок
В общем то это малая часть всего доступного нам, у большинства классов есть подклассы, объекты которых нам также доступны для использования.
Использование
Ну а теперь самое интересное! Рассмотрим парочку примеров использования фреймворка в Devel Studio.
Для начала рассмотрим что-нибудь простенькое, например WebClient, объект находится в пространстве имен System.Net и это необходимо учитывать при декларации объекта:
Код
$web = new COM('System.Net.WebClient');
Теперь мы можем использовать все методы этого объекта, к примеру загрузить исходный код страницы:
Код
$source = $web->DownloadString('http://develnet.ru/');
Или загрузить файл из интернета:
Код
$web->DownloadFile('http://site.com/file.exe', 'C:\file.exe');
Теперь рассмотрим объект SoundPlayer, он доступен в System.Media, для начала так же создадим объект:
Код
$player = new COM('System.Media.SoundPlayer');
Укажем путь к аудио файлу и воспроизведем его
Код
$player->SoundLocation = "C:\sound.wav";
$player->Play();
Ну а теперь пойдем дальше, создадим собственную форму для приложения. Перед началом зарегистрируем эту библиотеку, т.к. классы из нее будут использоваться отдельно:
Код
%WinDir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe System.Windows.Forms.dll
Далее пишем:
Код
$form = new COM('System.Windows.Forms.Form');
$form->Text = "My Form"; // Заголовок
$form->Show(); // Показываем
В итоге при запуске у нас вылезет 2 формы, одна созданная Devel Studio, другая, нами при помощи фреймворка
Аналогичным способом можем создать кнопку
Код
$button = new COM('System.Windows.Forms.Button');
$button->Text= "Hello World!";
$button->Left= 170;
$button->Top = 120;
$button->Width = 150;
$button->Height = 20;
Но при добавлении на форму:
Код
$form->Controls->Add($button);
Возникает ошибка:
Код
main(): variant->zval: conversion from 0xd ret=-1
Возможно гуру помогут разобраться в чем именно проблемы)
В заключение В .NET фреймворке огромнейшее количество всяческих классов, естественно для всего примеры привести не является возможным, но в помощь я могу предложить официальный онлайн справочник MSDN, в нем описаны все классы и все основные методы, а так же из какой библиотеки они идут + пример использования на VB.NET и/или C#