В поисках лучшего сквозного взаимодействия с Flex, .NET и СУБД

Мы пересматриваем некоторые из наших практических методов работы, и конкретная вещь, на которую мы сейчас обращаем внимание, — это лучший метод для работы с клиентами на основе Flex и веб-службами .NET.

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

Это работает нормально, пока мы не наткнемся на базу данных, а затем такие вещи, как соединение таблиц, начнут портить всю ту работу, которую мы проделали, упрощая клиентскую часть.

Мы пытались решить эту проблему с помощью LINQ to SQL и других преобразователей OR, но ни один из них не решает проблему, не создавая более серьезных проблем.

Итак, на самом деле возникает вопрос: Не рассматривая СУРБД как простое хранилище объектов, есть ли лучший способ справиться со сложными требованиями к данным без написания огромного количества кода преобразования?

Я полагаю, что волшебная пуля, которую я ищу, — это то, что знает, что такое таблица соединений и как с ней работать, и при этом позволяет мне генерировать «хороший» сериализованный XML для Flex и сохраняет строгую типизацию .NET.

Бонусные баллы, если он может анализировать SQL, необходимый для каждого метода, создавать хранимые процедуры и использовать их. Но это, наверное, слишком многого требует :)

Примечание относительно "Объединения таблиц":

Наше определение: у вас есть таблица с двумя или более внешними ключами в качестве собственного первичного ключа.

eg:

Photos (PK PhotoID) <- PhotoTags (PK FK PhotoID, PK FK TagID) -> Tags (PK TagID)

Когда клиент Flex получает объект Photo, он также может получить список всех тегов. Итак, это может выглядеть так:

<photo id="3">
 <tags>
   <tag name="park" />
   <tag name="sydney" />
 </tags> 
</photo> 

Вместо этого инструменты ИЛИ, которые я видел, дают нам:

<photo id="3">
 <phototags> 
  <phototag> 
    <tag name="park" />
  </phototag> 
  <phototag> 
    <tag name="sydney" />
  </phototag> 
 </phototags> 
</photo>

person Community    schedule 15.09.2008    source источник


Ответы (1)


Хотя я уверен, что есть другие способы решить вашу проблему, есть ли конкретная причина, по которой вы хотите общаться с .net через веб-службы? Одним из очень простых решений является использование чего-то вроде WebOrb (http://www.themidnightcoders.com/weborb/dotnet/) У них есть предложения сообщества, а также коммерческие предложения, и они решают проблемы, которые вы описываете, довольно элегантно.

-mw

person Michael Wolfe    schedule 15.09.2008
comment
Эй, спасибо за ответ. Я собирался упомянуть WebOrb — мы рассмотрели его, но он не решает проблему, связанную с сокрытием внутренних компонентов базы данных от клиентов. В моем примере у нас по-прежнему будет Photo.PhotoTags[].Tag.Tag или что-то подобное. Спасибо :) - person ; 16.09.2008