powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Виртуальные справочники.
25 сообщений из 71, страница 1 из 3
Виртуальные справочники.
    #38924358
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Досталась легаси база. Значение лукапов закодированы не в базе, а на клиенте. Сделал так. но смущает подключение System.Web.UI.WebControls. Кто какие решения использует для этого?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;

namespace FWC.Models
{
    public static class LookupTables
    {
        
        public static List<ListItem> ProjectType
        {
            get
            {
                return new List<ListItem>
                    {
                        new ListItem { Text = "Confirmed", Value = "C" },
                        new ListItem { Text = "Tentative", Value = "T" }
                    };
            }
        }
        
        public static List<ListItem> CrewType
        {
            get
            {
                return new List<ListItem>
                    {
                        new ListItem { Text = "One Men Crew", Value = "1" },
                        new ListItem { Text = "Two Men Crew", Value = "2" },
                        new ListItem { Text = "Three Men Crew", Value = "3" }
                    };
            }
        }

        public static List<ListItem> Status
        {
            get
            {
                return new List<ListItem>
                    {
                        new ListItem { Text = "Closed", Value = "Closed" },
                        new ListItem { Text = "In Progress", Value = "In Progress" },
                        new ListItem { Text = "Open", Value = "Open" }
                    };
            }
        }

    }
}


PS. EF MVC
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924449
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

так ты его отключи, чтоб не смущало. а вообще - сделай три таблички в базе и запердоль эти хард-коды в них. А то это не дело
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924463
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterДосталась легаси база. Значение лукапов закодированы не в базе, а на клиенте. Сделал так. но смущает подключение System.Web.UI.WebControls. Кто какие решения использует для этого?Забавно, Вы типа ручками классы писать не хотите, или не умеете? Только генерировать при помощи EF, либо использовать левые сборки?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924472
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, ИМХО Вам надо завести три перечисления (enum).
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924486
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisА то это не дело.Почему?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924496
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3 enum- а с ресурсами в виде атрибутов.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924508
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPallarisА то это не дело.Почему?1. модель не должна зависеть от UI.WebControls
2. В типе LookupTables скорее всего вообще нет смысла. ProjectType относится к проектам, CrewType к командам, а Status - это небось статусы выполняемых задач.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924603
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Почему?1. модель не должна зависеть от UI.WebControlsА если не считать это моделью? Если разместить это прямо в контроллере?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924608
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
1. модель не должна зависеть от UI.WebControlsА если не считать это моделью? Если разместить это прямо в контроллере?Контроллере чего?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924615
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, и что это тогда будет? Зачем статический класс, со статическими списками в контроллере? И зачем упоминалась база, если это не модель? :)
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924619
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и пользователь выбирает значения, понятные ему с точки зрения предметной области.
К какой такой предметной области относится LookupTables?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924664
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
А если не считать это моделью? Если разместить это прямо в контроллере?Контроллере чего?MV C
skyANAИ зачем упоминалась база, если это не модель? :)Упоминались "лукапы", они же "комбобоксы". :-)

зы: Видимо кому-то лень было делать класс аналог ListItem, содержащийся в System.Web.UI.WebControls.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924667
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAК какой такой предметной области относится LookupTables?К предметной области "классификаторы", что на мой взгляд очень плохо. Нет такой предметной области, рано или поздно тут образуется помойка. Мы это уже проходили... :-)
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924678
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Контроллере чего?MV C
skyANAИ зачем упоминалась база, если это не модель? :)Упоминались "лукапы", они же "комбобоксы". :-)

зы: Видимо кому-то лень было делать класс аналог ListItem, содержащийся в System.Web.UI.WebControls.Контроллеры обычно связаны с сущностями. Таки в контроллер чего ты предлагаешь запихать LookupTables? :)

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

Ты понимаешь, что если бы они были в БД, то ТС бы при помощи EF сгенерировал бы совсем другие классы?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924695
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
MV C
пропущено...
Упоминались "лукапы", они же "комбобоксы". :-)

зы: Видимо кому-то лень было делать класс аналог ListItem, содержащийся в System.Web.UI.WebControls.Контроллеры обычно связаны с сущностями. Таки в контроллер чего ты предлагаешь запихать LookupTables? :)Почему бы и нет? Я сторонник выделения логики из контроллеров по необходимости.
skyANAА еще лень подумать о коллегах, кто будет это сопровождать.Это может сказаться как позитивно, так и негативно, в зависимости от ситуации.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924696
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
К предметной области "классификаторы", что на мой взгляд очень плохо. Нет такой предметной области, рано или поздно тут образуется помойка. Мы это уже проходили... :-)редактирование классификаторов видимо не предполагается :) только выбор значений и исключительно в лукапах :)Этого мы не знаем.
skyANAТы понимаешь, что если бы они были в БД, то ТС бы при помощи EF сгенерировал бы совсем другие классы?Принципиально ничего не поменяется.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924707
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Контроллеры обычно связаны с сущностями. Таки в контроллер чего ты предлагаешь запихать LookupTables? :)Почему бы и нет? Я сторонник выделения логики из контроллеров по необходимости.в контроллерах вообще не должно быть логики, так что выделять оттуда нечего
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924713
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
редактирование классификаторов видимо не предполагается :) только выбор значений и исключительно в лукапах :)Этого мы не знаем.
skyANAТы понимаешь, что если бы они были в БД, то ТС бы при помощи EF сгенерировал бы совсем другие классы?Принципиально ничего не поменяется.чтобы принципиально ничего не поменялось, LookupTables не должен быть в контроллере, а должен быть в модели. И тут мы возвращаемся к пунктам 1 и 2 :)
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924724
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Почему бы и нет? Я сторонник выделения логики из контроллеров по необходимости.в контроллерах вообще не должно быть логики, так что выделять оттуда нечегоЭто логика?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class MyController : ApiController
{
    public AppDbContext Db { get; set; }

    public ClassifierItem[] GetClassifier1()
    {
         var q =
             from v in Db.Table1
             select new ClassifierItem { ID = v.ID, Caption = v.Caption };

         return q.ToArray();
    }

    public ClassifierItem[] GetClassifier1()
    {
          return new[] 
          {
               new ClassifierItem { ID = 1, Caption = "Один" },
               new ClassifierItem { ID = 2, Caption = "Два" }
          };
    }
}
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924733
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
в контроллерах вообще не должно быть логики, так что выделять оттуда нечегоЭто логика?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class MyController : ApiController
{
    public AppDbContext Db { get; set; }

    public ClassifierItem[] GetClassifier1()
    {
         var q =
             from v in Db.Table1
             select new ClassifierItem { ID = v.ID, Caption = v.Caption };

         return q.ToArray();
    }

    public ClassifierItem[] GetClassifier1()
    {
          return new[] 
          {
               new ClassifierItem { ID = 1, Caption = "Один" },
               new ClassifierItem { ID = 2, Caption = "Два" }
          };
    }
}

каждый твой метод должен состоять ровно из одной строки:
Код: c#
1.
return service.GetClassifierN();
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924747
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да, это логика. Сегодня она примитивная, а завтра скажут возвращать только активные классификаторы, или действующие на данный момент.
Или соответсвующие роли текущего пользователя.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924798
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAкаждый твой метод должен состоять ровно из одной строки:
Код: c#
1.
return service.GetClassifierN();

Недостаточная ответственность класса по Фаулеру.
skyANAИ да, это логика. Сегодня она примитивная, а завтра скажут возвращать только активные классификаторы, или действующие на данный момент.
Или соответсвующие роли текущего пользователя.Вот когда это произойдёт, тогда и будем производить выделение класса, по тому же Фаулеру.
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924852
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPallarisА то это не дело.Почему?

Человек, которому завтра придется разбираться в этом изделии, будет долго разбираться, почему одни данные лежат в БД, другие - зашиты в коде.

Если нужно будет перевести с английского на русский, добавить запись - нужно перекомпилить весь проект или что?
...
Рейтинг: 0 / 0
Виртуальные справочники.
    #38924854
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisАлексей Кпропущено...
Почему?

Человек, которому завтра придется разбираться в этом изделии, будет долго разбираться, почему одни данные лежат в БД, другие - зашиты в коде.Это не влияет на процесс "разбирания в коде".
PallarisЕсли нужно будет перевести с английского на русский, добавить запись - нужно перекомпилить весь проект или что?А если не нужно? А если перекомпилировать проект не проблема?
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Виртуальные справочники.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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