.NET RIA Services

среда, 8 апреля 2009 г.,

RIA - Rich Internet Application, а .NET RIA Services - это дополнение к существующему DAL (Data Access Layer) в ASP.NET-приложениях. Основное назначение - объединение Silverlight и ASP.NET приложений.

Ниже пример организации обмена данными между Silverlight- и ASP.NET-приложениями:
  1. В Visual Studio 2008: Ctrl+Shift+N - Project Types: Silverlight - Template: Silverlight Application - OK
  2. В Solution Explorer выделить SilverlightApplication1.Web - Ctrl+Shift+A - Categories: Web - Templates: Domain Service Class - Add; в проект будет добавлен DomainService1.cs
  3. В класс DomainService1 добавить:
    [ServiceOperation] public string Test(string value) { return "Hello " + value; }
  4. Shift+F6 -- компиляция проекта
  5. В Solution Explorer выделить SilverlightApplication1 и нажать на Show All Files (вторая кнопка слева в toolbar'е) -- в проекте отобразится Generated_Code с файлом SilverlightApplication1.Web.g.cs
  6. Открыть файл MainPage.xaml.cs и в конструктор класса MainPage добавить:
    SilverlightApplication1.Web.DomainService1 ds = new SilverlightApplication1.Web.DomainService1();
    ds.TestCompleted += (s, e) => System.Windows.Browser.HtmlPage.Window.Alert("" + e.ReturnValue);
    ds.Test("123");
  7. F5 -- в результате в IE появится "Hello 123", полученное из метода DomainService1.Test

Для разработчиков .NET RIA Services открыт форум (en).

P.S.
В Web.config в httpHandlers должен быть указан тег:
<add path="DataService.axd" verb="GET,POST" type="System.Web.Ria.DataServiceFactory, System.Web.Ria, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
Иначе получим исключение: System.Windows.Ria.Data.EntityOperationException: The specified resource was not found.

1 комментарий:

Анонимный комментирует...

в Silverlight 4 вместо [ServiceOperation] надо указывать [Invoke]