Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Привет. Маячит перспектива перехода с Силверлайтного клиента на ASP.NET. Непременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов. Первый вопрос, который меня напрягает, как использовать существующие DTO-классы (C#) в JS коде? На github-е нашел какой-то конвертер, но он не работает с JS. Есть какие-нибудь линки или примеры? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:25 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, А для чего Вы собираетесь использовать DTO-классы (C#) в JS коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:30 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
А по сути, если изначально была правильна разработана архитектура: Presentation Layer - Service Layer - Data Access Layer, то Вам по сути нужно будет лишь переписать Presentation Layer с SL на Web, и больше ничего менять не нужно. В идеале должно быть так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:33 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaКак использовать существующие DTO-классы (C#) в JS коде? А их много?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:54 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Жизнь далека от идеала. Если вы в курсе, DTO класс загружается во ViewModel, любые части которого (включая и сам DTO) могут быть прибайндены к Силверлайтному GUI (он же View). Если вместо SL клиента имеется Web-страница, то единственный способ работать с DTO - использовать их в JS коде данной страницы. Причем в оба конца: как считать данные, так и отправить в WCF изменения. Мой вопрос как конвертировать DTO в JS классы и обратно. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:55 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Monochromatique, Тьма. Клиент общается с сервером только путем передачи/приема DTO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:56 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaЕсли вы в курсе, DTO класс загружается во ViewModel, любые части которого (включая и сам DTO) могут быть прибайндены к Силверлайтному GUI (он же View). Я в курсе, но то что применимо в разработке Presentation в SL (обобщая, назовем Desktop) не будет применимо в Web приложении. Никакие объекты кроме DOM в Web Вам не будет доступны. А DTOы из ViewModel байндятся через модель, используемую во View, и также через модель передается в контроллер на сабмите формы. Потому ничего сконвертировать Вам не удастся. Советую почитать для начала об использовании MVVM в контексте Web приложений, чтобы в голове по полочкам разложить сам принцип. mabanzaМой вопрос как конвертировать DTO в JS классы и обратно. После обретения понимания принципов работы Web приложений Ваш вопрос автоматически отпадет сам собой. Успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:08 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
>и также через модель передается в контроллер на сабмите формы Не будет никаких сабмитов формы. Я от этого устал еще лет 8 назад в ASP.NET WebForms. Будет работа прямо из JS (а именно jQuery). Будет использоваться RESTful. Для этого все объявления [ServiceContract] будут расширены, чтобы общаться с JS (будет добавлено GenerateScriptType). Много модифицировать, но посильно. Никаких AJAX-ов, по возможности, не будет, чтоб избежать выполнения всяких Init-ов, PreInit-ов из лайфсайкла страницы. Чистый ASP.NET MVC + RESTful Может как-то переписать сериализацию в WCF? Приходит на сервер - вижу DTO, приходит на клиента - вижу JS класс с теми же именами полей и, может быть, с теми же типами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:25 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов вряд ли получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:32 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Без сабмитов и без аджаксов - это как? :) RESTful сервисы надо же как-то вызывать. В MVC у Вас не будет такого же уровня к life cycle web-страницы как в Forms. А классы видимо ручками придется писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:42 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, Как возможный вариант вижу следующее: забить на JS классы, вызывать Ajax'ом RESTful сервисы с JSON сериализацией и передавать нужные переменные, а на стороне контролера собирать DTO объекты и уже тогда вызывать существующие WCF-сервисы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:47 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
kmawmabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов вряд ли получится Все получится, DTO и WCF даже трогать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:49 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Axeleronkmawпропущено... вряд ли получится Все получится, DTO и WCF даже трогать не надо. утопия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:49 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Понятно, спасибо. Будем искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:52 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
kmawAxeleronпропущено... Все получится, DTO и WCF даже трогать не надо. утопия Не претендую на то, что мое решение идеальное, но если ТС хочет 'интересных' решений, и если не напрямую вызывать WCF-сервисы, то все реально. Валидация с клиента все равно понадобится на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:56 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Одно большое 'Но' данного решения - если структура DTO объектов сложна и иерархична, то возиться с JSON-сериализайцией будет геморно, и тогда плюсы данного решения сойдут на нет. В принципе, на мой взгляд, надо делать по-человечески. Лично я бы не стал бы имплементировать свое решение в данной ситуации. Сабмита и модели вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 19:02 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, дак Ваши DTO во что сериализуются, в XML небось? jQuery прекрасно умеет работать с XML. Переделайте на сериализацию в JSON. jQuery прекрасно умеет работать с JSON. Также из ASP.NET MVC контроллера возможно дернуть WCF сервис, никакого ракет сайнс. Тупо примеры гуглить пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 21:45 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaПонятно, спасибо. Будем искать. ...если вы хотите переводить ваши DTO на JS, то, может быть, посмотрите уже JS-фреймворки MVVM для клиентской части? .. там не переводится все одним кликом, но какие-то параллели есть ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2015, 11:01 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях? DAL : модель-EF, BLL : модель DTO, UI : модель view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 13:43 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Slivaправильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях? DAL : модель-EF, BLL : модель DTO, UI : модель view? Не правильно. В EntityFramework это модель данных практически в том виде, как они сидят в БД, грубо говоря, один класс представляет собой таблицу (не считая М:М, и TPH), и это не DTO. Слой бизнес-логики должен отдавать либо объекты доменной модели, или DTO, если архитектура ПО работает с анемичной моделью данных. Хотя и то и другое можно легко совмещать. Эта модель может отличаться и довольно сильно от сущностей для EF, так как абстрагируется от способов хранения, от нормализации и прочего, концентрируясь на том, что нужно бизнесу, а не технологиям. Для UI модель данных опять же строится отдельно, и отвечает требованиям UI. Например, если у вас грид с 5-ю колонками, то нет смысла тащить +100500 других полей и связей, если они тупо не нужны для отображения. Посему, ничего на самом деле не дублируется, а если так, то скорее всего ПО сильно примитивное, и представляет собой не более, чем CRUD-редактор базы данных. В таком случае вообще не стоит заморачиваться, а взять что-нибудь готовое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 14:08 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Slivaправильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях? DAL : модель-EF, BLL : модель DTO, UI : модель view? Это у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 14:10 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
buredЭто у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги. Хитрожопые маппинги...., а можно получить на выходе из BLL другой по содержанию класс? Разве DTO только для сложных систем? А менее сложные, скажем средней сложности, где стоит задача реализации интерфейсной части как web и десктоп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=39017044&tid=1356195]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 453ms |

| 0 / 0 |
