Что такое.NET RIA Services?

Не уверен, что в вашем случае, но вы можете попытаться справиться с «мертвой зоной», создающей новый связыватель событий после создания элемента, например:

document.getElementById("add").addEventListener("click", function(e) {
    alert("eeeeee");
}, true);

// find element
var banner = $("#banner-message");

function changeColor() {
  setTimeout(function() {
    banner.removeClass("alt");
    alert('Your function');
  }, 1000)
}

// simulating async creation of element
var button = $("<button>", {
  text: "Change color",
  id: "add"
}).on("click", function(event) {
  event.stopPropagation();
  banner.addClass("alt");
  alert('button click');
}).appendTo(banner);



document.getElementById("add").addEventListener("click", function(e) {
  changeColor()
}, true);
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="banner-message">
  <p>Hello World</p>
</div>

Другой подход (Мы можем назвать это как «быстрое исправление», «обходной путь», «gambiarra», «Macgyver»]) . Но может сработать для вас, это связать ваше событие с родительским наложенным элементом с помощью CSS, а затем запустить исходное событие. Что-то вроде:

// find element
    var banner = $("#banner-message");
    
    $(document).on('click', "#overlay-example", function(e) {
    	changeColor();
      $(this).find('button#add').click();
    });

    function changeColor() {
      banner.removeClass("alt");
      alert('Your function');
    }

    // simulating async creation of element
    var button = $("<button>", {
      text: "Change color",
      id: "add"
    }).on("click", function(event) {
      event.stopPropagation();
      banner.addClass("alt");
      alert('button click');
    }).appendTo(banner.find('#overlay-example'));
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}

/* */
#banner-message #overlay-example {
  z-index: 10;
}

#banner-message #overlay-example #add {
  z-index: 0;
  pointer-events: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
<div id="banner-message">
  <p>Hello World</p>
  <div id="overlay-example">
  
  </div>
</div>

10
задан Gordon Bell 10 September 2009 в 22:23
поделиться

7 ответов

По сути, .NET RIA Services - это структура, которая скрывает логику подключения к сети для обработки через проводной RPC и связывает код между клиентом и сервером.

Вы можете думать о это как RAD для разработки клиент / сервер.

Из блога Динеша:
1. Упростите n-уровневую разработку (и действительно покажу вам лучший способ получить многоуровневая история для вашей ORM объекты - LINQ to SQL или EF или что угодно)
2. Поддержка полнофункционального интернет-приложения (RIA) разработка на Silverlight - есть отличная сквозная история для проверка, аутентификация, легко привязка данных и т. д.
3. Расширьте возможности разработки ASP.NET опыт. Это основано на том, что вы знаете и уже пользуетесь. Там есть даже ASP.NET DomainDataSource и там шаблоны для SEO (и надеюсь, что скоро кое-что из AJAX - скрестив пальцы).

Чтобы ответить на некоторые другие ваши вопросы о будущем Брэд Абрамс говорит :

Доступ к ASP.NET - Следуя шаблону служб RIA, вы также сможете создавать ASP. Приложения .NET с легкостью используют все встроенные функции служб RIA, такие как проверка данных, авторизация и т. Д. В мартовской предварительной версии мы предлагаем элемент управления asp: DomainDataSource, который обеспечивает очень простой доступ ASP.NET WebForms к вашему домену. логика. В основе этого лежит будущая версия динамических данных ASP.NET, которая упрощает создание общего стандартного пользовательского интерфейса на основе логики вашего домена.

Вернувшись в Редмонд, мы работаем над предоставлением очень чистого доступа к логике вашего домена через ASP.NET MVC. Шаблон здесь очень крутой, и я не могу дождаться, чтобы поговорить о нем в будущей CTP.

13
ответ дан 3 December 2019 в 20:43
поделиться

Я предполагаю, основываясь на некоторых подкастах, которые я слушал:

Это библиотека, которая делает что-то вроде этого:

  • Предоставляет какой-то способ (атрибуты .NET, я думаю это было) для указания проверки данных в моделях данных на стороне сервера
  • Каким-то образом отправить эти данные клиенту (может быть, какой-нибудь настраиваемый тип wsdl-ish?)
  • На стороне клиента сгенерируйте некоторый прокси-код, который выполняет такая же проверка, как указано на сервере.

Если я правильно помню, у них была поддержка только для генерации кода .NET, так что приложения silverlight (и, возможно, WPF / XBAP) были им. Они упомянули создание javascript как что-то на будущее (возможно).

Казалось, что вы можете выйти за рамки простой проверки и обеспечить соблюдение «бизнес-правил» и так далее, но я не совсем уверен, как это будет работать.

1
ответ дан 3 December 2019 в 20:43
поделиться

Ненавижу просто перенаправлять вас на веб-сайт, но эта ссылка имеет хорошее объяснение.

Службы Microsoft .NET RIA Services упрощают традиционный шаблон многоуровневого приложения за счет объединения платформ ASP.NET и Silverlight. Службы RIA Services предоставляют шаблон для написания логики приложения, которая выполняется на промежуточном уровне и контролирует доступ к данным для запросов, изменений и настраиваемых операций. Он также обеспечивает сквозную поддержку для общих задач, таких как проверка данных, аутентификация и роли, путем интеграции с компонентами Silverlight на клиенте и ASP.NET на промежуточном уровне.

Насколько я понимаю, это абстракция. из кода и вашей бизнес-логики. Например,

2
ответ дан 3 December 2019 в 20:43
поделиться

Из того, что я мог понять из всех блогов, презентаций и официальных маркетинговых заявлений:

Шаблон, который четко разграничивает логику приложения, логику сохранения и потребителя (например, услуги и / или UI-клиент). Это поощряет повторное использование логики приложения и взаимозаменяемость как персистентной, так и потребительской логики.

И да, из того, что я читал, будут поддерживаться не-Silverlight клиенты.

0
ответ дан 3 December 2019 в 20:43
поделиться

Некоторые говорят, что для Silverlight и WCF это то же самое, что DCOM для VB6; очень легко соединить клиент и сервер без реального понимания последствий.

1
ответ дан 3 December 2019 в 20:43
поделиться

Общая информация и загрузки http://silverlight.net/forums/t/80529.aspx

Подробная информация здесь RIAServicesOverviewforMay2009.docx http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en

0
ответ дан 3 December 2019 в 20:43
поделиться

Кратко, насколько я могу это сделать ...

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

Ментальная модель: RIA как одно приложение вместо двух.

1
ответ дан 3 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: