• Тенденции рынка труда для ASP.NET CORE разработчиков?

    Вы смотрите asp.net core. Это технология для построения вебсервисов, поэтому вы и видите много вакансий, где хотят от кандидата знание фронта. НО! Чистые бэкендерский вакансии тоже есть и их много, особенно в крупных компаниях. А если вы введете не asp.net core, а .net core, то на порядок больше увидите)
    Ответ написан
    Комментировать
  • Web Api как сделать несколько параметров в Get запросе? И делают ли так?

    Этот тестовый пример далек от реального проекта немного. Все зависит от предметной области (доменной области). Обычно такие вещи выносятся все-таки в гет-параметры
    /users?age=32&name=Tom

    а в сегменты url немного другие вещи. Сравните
    /users/blocked
    /users/active
    /users/1 - тут получаем конкретного юзера с id=1

    гуглите restful api design
    Ответ написан
    7 комментариев
  • Объект с полями (one-to-many) возвращается со значением null в полях в Entity Framework, как это решить?

    Какая версия EF?

    В целом
    public virtual ICollection<LearnDay> LearnDay { get; set; }
    спасет, если не Core, т.к. реализовано lazy, в коре спасают инклюды
    Ответ написан
    Комментировать
  • Стоит ли опциональные вещи уносить в одно сериализованное поле БД?

    Я обычно так и делаю, храню в json, если полный бардак, то есть куча разных типов данных, в том числе структуры, опции абсолютно разные, могут появиться в любой момент и все это надо как-то связать и, внимание, мне не нужно как-то фильтроваться по этим полям при выборке. В остальных случаях обычно Table per Hierarchy.
    Ответ написан
    Комментировать
  • Почему для использования дженериков нужен интерфейс?

    Вопрос конечно не совсем корректен, интерфейс не обязателен.

    Вы просто в этом примере создаете интерфейс IPerson. Этот интерфейс могут по факту реализовывать сколько угодно классов. Например Person1, Person2, Person3. Все по своему.
    Теперь вам нужно сделать метод SpeakTo, который позволит вам поговорить с любым из этих классов. Окей, пишем дженерик и пишем ограничение на интерфейс. (where T : IPerson )
    Теперь в метод вы можете передать любой класс, реализующий интерфейс IPerson.

    Но вы также можете написать например класс PersonBase вместо интерфейса, унаследовать наши Person1, Person2, Person3 от базового класса. Тогда вам нужно будет написать ограничение не на интерфейс, а на базовый класс where T : PersonBase. И вы также сможете передавать в метод SpeakTo любой класс, унаследованный от PersonBase.
    public class PersonBase
    {
      public virtual string GetFirstName() {return "MY name is base"; }
      public virtual string GetLastName() { return "MY lastname is base"; }
    }
    
    //либо через абстрактный класс
    //public abstarct class PersonBase
    //{
    //  public abstract string GetFirstName();
    //  public abstract string GetLastName();
    //}
    
    class Speaker 
    {
      public void SpeakTo<T>(T person) where T : PersonBase
      {
        string name = person.GetFirstName();
        this.say("Hello, " + name);
      }
    }

    Еще бывают ограничения на конструктор, ограничения ссылочного типа и ограничения типа значения.
    Ответ написан
    Комментировать
  • Как сократить конструктор дочернего класса, дабы установить все параметры родительского объекта в дочерний?

    Попробуйте автомаппер, мне если честно вообще не нравится этот код. Я бы не делал такой конструктор ИМХО. Лучше какой-то маппер/конвертер в отдельном классе. А можно вообще не наследоваться, просто добавьте св-во типа Article. И вокруг него уже пляшите. Зависит от контекста того, что вы делаете.
    Ответ написан
    4 комментария
  • Как вычислить значение функций в С#?

    Не совсем понятно, вы вводите R с клавиатуры и значение X, в котором надо вычислить Y?
    У вас тут 4 отрезка от -бесконечности до -R, от -R до 0, от 0 до R и от R до плюс бесконечности. Какой функцией описать каждый отрезок думаю догадаетесь. Дальше if в помощь, чтобы проверить в какой из отрезков попадает X и рассчитать соответствующую функцию.
    Ответ написан
    Комментировать
  • Как становятся программистами?

    Ты все правильно делаешь. Все программисты пользуются гуглом. Важно не то, что ты не знаешь(не помнишь), а то, что ты знаешь КАК искать и можешь понимать, что тебе этот самый гугл предлагает. Программирование - это не о конкретных технологиях, это о подходах и предметной области. Технологии забываются, если ими не пользуешься, и запоминаются рано или поздно в противном случае)
    Сосредоточиться по началу надо на современном ООП, GoF, Фаулере, архитектуре, рефакторинге.

    Что касается совета комментировать код - это плохой совет. Код должен сам говорить за себя, и в этом кстати тоже заключается искусство писать хороший код.
    Ответ написан
    Комментировать
  • Какова карта компетенций asp.net mvc разработчика?

    @NikitaKo Автор вопроса
    Спасибо))Радует, что Ваш ответ пересекается с моими представлениями)
    Ответ написан
    Комментировать