Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

В этом номере: Конвертируем .Net во Flash, в рубрике Время кода - Закрываем Outlook из приложения .Net, используя AppDomain.


Информационный Канал Subscribe.Ru

.Net Собеседник #49

Содержание
  1. От автора
  2. Конвертируем .Net во Flash
  3. Время кода - Закрываем Outlook из приложения .Net, используя AppDomain
  4. Форумы .Net на www.sql.ru

От автора

Здравствуйте, коллеги!

Неприятная новость для подписчиков из РФ: банк, в котором мы обслуживаемся, сменил банк-корреспондент в России. Как водится у нас, на просторах бывшего Союза, никто никого об этом не уведомил. В итоге были проблемы с подпиской, за которые ещё раз приношу свои извинения. Исправленный бланк лежит здесь, на сайте журнала "Алгоритм". В следующем номере журнала, который выйдет в этом месяце, также, конечно же, бланк будет исправлен.
Новостей в этом номере рассылки не будет - всё приберегу для журнала.

На этом всё- желаю интересного чтения.

{К содержанию}

Статья номера

Конвертируем .Net во Flash

ЯЗЫК: C#
Автор статьи: Пол Феста, полную версию статьи читайте в №5 журнала "Алгоритм"
 

Введение

Гонка в плане построения мощных приложений для веб вполне может получить новый импульс с появлением программного обеспечения, которое позволит разработчикам под ОС Windows создавать приложения Flash без знания самой технологии Flash. Казалось бы, причём здесь .Net-разработчики? Не торопитесь, дочитайте до конца.

Компания Xamlon, расположенная в г. Ла Йолла, штат Калифорния, выпустила бета-версию Xamlon Pro Flash Edition - программу, которая конвертирует приложения, созданные на языках программирования Windows в приложения, которые будут выполняться в проигрывателе Macromedia Flash.
"Это было большой проблемой – целое сообщество разработчиков под Windows не могло применить свои знания на платформе Flash", - сказал основатель компании Xamlon и её директор Пол Колтон. "Мы открыли эти двери, так что если вы знаете C# или Visual Basic, вы можете писать приложения на Flash".
Почему же разработчики программ под Windows должны желать разрабатывать приложения на Flash? Одной из мотиваций, на которую указывает Xamlon, является большой объём .Net Framework, необходимый для скачивания для запуска приложений Microsoft.Net. Проигрыватель Flash, наоборот, невелик, да и на большинстве компьютеров, подсоединённых к Сети, он уже установлен.
Ещё одно преимущество приложений на Flash в том, что они могут работать на целом спектре операционных систем и браузеров. Но есть и недостаток, касающийся корпораций: некоторые файерволлы блокируют Flash-содержимое.
Рост количества приложений, использующих Flash, сдерживает дефицит разработчиков, использующих эту технологию.
Macromedia разрабатывала Flash для создания анимаций, а не приложений. Последние нововведения, такие как инструменты разработчика Flex и серверное ПО, добавили очков Flash, но число Flash-разработчиков остаётся незначительным по сравнению с количеством разработчиков под Windows. К тому же многие из разработчиков, использующих Flash, на самом деле являются дизайнерами, а не разработчиками приложений.
Если у Xamlon всё получится, то число разработчиков, создающих приложения на Flash, увеличится многократно.
Xamlon уже выпустил бета-версию своего продукта, с которым вы можете ознакомиться на сайте компании - http://www.xamlon.com/.

{К содержанию}

Время кода

Закрываем Outlook из приложения .Net, используя AppDomain

ЯЗЫК: C#
Автор статьи: jmh1000 ,полную версию статьи читайте в №5 журнала "Алгоритм"

Microsoft Outlook содержит API в виде объекта COM, который позволяет автоматизировать приложение. Объект COM также можно использовать в приложении .NET. Однако если вы хотите построить хорошо работающее приложение и использовать Outlook снова и снова без перезагрузки вашего приложения, то вы можете столкнуться с некоторыми проблемами. В этой статье мы попытаемся обсудить и предложить решения проблем, возникающих при работе с Microsoft Outlook.

Для начала приготовим нашу сборку для использования несколькими приложениями, для чего установим её в Global Assembly Cache (GAC). Но помните, что, распространяя своё приложение, необходимо создать проект-установщик, который установит вашу сборку в GAC на целевой машине. Установка сборки в GAC выполняется в несколько шагов, допустим, что вы в курсе, как это делается (если нет - смотрите журнал). Теперь у вас есть сборка .net, установленная в GAC, которую вы можете использовать из любого приложения .Net.

Приступим к обсуждению того, как использовать эту dll в вашем приложении, избегая проблем, описанных в начале статьи.

Первым делом добавим ссылку в приложение на нашу сборку. ВыберитеProject->Add Reference, нажмите кнопку Browse в диалоговом окне, затем найдите NetOutlook.dll.


Ваше приложение владеет всеми определениями типов, которые вы будете использовать, но вы не будете непосредственно создавать экземпляры (объекты) этих типов. Суть хитрости отделения Outlook от вашего приложения в том, чтобы запустить его в отдельном домене приложения (AppDomain). Домен приложения используется для отделения частей вашего приложения друг от друга. Таким образом, можно загружать и выгружать части вашего приложения по необходимости. Также, проблемы в одном домене приложения никак не повредят процессу в другом домене приложения.

А вот и код. Всё реализовано в консольном приложении.

//Создаём объект домена путём вызова AppDomain.CreateDomain()
AppDomain domain = AppDomain.CreateDomain("Outlook");

Обратите внимание на код, который присутствует в domain.Load(). Имя сборки должно быть указано полностью.

System.Reflection.Assembly myassembly = domain.Load("NetOutlook, Version=9.2.0.0, Culture=neutral, PublicKeyToken=3ab4cb677c86f26d");

//Теперь можно создать объект приложения, используя загруженную сборку
NetOutlook.Application app = (NetOutlook.Application)myassembly.CreateInstance("NetOutlook.ApplicationClass");

//теперь работаем с Outlook, например:
NetOutlook.NameSpace ns = app.GetNamespace("MAPI");
 
NetOutlook.MAPIFolder folder = ns.GetDefaultFolder(NetOutlook.OlDefaultFolders.olFolderInbox);
Console.WriteLine(folder.Items.Count.ToString() );
//Теперь ключевая часть – убедитесь в том, что вы вызываете
//Marshal.ReleaseComObject() для всех используемых COM-объектов

Marshal.ReleaseComObject(folder);
Marshal.ReleaseComObject(ns);
Marshal.ReleaseComObject(app); 
Console.WriteLine("Нажмите <Enter> для закрытия Outlook");

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

Console.ReadLine();
//Вот так выгружаем домен приложения и освобождаем процесс Outlook
AppDomain.Unload(domain);
Console.WriteLine("Нажмите <Enter> для выхода.");
Console.ReadLine();

Вот и всё, желаю удачи!


{К содержанию}

Форумы .Net - вопросы оставшиеся без ответа

Как написать ActiveX для странички?
HttpContext
Изменение страниц в SharePoint
Знатокам COM Interop
DevExpress NavBar
Архивирование данных в Compact Framework (КПК)
Цветные Items у ListView на с# под Compact FrameWork ?
ne podkljuchajetsja tablica k dataset

На этом сорок девятый выпуск .Net Собеседника закончен.
До следующего номера.


Чужа Виталий Ф. aka hDrummer, MCAD, MCDBA, MCP
hdrummer ухо gmail точка ru - жду ваши предложения и замечания.



Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.dotnetgrains
Архив рассылки
Отписаться
Вспомнить пароль

В избранное