• Правильно ли я пишу на asp.net Core?

    @fan92rus
    В том и суть репозиториев что все через них проходит, иначе это потенциальная уязвимость для sql иньекции.
    И при изменении репозиторя измениться везде где он используеться
    Например если будешь кешировать в редисе то все будут кешироваться
    Так что так некоректно.
    И еще выносить логику из контроллеров стоит в сервисы https://habr.com/ru/post/437002/
    Ответ написан
    Комментировать
  • Правильно ли я пишу на asp.net Core?

    @Qualiant
    Я бы посоветовал использовать класс SqlCommand и параметризировать запрос. Это разом отсекает массу потенциальных уязвимостей, связанных с SQL. Как минимум, инъекций уже можно не бояться.
    Ответ написан
    Комментировать
  • Правильно ли я пишу на asp.net Core?

    1) Репозиторий - коллекция, и методы работы с ней как с коллекцией, ничего лишнего.
    2) Controller - посредник между View и Model (стиль MVC). В нем не должно быть никакой бизнес логики, а значит и открытия коннекта и выполнения запроса с его текстом. Тут должен быть вызов компетентного исполнителя - сервиса.

    Рекоменую посмотреть на - CleanArchitecture https://github.com/jasontaylordev/CleanArchitecture

    Посмотрите на готовые сайты:
    https://github.com/nopSolutions/nopCommerce
    https://github.com/simplcommerce/SimplCommerce
    И крутого монстра - https://github.com/dotnet-architecture/eShopOnCont...

    Все сразу не запомнится и не зайдет, это долгий путь.

    Самый лучший курс от 0 до норм понимания - https://codewithmosh.com/p/become-a-full-stack-net...
    Состоит из трех частей, где автор создает готовое приложение вроде мини соц сети с музыкой, вроде.
    Можно в целом его посмотреть, и делать как он, не промахнешся.
    Ответ написан
    Комментировать
  • Чем работать с БД кроме Entity FrameWork в ASP.NET MVC?

    @mletov
    1) Так работали люди до появления всяких ORM
    https://metanit.com/sharp/adonet/

    2) EF тоже позволяет чистый sql.
    Синтаксис у EF5 и EF6 различается

    https://www.google.ru/search?newwindow=1&safe=stri...
    Ответ написан
    Комментировать
  • Чем работать с БД кроме Entity FrameWork в ASP.NET MVC?

    1) Вкатывайтесь в EF. Оно удачнее, как минимум потому, что: сложные запросы строит за вас; ошибку сразу видно; выплевывает сразу целевой объект (в том числе и связанные - т.н. ленивая загрузка); имеет провайдеры под все мыслимые и немыслимые хранилища, сводя их к единому интерфейсу.
    2) Пишите запросы вручную на EF или на EFCore
    Ответ написан
    Комментировать
  • Как править чужой код так чтоб его не сломать?

    @kttotto
    пофиг на чем писать
    Во первых нужно закладывать время на разбор легаси кода, об этом сразу надо говорить с заказчиком. Зная задачу, всегда понимаешь, ЧТО надо написать, но в случае с легаси надо еще и понять КУДА это написать. Без этого никак и поэтому это время надо учитывать.

    Второе. Когда-то меня учили, что код нужно менять только дописывая его, в крайнем случае удаляя, но ни в коем случае не переписывая. Поэтому, если надо изменить поведение - наследуешься, переопределяешь метод и используешь новый класс. Мне сложно судить о php, как этот проект реализован, но ООП для того и придумали, что его легче поддерживать и он легче модифицируется.

    Следующий вариант изучить код, начинать писать тесты к нему. Я этим способом пользуюсь редко, в основном пишу на то, в чем я не уверен, что боюсь сломать.

    Ну конечно система контроля версий, по чаще комиты, чаще запускай проект, смотри, что ничего не сломалось. Я перестал бояться что-то сломать, потому что в любой момент могу сравнить, что изменилось в коде, между ветками и если сломалось, то сделать реверт или уйти на рабочую ветку.

    А вообще чтение легаси, это дело опыта. Я помню первые свои чужие проекты, я думал, что попал в ад. Сейчас копаться в чужом коде, это мое любимое дело) Я могу часами сидеть разбирать чужой код, что начальству приходится меня попускать: "я понимаю, я тоже это люблю, но надо дело делать")) Люблю просто на гитхабе полазить по чужим проектам, посмотреть как люди думают.
    Ответ написан
    Комментировать