powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Repository & Service
8 сообщений из 133, страница 6 из 6
Repository & Service
    #39191150
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAИМХО многое зависит от бизнеса. В РЖД болото, бизнес дорос до своего потолка и Алексей не видит причин заморачиваться над чем-то.

А у кого-то стартап и цель за 5 лет выйти на аудиторию в несколько миллионов. Ясен пень тут задумаешься над архитектурой и всем выше перечисленным.Таки не нужно сравнивать суровую бизнес-аналитику и миллионы запросов со сложностью, сопоставимой с поиском в хэш-таблице - в обоих случаях свои сложности и тонкие места.
skyANAпропущено...

:)

Алексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.Но какое это имеет отношение к "буттон_клик"? :-)
Типа стрелки перевёл на ТСа? :) Кросавчег!
...
Рейтинг: 0 / 0
Repository & Service
    #39191163
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да, я не про "суровую бизнес-аналитику" писал, а про веб-запросы.
...
Рейтинг: 0 / 0
Repository & Service
    #39191174
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
В каком году это было? Сейчас каждый уважающий себя DI/ORM/и т.п. применяет Emit-кодогенерацию - скорость мало чем отличается от рукописного кода.
Что же ты не приехал на Highload++ 2015 и не поведал им об этом? :)Они и без меня должны это знать. :-)
...
Рейтинг: 0 / 0
Repository & Service
    #39191177
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ да, я не про "суровую бизнес-аналитику" писал, а про веб-запросы.Веб-запросы могут использовать результаты "суровой аналитики", выполняемой "на лету" по оперативным данным.
...
Рейтинг: 0 / 0
Repository & Service
    #39191194
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G[src C#]
public class StepViewModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[StringLength(100)]
public string Name { get; set; }
[Column(TypeName = "ntext")]
public string Goal { get; set; }
[Column(TypeName = "ntext")]
public string Description { get; set; }
public int StageId { get; set; }
public StageViewModel Stage { get; set; }
public IEnumerable<StageViewModel> StageDropDownListItems { get; set; } // здесь отличие от db и dto классов
}


В топку ntext! nvarchar(max) нужно использовать.
...
Рейтинг: 0 / 0
Repository & Service
    #39191252
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВАртем G[src C#]
public class StepViewModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[StringLength(100)]
public string Name { get; set; }
[Column(TypeName = "ntext")]
public string Goal { get; set; }
[Column(TypeName = "ntext")]
public string Description { get; set; }
public int StageId { get; set; }
public StageViewModel Stage { get; set; }
public IEnumerable<StageViewModel> StageDropDownListItems { get; set; } // здесь отличие от db и dto классов
}


В топку ntext! nvarchar(max) нужно использовать.
спасибо. понял. погуглю о причинах.
...
Рейтинг: 0 / 0
Repository & Service
    #39191534
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAИ да, я не про "суровую бизнес-аналитику" писал, а про веб-запросы.Веб-запросы могут использовать результаты "суровой аналитики", выполняемой "на лету" по оперативным данным.
К чему это ты?
...
Рейтинг: 0 / 0
Repository & Service
    #39191542
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GskyANAСервис - это бизнес-логика .
Это как если бы Вы что-то делали, делали, проверяли, сверяли, получили результат (вот это сервис)... и на листочек записали (вот это репозиторий).
Просто многие пихают первое в контроллеры, а потом задаются вопросом: а чем у нас сервисы от репозиториев-то отличаются? :)

Вот тут созрел вопрос. Интересно как бы Вы реализовали.
Есть Stage (один) и Step (ко многим) в базе.
При создании Step на странице сайта нужно выбрать Stage из DropDownList.
Вот модель
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class StepViewModel
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [Required]
        [StringLength(100)]
        public string Name { get; set; }
        [Column(TypeName = "ntext")]
        public string Goal { get; set; }
        [Column(TypeName = "ntext")]
        public string Description { get; set; }
        public int StageId { get; set; }
        public StageViewModel Stage { get; set; }
        public IEnumerable<StageViewModel> StageDropDownListItems { get; set; } // здесь отличие от  db и dto классов
    }


Вот контроллер
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        [HttpGet]
        public ActionResult Create()
        {
            var stages = stageService.GetStages(); 
            var stagesVM = mapper.Map<IEnumerable<StageViewModel>>(stages);
            var model = new StepViewModel()
            {
                StageDropDownListItems = stagesVM
            };
            return View(model);
        }


Видно что какая-то часть логики в контроллере. Вы бы оставили все как есть в контроллере или перенесли бы это в логику?
PS. Сейчас у меня все это в контроллере, есть желание перенести в логику, но тогда придется менять DTO Step в бизнес логике, добавив IEnumerable<Stage>. Напомню что Stage (один) и Step (ко многим) в базе и не логично как-то в DTO Step иметь IEnumerable<Stage>. Заранее спасибо.
"выбрать Stage из DropDownList" к логике не имеет никакого отношения. Это некое UI решение.

Отображение модели (Model) на модель представления (ViewModel) я бы вынес в отдельный класс, назовём его Converter, или Formatter, или Mapper, и было бы как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
[HttpGet]
public ActionResult Create()
{
    var stages = stageService.GetStages(); 
    var model = mapper.ToViewModel(stages);

    return View(model);
}
...
Рейтинг: 0 / 0
8 сообщений из 133, страница 6 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Repository & Service
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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