powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC. Многослойная архитектура.
25 сообщений из 89, страница 1 из 4
MVC. Многослойная архитектура.
    #37689497
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день! Решил переосмыслить свою недавнюю поделку - это небольшой портальчик, построенный с помощью MVC-фреймворка. Захотелось все сделать правильно с точки зрения проектирования архитектуры. Натолкнул на эту мысль очередной вебинар майкрософта по новой Visual Studio 11, в которой в том числе рассказывалось о MVC Mobile Applications.

Идея то понятна: реализовать слой презентации можно как в виде обычного MVC-приложения, так еще и в виде мобильного MVC. Естественно, слой бизнес-логики остается один и тот-же. Так и решил сделать, разбив все на разные сборки. А дополнительно и DAL вынести отдельно, чтобы отделить реализацию конкретной ORM (сейчас у меня EF, но мало-ли что будет в дальнейшем).

Появилась просто масса вопросов. Майкрософт везде об этом говорит абстрактно, мол - надо бы разделить, было бы неплохо. Но нигде в их сэмплах не увидел конкретной реализации этой идеи. Ну разве что DAL выделяют внутри с помощью инверсии зависимостей, вернее внедрения зависимостей. А вопросов действительно много. От простых, типа как правильно коннекшен-стринг до DAL протащить правильно, до более глобальных, типа как обеспечить общую модель обработки исключений.

Собственно в этом и вопрос: Кто делал таким образом??? (т.е. разрабатывал многослойную архитектуру) Поделитесь, плиз, опытом. Мож, примеры какие-то... Не обязательно прям рабочие. Хотя-бы дрозофилку малюсенькую. А может быть просто кому-то попадались примеры и может ссылку кинуть! Я таких не смог найти - все довольно куцые. Перерыл кучу иностранных блогов и форумов, вплоть до индийских и китайских - такое скверное чувство что пока все это просто на словах...

Иначе, чувствую, можно долго медитировать еще на картинку с разделением слоев и их названиями, но дело так и не сдвинется с мертвой точки.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37689498
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. Извините за ошибку в заголовке... случайность....
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37689570
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeev,

Модератор: Подправил название темы.
А что Вы хотите от мобильного приложения? Это же форум по аспнет. Результат работы аспнет+ИИС - всегда html (xhtml) +цсс+яваскрипт, это всё почти всегда сейчас кушается мобильными устройствами. Или Вы хотите ИИС+аспнет на мобильное устройство поставить?
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37689587
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergea_titeev,

Модератор: Подправил название темы.
А что Вы хотите от мобильного приложения? Это же форум по аспнет. Результат работы аспнет+ИИС - всегда html (xhtml) +цсс+яваскрипт, это всё почти всегда сейчас кушается мобильными устройствами. Или Вы хотите ИИС+аспнет на мобильное устройство поставить? дело не только в мобильном приложении, но в том числе и это. дело в корректном подходе проектирования MVC-приложения с разделением на логические части. Чего я не смог найти ни в одном полноценном примере...
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37689597
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevShSergea_titeev,

Модератор: Подправил название темы.
А что Вы хотите от мобильного приложения? Это же форум по аспнет. Результат работы аспнет+ИИС - всегда html (xhtml) +цсс+яваскрипт, это всё почти всегда сейчас кушается мобильными устройствами. Или Вы хотите ИИС+аспнет на мобильное устройство поставить? дело не только в мобильном приложении, но в том числе и это. дело в корректном подходе проектирования MVC-приложения с разделением на логические части. Чего я не смог найти ни в одном полноценном примере... ну в смысле, не поставить на мобильное устройство, а выделить уровень представления в отдельное приложение и по сути сделать их два - для обычных пользователей и для пользователей мобильных устройств, а не просто смешивая все в одном, разделяя вьюхи на обычные и мобильные, как в некоторых примерах.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690625
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeev а выделить уровень представления в отдельное приложение и по сути сделать их два - для обычных пользователей и для пользователей мобильных устройств, а не просто смешивая все в одном, разделяя вьюхи на обычные и мобильные, как в некоторых примерах.

Вопрос в чем? Как вынести общий функционал в отдельную сборку?
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690638
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevСобственно в этом и вопрос: Кто делал таким образом??? (т.е. разрабатывал многослойную архитектуру) Поделитесь, плиз, опытом. Мож, примеры какие-то... Не обязательно прям рабочие. Хотя-бы дрозофилку малюсенькую. А может быть просто кому-то попадались примеры и может ссылку кинуть!
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690786
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevСобственно в этом и вопрос: Кто делал таким образом??? (т.е. разрабатывал многослойную архитектуру) Поделитесь, плиз, опытом. Мож, примеры какие-то... Не обязательно прям рабочие. Хотя-бы дрозофилку малюсенькую. А может быть просто кому-то попадались примеры и может ссылку кинуть!

Какие примеры? Дрозофилка многослойной архитектуры? )
Нужно начинать с расслоения вопроса.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690859
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,
вообщем-то, хотел именно пример, т.к. боюсь большого кол-ва вопросов... Можно конечно попробовать конкретизировать. Ну вот например: ну сделал я модель и интерфейсы репозитория - это bll? Я правильно понимаю? Цепляю di и имплементацию выношу в отдельную сборку - это и будет dal. Верно?
Вот здесь бы пример посмотреть... Хотя здесь все еще логично. Но дальше - выношу всю бизнес-логику в сервис-прослойку bll. Контроллеры конкретные будут юзать только ее. Делаю mvc-приложение, подключаю сборку bll. Здесь уже непонятки с валидацией и обработкой исключений. Пример бы... Я понимаю, что пока это у меня в теории и 'на пальцах', поэтому и спрашивал - мож кто пример видел?
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690902
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все зависит от масштабов, в разных приложениях может быть та или иная логика, которая в идеале там быть не должна.
Теперь про идеал:
a_titeevну сделал я модель и интерфейсы репозитория - это bll?

Нет, это больше dal, репозиторий это прослойка между сервисным слоем и слоем данных.

a_titeevЯ правильно понимаю? Цепляю di и имплементацию выношу в отдельную сборку - это и будет dal. Верно?

Это больше bll.

a_titeevЗдесь уже непонятки с валидацией и обработкой исключений.

Логика валидации в сервисном слое, обработка исключений уже в контроллере ибо есть взаимодействие с UI.
Пример:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public ActionResult Index(decimal Price)
{
   var myService = new ProductsService()
   if(myService.IsValidPrice(Price))
   {
      return Content("true");
   }
   else
   {
      return Content("false");
   }
}
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690923
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,
ну тогда это вообще все полностью наоборот! Не понял - как модель зависит от orm, а ведь dal - именно для этого и хотел - реализацию от ef отделить. Либо я путаю бизнес-сущности и сущности данных. Но тогда нужно будет вводить еще звено для конвертации. И насчет исключений большой вопрос. Имхо, должен быть единый механизм, сквозной для слоев.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690925
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
bash.org.ru >> Когда то в децтве под эффектом первой части Юрского периода, нашел дохлого шмеля и залил его
расплавленной канифолью, потом немножко обработал, обплавил и ходил, хвастался во дворе артефактом юрского периода. 
На второй день я его выменял на коллекцию вкладышей дональд дак. 
Когда я пришел к дядьке за новой порцией канифоли, он, узнав причину, - улыбнулся и сказал, чтобы я пришел к нему вечером. 
Вечером мы на электролите варили скипидарную смолу, какие то вонючие кристаллы и светлую канифоль, 
а я в это время ловил огромных зеленых мух, тараканов и "часики". 
К концу недели владельцами исторических ценностей стали ещё полдвора пацанов, а я обогатился ещё на армейский
компас, "настоящий австралийский" бумеранг и блок жвачек :)


--
Очень похоже на нынешний рынок IT
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690951
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevНе понял - как модель зависит от orm, а ведь dal - именно для этого и хотел - реализацию от ef отделить.

Нужно немного вернутся назад и покурить терминологию.
DAL это слой доступа к данным, ORM в вашей ситуации это и есть дал.
На это натягиваем репозиторий, и дал уже имеет тупые запросы в базу.

a_titeevЛибо я путаю бизнес-сущности и сущности данных.
Это одно и тоже.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37690981
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,
тогда да. Может запутался в терминах. Но думал что нужно отделить конкретную реализацию всех linq-методов от сервисов. Разве не это тогда и будет dal? Предположим, меняю я все под oracle. Весь bll по идее должен остаться неизменным. Те же модели... Та же логика.,
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37691026
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
bash.org.ru >> Когда то в децтве под эффектом первой части Юрского периода, нашел дохлого шмеля и залил его
расплавленной канифолью, потом немножко обработал, обплавил и ходил, хвастался во дворе артефактом юрского периода. 
На второй день я его выменял на коллекцию вкладышей дональд дак. 
Когда я пришел к дядьке за новой порцией канифоли, он, узнав причину, - улыбнулся и сказал, чтобы я пришел к нему вечером. 
Вечером мы на электролите варили скипидарную смолу, какие то вонючие кристаллы и светлую канифоль, 
а я в это время ловил огромных зеленых мух, тараканов и "часики". 
К концу недели владельцами исторических ценностей стали ещё полдвора пацанов, а я обогатился ещё на армейский
компас, "настоящий австралийский" бумеранг и блок жвачек :)


--
Очень похоже на нынешний рынок IT
Или говоря попросту - фуфло впарить.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37691302
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeevНо думал что нужно отделить конкретную реализацию всех linq-методов от сервисов. Разве не это тогда и будет dal? Предположим, меняю я все под oracle. Весь bll по идее должен остаться неизменным. Те же модели... Та же логика.,

Каша у вас, linq методы могут иметь бизнес логику. Работать с разными db провайдерами это задача ORM.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37691718
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_titeev...Предположим, меняю я все под oracle. Весь bll по идее должен остаться неизменным. Те же модели... Та же логика.,
Это если БД не сложнее телефонного справочника . Иначе, какой смысл в кроссбазовом приложении, если приложение заново переписать гораздо дешевле, чем базу на другой платформе пересоздать?
За всю историю реляционных БД, никогда таким не занимался. А вот программы-клиенты БД переписывал неоднократно.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37691928
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeприложение заново переписать гораздо дешевле, чем базу на другой платформе пересоздать?


В приложении бывает более 20 строк ), а для конверта базы есть готовые инструменты.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692127
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВ приложении бывает более 20 строк ), а для конверта базы есть готовые инструменты.

Насчёт конвертора - шутка такая? Даже "ручками" не всегда получается. Типы не совпадают, например. Я уже не говорю про триггеры, функции и хранимые процедуры.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692261
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge Я уже не говорю про триггеры, функции и хранимые процедуры.
Не все нынче держат логику в базе. Только без холивара на эту тему )
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692362
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

Старые таки да, держат. Очень многие. Включая Вашу зарплатную карточку. :)
А почему без холивара? В холеваре рождается истина.
У меня был проект насчёт карточек, которые в поликлинике. В масштабе РФ. Миллионы записей. Вся логика была реализована в БД. Прикрутить вэб-интерфейс (на любой платформе, начиналось с делфей) или любую другую морду - вообще, как два пальца... . А что Вы будете делать со своим мегапроектом с логикой в приложении? Даже смайлик не ставлю.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692368
Курим Microsoft Application Architecture Guide, 2nd Edition. Там всё написано, где должна быть логика. Сразу оговорюсь, в базе данных ей не место.
По поводу "зарплатных карточек". Весь современный мир биллинга юзает SOA подходы, еще со времен СиБосса, который впаривал биллинг МТС'у. О логике в БД с триггерами пусть вспоминают деды-колдуны на дельфи 5. Там да, особо не попляшешь на апп слое
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692397
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ в топке,

Ну и что? Мы же здесь не сертификаты забабло продаём. Можно и честно сказать, что много есть такого, что и не снилось вашим преподавателям. В противном случае, они бы просто из этих самых преподавателей уволились бы и занялись продажей шавермы, что для общества было бы гораздо полезнее, если соблюдать санитарные нормы, конечно.

Я привёл пример, когда база - достаточно бòльшая ценность, чем Ваша программа, которых над одной базой бывает десятки, как было у меня. Не платите деньги карточкой, не летайте самолётами (опасно с такими специалистами, однако), и т.д. и т.п. .
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692418
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ в топке...Сразу оговорюсь, в базе данных ей не место...
Вы офонарели? Майкрософт с самого начала писал, что именно в БД бизнеслогике место. С тех пор инструменты и технология только улучшилась.
Теперь почти обо всех БД так пишут. За исключением, конечно некоторых, которые явно на любителя.
...
Рейтинг: 0 / 0
MVC. Многослойная архитектура.
    #37692485
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeА почему без холивара?
На эту тему их уже было достаточно, а повторятся в каждой теме, это против - (DRY) Don't Repeat Yourself.
Нет сомнений, что работа приложения, больше зависит от прямоты рук, чем от выбора архитектуры.
...
Рейтинг: 0 / 0
25 сообщений из 89, страница 1 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC. Многослойная архитектура.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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