ASP.NET SPA с устаревшими доменными объектами

Глядя на бета-версию одностраничного приложения в MVC 4, я не понимаю, как я могу использовать свои устаревшие доменные объекты в качестве модели. Кажется, требуется, чтобы модель использовала структуру сущностей для использования DbDataController для получения данных и т. Д.

Я не понимаю структуру сущности, поэтому я, вероятно, что-то упускаю.

Как я могу использовать свой устаревший домен (с собственным DAL) в SPA MVC 4?

1 ответ

Решение

На этот вопрос ответил кто-то еще на форуме ASP.NET.

Вы не сможете использовать ничего, кроме EF, если захотите использовать некоторые из этих инструментов RAD. Тем не менее, SPA основывается на MVC, так что вы сможете довольно легко создать свою собственную версию. Важными компонентами будут построение DataController поверх ApiController и js-потребителя для службы, предоставляемой вашим DataController. Вполне возможно, что если вы отформатируете свои модели в том же формате, что и выходные данные EF (я думаю, что это просто OData), вы также можете использовать upshot.js и только для реализации DataController нужно отформатировать ваши доменные модели.

Я добавлю следующее после работы с ним в течение нескольких дней, чтобы вы могли теоретически использовать его, если вы и последующие версии SPA обрабатываете следующее.

Вы можете создать контроллер, который наследуется от System.Web.Http.Data.DataController (и, возможно, даже ApiController). Объекты, которые он возвращает, должны просто иметь свойство, оформленное атрибутом System.ComponentModel.DataAnnotations.Key(). Я могу заставить представления работать нормально, но с некоторыми более продвинутыми функциями, такими как группировка, у меня проблемы.

Я полагаю, что свойство только для чтения не будет возвращено из-за проблемы с текущим используемым сериализатором JSON. Должно быть исправлено.

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

В связи со сложной сериализацией текущий сериализатор JSON не может обрабатывать циклические ссылки в объектах домена, на которые ссылаются.

У меня также возникли проблемы с отправкой обновлений / удалений / вставок при использовании моего собственного контроллера, который наследуется от System.Web.Http.Data.DataController (в примерах используется DBDataController).

Другие вопросы по тегам