Гость
Map
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Службы в ASP в обычный код, как сделать? / 22 сообщений из 22, страница 1 из 1
24.08.2021, 14:11
    #40092913
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Привет всем!
опять же сабж, но хотелось DI, как у в взрослых сделать, возможно?
заранее благодарю ВС
...
Рейтинг: 0 / 0
24.08.2021, 14:13
    #40092914
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
только не нужно меня ругать, что читай документацию, гугл - не по шарам, пытался)
...
Рейтинг: 0 / 0
24.08.2021, 14:16
    #40092916
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Желательно вопрос сформулировать по-русски.

Если нужен DI в ASP.NET - можно воткнуть Autofac
У него есть дополнительное расширение для интеграции в ASP.NET
...
Рейтинг: 0 / 0
24.08.2021, 16:35
    #40092935
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Shocker.Pro
Если нужен DI в ASP.NET - можно воткнуть Autofac

Чем встроенный не угодил?

Shocker.Pro
Желательно вопрос сформулировать по-русски.

Можно даже по-английски. Тут наверняка почти все им достаточно владеют.
...
Рейтинг: 0 / 0
24.08.2021, 18:00
    #40092951
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
fkfka
Чем встроенный не угодил?
как я понял, у ТС не Core

Хотя мы Автофак даже и в Core встраиваем, там плюшки всякие типа именованных инстансов, декораторы, модули, в общем, помощнее будет, чем штатный
...
Рейтинг: 0 / 0
24.08.2021, 18:06
    #40092955
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Shocker.Pro
Хотя мы Автофак даже и в Core встраиваем

Мы тоже так поначалу делали. Но, поскольку
Shocker.Pro
плюшки всякие типа именованных инстансов, декораторы, модули
В 95% случаев не особо нужны, а в 95% из оставшихся 5% легко делаются на коленке, то в итоге порешали, что не особо оно и надо. А тем более автофак из всех контейнеров по факту самый тормозной.
...
Рейтинг: 0 / 0
25.08.2021, 10:44
    #40093027
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Понимаю, что вопрос не совсем корректно сформулировал (немного с пивом перестарался, извиняюсь).
Я занимаюсь рефакторингом в небольшой компании. Здесь годами писался говнокод (причём то, что писали индусы ещё более-менее!). Здесь куча разных проектов и решений, есть, к слову, и ASP, но это не моя ответственность, мальчик молодой, но толковый из Бельгии (внезапно!) работает, моя зона это БД (могу поплакаться: что мне стоило около 2000 excel таблиц загнать в Сервер).
Итак, в ASP мы (я по крайней мере) делаем следующие:
Код: c#
1.
2.
3.
4.
            services.AddTransient<ITextFieldsRepository, EFTextFieldsRepository>();
            services.AddTransient<IEventItemsRepository, EFEventItemsRepository>();
            services.AddTransient<IFunctionsRepository, EFFunctionsRepository>();
            services.AddTransient<DataManager>();

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public class DataManager
    {
        public ITextFieldsRepository TextFields { get; set; }
        public IEventItemsRepository EventItems { get; set; }

        public IFunctionsRepository Functions { get; set; }

        public DataManager(
            ITextFieldsRepository textFieldsRepository, 
            IEventItemsRepository eventItemsRepository,
            IFunctionsRepository functions)
        {
            TextFields = textFieldsRepository;
            EventItems = eventItemsRepository;
            Functions = functions;
        }
    }

И далее не парим ум - EF ли у нас или просто текстовик, что-то подобное хотелось бы сделать для обычных проектов.
...
Рейтинг: 0 / 0
25.08.2021, 10:54
    #40093029
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Вообщем, мой впрос можно сказать совсем детский - как правильно использовать DI)))))
...
Рейтинг: 0 / 0
25.08.2021, 10:56
    #40093030
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
и в чем суть делать такой DataManager? какую функцию он выполняет?
...
Рейтинг: 0 / 0
25.08.2021, 10:58
    #40093032
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
v skopin
И далее не парим ум - EF ли у нас или просто текстовик,

Подход правильный это есть.

v skopin
что-то подобное хотелось бы сделать для обычных проектов.

"Обычные" это .NET Framework (докоревский) или просто "не ASP.NET"?
...
Рейтинг: 0 / 0
25.08.2021, 11:35
    #40093041
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
fkfka
"Обычные" это .NET Framework (докоревский) или просто "не ASP.NET"?
Нет у меня это консольки новые (пока .NET 5), AvaloniaUI
...
Рейтинг: 0 / 0
25.08.2021, 11:39
    #40093042
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Roman Mejtes
и в чем суть делать такой DataManager? какую функцию он выполняет?
Он подключает всё, что требуется от базы, при этом теперь мы не зависимы от самой базы, мы сказали, что от неё нужно)))
...
Рейтинг: 0 / 0
25.08.2021, 12:03
    #40093050
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
v skopin
Вообщем, мой впрос можно сказать совсем детский - как правильно использовать DI)))))
v skopin
пока .NET 5
v skopin
Код: c#
1.
services.AddTransient<ITextFieldsRepository, EFTextFieldsRepository>();

я пока не понимаю, в чем вопрос, чем не устраивает встроенный DI тогда?
...
Рейтинг: 0 / 0
25.08.2021, 12:10
    #40093052
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
<cut>

Модератор: Резюме размещать в разделе "Работа"
...
Рейтинг: 0 / 0
25.08.2021, 12:11
    #40093053
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Shocker.Pro
я пока не понимаю, в чем вопрос, чем не устраивает встроенный DI тогда?

Похоже, он просто не знает как с ним работать без ASP.NET-овского ConfigureServices.
Обед доем, расскажу.
...
Рейтинг: 0 / 0
25.08.2021, 12:15
    #40093055
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Shocker.Pro
я пока не понимаю, в чем вопрос, чем не устраивает встроенный DI тогда?
КАК? в той же консоле, в библиотеке?
...
Рейтинг: 0 / 0
25.08.2021, 12:21
    #40093057
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
...
Рейтинг: 0 / 0
25.08.2021, 12:24
    #40093060
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Уважаемый модератор!
Я не трудовое агенство, у меня это было очень индикативно, чтобы размещать в разделе Работа, если будут конкретные, 100% предложения, очевидно размещу там! Не подставляйте меня перед людьми!
...
Рейтинг: 0 / 0
25.08.2021, 12:51
    #40093071
fkfka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
v skopin,

Код: 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.
static void Main()
{
    // Create the service collection and add services.
    ServiceCollection services = new();
    services.AddTransient<Application>();
    services.AddTransient<IFoo, Foo>();
    // Obtain the service resolution scope.
    using var serviceProvider = services.BuildServiceProvider();
    using var serviceScope = serviceProvider.CreateScope();
    // Application is the "Resolution Root" of the app.
    var app = serviceScope.ServiceProvider.GetRequiredService<Application>();
    // Run all.
    app.Run();
}

public class Application
{
    private readonly IFoo _foo;

    // IFoo is to be injected by DI
    public Application(IFoo foo) => _foo = foo;

    public void Run()
    {
        _foo.HelloWorld();
    }
}

public interface IFoo
{
    void HelloWorld();
}

public class Foo : IFoo
{
    public void HelloWorld() => Console.WriteLine("Hello, world!");
}



Идея понятна? Все то же делает и ASP.NET только "под капотом".
...
Рейтинг: 0 / 0
25.08.2021, 12:58
    #40093072
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
fkfka
Идея понятна? Все то же делает и ASP.NET только "под капотом".
Отлично, ща попытаюсь реализовать)))
СПАСИБО
...
Рейтинг: 0 / 0
25.08.2021, 13:01
    #40093074
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
Хотя мог бы и сам догадаться, но старый уже(((
...
Рейтинг: 0 / 0
25.08.2021, 18:28
    #40093178
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы в ASP в обычный код, как сделать?
.NET Generic Host

Нет ничего лучше документации
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Службы в ASP в обычный код, как сделать? / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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