Syncfusion–гора проблем или опять про выбор “свое или чужое”
- modified:
- reading: 2 minutes
Как-то я поднимал уже тему про то, стоит ли покупать компоненты или может имеет смысл писать их самому. Хочется пожаловаться, просто накипело. Syncfusion меня очень сильно удивил. Есть у них библиотеки, включающие имя Web, ну, наверняка же, должно подразумеваться, что все классы, контролы должны уметь жить в многопоточной среде. А оказывается нет. В общем, хочу провести антирекламу Syncfusion. Я могу точно сказать – эти библиотеки покупать не стоит. Берут они, наверное, свое, только обилием количества решений, контролов, сред. Но, не стоит это тех денег, а особенно сил, которые нужно будет тратить на решения проблем.
Есть у них, например, библиотека для создания Pdf документов, но вот проблема, следующий код работать не будет.
static void Main(string[] args)
{ List<Thread> threads = new List<Thread>();
for (int i = 0; i < 2; i++)
{ var thread = new Thread((x) =>
{ var report = new ReportClass();
}); threads.Add(thread);
thread.Start();
}
while (threads.Any(x => x.IsAlive))
{
Thread.Sleep(100);
}
}
class ReportClass
{
private readonly PdfTrueTypeFont _firstPageFooterFont = new PdfTrueTypeFont(new Font("Arial Narrow", 8.5f, FontStyle.Italic), true);
}
Падает в конструкторе PdfTrueTypeFont во втором потоке (первый прорабатывает отлично). Вот и все. Как такое возможно, у меня был шок. И ладно, если бы это был один случай. В этот же день нахожу другую проблему. Есть ChartWebControl, создаем 100 объектов этого типа в разных потоках, вызываем у каждого из них метод ChartWebControl.SaveImage(Stream stream, ImageFormat imageFormat) и получаем в одном из потоков, что объект используется. Вот это событие рандомное, может случиться, а может и не случиться. Оба бага Syncfusion уже приняла.
Как вам? Может быть, проблемы в каждом из контролов, классе. Я не знаю, на сервере мы используем только это. На клиенте (Silverlight) все попроще, там не многопоточная среда.
Зависело бы решение от меня: давно бы выкинул все, что связывает с Syncfusion с таким качеством продукта, но корни вросли уже. Эх, буду бороться дальше.