Silverlight 3 Архитектура и реализация DataAnnotations - Adivce - PullRequest
0 голосов
/ 02 октября 2009

Я использую Silverlight 3 и ADO.NET Data Services со встроенной моделью Cusotm (отдельный проект) и DAL (отдельный проект). В моем проекте Silverlight я создаю [Service Reference], который ссылается на мой файл .svc, который, в свою очередь, указывает на мою модель.

Вот мой вопрос: я хотел бы использовать богатые возможности DataAnnotations (System.ComponentModel.DataAnnotations), но где именно я могу разместить эти атрибуты? Если я декорирую с помощью модели этими аннотациями, я не вижу их в моем прокси-коде, созданном [Service Reference]. Я просто вижу свои классы с их членами, но без DataAnnotations (Reference.cs).

Я знаю, что если я вручную изменю файл (Reference.cs) и добавлю некоторые аннотации данных, эти изменения просочатся в мой клиент Silverlight. Я не верю, что мне следует обновлять сгенерированный код, т.е. прокси-код с / в (Reference.cs). Итак, мой вопрос: где в моей структуре Visual Studio отдельных проектов (Web, SL, Model, DAL) я выбрасываю / расширяю этот пользовательский источник данных (Model) для использования DataAnnotations?

Я бы хотел что-то вроде этого:

[Required]
public string FirstName
{
    get
    {
        return this._FirstName;
    }
    set
    {
        this.OnFirstNameChanging(value);
        this._FirstName = value;
        this.OnFirstNameChanged();
    }
}

Ответы [ 2 ]

0 голосов
/ 18 января 2010

Я думаю, что проверка этой статьи может дать вам некоторое представление о том, почему Шон разместил свой комментарий. Краткий ответ на ваш вопрос: Следуйте ModelView-View-Model (MVVM), стилю разработки Silverlight, затем разместите DataAnnotations в свойствах вашей Модели, это огромная тема, и вам нужно сначала прочитать и понять ее. Я предлагаю вам проверить сервисы RIA (я думаю, что теперь они известны как сервисы WCF), которые вам очень помогут, если вы захотите распространить логику валидации из сервиса WCF обратно к клиенту.

0 голосов
/ 05 октября 2009

У меня есть замена кода gen для создания прокси-классов ADO.NET Data Service и автоматического добавления проверки в моем проекте Niagara:

http://niagara.codeplex.com

...