• Как правильно тестировать базу данных в .NET?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне не нравится сама идея тестирования базы.

    Тестируют обычно бизнес логику. Слой Services, Processors e.t.c.

    Если ваш язык программирования бизнес-логики это PL/SQL, T/SQL e.t.c. то я вам сочувствую.
    Наверное в этом и есть главная причина ваших трудностей. Эти языки неудобно тестировать
    и практики тестирования наподобие *Unit, *Property e.t.c. тестов там исторически не прижились.

    Создание тестовой БД в таком случае - да. Это компромисс. Вот и двигайте в этом направлении.
    Поднимайте все в контейнере типа docker.
    Ответ написан
    6 комментариев
  • Можно ли с нуля обучится программированию, используя только интернет и не тратив деньги?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Не только можно, но и нужно, ибо основа программирования и разработки ПО - это прежде всего самообразование. Начните вот с чего-то типа вот такого: https://roadmap.sh/
    Ответ написан
    1 комментарий
  • Можно ли с нуля обучится программированию, используя только интернет и не тратив деньги?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вообще можно. Сможете ли конкретно вы - неизвестно.
    Ответ написан
    Комментировать
  • Как можно сделать линию(нитку) удочки, как в майнкрафте?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Почитай про кривые безье
    Ответ написан
    Комментировать
  • C# 7.3 Как мне вызвать асинхронный метод, находящийся в отдельном файле?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Task (задача) - это не Thread. Это спрецифичный для исполняющей системы (CLR) .NET объект, который позволяет отследить завершение выполнения операции, выполняющейся независимо от вашего основного потока управления и получить результат выполнения, если он есть (в вышем случае результата нет). Для запуска задачи, которую возвращает асинхронный метод (в отличие от вновь созданного объекта задачи - new Task(...)) ничего делать не нужно - она уже запущена исполняющей системой. Поток (Thread) для ее выполнения, если он нужен (а нужен он не всегда, иногда задача завершается внутри асинхронного метода синхронно) обычно берется из пула потоков (но могут быть нюансы, если они вам интересны - читайте про SynchronizationContext).
    Если вам нужно дождаться выполнения задачи в синхроннном коде (у вас сейчас такой), то следует использовать метод задачи Wait(), но он заблокирует основной поток. Альтернатива для современного .NET (7.3 для этого достаточно современный) - использовать асинхронный метод Main: просто указать static async Task Main() вместо static void Main. Тогда можно дожидаться выполнения Install асинхронно, с помощью операции await: await update.Install(); При этом основной поток блокироваться не будет, но если ему все равно делать нечего (это зависит от типа приложения), то выигрыша от этого не будет (в консольном приложении, например).
    PS Зачем вы применили атрибут [STAThread] к метод Install? Ведь, согласно документации
    Примените этот атрибут к методу точки входа (Main()метод в C# и Visual Basic). Это не влияет на другие методы
    То есть, он тут бессмысленнен. И вообще, это - тяжкое наследие технологии OLE2/COM.
    Ответ написан
    1 комментарий
  • Как конвертировать через обобщение в c#?

    WNeZRoS
    @WNeZRoS
    Вам нужен .NET 7 или новее чтобы воспользоваться интерфейсом IParsable.
    public static void Input<T>(T[] nums) where T : IParsable<T>


    (ref в параметре не нужен при таком использовании внутри, массив это ссылочный тип)
    Ответ написан
    3 комментария
  • Почему индикатор, расположенный спереди на системном блоке, горит оранжевым светом?

    @SunTechnik
    1. Картинка не открывается.
    2. Вариантов корпусов - как грязи.
    Смотреть надо описание корпуса и символы около индикаторов.

    Хрустальный шар говорит, что диск умер/ подыхает. Но даже постоянно горящий индикатор диска не обязательно говорит о его неисправности.
    Ответ написан
    3 комментария
  • Как разрешить доступ к MS SQL (named instance) серверу за WIndows Firewall?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    https://learn.microsoft.com/ru-ru/sql/sql-server/i...

    ps все еще веселее. там есть конфигуратор служб/протоколов. можно назначать алиасы и двигать порты для каждого инстанса/протокола

    pps ну и в конекшенстрингах можно указывать сдвинутые порты

    ppps к примеру, sqlexpress, алиасом "." в инстанс по дефолту. хотя вопросы с портами это не решает
    Ответ написан
    Комментировать
  • Что выбрать для CI/CD проектов на .net?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    • Самое ближайшее и доступное в вашем случае - GitHub Actions
    • Чуть более сложно, но больше гибкости и автономности - GitLab PipeLines (можно даже у себя захостить сервер)
    Ответ написан
    2 комментария
  • Возможно ли на винде написать программу дешифровки?

    @kalapanga
    Можно ли написать такую программу в принципе? Конечно. TrueCrypt например, или что там сейчас вместо него, примерно так и работают.
    Удобен ли для написания такой программы C#? Не уверен, скорее нет. Потребуется весьма низкоуровневое программирование.
    Ответ написан
    6 комментариев
  • Между сборками и пространствами имён нет прямого соответствия. Что это значит?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Ты можешь создать сборку (грубо говоря, проект/.csproj), которая называется Service.Domain, но все классы там будут в неймспейсе (пр-ве имен) Another.Namespace
    Т.е. название проекта не накладывает ограничений на названия пр-в имен, которые в нем хранятся.
    Ответ написан
    Комментировать
  • Как сделать редирект с domain.ru:8080 на domain.ru?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Люди, вы чего? Что с вами?! Документацию надо чтить!

    server {
              listen 8080;
              server_name domain.ru
              return 301 http://$host$request_uri;
    }
    Ответ написан
    2 комментария
  • Как загружать данные перед серверным рендерингом в React?

    @diller
    Реакт рендерится на стороне клиента, это в любом случае просадка по сео, Next js придется подтянуть, там не сложно. Я вообще забил на реакт и написал свою оболочку на js + ts.
    Ответ написан
    Комментировать
  • Как отправить post запрос на сайт крипты Bybit?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Вам нужно взять конкретный запрос и пристально его рассмотреть. Все зеголовки, куки, токены.
    Потом попробовать эмулировать запрос пока не будете получать нужный ответ. Делаете приложение.
    Потом решаете как получать куки (например эмулятором браузера или расширением к браузеру) и подсовываете своему приложению.
    Это вариант для самых сложных случаев.
    Ответ написан
    3 комментария
  • Как на asp .net 7 подключить ssl для https протокола?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как мне сделать так, чтобы мой сервис используя эти файлы запускался на https в контейнере

    Пример Dockerfile конфига (при необходимости, поправить пути и наименования):
    FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
    WORKDIR /src
    COPY ["project.csproj", "."]
    RUN dotnet restore "project.csproj"
    COPY . .
    WORKDIR "/src/."
    RUN dotnet build "project.csproj" -c Release -o /app/publish
    
    FROM build AS publish
    RUN dotnet publish "project.csproj" -c Release -o /app/publish
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    COPY ["cert.pem", "key.pem", "/https/"]
    ENTRYPOINT ["dotnet", "project.dll"]

    https://learn.microsoft.com/en-us/aspnet/core/fund...
    Пример Program.cs:
    var builder = WebApplication.CreateBuilder(args);
    
    builder.WebHost.ConfigureKestrel(options =>
    {
        options.ListenAnyIP(443, listenOptions =>
        {
            listenOptions.UseHttps("/https/cert.pem", "/https/key.pem");
        });
    });

    Ну и при использование Nginx (например) в качестве обратного прокси, то придется настроить и его. С другой стороны, если у Вас будет стоять Nginx, то не совсем понятно, для чего гонять защищенный трафик между Nginx и ASPNET, т.к:
    1. Nginx универсальнее и производительнее ASPNET в данном контексте.
    2. Если подлинность трафика уже подтверждена на уровне Nginx, то зачем все тоже самое повторять дальше по цепочке, в ASPNET.
    Ответ написан
    Комментировать
  • Как и на чем написать скрипт для клика мышкой?

    @Shavadrius
    Если это хром, то просто отключите безопасность при запуске: chrome.exe --autoplay-policy=no-user-gesture-required
    Ответ написан
    2 комментария
  • Эффект наложения блоков?

    imko
    @imko
    Senior Scratch Developer
    Это ж просто position: sticky у каждого
    Ответ написан
    2 комментария
  • Как сделать авто подтверждение?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Нет и очень надеюсь что никогда будет нельзя
    Ответ написан
    Комментировать
  • Как реализовать многопоточность на C++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Тут не надо никакой многопоточности. Все такие симуляции выполняются в один поток с очередью событий.

    Вот в 0 секунд у вас I1..I5 сгенерировали заявки, они пападают в накапители и сразу же из них в каналы. В 3 секунды K1 обработал заявку и свободен. Взял одну из накопителя. В 4 секунды K2 освободился, взял заявку из накопителя. В 5 секунд источники снова сгенерировали заявки... и т.д. Это можно просимулировать.

    Реализуется это с помощью приоритетной очереди событий. В нее вы складываете новые события, а в основном цикле достаете оттуда событие с минимальным временем. На c++ это будет что-то вроде:
    std::priority_queue<pair<int, Event>, std::vector, std::greater> queue
    .

    Еще вам надо написать классы для источника, накопителя, блокиратора с условиями (не понял, что это) и накопителя.

    Например, источник в момент создания кладет в очередь событие "в 0 секунд я создам заявку". При выполнении этого события, во-первых, создается и кладется в очередь новое событие "в t+5 секунд я создам заявку". Во-вторых, надо посмотреть, куда заявки из этого источника попадают. Если это накопитель, то заявка пихается в него.

    Класс накопителя при поступлении в него заявки, если он был пуст, смотрит, какие каналы к нему подключены (их может быть несколько) и, если какой-то из них свободен - сразу передает заявку туда. Если он был не пуст, то просто кладет заявку в очередь.

    Класс канала при получении заявки создает событие во время t+время обработки заявки, что он освободится. При вы полнении этого события канал смотрит, к чему он подключен и если там не пустой накопитель, то забирает оттуда первую заявку.

    Класс Event должен как-то запоминать какой объект это событие выполняет. А основной цикл должен этот код вызывать (и передавать туда время события).
    Ответ написан
    Комментировать
  • Как отправить html шаблон с svg на gmail через aws?

    Viji
    @Viji
    DevOps Engineer
    отправьте все на другую почту, может там пройдет. Html формат сообщений достаточно чувствительный к используемым тегам и требуемым полям. У меня были проблемы с html сообщениями в sendgrid.

    Совету сравнить форматы обычного html сообщения и того, которое сконвертировали из svg - каких-то тегов нехватает либо что-то не на месте. Html сообщение это все-таки не html страница, как возможно интерпретирует этот конвертер
    Ответ написан
    4 комментария