Ответы пользователя по тегу ASP.NET
  • Есть ли уроки по Selenium Web Driver ASP.NET MVC?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Недавно в это погружался)

    Ничего лучше этого не нашел. Но этого, официального референса и пары уже имеющихся тестов хватило, чтобы разобраться. На пару вечеров экспериментов.
    Ответ написан
    1 комментарий
  • Где почитать про использование GraphQL c ASP.NET MVC?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Ответ написан
    Комментировать
  • Как передать данные в Layout из Html.RenderAction?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    У вас перепутана последовательность картиночек: Layout зовет экшн Auth-контроллера, а тот, в свою очередь, вызывает GetUser-вьюху и вставляет ее на место вызова в Layout (1 - 3 - 2)

    Тем не менее, ViewBag- это индивидуальное свойство каждого контроллера (BaseController). То есть они разные для Auth-контроллера и того, который зовет Layout (назовем его X) и ваша задумка не прокатит.

    Вы пытаетесь бизнес-логику вытащить на вьюхи.
    Это нужно получать не с помощью отдельного экшна и вьюхи Auth-контроллера, а от сервиса (в который обернуть работу с базой). Затем протягивать этого через вью-модель экшна X-контроллера.
    Ответ написан
    2 комментария
  • Стоит ли учить сегодня ASP.NET и можно ли на этом заработать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Начнем с терминологии, а то хейтеры тут не особо разбираются =) Между ASP и ASP.NET MVC разница примерно такая же, как между Java и JavaScript.
    Java - это язык, как и C#. Под них есть свои веб-фреймворки, такие как JavaEE, Spring для Java или ASP.NET MVC, NancyFX для C#.


    Учить ASP (classic ASP) или ASP.NET (который Web Forms) с нуля уже не стоит. А вот ASP.NET MVC - отличный выбор. Это уже достаточно зрелый фреймворк, на котором работает много серьезных проектов (таких, как StackOverflow) и которая востребована на рынке как в России, так и в мире.

    Сам C# достаточно интересный, активно развивающийся язык. Платформа себя чувствует неплохо на любых популярных устройствах. Хорошо развивается .NET Core, являющийся переосмыслением монолитного .NET Framework, позволяющий разрабатывать компатные кросслатформенные приложения, в том числе и с использованием ASP.NET Core, которые можно развертывать самостоятельно, без огромного сервера за спиной, аналогично Node.js.

    Конечно, с ASP.NET MVC не пофрилансишь и сайты-визитки разрабатывать не так удобно =) Но поддерживать крупные приложения - одно удовольствие.

    А Java - это уже такой динозаврик, который стагнирует в роли вечного догоняющего, потихоньку будет сходить на нет в ближайшее десятилетие. Да, платформа обеспечила себя специалистами, тоннами легаси-проектов, которые необходимо поддерживать, поэтому с работой и под нее проблем не будет и менеджеры часто выбирают эту штуку, как проверенное десятилетиями средство. Но с точки зрения обычного программиста, я не вижу смысла выбирать Java.
    Ответ написан
    3 комментария
  • Почему после переноса шаблона на asp.net mvc шрифты и иконки уменьшились?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Проверяйте подключенные стили, особенно, если вставляли верстку в непустой шаблон проекта. Всякие умолчательные Site.css, бутстрапы (если не используются) нужно выпилить.
    Ответ написан
    2 комментария
  • Как реализовать маршрутизацию в виде domain.com/users и domain.com/user/123?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    routes.MapRoute(
        "UsersGeneric",
        "{action}/{id}",
        new { 
          controller = "Users",
          action = "User",
          id = UrlParameter.Optional
        },
        new[] { controller = "Users", id=@"\d+" },
        new[] { "Proj.Controllers" }
    );
    
    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { 
            controller = "Home", 
            action = "Index", 
            id = UrlParameter.Optional 
        },
        new[] { "Proj.Controllers" }
    );
    Ответ написан
    2 комментария
  • Я не умею готовить репозиторий или он просто не очень?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Желательно почитать по поводу работы EF и IQuerable в частности. С помощью этого интерфейса и LINQ вы сможете формировать запросы (которые рендерятся в нативный SQL), а не просто фильтровать коллекции.
    private IQuerable<Student> GetLogs()
    {
        return context.Logs;
    }   
    public IEnumerable<Student> GetLogsForStudent(int id, DateTime from, DateTime to)
    {
        return GetLogs().Where(x => x.Id == id
                                    && x.Date >= from
                                    && x.Date <= to)
                        .ToList();
    }


    Все используют lazy loading?

    Зависит от количества данных и критичности по скорости.

    Если мне нужен в 1 контроллере/сервисе не 1 репозиторий? мне по 1 их подключать?

    Да, по одному. А можно в сервис или UnitOfWork объединять.

    Изачем он для юнит тестов если можно спокойно moqнуть весь dbcontext?

    dbcontext мокать нет смысла хотя бы потому, что он гвоздями к EF прибит. СУБД менять - это не такая распространенная практика, а вот от ORM (и от EF в частности) отказываться в пользу производительности - это реальный кейс с ростом нагрузки.
    Ответ написан
    Комментировать
  • Как передать и использовать две IEnumerable модели в представление?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Попробуйте вместо IEnumerable использовать IList, там есть индексатор. Либо просто двумерный/jagged массив.
    Ответ написан
    Комментировать
  • Best Practices ASP.NET, в чём смысл многослойности?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Сервис - это бизнес-логика, которая позволяет абстрагироваться от DAL с его репозиториями.

    Слои:
    • абстрагированы друг от друга - заменяемы (допустим, заменяя презентационный слой можно из обычного сайта сделать SPA или бэкенд для мобильного приложения; мы не зависим от модели хранения (разные СУБД, файлы, глиняные таблички, голубиная почта), можем легко "вклинить" какой-нибудь прокси-слой между ними, который будет проводить какую-либо обработку или кэшировать, например)
    • абстрагированы друг от друга - их легко изучать, легко поддерживать (модифицировать, т.к. четко разграничена зона ответственности и меньше риск, что от взмаха крыла бабочки на другом конце света рухнет небоскреб)
    • легко поддаются независимому тестированию (взяв один тип можно легко воспроизвести вокруг него необходимое тестовое окружение)


    На проекты принято дробить, как правило, как для логического отделения, как и возможности безболезненно обернуть любой такой модуль в NuGet-пакет и подключать во многих местах. На волне этой идеи и появился .NET Core.
    Ответ написан
  • Как создавать и отображать элементы в одном представлении (представление строго типизировано)?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    @model требуется для отображения, на привязку модели он не должен влиять.

    То есть, если по роутингу у вас подходит метод Create(City city), то привязка будет стараться отыскать среди ValueProvider'ов значения, совпадающие с именами свойств модели (в данном случае - City).

    Какие у вас выдает ошибки привязки?
    Ответ написан
    Комментировать
  • Скажите зачем использовать инверсию зависимостей?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    А если все-таки поменяется СУБД? А если EF под нагрузкой начнет тормозить? А если вы решите прикручивать какой-нибудь эластик?

    С помощью IoC вы сможете локализовать все изменения до отдельной точки реализации, в противном случае - придется перепиливать куда больше. И да, это вы еще и не протестируете.
    Ответ написан
  • Как тестировать DAL слой с помощью Unit тестов?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Нужно замокать DbContext. Чтобы отвязаться от EF и его DbContext, нужно построить архитектуру так, чтобы полностью скрыть DbContext от репозитория под своей абстракцией. Эту абстракцию и мочить. И тестировать репозитории на фейковом поставщике данных.
    Ответ написан
  • Что выбрать в данном случае?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    не хочется завязываться на конкретного вендора, который когда захочет меняет свои технологии

    Много ли таких прицедентов было с ASP.NET? Сейчас MS в этом направлении активно захватывает рынок, вытесняет Java с ее EE платформой (с которой, кстати, недавно была драма по поводу vendor-lock недавно), так что выходит сплошной популизм: активно развиваемая коссплатформенность с .NET Core, чуть ли не полная бесплатность платформы Xamarin.

    C# является языком общего назначения, который имеет уйму применений и просто приятен в использовании. Конечно, для _мелких_ веб-проектов он проигрывает в скорости разработки, хостинг под него дороже (если это не Linux-VPS и проект на ванильном ASP.NET MVC, а не ASP.NET Core). Но при этом код легко поддерживать и тестировать. Но порог вхождения здесь выше, но за это щедро платят. В одиночку фрилансить веб на нем сложно.

    Другой угол зрения: PHP - чистый веб-язык, дорога на десктоп и мобилки ему заказана. Также он не подойдет для более-менее ресурсоемких задач по обработке данных (не поддерживает нативные потоки). Да, он идеален для небольших и средних веб-проектов, но серьезный интерпрайз на нем не строят, как правило.
    nC-OQzWjExhlOjJdl7KjYQ.jpg
    Ответ написан
    Комментировать
  • Написание сайта, с чего начать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Чтобы делать сайты на ASP.NET MVC нужно знать его основы.

    Серверная часть любого сайта начинается с проектирования базы данных: какая информация, в каких таблицах будет лежать и с какими связями между ними взаимодействовать.
    Затем нужно продумать взаимодействие с пользователем (User Interface). В простом случае можно отдавать статические странички, взаимодействовать с сервером через ссылки и HTML-формы.
    Когда все будет готово, можно будет публиковать сайт на хостинг.
    Ответ написан
    9 комментариев
  • Во сколько обойдется разработка на ASP.NET?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    .NET Framework бывает только на Windows. Бесплатно - либо на Mono проект разворачивать, либо изначально писать на ASP.NET Core, который еще не вышел в релиз и не факт, что выйдет в текущем состоянии.
    MICROSOFT VISUAL STUDIO COMMUNITY 2015 бесплатна для инди, тестирования, обучения, и мелких организаций. Подробнее - здесь.
    Ответ написан
  • Routing статичных файлов в ASP.NET Core, возможно ли сделать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Настройкой роутов не обойдешься, как максимум - можно заигнорить роут на статику.
    Нужно будет реализовать IRouteHandlerи IHttpHandlerпод него.
    Ответ написан
    1 комментарий
  • [DI] Resolve типа внутри метода контроллера (ASP.MVC). Как реализовать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    DependencyResolver.Current.GetService(typeof(IMyService))
    Ответ написан
  • Переход из backend во frontend?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Нужно взять себя в руки, взглянуть в глаза опасности и хорошенько разобраться с DAL. Иначе можно очень долго бегать от проблем и никогда не стать хорошим профессионалом.

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

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    javascript?
    Ответ написан
    Комментировать
  • Как правильно организовать многопоточность asp.net?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Если я не ошибаюсь, то каждый запрос и так обрабатывается в отдельном потоке.
    Ответ написан
    Комментировать