|
|
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Привет. Маячит перспектива перехода с Силверлайтного клиента на ASP.NET. Непременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов. Первый вопрос, который меня напрягает, как использовать существующие DTO-классы (C#) в JS коде? На github-е нашел какой-то конвертер, но он не работает с JS. Есть какие-нибудь линки или примеры? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:25:54 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, А для чего Вы собираетесь использовать DTO-классы (C#) в JS коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:30:44 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
А по сути, если изначально была правильна разработана архитектура: Presentation Layer - Service Layer - Data Access Layer, то Вам по сути нужно будет лишь переписать Presentation Layer с SL на Web, и больше ничего менять не нужно. В идеале должно быть так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:33:13 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaКак использовать существующие DTO-классы (C#) в JS коде? А их много?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:54:49 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Жизнь далека от идеала. Если вы в курсе, DTO класс загружается во ViewModel, любые части которого (включая и сам DTO) могут быть прибайндены к Силверлайтному GUI (он же View). Если вместо SL клиента имеется Web-страница, то единственный способ работать с DTO - использовать их в JS коде данной страницы. Причем в оба конца: как считать данные, так и отправить в WCF изменения. Мой вопрос как конвертировать DTO в JS классы и обратно. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:55:21 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Monochromatique, Тьма. Клиент общается с сервером только путем передачи/приема DTO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 17:56:46 |
|
||
|
Переход на 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:04 |
|
||
|
Переход на 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:41 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов вряд ли получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:32:18 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Без сабмитов и без аджаксов - это как? :) RESTful сервисы надо же как-то вызывать. В MVC у Вас не будет такого же уровня к life cycle web-страницы как в Forms. А классы видимо ручками придется писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:42:54 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, Как возможный вариант вижу следующее: забить на JS классы, вызывать Ajax'ом RESTful сервисы с JSON сериализацией и передавать нужные переменные, а на стороне контролера собирать DTO объекты и уже тогда вызывать существующие WCF-сервисы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:47:56 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
kmawmabanzaНепременное условие - использовать все WCF сервисы ничего (или по-минимуму) не переписывая. То же самое и для DTO-классов вряд ли получится Все получится, DTO и WCF даже трогать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:49:19 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Axeleronkmawпропущено... вряд ли получится Все получится, DTO и WCF даже трогать не надо. утопия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:49:58 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Понятно, спасибо. Будем искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:52:00 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
kmawAxeleronпропущено... Все получится, DTO и WCF даже трогать не надо. утопия Не претендую на то, что мое решение идеальное, но если ТС хочет 'интересных' решений, и если не напрямую вызывать WCF-сервисы, то все реально. Валидация с клиента все равно понадобится на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 18:56:18 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Одно большое 'Но' данного решения - если структура DTO объектов сложна и иерархична, то возиться с JSON-сериализайцией будет геморно, и тогда плюсы данного решения сойдут на нет. В принципе, на мой взгляд, надо делать по-человечески. Лично я бы не стал бы имплементировать свое решение в данной ситуации. Сабмита и модели вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 19:02:51 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanza, дак Ваши DTO во что сериализуются, в XML небось? jQuery прекрасно умеет работать с XML. Переделайте на сериализацию в JSON. jQuery прекрасно умеет работать с JSON. Также из ASP.NET MVC контроллера возможно дернуть WCF сервис, никакого ракет сайнс. Тупо примеры гуглить пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 21:45:08 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
mabanzaПонятно, спасибо. Будем искать. ...если вы хотите переводить ваши DTO на JS, то, может быть, посмотрите уже JS-фреймворки MVVM для клиентской части? .. там не переводится все одним кликом, но какие-то параллели есть ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2015, 11:01:41 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях? DAL : модель-EF, BLL : модель DTO, UI : модель view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 13:43:48 |
|
||
|
Переход на 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:21 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
Slivaправильно ли я понимаю, что в трехзвенной архитектуре у нас модель(сущность) дублируется во всем слоях? DAL : модель-EF, BLL : модель DTO, UI : модель view? Это у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 14:10:22 |
|
||
|
Переход на ASP.NET MVC
|
|||
|---|---|---|---|
|
#18+
buredЭто у вас дублируются, а в сложных системах приходится делать хитрожопые маппинги. Хитрожопые маппинги...., а можно получить на выходе из BLL другой по содержанию класс? Разве DTO только для сложных систем? А менее сложные, скажем средней сложности, где стоит задача реализации интерфейсной части как web и десктоп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2015, 14:45:56 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=39017081&tid=1356195]: |
0ms |
get settings: |
16ms |
get forum list: |
26ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
47ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
103ms |
get tp. blocked users: |
3ms |
| others: | 320ms |
| total: | 551ms |

| 0 / 0 |
