Как перестроить слой Hibernate DAO приложения ASP.NET, чтобы переместить его в Silverlight? - PullRequest
0 голосов
/ 21 ноября 2008

Последняя попытка получить ответ на этот вопрос.

У меня есть простое приложение ASP.NET, которое использует Hibernate для доступа к данным. GUI может вызывать методы объекта Customer, такие как «CalculateTotalSumOfOrders ()». Ленивая загрузка (даже если она не оптимальна) будет работать для меня, и когда ссылки на коллекции Orders и OrderLines будут указаны в объектах домена, они будут автоматически выбраны из базы данных.

Теперь давайте предположим, что я переписываю то же самое приложение в Silverlight, потому что оно выглядит лучше, чем ASP.NET. Я больше не могу выполнять отложенную загрузку или доступ к данным, потому что клиент Silverlight работает в браузере. Как я могу решить эту проблему, не слишком задумываясь о том, какую службу использовать для передачи данных в клиент Silverlight?

Ответы [ 4 ]

1 голос
/ 21 ноября 2008

Лучшая ставка для поддержки всех этих платформ - использовать веб-сервис. Существует множество различных вариантов: Web-сервисы .NET 2.0 (ASMX), WCF, REST. Если вы используете Silverlight, вы можете рассмотреть возможность использования WCF + LINQ to SQL, что демонстрируется здесь . Эту комбинацию также можно использовать в ASP.NET (если он работает в .NET 3.5) и приложениях для рабочего стола Windows (снова .NET 3.5).

Также вам может быть интересен проект с открытым исходным кодом под названием InterLinq, в основном он позволяет создавать запросы LINQ to SQL на стороне клиента, а затем передавать их через WCF на сервер, который выполняет запрос и возвращает результат. Это можно найти здесь . Я экспериментировал с этим в прошлом, и он работает довольно хорошо.

1 голос
/ 22 ноября 2008

Одной из опций, которая будет поддерживать клиентов Silverlight и Windows, будет новый ADO.NET Data Services в .NET 3.5 SP1. Это набор сервисов, которые предоставляют схему вашей базы данных через интерфейс WCF. Затем вы можете получить данные из Silverlight или клиента Windows с помощью клиента WCF.

Как сказал @McWafflestix, вы больше не сможете выполнять отложенную загрузку, но, на мой взгляд, это хорошо, потому что получение данных теперь намного более "дорогая" операция.

0 голосов
/ 12 января 2011

*

"Это нормально, потому что я довольно рано там. Как бы вы перестроить его Поддержка ASP.NET, Silverlight и Windows-клиенты с минимальным накладные расходы? "

*

Я знаю, что я отвечаю на этот вопрос далеко после истечения срока, во всяком случае, здесь идет. Я бы предложил вам использовать шаблон проектирования MVP; это поможет вам создать несколько «видов» для работы с вашей моделью. Чтобы обеспечить поддержку клиентов Windows, вам необходимо предоставить свой бизнес-уровень, используя уровень служб (см. WCF).

0 голосов
/ 21 ноября 2008

Вы пытаетесь взять приложение на стороне сервера, которое взаимодействует с вашей базой данных и выполняет отложенную загрузку, и преобразовать его в приложение на стороне клиента без особой работы? Извините, это просто не сработает. Что вам нужно, так это серьезная реорганизация вашего приложения.

К сожалению ...

...