Vanessa Sharp

Open Source Библиотека классов Microsoft.Net для доступа к данным 1С с поддержкой стандартных интерфейсов ADO.Net и LINQ.

Начать использовать Исходные коды NuGet Gallery

Подробнее

Цели проекта

Назначение проекта Vanessa Sharp - это создание бесплатных программных библиотек с открытым исходным кодом (open source), облегчающих работу с данными систем, построенных на платформе 1С в приложениях, работающих на Microsoft .Net Framework. Облегчение работы с данными 1С обеспечивается реализацией в библиотеках VanessaSharp стандартных интерфейсов доступа к данным в Microsoft .Net, знакомых каждому .net-разработчику. Кроме реализации стандартных API, в библиотеках Vanessa Sharp имеются полезные вспомогательные методы работы с 1С, которые бы пришлось каждому .net -разработчику писать заново, при решении задач интеграции разрабатываемых приложений с 1С. В недалеком будущем также предполагается разработка в рамках проекта Vanessa Sharp вспомогательных утилит генерации кода для работы с конкретными конфигурациями 1С, во избежание рутиной работы и повышения эффективности .net -разработчика. Существуют несколько механизмов интеграции 1С со сторонними системами, которые могут быть использованы из приложений, разрабатываемых на Microsoft .Net. Некоторые производительные и масштабируемые, но требуют доработки конфигураций, что не всегда возможно. Другие же способы не требуют доработки конфигураций, однако не являются эффективными и масштабируемыми по объемам данных. В любом случае, работа с любым из механизмов интеграции 1С в приложении, работающем под Microsoft .Net, требует дополнительной работы, состоящей из написания вспомогательного кода для использования механизма интеграции. Имеется функциональный разрыв между 1C и Microsoft.Net, который и призван ликвидировать данный проект Vanessa Sharp.

Состав проекта, возможности, ограничения

На данный момент в состав библиотек проекта Vanessa Sharp входит реализация ADO.Net провайдера для 1С и Linq-провайдера для 1С (LinqTo1C). Оба провайдера работают через так называемое COM-соединение, одним из старых механизмов интеграции 1С. Как понятно по названию, СОМ-соединение подразумевает работу с 1С через API построенном, на основе старой COM-технологии, разработанной Microsoft в начале 90х годов. У данного механизма есть огромное преимущество, нет необходимости проводить дополнительную работу с прикладной конфигурацией 1С, что не всегда возможно. Однако есть и минусы, в выборе данного механизма. Дело в том, что при взаимодействии через COM-соединение имеются затраты на маршалинг, причем к сожалению невозможно получить все данные одним вызовом какого-то объекта 1С. Количество вызовов 1С через COM-соединение прямо пропорционально количеству возвращаемых данных. Как результат провайдеры данных Vanessa Sharp не являются очень производительным решением и для серьезных высоконагруженных систем вряд ли годятся. Но не все задачи требуют решения по обеспечению высокой нагрузки и библиотеки Vanessa Sharp, в этом случае, безусловно, подойдут, как простое и дешевое решение, так как не требует дополнительных доработок прикладных конфигураций, со всеми вытекающими отсюда последствиями (доступ, поддержка, сопровождение, распространение). Еще один недостаток это работа под Windows, так как COM-соединение работает только под Windows-платформами. Однако, пока процент работы 1С под Linux невелик, данный недостаток быстрее является недостатком на будущее.

COM-соединение активно использует COM-технологию позднего связывания кода, построенной на основе использования интерфейса IDispatch (изначально названной OLE Automation). Так как COM-соединение работает через механизм позднего связывания кода, то при реализации ADO.Net провайдера и LinqTo1C было принято решение использовать DLR. Это означает, что библиотеки Vanessa Sharp работают только на версии Microsoft .Net 4.0 и выше. Что касается версий платформы 1С? Реализованный в Vanessa Sharp ADO.Net-провайдер для 1С использует SQL-подобный язык запросов 1С, который поддерживается во всех версиях 8.x технологической платформы 1С, также как и COM-соединение. Поэтому теоретически (полностью протестировать на всех версиях технологической платформы 1С нет возможности) ADO.Net провайдер 1С VanessaSharp можно заставить работать на всех версиях 8.x. LinqTo1C не использует напрямую 1С, только через ADO.Net-провайдер, так что если первый провайдер будет работать, то будет работать и второй провайдер. Также надо заметить, что если у вас нет возможности установить COM-соединение с 1С, то увы и Vanessa Sharp чудес сделать не сможет, так как на данный момент провайдеры данных Vanessa Sharp работают только через COM-соединение.