Привязка страниц Silverlight к набору данных (вопрос дизайна) - PullRequest
0 голосов
/ 04 июня 2009

У меня есть устаревшее приложение dot net (теперь переведено на .net 2.0).

Нам нужно преобразовать это приложение в silverlight.

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

Теперь вопросы:

  1. Могу ли я использовать те же наборы данных для страниц Silverlight?
  2. Или мне нужно создать оболочку для слоя данных?
  3. Или мне нужно изменить всю архитектуру слоя данных (например, возвращать коллекции и т. Д.)?

Пожалуйста, предложите наилучший из возможных способов.

Спасибо, SNA

Ответы [ 2 ]

1 голос
/ 04 июня 2009

К сожалению, DataSet не поддерживаются в Silverlight 2 (и afaik не поддерживаются в Silverlight 3).

Я собираюсь предположить, что у вашего текущего уровня данных есть методы, такие как GetTopCustomers, которые возвращают DataSets, затем клиентское приложение может изменить эти данные и повторно передать их в функцию уровня данных, например UpdateCustomers, которая принимает DataSet в качестве параметра, и затем отправляет изменения в базу данных. Если это так, я думаю, вам будет нелегко написать оболочку, потому что вы будете сами по себе для обеспечения ссылочной целостности и отслеживания изменений на стороне клиента. Это, конечно, возможно, но я думаю, что это будет больше боли, чем стоит. Поэтому создание imo-оболочки вокруг уровня данных будет эквивалентно изменению всей архитектуры уровня данных для возврата коллекций и т. Д.

Лучшим выбором для уровня данных является .NET RIA Services, который поставляется когда-то в период Silverlight 3. Это огромный скачок по сравнению с современной технологией ADO.NET Data Services, в которой добавлено отслеживание изменений и DataSet-подобный «контекст» для клиента. Это также позволяет напрямую обмениваться кодом между ASP.NET (или любой частью полной .NET Framework) и Silverlight, чтобы ваши бизнес-правила могли выполняться как на стороне клиента, так и на стороне сервера. Переписывание слоя данных может показаться не очень привлекательным, но я думаю, что это избавит вас от большой боли, и вы получите огромную отдачу, если выберете .NET RIA Services. Если этот выбор не подходит, другой вариант - использовать ADO.NET Data Services для доставки данных туда и обратно (в сочетании с оберткой для текущего уровня данных) или для создания собственных пользовательских служб WCF для обеспечения операций CRUD (снова с оберткой на текущем слое данных).

Удачи!

0 голосов
/ 04 июня 2009

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

Это много работы в Silverlight V2, как вы, наверное, знаете. Если вам нужны подробности, вот сообщение в блоге . В итоге вы создадите собственный слой serialize / deserialize / zip / encode для передачи данных в приложение Silverlight.

Silverlight 3 еще не вышел, но близко от слухов. И эта функциональность присутствует в V3 (из того, что я слышу).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...