обход объекта графа из n-уровневого клиента

В настоящее время я учусь на n-уровневом приложении .Net, которое использует Nhibernate + WCF + WPF.

Одна из вещей, которая выполняется довольно ужасно, это сериализация объектного графа. На самом деле это вообще не делается, в настоящее время ассоциации игнорируются, и мы везде используем DTO.

Насколько я могу сказать, один из методов - это заранее определить, какие объекты и коллекции должны быть загружены и сериализованы для передачи по проводам, что позволяет представить некоторые ассоциации клиенту, однако это кажется ограниченным, негибким и непоследовательным (можете ли вы скажи что мне не нравится эта идея).

Один вариант, который мне пришел в голову, состоял в том, чтобы просто заменить NHProxies, которые лениво собирают нагрузку на клиентском уровне, на «disconnectedProxy», который будет извлекать связанный материал по проводам. Это означало бы, что нам пришлось бы немного расширить сигнатуру нашего веб-сервиса и сделать несколько хакерских атак на наши сгенерированные прокси, но это выглядело как хороший эксперимент T4 / другого кода поколения.

Насколько я могу судить, кажется, что это общий камень преткновения, но после долгих чтений я не смог найти ни одного хорошего / общепринятого решения. Я ищу как направление, так и какое-либо конкретное решение, но если есть простой способ заставить клиента чувствовать себя связанным, пожалуйста, дайте мне знать.

Ответы на вопрос(3)

Ваш ответ на вопрос