Онлайн-планировщики хороши тем, что позволяют получить доступ к вашему календарю с любого устройства. При этом не стоит беспокоиться о сохранности данных в случае проблем с компьютером или смартфоном или о синхронизации расписаний между устройствами. Однако, количество инструментов, предназначенных для создания таких планировщиков может вызвать недоумение. Существуют JavaScript календари, .NET календари. Календари могут быть сторонними плагинами для популярных фреймворков или одним из компонентов этих фрейморков. Доступны также и stand-alone календари с возможностью интеграции с другими продуктами. Задача этой статьи — рассмотреть четыре разных .NET компоненты с целью помочь выяснить, на какой из них стоит обратить внимание и какой лучше подходит для пользователей разного уровня.

image

Вот список претендентов на сегодня:

— DayPilot ASP.NET Event Calendar
— DHTMLX Scheduler .NET
— Devexpress ASP.NET Scheduler
— Telerik .NET Scheduler

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

Итак, приступим.

DayPilot ASP.NET Event Calendar



DayPilot предлагает нам несколько инструментов для управления расписанием:

— ASP.NET Event Calendar, календарь событий, который позволяет распланировать день по часам:

image

— ASP.NET Monthly Calendar, календарь событий с масштабом в несколько месяцев. Подходит для планирования более длительных процессов:

image

— ASP.NET Scheduler, который подойдет для группировки событий по нескольким категориям или ресурсам:

image

— ASP.NET Gantt Chart помогает строить диаграммы Ганта:

image

Поскольку два последних компонента являются довольно специфическими инструментами, мы рассмотрим что-то более общее, а именно ASP.NET Event Calendar.

Основные особенности:

  • Интегрированная панель сообщений;
  • Использование drag-and-drop для изменения даты и продолжительности событий;
  • Экспорт. Поддерживаемые форматы: BMP, PNG, GIF, JPG;
  • Настройка внешнего вида календаря и событий;
  • Возможность локализации.


Полный список возможностей можно найти на этой странице.

Опробовать этот календарь в деле можно на демо-странице.

Сайт DayPilot содержит набор довольно беглых туториалов, доступный по этому адресу: www.daypilot.org/tutorials. Там можно найти руководство по созданию, экспорту и настройке доступных компонентов. Также присутствует несколько практических примеров. Например, приложение для резервации столиков в ресторане.

Но, поскольку нас интересует базовый календарь, нам нужна вот эта страница руководства. Создание приложения разбито на шаги: создание проекта в Visual Studio, создание базы данных, загрузка данных из БД и т.д. Доступен код на C# и VB.NET. Самые нетерпеливые могут сразу скачать исходный код по этой ссылке.

После выполнения всех инструкций мы сможем протестировать базовый календарь:

image

Минималистичное приложение не радует обилием доступных функций. Созданное событие можно перемещать по сетке календаря. Оно было добавлено в базу данных на этапе создания приложения. Возможность добавлять новые события по умолчанию отсутствует. Для добавления этой и других функций, вам придется погрузиться в документацию. Также хотелось бы отметить, что в этом календаре отсутствует возможность изменения масштаба. Таким образом, для того, чтобы получить возможность планирования событий длиной в несколько дней, вам придется использовать Monthly Calendar.

Хорошей новостью является наличие open-source версии календаря с уменьшенным набором возможностей.

Стоимость:

DayPilot предлагает несколько решений. Начиная от бесплатной версии DayPilot Lite, заканчивая коммерческими версиями компонентов. Версия DayPilot Pro Web Edition для одного разработчика с возможностью создания одного приложения на момент написания статьи обойдется вам в $499. Версия компонента для неограниченного количества разработчиков и неограниченного количества проектов обойдется уже в $2499. Доступна также неограниченная коммерческая лицензия для образовательных нужд, стоимость которой составляет $999. За возможность создания SaaS-приложений (DayPilot Pro SaaS Edition) или редистрибуции бинарников как части приложения (DayPilot Pro OEM) просят от $999 до $4999. Для каждой версии также доступна возможность получать обновления в течение 12 месяцев.

Итак, двигаемся дальше.

DHTMLX Scheduler .NET


DHTMLX Scheduler .NET это еще один stand-alone инструмент для создания планировщика. Вы можете посмотреть демо-страницу, чтобы представлять, что вы можете создать с его помощью.

Список основных особенностей:

  • Возможность выбора между несколькими доступными видами: Decade view, Grid view, Year view;
  • Повторяемые события;
  • Drag-and-drop интерфейс;
  • Поддержка тачскринов;
  • Возможность локализации;
  • Настраиваемый внешний вид;
  • Интеграция с Google Maps и Google Calendar.


И многое другое. Довольно подробный список всех доступных возможностей доступен на этой странице.

Существует несколько способов, с помощью которых вы можете установить этот календарь. Вы можете скачать пакет с необходимыми файлами или установить календарь с помощью NuGet или Package Manager Console. Помочь с установкой может эта страница руководства.

Теперь поговорим о документации. Поскольку DHTMLX Scheduler .NET по большому счету является .NET-оберткой для JavaScript календаря от того же разработчика, документация разделена на две части: страницы, посвященные в основном серверной части и статьи о клиентской части. Документация разбита на подразделы и позволяет вам быстро отыскать нужный туториал: от создания базового календаря до более тонкой конфигурации. Каждая страница документации представляет собой пошаговое руководство. Доступно также видеоруководство для самых ленивых.

Что нас интересует на данный момент, так это создание базового планировщика. В блоге разработчика удалось отыскать вот это руководство по созданию ASP.NET календаря . Оно довольно подробно описывает необходимые действия шаг за шагом и содержит скриншоты необходимых действий. Если вы видите Visual Studio хотя бы во второй раз в жизни, проблем у вас возникнуть не должно.

Итак, что же у нас получилось:

image

На этот раз у нас есть возможность менять масштаб календаря. Доступны варианты «Day», «Week» и «Month». Текущий день подсвечен, но если вы все же заблудитесь в расписании, кнопка «Today» вам поможет.

Создать новое событие можно несколькими способами. Можно выделить область календаря, которая будет соответствовать длительности события и на экране появится окно редактирования:

image

Его также можно вызвать двойным щелчком в области календаря, но в этом случае время начала и конца события придется вводить вручную. Возможность сменить масштаб окажется полезной, если вы хотите запланировать многодневное событие:

image

Созданные события можно перетаскивать по сетке календаря в случае перемены планов.

На этом список возможностей базового календаря заканчивается. Можно отметить, что, в отличие от календаря от DayPilot, нам не нужно использовать отдельные календари для отображения расписания в масштабе недели или месяца. Базовый календарь также дает возможность добавлять события. Для дальнейшего увеличения его функциональности вы можете воспользоваться документацией. Благо, она разбита на тематические пошаговые руководства и будет понятна новичкам.

Стоимость:

DHTMLX Scheduler .Net предлагает два вида лицензий: коммерческая за $299 и корпоративная за $979. В зависимости от типа лицензии вам предлагается стандартная или премиум-поддержка, возможность получать только минорные или все выходящие обновления, возможность использования компонента для создания одного проекта или их неограниченного количества, поддержка SaaS-приложений.

Devexpress ASP.NET Scheduler


DevExpress предлагает огромное количество инструментов для создания приложений для различных платформ. На сайте можно найти решения для WinForms, iOS, ASP.NET компоненты для онлайн приложений и многое другое.

Довольно подробное описание возможностей календаря доступно на этой странице.

Файл установки можно получить на странице загрузки. Возможность установить планировщик отдельно отсутствует. Для его работы придется установить полный набор .NET и MVC компонентов, что может не понравиться любителям минимализма.

Документация. Ее много. Если говорить конкретно об ASP.NET Scheduler, то соответствующая страница документации разделена на смысловые главы: «Start Here», Learn More", «How To» и «Reference». Каждая из которых состоит из подразделов, содержащих отдельные статьи по определенным темам. Все довольно основательно и помогает последовательно изучить все детали работы с этим инструментом. Однако же, если вы хотите испытать базовый планировщик на практике, не вникая в детали, то на деле можно ограничиться двумя видео-руководствами, доступными на YouTube: The Project Wizard, в котором рассказано об основах создания проекта (тип проекта, шаблон, скин и т.п.) и Getting Started with the ASPxScheduler, посвященный, собственно, созданию планировщика. Этих четырнадцати минут будет вполне достаточно, чтобы получить общее представление о том, как все устроено.

И, собственно, результат обучения. Базовый планировщик:

image

И тут нас ждет приятный сюрприз. Никаких действий для локализации календаря производить не пришлось. Он сам выбрал нужные параметры, исходя из языка используемой ОС.

Нам доступны несколько масштабов отображения календаря: «День», «Рабочая неделя», «Полная неделя», «Месяц», а также режим «График», в котором можно удобно отследить события, запланированные на текущую неделю. Панель навигации справа позволяет видеть распределение показанных на календаре дней по месяцам и переключаться между месяцами и годами. Для создания нового события нужно выделить период времени, который оно займет, после чего по правому клику появится окно добавления нового события:

image

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

image

Стоит также отметить, что каждое событие в зависимости от метки и других настроек будет иметь уникальный внешний вид. Вот как это выглядит в режиме «График»:

image

Стоимость:

Для того, чтобы получить планировщик от этого разработчика, вы можете купить лицензию на набор ASP.NET компонентов, которая обойдется вам в $899.99. Также существует три варианта подписки на наборы разного рода компонентов: DevExtreme Complete, DXperience и Universal. .NET компоненты включены только в два последних набора. Их стоимость составляет $1499.99 и $2199.99 соответственно.

Telerik .NET Scheduler


Как и предыдущий участник обзора, Telerik предлагает довольно обширный набор решений практически на все случаи жизни: платформа для создания мобильных приложений под iOS, Android и Windows Phone; JavaScript, HTML5 виджеты для веб; набор .NET компонентов для создания десктопных, мобильных и онлайн приложений и многое другое.

Но нас в данный момент интересует RadScheduler. Пройдя по ссылке вы найдете подробный список возможностей календаря, для каждой из которых доступна своя демо-страница.

Как и в прошлом случае, скачать планировщик отдельно у нас не получится и, если вы захотите его использовать, придется установить полный набор .NET компонентов.

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

И вот что вы получите в результате:

image

Календарь от Telerik также пытается по-умолчанию подстроиться под язык, привычный пользователю. Но, как видите, у него это выходит лишь частично. Русифицировались только названия дней недели и месяцев. Эти трудности перевода заставят вас потратить некоторое время на решение этой проблемы.

Но вернемся непосредственно к календарю. Вы можете заметить уже знакомую нам возможность смены масштаба календаря. Нам доступны Day, Week и Month. Опция Timeline работает аналогично таковой в планировщике от Devexpress. Что есть нового, так это мини-календарь, который можно открыть нажав на кнопку рядом с Today, а также возможность выбора между отображением полного графика и только рабочих часов:

image

Процесс создания нового события аналогичен предыдущему планировщику. Но на этот раз нам предоставляется возможность довольно детально настроить повторяющиеся события:

image

С помощью drag-and-drop можно изменять длительность и дату начала каждого события.

Стоимость:

Планировщик от Telerik входит в два набора компонентов: ASP.NET AJAX и ASP.NET MVC. Каждый из них обойдется вам в $999. В эту сумму включена стоимость поддержки и возможности получения обновлений в течение года.

Заключение


Рассмотренные календари можно разделить на два типа. Первые два представляют собой stand-alone инструменты. В случае с DayPilot купить какой-то один понравившийся компонент у вас не получится, поскольку он распространяется только в виде набора. Из четырех рассмотренных вариантов только DHTMLX Scheduler .NET позволяет купить календарь отдельно, что может быть интересно тем, кто не заинтересован в дополнительных компонентах.

Два оставшиеся календаря входят в большой набор .NET инструментов и получить их можно только скачав весь бандл целиком. Таким образом, обратить на них внимание стоит в том случае, если вам нужна интеграция с другими компонентами.

DayPilot и DHTMLX Scheduler .NET


Продукты от DayPilot выглядят довольно приятно. Документация довольно подробно описывает детали работы с каждым из компонентов. Присутствующие туториалы в целом будут хорошо понятны даже новичкам. Однако, что новичкам не понравится, так это невысокая функциональность базового приложения, для расширения которой придется покопаться в документации. Несколько неудобным кажется невозможность масштабирования календаря. Судя по-всему, придется выбирать, что вам больше по душе или использовать два вида календарей для вашего проекта, что может оказаться не вполне удобно. Хорошей же новостью является то, что помимо платных компонентов, вам доступна бесплатная open-source версия, хоть и с ограниченным набором функций. Выбрать подходящую версию можно на этой странице.

DHTMLX Scheduler .NET в этом плане выглядит куда привлекательней. Страница документации содержит пошаговые руководства разного уровня сложности. Также доступно видеоруководство. Разобраться с этим планировщиком смогут даже новички. Созданный базовый календарь уже выглядит довольно функциональным приложением. Есть возможность изменять масштаб календаря от дня до месяца, добавлять и редактировать события, изменять их с помощью drag-and-drop. Этот календарь распространяется по коммерческий лицензии. Также доступна 30-дневная триал-версия. Скачать можно здесь.

В качестве альтернативы вы можете попробовать JavaScript версию календаря, которая доступна в двух вариантах: коммерческая Pro Edition, а также Standard Edition, версия с открытым исходным кодом.

Devexpress ASP.NET Scheduler и Telerik .NET Scheduler


Календари от этих двух компаний входят в состав довольно большого набора инструментов. Как и было сказано, выбирать их только ради календаря едва ли стоит. Наборы инструментов от Devexpress и Telerik интегрируются с Visual Studio, что позволяет сконфигурировать приложение на этапе создания. Можно, например, задать шаблон и скин для внешнего вида. Документация у каждого из участников довольно подробна. Также каждый из них может похвастать наличием видеоруководств.

Документация от Devexpress выглядит более удобной для новичка. Каждая тема разбита на подразделы, сгруппированные по уровню сложности. Календарь выглядит более функциональным. Например, возможность выбирать метки для событий выглядит довольно удобно. Также многим может понравиться подход к локализации. Стоимость зависит от набора компонентов, который вы выберете. Определиться с выбором помогут триал-версии. Подробности здесь.

Документация от Telerik сформирована не так удобно, что может вызвать замешательство у новичков. Создать календарь довольно легко, он обладает всеми необходимыми для удобной работы функциями. Также, как и в случае с предыдущим разработчиком, Tellerik предлагает вам довольно широкий выбор наборов компонентов и триал-версий для каждого из них.

UPDATE

Были добавлены цены для каждого описанного продукта в соответствии с вашими запросами.

Комментарии (4)


  1. DrPass
    28.07.2015 14:02
    +5

    Если вы устраиваете обзор коммерческих продуктов, то не нужно забывать, что цена у них — параметр, ничуть не менее важный, чем функциональные возможности.


    1. lindorenko Автор
      28.07.2015 19:02

      Спасибо за комментарий. Я добавила цены продуктов


  1. LeX_KaR
    29.07.2015 16:06

    У Google есть отличное API для работы с календарями. Для чего использовать нечто изолированное (кроме случая отсутствия стабильного интернет соединения)? Да и с точки зрения синхронизации на разных устройствах это удобнее, мне кажется.


    1. lindorenko Автор
      30.07.2015 16:52
      +1

      1)Часто календарь приходится довольно сильно допиливать-настраивать под требования приложения (как по внешнему виду, так и по какой-то логике). С Google календарем это сделать проблематично.
      2) Есть внутренние приложения, которые не обязательно смотрят во внешний интернет, либо которые хотят не зависеть от доступности внешнего сервиса. Хотя если нужен просто онлайновый календарь без наворотов — согласен, гуглокалендарь 100% то что надо, легко установить, синхронизация с девайсами и всевозможные оповещения доступные из коробки — это очень круто.