Где я начинаю?:)
{Binding Path=Foo.Bar[0].Baz}
<Setter .. Value="{Binding ...}" />
не поддерживается К тому же много сигнатур методов, измененных ни на каком серьезном основании. Например, IIRC, перегрузки для Диспетчера. Вызовите отличаются, вместо SL, просто игнорирующего параметры, которые он еще не может обработать. Или как другой пример, ObservableCollection в WPF может повысить, Добавляют, Удаляют, события Replace и Move - в SL, это - только первые три.
, Так как я пишу код для работы над обеими платформами, код заканчивает тем, что был замусорен в стратегических моделях и #ifdefs. Чувствует себя подобно C++ снова и снова:-)
Как разработчик, отсутствие триггеров События/Свойства так лишение сил.
я не парень C#/oop поэтому, когда я должен инициировать цепочку раскадровок, когда объект загружается, или кнопка нажата или после другой раскадровки концы, я должен призвать devs: (
Никакая поддержка сокета или UDP является, вероятно, самой большой болью для меня сопровождаемый пропавшими без вести crypto классы.
, Кроме того, пропавшие без вести классифицировали как StringDictionary и ApplicationException, к которому Вы привыкаете, и затем находка не вокруг, боль. Обычно возможно найти замену или обходное решение, но лично я быть бы загрузка Silverlight идти от 5 МБ до 6 МБ, таким образом, мы не имели к;-).
Один действительно удобный прием я видел на блоге, который позволил мне снова использовать свои нормальные блоки .NET, состояли в том, чтобы добавить существующие объекты как ссылка. Во многих случаях теперь у меня есть два файла проекта с помощью тех же файлов класса с одним предназначением.Net 3.5 и другой время выполнения Silverlight. Я чрезвычайно благодарен, что нашел, что прием, поскольку я уже начинал спускаться по пути создания различных кодовых баз для.Net 3.5 и Silverlight!
В дополнение к Paul Stovell превосходный список:
x:Type
расширение разметки. LayoutTransform
(хотя существует обходные решения ). DependencyProperties
(должны вручную определить аннулирование меры/расположения/рендеринга, изменения свойства, и т.д.). Drawing
или DrawingContext
классы (должны использовать Shape
элементы). Самая большая жалоба, которую я имею, является отсутствием полной поддержки всей доступной привязки WCF. Только способность использовать BasicHttpBinding очень часто означает, что решением Silverlight проблемы не является допустимый выбор.
Неизменные стили Silverlight и отсутствие слияния словаря являются также большим - если Вы пишете средства управления, эти два дают Вам много стычки - не говоря уже о неуправляемо больших generic.xaml файлах.
Вот некоторые вещи, с которыми я встретился, когда я преобразовал приложение WPF в Silverlight:
Класс Enum отличается... Не может сделать этого в Silverlight (может в WPF) для привязки с Перечислением:
HoleType1. ItemsSource = Перечисление. GetValues (typeof (Дыра. HoleTypes));
цвета кисти работают по-другому...
WPF:
protected Brush _CurrentHoleColor = Brushes.Red;
Silverlight:
protected Brush _CurrentHoleColor = new SolidColorBrush(Colors.Red);
3. Еще не разработали этого, но что-то является особенным в этом коде WPF, который я раньше проверял, где мышью щелкнули:
System.Windows.Media.VisualTreeHelper.HitTest(canvas1, p);
4. Я думаю, что что-то немного отличается о перегрузках, используемых для создания новых потоков с [1 114]
this.Dispatcher.BeginInvoke(....)
По-видимому, комментарий комментария felixthehat потребовал определенной репутации.
, Но я хотел бы к второму его призыв к триггерам События/Свойства... Триггерная платформа в WPF позволяет мне делать действительно мощные вещи как разработчику взаимодействия, не имея необходимость погружаться в код. Я пропускаю его.
3D-перспектива - это здорово, но я не могу дождаться настоящего 3D!
ScrollViewer
не имеет события изменения (необходимо использовать хак привязки) поддержка DocumentFlow
WebClient
не позволяет выполнять запросы с аутентификацией HTTP. Моя самая большая досада: