powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по структуре MVC
25 сообщений из 40, страница 1 из 2
Вопрос по структуре MVC
    #39907769
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ASP.NET Core MVC приложение.
Многие методы контроллеров работают с базой, например, что-то типа

Код: c#
1.
2.
GetCustomer(string id)
SaveCustomer(...)



Они внутри должны подключаться к базе, слать запросы...
Я сделал проект NET Standard, в нем реализую методы работы с базой, они потом вызываются в контроллерах.

Код: c#
1.
2.
GetCustomer(string id)->db.GetCustomer(string strConnect, string id)
SaveCustomer(...)->db.SaveCustomer(string strConnect, ....)



Настройки параметров доступа к базе хранятся в appsettings.json.
Я их читаю один раз, храню в статиках и на каждом вызове метода, работающего с базой передаю параметры коннекта,
делаю коннект, выполняю запрос, дисконнект.
Вроде как открыть коннект один раз и держать открытым неправильно?
Как минимум статик переменные - плохо. Какой есть другой подход?
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907779
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Как минимум статик переменные - плохо. Какой есть другой подход?

1. Не использовать статики.
2. Открыл коннект, выполнил запрос, закрыл коннект.

Очевидно же. В любой книжке по ASP.NET про это написано.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907780
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
статик переменные - плохо. Какой есть другой подход?
В Core встроенный DI , читай, что такое синглтон
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907781
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
2. Открыл коннект, выполнил запрос, закрыл коннект.
Ролг Хупин, главное не парься, пул коннектов "за кадром" сам разберется, когда рвать фактическое соединение с БД, а для тебя - коннект должен существовать в пределах одного запроса. И используй асихронныее запросы к БД!
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907782
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Ролг Хупин
Как минимум статик переменные - плохо. Какой есть другой подход?

1. Не использовать статики.
2. Открыл коннект, выполнил запрос, закрыл коннект.

Очевидно же. В любой книжке по ASP.NET про это написано.


2.я так и предполагал, просто хотел получить подтверждение опытных девелоперов.
0. читать на каждом вызове метода настройки из appsettings.json?
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907783
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
статик переменные - плохо. Какой есть другой подход?
В Core встроенный DI , читай, что такое синглтон

+1

наверняка в большинстве примеров по ASP.NET Core используется EF, и там показано как в Startup.cs сетапить DbContext
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907785
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
наверняка в большинстве примеров
это человек, который игнорирует учебники и гордится этим )
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907789
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
0. читать на каждом вызове метода настройки из appsettings.json?

Нет, один раз в Startup-е.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907790
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

что там у тебя? PostgreSQL?
дык на официальном сайте дата провайдера жеж есть примеры: http://www.npgsql.org/efcore/
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907791
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Shocker.Pro
пропущено...
В Core встроенный DI , читай, что такое синглтон

+1

наверняка в большинстве примеров по ASP.NET Core используется EF, и там показано как в Startup.cs сетапить DbContext


Я, честно говоря, не хотел бы использовать EF, много лишнего. У меня несложные запросы, процедуры, всё в руках.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907793
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
skyANA
пропущено...

+1

наверняка в большинстве примеров по ASP.NET Core используется EF, и там показано как в Startup.cs сетапить DbContext


Я, честно говоря, не хотел бы использовать EF, много лишнего. У меня несложные запросы, процедуры, всё в руках.

Не используй, но тогда объясни, что такое db в твоём куске кода.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907794
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
skyANA
наверняка в большинстве примеров
это человек, который игнорирует учебники и гордится этим )


Не может юзер игнорировать учебники и еще и гордиться этим.
Ннаверняка это про какого-то человека, который в этой ветке не присутствует.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907798
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Ролг Хупин
пропущено...


Я, честно говоря, не хотел бы использовать EF, много лишнего. У меня несложные запросы, процедуры, всё в руках.

Не используй, но тогда объясни, что такое db в твоём куске кода.


Это моя реализация классов и методов работы с базой, NET Standard lib проект в solution.
О ней и вопрос.
Мне не нужны все эти EF'ские миграции, универсализации и пр.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907804
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Не может юзер игнорировать учебники и еще и гордиться этим.
Ннаверняка это про какого-то человека, который в этой ветке не присутствует.
22027728


(не выпилишь топором))))
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907806
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Это моя реализация классов и методов работы с базой
async! await!
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907815
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
Не может юзер игнорировать учебники и еще и гордиться этим.
Ннаверняка это про какого-то человека, который в этой ветке не присутствует.
22027728


(не выпилишь топором))))


ну, там же общие фразы
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907817
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
skyANA
пропущено...

Не используй, но тогда объясни, что такое db в твоём куске кода.


Это моя реализация классов и методов работы с базой, NET Standard lib проект в solution.
О ней и вопрос.
Мне не нужны все эти EF'ские миграции, универсализации и пр.

Внутри типа этого: http://www.npgsql.org/doc/index.html ?
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907827
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Ролг Хупин
пропущено...


Это моя реализация классов и методов работы с базой, NET Standard lib проект в solution.
О ней и вопрос.
Мне не нужны все эти EF'ские миграции, универсализации и пр.

Внутри типа этого: http://www.npgsql.org/doc/index.html ?


да, если методы доступа к базе вынести в отдельный проект, тогда останется только
var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
сформировать один раз и передавать в каждый.
И даже лучше не передавать, а как было выше сказано - сделать типа контекста, который будет доступен отовсюду.
(извините, это я рассуждаю по следам рекомендаций)
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907852
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
статик переменные - плохо. Какой есть другой подход?
В Core встроенный DI , читай, что такое синглтон


кстати, синглетон по сути тот же статик?
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907853
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
кстати, синглетон по сути тот же статик?
Нет, читай про DI
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907854
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ролг Хупин
кстати, синглетон по сути тот же статик?
Нет, читай про DI


ушел читать, но скоро вернусь ;-)
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907928
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Shocker.Pro
пропущено...
Нет, читай про DI


ушел читать, но скоро вернусь ;-)


Вернулся.
Сделал сервис, добавил его в public void
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
ConfigureServices(IServiceCollection services)
{
//...
 services.AddSingleton<IDataContextService>(new DataContextService()
            {
                ConnectionString = Configuration.GetSection("Data")["ConnectionString"]
            });
}



Ок.


Теперь вопрос: как добраться к нему в моих классах?
Протаскивать через контроллеры типа этого и далее в свои функции хелпера - это лучший вариант?
Имеется в виду, нельзя ли в своих хелперах сразу же добраться к этому сервису-синглетону

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class HomeController : Controller
{
    private readonly IDataContextService _dataService;

    public HomeController(IDataContextService dataService)
    {
        _dataService = dataService;
    }

    [HttpGet]
    public IActionResult Index([FromServices] IDataContextService dataService2)
    {
        IDataContextService  dataService3 = HttpContext.RequestServices.GetService<IDataContextService>();
        return View();
    }
}
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907929
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ты подразумеваешь под хелпером?
Если это какой-то класс, то он точно так же получается через DI и нет нужды что-то там протаскивать, DI сам разберется.
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907930
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Код: c#
1.
IDataContextService  dataService3 = HttpContext.RequestServices.GetService<IDataContextService>();

Это вообще что ещё такое?

у тебя есть поле в контроллере, зачем ты еще раз что-то там тянешь?
...
Рейтинг: 0 / 0
Вопрос по структуре MVC
    #39907937
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Что ты подразумеваешь под хелпером?
Если это какой-то класс, то он точно так же получается через DI и нет нужды что-то там протаскивать, DI сам разберется.


это моя ассембли
View->Controller->DbHelper

чтобы непосредственно в методах контроллера не работать с запросами хочу вынести в отдельных хелпер.

Например, GetCustomer(string id)

View->Controller
[HttpGet]
GetCustomer(string id)
{
...
DbHelper.GetCustomer(id); //<-здесь уже коннект, запрос, дисконнект и пр.
...
return View();
}
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по структуре MVC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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