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

Обзор

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

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

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

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

[Aspose.Cells]](https://products.aspose.com/cells/net/) является независимой Microsoft операцией с электронными таблицами Excel API, которая Microsoft читает и записывает электронные таблицы Excel без установленного Microsoft Excel на стороне клиента или сервера. Aspose.Cells — это многофункциональный компонент, который предлагает гораздо больше, чем просто экспорт основных данных. С Aspose.Cells разработчики могут экспортировать данные, форматировать электронные таблицы, импортировать изображения, импортировать, создавать диаграммы и управлять ими, передавать данные Excel в потоковом режиме и сохранять в различных форматах. Чтобы узнать больше о продукте и его особенностях:

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

.NET Требования к структуре

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

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

Функции

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

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

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

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

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

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

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

Спектакль

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

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

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

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

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

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

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

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

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

  • Поддерживаемые операционные системы: Windows 2000; Windows Сервер 2003; Windows Виста; Windows XP
  • .NET Поддерживаемые версии Framework: только .NET framework 2.0 или выше.
  • Один или несколько следующих выпусков инструментов Visual Studio для Office:
  • Microsoft Инструменты Visual Studio 2005 для офисной системы Microsoft
  • Microsoft Инструменты Visual Studio 2005 для системы Office 2007 Microsoft
  • Профессиональная версия Visual Studio 2008.
  • Visual Studio 2008 Team Suite Edition
  • Одна версия Microsoft Офис:
  • Microsoft Office профессиональный 2003 с пакетом обновления 1 (SP1)
  • 2007 Microsoft Офисная система

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

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

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

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

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

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

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

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

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

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

Код ВСТО

Aspose.Cells Код

Результаты

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

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

Заключение

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

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

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