Сравнение VSTO с Aspose.Cells for .NET

Обзор

Microsoft Excel широко используется бизнесом и отдельными лицами во всех отраслях. Это приложение для создания электронных таблиц практически повсеместно распространено и позволяет пользователям не только хранить и организовывать данные, но также создавать сложные модели с использованием формул и наглядно представлять данные с помощью продвинутого форматирования и диаграмм.

VSTO позволяет документам Microsoft Office выполнять код, упакованный в сборку .NET. Он используется для разработки приложений, работающих с файлами и функциями Microsoft Office. Разработчики долгое время использовали ASP, компоненты веб-версии Office и взаимодействие с COM в приложениях. Microsoft улучшила VSTO для упрощения разработки и развертывания приложений, а также улучшила управление памятью. Однако остается вопрос: разработан ли VSTO для того, чтобы быть более удобным в использовании и надежным, чем другие доступные сегодня подходы? Разработчики хотят работать с решениями, которые не подведут их в плане улучшенной производительности, безопасности, масштабируемости, стабильности, надежности или функциональности.

Aspose предоставляет большой набор API для .NET, Java, Cloud и Android. API Aspose включают такие продукты, как Aspose.Cells, Aspose.Words, Aspose.Pdf и Aspose.Slides, которые помогают разработчикам открывать, изменять, генерировать, сохранять, объединять и конвертировать документы в различные форматы, включая XLS, XLSX, DOC, DOCX, HTML, PDF, PPT.

В этой статье мы сравниваем VSTO с Aspose.Cells for .NET.

Aspose.Cells - это независимый API для манипулирования электронными таблицами Microsoft Excel, который читает и записывает электронные таблицы Excel без установленного Microsoft Excel на клиентской или серверной стороне. Aspose.Cells - это функционально насыщенный компонент, который предлагает гораздо больше, чем просто экспорт данных. С помощью Aspose.Cells разработчики могут экспортировать данные, форматировать электронные таблицы, импортировать изображения, создавать и изменять диаграммы, потоковые данные Excel и сохранять в различных форматах. Чтобы узнать больше о продукте и его возможностях:

Этот статья сравнивает VSTO и Aspose.Cells по различным аспектам, связанным с Microsoft Excel. Список не полный, но он представляет несколько проблем, которые должны понимать лица, принимающие решение, прежде чем принимать окончательное решение перед применением подхода.

Требования .NET Framework

Для выполнения конечного приложения VSTO требуется .NET Framework (включая Visual Studio Tools для Office SE Runtime) на стороне клиента. В большинстве корпоративных сред, особенно в веб-сценариях, конечные пользователи не могут установить прикладное программное обеспечение и связанные рабочие среды выполнения. Это требование одно по себе делает приложения на основе VSTO проблематичными. Практически исключены готовые приложения на основе VSTO.

Напротив, Aspose.Cells for .NET не обязательно требует .NET Framework на стороне клиента для подходящего сценария. Приложения Office, построенные с использованием компонента, легкие и гарантированно работают в системах Microsoft Windows под значительной нагрузкой.

Функции

Функции, которые предоставляет VSTO, зависят от комбинации установленных продуктов VSTO и Visual Studio. Общие задачи, выполняемые VSTO для Microsoft Office Excel 2003, включают добавление данных в ячейки, создание, открытие и сохранение книг, добавление, перемещение и скрытие листов, защиту листов, именованные диапазоны, объекты списка, форматирование стилей, поиск текста в ячейках, сортировка данных, печать и вычисление формул Excel.

Aspose.Cells предоставляет все необходимое для управления файлами Microsoft Office Excel и гораздо больше. API обеспечивает разработчикам отличные результаты с минимальными усилиями. Aspose.Cells предоставляет много мощных функций, экономящих время. API предоставляет простые в использовании интерфейсы при выполнении всех типов операций управления электронными таблицами, покрывая практически все функции, предоставляемые Microsoft Excel. Все задачи, перечисленные для VSTO, могут легко выполняться Aspose.Cells.

Aspose.Cells также поддерживает несколько передовых функций, включая поддержку умных маркеров, импорт и экспорт данных из и в ряд источников данных, объектов и файлов Excel, поддержку клиентов COM (клиентов ASP) взаимодействие с компонентом, преобразование файлов Excel в PDF-формат, сохранение диаграмм и листов Excel в виде файлов изображения.

Безопасность

По умолчанию приложения VSTO требуют разрешений Full Trust для выполнения, так как они не позволяют частично доверенным вызывающим. Чтобы ограничить веб-приложение и обеспечить дополнительный уровень изоляции приложения в размещенной среде, вы можете использовать безопасность доступа к коду для ограничения ресурсов, к которым приложение может обращаться, и привилегированных операций, которые оно может выполнять. Но вам нужно потратить некоторое время и усилия, чтобы понять безопасность .NET.

Провайдеры интернет-услуг (ISP), которые размещают множество приложений от множества различных компаний, часто используют уровень среднего доверия, чтобы гарантировать, что приложения не могут читать данные друг друга или вмешиваться друг в друга. По соображениям безопасности провайдеры интернет-услуг могут ограничивать отдельные веб-приложения на общих серверах до частичного доверия.

Aspose.Cells for .NET может работать под уровнем безопасности Medium Trust. Для выполнения сборки в размещенной среде не требуются специальные привилегии. Уровень Medium Trust ограничивает типы общих системных ресурсов, к которым могут обращаться приложения. Многие веб-приложения работают на серверах веб-хостинга. В режиме веб-хостинга большинство из них могут работать только под уровнем безопасности Medium Trust. Aspose.Cells for .NET может удовлетворить их требования в этом отношении.

Производительность

Производительность - самый критический фактор при выборе какого-либо подхода или методологии для создания решения.

Производительность приложения VSTO основывается на VBA и подходах COM, согласно отчетам некоторых пользователей. Существует несколько факторов, влияющих на производительность VSTO, и важно учитывать эти факторы.

  • Начальные затраты .NET по своей природе дороги. Приложения, написанные на .NET, должны нести накладные расходы на компиляцию Just-In-Time (JIT), поэтому компиляцию JIT нельзя избежать.
  • Другой фактор, влияющий на производительность приложений на основе VSTO, связан с расходами при вызове толстых слоев автоматизации, охватывающих объекты Microsoft Office COM. VBA, созданный и оптимизированный для взаимодействия с Microsoft Office, имеет более короткое расстояние для перемещения, чем .NET.
  • Наконец, размещение объектов Excel в среде Visual Studio IDE дорого в терминах ресурсов. Приложения VSTO имеют больший объем памяти по сравнению с приложениями VBA. Приложения Excel на основе VSTO используют много памяти и никогда не освобождают ее обратно в ОС, пока не закрыты все экземпляры Microsoft Excel.

Если вы рассматриваете возможность использования VSTO в качестве платформы разработки для технологии Microsoft Office, потратьте некоторое время на поиск ресурсов, чтобы ознакомиться с этими особенностями.

Более того, производственная импликация постоянной проверки обновлений может быть не уместной для решения (медленные серверы развертывания, медленные сетевые соединения или просто невозможность часто обращаться к серверу могут негативно сказаться на времени загрузки).

В отличие от этого Aspose.Cells for .NET легко масштабируется, гибок и быстр. В общем, приложения Office не были предназначены для одновременного использования сотнями и тысячами пользователей; в отличие от этого, Aspose.Cells предназначена. API стабильно работает и может выполнять задачи электронных таблиц безупречно, будь то на одном сервере для поддержки одного приложения или на сбалансированной нагрузкой веб-ферме для обеспечения приложения всего предприятия.

Системные требования

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

VSTO имеет длинный список предварительных требований:

  • Поддерживаемые операционные системы: Windows 2000; Windows Server 2003; Windows Vista; Windows XP
  • .NET Framework, поддерживаемые версии: только .NET Framework 2.0 или более поздней.
  • Одно или несколько из следующих изданий Visual Studio Tools for Office:
    • Microsoft Visual Studio 2005 Tools for the Microsoft Office System
    • Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System
    • Visual Studio 2008 Профессиональная версия
    • Visual Studio 2008 Team Suite Edition
    • Одна версия Microsoft Office:
    • Microsoft Office Professional 2003 SP1
    • Система 2007 Microsoft Office

Для работы с Aspose.Cells не требуется установка Microsoft Excel на клиентском или серверном компьютере, поскольку это движок создания электронных таблиц. Однако для просмотра документов Microsoft Excel требуется установить хотя бы Microsoft Excel Viewer на системе.

  • Поддерживаемые операционные системы: Windows 2000; Windows Server 2003; Windows Vista; Windows XP
  • .NET Framework, поддерживаемые версии: поддерживаются все версии .NET Framework, 1.0, 1.1, 2.0, 3.x и т. д.

Установка и развертывание

Установка VSTO может быть большой и проблематичной задачей. Иногда установка требует вручную переустановить некоторые инструменты и зарегистрировать их вручную. Это может быть сложно.

С другой стороны, Aspose.Cells for .NET упакован в один DLL, поэтому нет необходимости устанавливать дополнительные приложения. Компонент используется только .NET-приложениями, и ни одна часть кода компонента не ожидает ответа человека. Просто зайдите на страницу загрузки Aspose.Cells download page и загрузите последний установщик Aspose.Cells. Запустите загруженный файл и следуйте инструкциям установщика. Затем для использования компонента добавьте ссылку на него в свой проект.

Пример задачи

Для того чтобы показать различия между двумя подходами, приведенный ниже код показывает, как использовать API VSTO и Aspose.Cells для заполнения файла шаблона данными.

  1. Используется файл Microsoft Excel (TempBook.xls) в качестве шаблона. Этот рабочий лист содержит несколько листов с заполненными данными в нескольких ячейках.
  2. Примерный код помещает 1000*20 записей на первый лист в шаблонном файле Excel. Лист заполнен постоянными (фиктивными) данными в ячейках.

Задача выполняется на системе с процессором Intel(R) Celeron(R) 2.40 ГГц, 760 МБ оперативной памяти под управлением операционной системы Microsoft Windows XP Professional.

Нижеприведенные сегменты кода иллюстрируют, как выполнять эти задачи с каждым API.

Код VSTO

Код Aspose.Cells

Результаты

Результаты показали, что использование VSTO API заняло около 2,5 минуты (примерно более 150 секунд), чтобы завершить задачу, в то время как Aspose.Cells использовал менее 1 секунды на обычном оборудовании с нормальной конфигурацией системы.

Если цикл расширен, например, для заполнения 10 000*20 ячеек, Aspose.Cells занимает около 5,5 секунд для выполнения работы.

Заключение

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

Aspose.Cells - стабильный и зрелый продукт с базой клиентов по всему миру, достаточно масштабируем, чтобы хорошо работать при больших нагрузках.

Производительность VSTO еще не отшлифована. Вполне возможно, что некоторые из этих проблем производительности не связаны с самим VSTO, а скорее имеют связи с процессами компиляции .NET JIT. Но возникают определенные сомнения, будет ли масштабироваться приложения VSTO с увеличением нагрузки. Новая модель VSTO не требует, чтобы Excel находился на веб-сервере для обработки документов, но я думаю, что у VSTO еще долгий путь, чтобы оказать реальное влияние.