Выбор графического фреймворка для Mono-совместимого приложения - PullRequest
0 голосов
/ 11 мая 2010

У меня есть приложение, в котором есть некоторые элементы управления, использующие GDI +, в основном это простые вещи с низкими требованиями к визуализации графики, хотя у меня есть пара анимированных окон GDI +, которые можно использовать по одной линии из-за низкой производительности GDI +.

В будущем я хотел бы начать использовать WPF (для повышения производительности и изучения WPF), но мне также хотелось бы, чтобы код был совместим с Mono. Поэтому мне было интересно, должен ли я развиваться, используя Silverlight (Moonlight in Mono). Таким образом, я получаю некоторые навыки WPF (я полагаю, Silverlight является подмножеством WPF?) И хорошую производительность.

Ответы [ 3 ]

2 голосов
/ 21 мая 2010

Silverlight / Moonlight - намного лучший выбор для любого типа графики и анимации. GDI + устарел, а реализация Mono существует главным образом для поддержки Winforms, что означает, что она не станет лучше. OTOH, хотя на первый взгляд оба используют Cairo (как упоминалось в предыдущем постере), это все равно, что сказать, что оба рендеринга текста - да, они делают, но это почти то, где сравнение останавливается. Moonlight предназначен для быстрого рендеринга, вы получаете векторную анимацию, вы получаете аппаратную поддержку, когда это возможно, для графических чипов, потому что она действительно должна быть быстрой, она должна поддерживать видео с эффектами рендеринга в реальном времени, 2D и 3D и т. Д. Это может быть он еще не соответствует последней версии Silverlight, но это не значит, что он не делает то, что вам нужно. Если у вас есть выбор, используйте новую технологию, над которой активно работаете, а не устаревшую устаревшую технологию.

1 голос
/ 12 мая 2010

Silverlight действительно является подмножеством WPF, хотя некоторые детали работают по-разному. Лунный свет в настоящее время совместим с Silverlight 2.0, но Microsoft теперь 4.0 с Silverlight. Лунный свет, вероятно, всегда будет сильно отставать от Silverlight, а за WPF он будет еще дальше. Но если вы можете жить с этим, Лунный свет может быть хорошим выбором. Однако, если вы, вероятно, не увидите никаких улучшений производительности, потому что Mono использует Cairo для рендеринга как GDI +, так и Moonlight. Я также ожидаю, что реализация Mono GDI + будет гораздо более зрелой, чем низкоуровневые API рендеринга Moonlight.

0 голосов
/ 12 ноября 2011

Код C #, использующий инструкции GDI +, предоставленные System.Drawing, в настоящее время не совместим с Linux, использующим Mono.

A null reference or invalid value was found [GDI+ status: InvalidParameter]

AFAIK никто не смог решить эту ошибку.

...