2013-09-17 3 views
0

У меня был завершен школьный проект, и я сейчас застрял в определенной точке. Целью проекта является создание OO-системы, которая обрабатывает данные очень определенным образом - как сервер, так и клиент имеют определение информации об уровне модели, но сервер должен обрабатывать все данные в реляционной база данных.C# - Отправка объектов между клиентом и сервером

Таким образом, как клиент, так и сервер имеют уровень контроллера, который совершенно другой. В настоящее время написана только серверная сторона, и она обрабатывает реляционное отношение к объекту и, в общем, управление всеми объектами (R2O решается с помощью Entity Framework). Но проблема в том, где реконструированные объекты должны быть переданы клиентам тем или иным способом.

Мой вопрос: что было бы лучшим решением для этого? Я не могу изменить макет (поэтому клиенты не могут напрямую подключиться к серверу базы данных, к сожалению, к сожалению, есть сервер, предоставляющий данные, и управление параллелизмом должно быть разрешено в этой части), но я не могу найти простой способ для передачи объектов разных классов с отношениями друг к другу по TCP-соединению.

Опять же - какое решение вы предложите, или, чтобы быть более широким, какие у меня варианты?

+0

Взгляните на WCF - http://msdn.microsoft.com/en-us/library/ms731082.aspx – EkoostikMartin

+0

Вам необходимо перевести объекты в некоторые другие типы данных, которые могут быть отправлены по сети, такие строки. Это называется сериализации ваших объектов (либо через фреймворк, либо вручную), а затем десериализуя их на другом конце. – Servy

+0

Что это за сервер? это служба WCF? Если бы я не посмотрел на это. – Oxymoron

ответ

1

Самый простой способ передачи данных по TCP/IP в .net - WCF. Существует хороший учебник по кодовому проекту: http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

Также вам, вероятно, потребуется отслеживать состояние сущностей (я имею в виду, когда они отправляются клиенту и обратно). Если вы используете EF, ознакомьтесь с объектами самоконтроля: http://msdn.microsoft.com/en-us/data/jj613924.aspx

+0

Никогда не смотрел в WCF раньше, но, похоже, это лучшее решение. Поскольку будет несколько разных клиентов (включая веб-интерфейс, написанный на ASP.NET, возможно с MVC3), я пойду с его внедрением. Большое спасибо! – fonix232

+0

@ fonix232 Добро пожаловать –

1

Вам необходимо изучить сериализацию объектов.

Если объект необходимо передать с сервера на клиент, вам необходимо его сериализовать в двоичную или другую форму; передать его с помощью TCP-соединения; и затем десериализуйте его на стороне клиента, чтобы восстановить объект.

Вы можете перенести один или несколько объектов таким образом.

В этой статье в MSDN дается обзор seralisation - http://msdn.microsoft.com/en-us/library/182eeyhh%28v=vs.100%29.aspx.

И эта запись в блоге обеспечивает базовую реализацию - http://weblogs.asp.net/stevewellens/archive/2009/07/02/serializing-and-deserializing-objects-to-and-from-xml.aspx.

Вам нужно будет адаптировать это к вашим потребностям; но это точка домашнего задания, которое я ожидаю.

+0

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

Смежные вопросы