powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переход на ASP.NET MVC
23 сообщений из 23, страница 1 из 1
Переход на ASP.NET MVC
    #39017028
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Маячит перспектива перехода с Силверлайтного клиента на ASP.NET. Непременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов.
Первый вопрос, который меня напрягает, как использовать существующие DTO-классы (C#) в JS коде?
На github-е нашел какой-то конвертер, но он не работает с JS.
Есть какие-нибудь линки или примеры?
Спасибо.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017032
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza,
А для чего Вы собираетесь использовать DTO-классы (C#) в JS коде?
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017033
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по сути, если изначально была правильна разработана архитектура: Presentation Layer - Service Layer - Data Access Layer, то Вам по сути нужно будет лишь переписать Presentation Layer с SL на Web, и больше ничего менять не нужно. В идеале должно быть так.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017038
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanzaКак использовать существующие DTO-классы (C#) в JS коде?

А их много??
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017039
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жизнь далека от идеала.
Если вы в курсе, DTO класс загружается во ViewModel, любые части которого (включая и сам DTO) могут быть прибайндены к Силверлайтному GUI (он же View).
Если вместо SL клиента имеется Web-страница, то единственный способ работать с DTO - использовать их в JS коде данной страницы.
Причем в оба конца: как считать данные, так и отправить в WCF изменения.
Мой вопрос как конвертировать DTO в JS классы и обратно.
Спасибо.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017041
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

Тьма. Клиент общается с сервером только путем передачи/приема DTO.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017044
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanzaЕсли вы в курсе, DTO класс загружается во ViewModel, любые части которого (включая и сам DTO) могут быть прибайндены к Силверлайтному GUI (он же View).
Я в курсе, но то что применимо в разработке Presentation в SL (обобщая, назовем Desktop) не будет применимо в Web приложении. Никакие объекты кроме DOM в Web Вам не будет доступны. А DTOы из ViewModel байндятся через модель, используемую во View, и также через модель передается в контроллер на сабмите формы. Потому ничего сконвертировать Вам не удастся. Советую почитать для начала об использовании MVVM в контексте Web приложений, чтобы в голове по полочкам разложить сам принцип.

mabanzaМой вопрос как конвертировать DTO в JS классы и обратно.
После обретения понимания принципов работы Web приложений Ваш вопрос автоматически отпадет сам собой. Успехов!
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017057
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>и также через модель передается в контроллер на сабмите формы

Не будет никаких сабмитов формы. Я от этого устал еще лет 8 назад в ASP.NET WebForms.
Будет работа прямо из JS (а именно jQuery). Будет использоваться RESTful. Для этого все объявления [ServiceContract] будут расширены, чтобы общаться с JS (будет добавлено GenerateScriptType). Много модифицировать, но посильно.

Никаких AJAX-ов, по возможности, не будет, чтоб избежать выполнения всяких Init-ов, PreInit-ов из лайфсайкла страницы.
Чистый ASP.NET MVC + RESTful

Может как-то переписать сериализацию в WCF? Приходит на сервер - вижу DTO, приходит на клиента - вижу JS класс с теми же именами полей и, может быть, с теми же типами.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017064
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов

вряд ли получится
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017073
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без сабмитов и без аджаксов - это как? :)
RESTful сервисы надо же как-то вызывать. В MVC у Вас не будет такого же уровня к life cycle web-страницы как в Forms. А классы видимо ручками придется писать.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017078
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza,
Как возможный вариант вижу следующее: забить на JS классы, вызывать Ajax'ом RESTful сервисы с JSON сериализацией и передавать нужные переменные, а на стороне контролера собирать DTO объекты и уже тогда вызывать существующие WCF-сервисы.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017080
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawmabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов

вряд ли получится
Все получится, DTO и WCF даже трогать не надо.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017081
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleronkmawпропущено...


вряд ли получится
Все получится, DTO и WCF даже трогать не надо.

утопия
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017083
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, спасибо.
Будем искать.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017089
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawAxeleronпропущено...

Все получится, DTO и WCF даже трогать не надо.

утопия
Не претендую на то, что мое решение идеальное, но если ТС хочет 'интересных' решений, и если не напрямую вызывать WCF-сервисы, то все реально. Валидация с клиента все равно понадобится на сервере.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017092
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно большое 'Но' данного решения - если структура DTO объектов сложна и иерархична, то возиться с JSON-сериализайцией будет геморно, и тогда плюсы данного решения сойдут на нет. В принципе, на мой взгляд, надо делать по-человечески. Лично я бы не стал бы имплементировать свое решение в данной ситуации. Сабмита и модели вполне достаточно.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017158
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza, дак Ваши DTO во что сериализуются, в XML небось? jQuery прекрасно умеет работать с XML.
Переделайте на сериализацию в JSON. jQuery прекрасно умеет работать с JSON.
Также из ASP.NET MVC контроллера возможно дернуть WCF сервис, никакого ракет сайнс.

Тупо примеры гуглить пробовали?
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39017440
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanzaПонятно, спасибо.
Будем искать.

...если вы хотите переводить ваши DTO на JS, то, может быть, посмотрите уже JS-фреймворки MVVM для клиентской части? .. там не переводится все одним кликом, но какие-то параллели есть ...
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39073857
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях?
DAL : модель-EF, BLL : модель DTO, UI : модель view?
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39073864
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slivaправильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях?
DAL : модель-EF, BLL : модель DTO, UI : модель view?

Не правильно.

В EntityFramework это модель данных практически в том виде, как они сидят в БД, грубо говоря, один класс представляет собой таблицу (не считая М:М, и TPH), и это не DTO.

Слой бизнес-логики должен отдавать либо объекты доменной модели, или DTO, если архитектура ПО работает с анемичной моделью данных. Хотя и то и другое можно легко совмещать. Эта модель может отличаться и довольно сильно от сущностей для EF, так как абстрагируется от способов хранения, от нормализации и прочего, концентрируясь на том, что нужно бизнесу, а не технологиям.

Для UI модель данных опять же строится отдельно, и отвечает требованиям UI. Например, если у вас грид с 5-ю колонками, то нет смысла тащить +100500 других полей и связей, если они тупо не нужны для отображения.

Посему, ничего на самом деле не дублируется, а если так, то скорее всего ПО сильно примитивное, и представляет собой не более, чем CRUD-редактор базы данных. В таком случае вообще не стоит заморачиваться, а взять что-нибудь готовое.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39073866
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slivaправильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях?
DAL : модель-EF, BLL : модель DTO, UI : модель view?
Это у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги.
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39073876
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredЭто у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги.
Хитрожопые маппинги...., а можно получить на выходе из BLL другой по содержанию класс?
Разве DTO только для сложных систем?
А менее сложные, скажем средней сложности, где стоит задача реализации интерфейсной части как web и десктоп?
...
Рейтинг: 0 / 0
Переход на ASP.NET MVC
    #39073881
Фотография Sliva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt...Слой бизнес-логики должен отдавать либо объекты доменной модели, или DTO...
Доменной модели => модель EF?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переход на ASP.NET MVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]