Elisy .Net Bridge - это набор компонентов и методик для бесшовного подключения .Net framework к 1С:Предприятие 7.7/8.0/8.1/8.2 с целью использования всех передовыхразработок .Net. Самое полезное отличие .Net Bridge от существовавших ранее технологий- это собственный механизм преобразования типов, дающий явные преимущества по сравнениюс .Net RCW/CCW- механизмами, написанием плагинов/внешних компонент на C# и VB.Netпод 1С и открывающий неизвестные ранее в 1С:Предприятие возможности. Упор в проектесделан на гармоничную интеграцию двух технологий, где ведущую роль играет 1С:Предприятие.
[b]Проект Elisy .Net Bridge (1C.Net)[/b]
Цели проекта Elisy .Net Bridge состоят в следующем:[list][*]Обеспечить быстрое подключение существующих .Net-компонентов и приложений к 1С:Предприятие;[*]Существенно расширить объектную модель 1С:Предприятие стандартными классами .Net framework;[*]Существенно расширить возможности программирования на 1С:Предприятие;[*]Популяризировать .Net framework среди разработчиков 1С:Предприятие. Показать егоэффективность и рациональность использования.[/list]
[b]Близкие аналоги[/b]
Традиционно в 1С существуют следующие аналоги, расширяющие функциональность 1С:
[b]Проект 1С++[/b] ([url=http://1cpp.ru]http://1cpp.ru[/url]): ориентирован толькона версию 1С 7.7, которая морально устаревает после выхода версий 8.1 и 8.2. В отличиеот него .Net Bridge поддерживает все современные версии 1С: 7.7/8.0/8.1/8.2. В 1С++за основу взяты C++ и система наследования классов. С++ уступает .Net-технологиипо скорости написания ПО и его отлаженности, также требует больше профессиональныхнавыков.
[b]C#/VB.Net –расширения для 1С[/b] ([url=http://www.kb.mista.ru/article.php?id=56]http://www.kb.mista.ru/article.php?id=56[/url]):до выхода Elisy .Net Bridge традиционным было написание плагинов для 1С по "технологиинаписания внешних компонент для 1С". Традиционный подход уступает подходу, принятомув .Net Bridge, ограниченным набором передаваемых типов. Например, невозможно передатьEnum, а также использовать типы .Net, не помеченные как ComVisible = true.В случае с Elisy .Net Bridge собственный механизм преобразования типов между 1Си .Net "прозрачный" и так не ограничен.
[b]COM-обращения[/b]: традиционно сложилось, что у каждого 1С-разработчика естьарсенал dll-библиотек, решающих узкий круг задач. Эти библиотеки написаны разнымиразработчиками, многие уже не поддерживаются. Например, обращение к системным функциямвыполняется через dynwrap.dll, шифрование – через capicom.dll, рисование через JScriptи т.д. .Net Framework через .Net Bridge в отличие от них предоставляет все функцииодним пакетом, опираясь на единую систему типов и стиль API.
[b]Основные возможности[/b]
Ключевой библиотекой проекта является Elisy.NetBridge.dll. Она предоставляет следующиепреимущества:[list][*]Поддерживает создание объектов .Net из GAC и по полному пути к сборке;[*]Поддерживает прямое обращение к свойствам и методам объектов .Net;[*]Не требует атрибута ComVisible=true, назначенного классам .Net;[*]Поддерживает типы Enum и производные;[*]Обеспечивает развернутую информацию об ошибках;[*]Свойства объектов .Net видны при отладке из конфигуратора 1C;[*]Не требует предварительной регистрации через REGSVR32 и REGASM: можно обращатьсячерез функцию 1C ЗагрузитьВнешнююКомпоненту;[*]Содержит логику для обращения к специфическим возможностям .Net framework: вызовстатических методов, обращение к статическим свойствам, обращение к индексным свойствам;[/list]
Ниже сравнивается код C# и соответствующий ему код скрипта 1С с использованием Elisy.Net Bridge:
Код C#
[code=csharp]private SeriesCollection getVolumeData()
{
SeriesCollection SC = new SeriesCollection();
Random myR = new Random(1);
for(int i = 0; i < 1; i++)
{
Series s = new Series();
s.Name = "Volume";
double startPrice = 50;
DateTime startDT = new DateTime(2000,1,1);
for(int b = 0; b < 75; b++)
{
Element e = new Element();
e.XDateTime = startDT;
startDT = startDT.AddDays(1);
e.YValue = myR.Next(100);
s.Elements.Add(e);
}
SC.Add(s);
}
return(SC);
} [/code]
Код 1С:Предприятие
[code=text]Function getVolumeData()
SC = net.New("dotnetCHARTING.WinForms.SeriesCollection");
myR = net.New("System.Random", 1);
for a = 0 to 0 do
s = net.New("dotnetCHARTING.WinForms.Series");
s.Name = "Volume";
startPrice = 50;
startDT = net.New("System.DateTime", 2000, 1, 1);
for b = 0 to 74 do
e = net.New("dotnetCHARTING.WinForms.Element");
e.XDateTime = startDT;
startDT = startDT + 1*60*60*24;
e.YValue = myR.Next(100);
s.Elements.Add(e);
enddo;
SC.Add(s);
enddo;
return SC;
EndFunction[/code]
[b]История создания[/b]
Компонент Elisy .Net Bridge существует уже около года. За это время накоплены положительныеотзывы от разработчиков, использующих компонент на практике. Исторически выпускрелизов происходил следующим образом:[list][*]2 Апреля 2009 вышла первая альфа-версия Elisy .Net Bridge;[*]5 Мая 2009 вышел релиз первой версии компонента;[*]Май 2009 – сентябрь 2009 выпущены версии 2.1-2.3;[*]17 октября выпущена утилита LinqTo1CSQL для визуализации внутренней структуры данных1С и прямого доступа к ним;[*]2 ноября 2009 появилась альфа-версия 3й версии компонента;[*]16 января 3я версия перешла в бета-стадию;[/list]
[b]Лицензирование и цены[/b]
Компонент Elisy .Net Bridge является платным компонентом с бесплатной ознакомительнойверсией. Ознакомительная версия не накладывает никаких ограничений на функциональность.Существующая система лицензирования предполагает приобретение отдельной лицензиина каждый компьютер. Цена колеблется от 50 до 9 Euro в зависимости от числа копийи партнерского статуса.
[b]Факты и результаты[/b]
За 9 месяцев существования проекта было выпущено 4 релиза компонента Elisy .NetBridge (версии 1, 2.1, 2.2, 2.3), а 3я версия находится в бета-стадии;
Выпущена бета-версия LinqTo1C-обработки, которая генерирует dbml-файлы для 1С идает возможность прямого обращения к базе данных 1С 8.x на MS SQL. Готовится выпускAsp.Net MVC –примера, поддерживающего такой доступ.
Пользователями было скачано порядка 300 копий ознакомительной версии и около 600копий прикладных примеров;
Были подготовлены развернутые статьи-примеры. Каждая из них вносит элементы новизныи актуальности. Охватывается практически весь .Net framework:[list][*][url=http://www.richmedia.us/post/2009/11/21/1c-dot-net-components-integration.aspx]Быстрое подключение .Net-компонентов сторонних разработчиков в 1С:Предприятие 7.7/8.0/8.1/8.2на примере диаграмм DotNetCharting[/url][*][url=http://www.richmedia.us/post/2009/11/16/1c-asynchronous-web-services.aspx]Асинхронный вызов веб-сервисов[/url][*][url=http://www.richmedia.us/post/2009/11/12/Obrasheniye-k-sistemnym-bibliotekam-Windows-iz-1C-PInvoke.aspx]Обращение к системным библиотекам Windows из кода программ 1С:Предприятие. P/Invoke.[/url][*][url=http://www.richmedia.us/post/2009/11/04/linqtosql-1c-images.aspx]Получениеизображений, сохраненных в 1С:Предприятие 8.x, прямым доступом из SQL Server + примеркода на Asp.Net[/url][*][url=http://www.richmedia.us/post/2009/11/02/1c-multithreading-and-callback-functions.aspx]Многопоточность 1C и обратная связь из .Net Framework[/url][*][url=http://www.richmedia.us/post/2009/10/17/linqtosql-1c-dbml-generator.aspx]Использование технологии LinqToSql для прямого доступа к данным 1С:Предприятие[/url][*][url=http://www.richmedia.us/post/2009/10/10/opredelniye-klassov-net-framework-v-1c-predpriyatiye.aspx]Определение классов .Net и работа с ними в 1С:Предприятие[/url][*][url=http://www.richmedia.us/post/2009/06/20/1c-netbridge-system-environment.aspx]Получение аргументов командной строки запуска 1С:Предприятие, переменных окруженияи другой информации[/url][*][url=http://www.richmedia.us/post/2009/06/15/xaml-1c-predpriyatiye-elisy-net-bridge.aspx]Эксперименты с XAML в 1С 7.7/8.0/8.1/8.2[/url][*][url=http://www.richmedia.us/post/2009/06/10/http-server-na-1c.aspx]РеализацияHTTP-сервера на 1С 7.7/8.0/8.1/8.2[/url][*][url=http://www.richmedia.us/post/2009/05/30/shifrovaniye-zashita-informacii-1c-predpriyatiye.aspx]Шифрование и защита информации в 1С:Предприятие 7.7/8.0/8.1/8.2[/url][url=http://www.richmedia.us/post/2009/04/03/elisy-net-bridge-1c-komponent.aspx](1C.Net) 1C-компонент Elisy.NetBridge добавляет поддержку .Net в 1С:Предприятие7.7/8.0/8.1/8.2[/url][/list]
[b]Дополнительные ресурсы[/b]
Перечень релизов и описаний изменений:[url=http://1centerprise.com/forums/viewtopic.php?f=9&t=13]1C:Enterprise forums[/url]
Все статьи по Elisy .Net Bridge: [url=http://www.richmedia.us/category/1cnet.aspx]richmedia.us[/url]
Проект на Инфостарт: [url=http://infostart.ru/profile/40833/public/]infostart.ru[/url]
[i]Источник: [url=http://www.richmedia.us/post/2010/01/23/1c-net-predpriyatiye-elisy-net-bridge.aspx]richmedia.us[/url][/i]