Ответы пользователя по тегу ASP.NET
  • Hе получается преобразовать символы в byte, как сделать так чтобы это работало?

    ayazer
    @ayazer
    Sr. Software Engineer
    var str = "test12!#@<смайлик>";
    
    var utf16bytes = Encoding.Unicode.GetBytes(str);
    var utf16reversed = Encoding.Unicode.GetString(utf16bytes); #test12!#@<смайлик>


    вы что-то где-то путаете, проверяйте свой хендлер и то, как и в какой кодировке вы данные отправляете. та-же разница в BE/LE между машинами может к веселым багам приводить. Ну и в целом - так как делаете вы - делать нельзя. Если у вас на 256 СИМВОЛ попадет "<смайлик>" (т.е. суррогат, который состоит с 2ух реальных символов), но у вас возникнет ошибка при декодинге. Потому как минимум - нужно использовать енкодер со состоянием (var enc = Encoding.Unicode.GetEncoder(); ...). Ну или реализовать это самому через проверку char.IsLowSurrogate/char.IsHighSurrogate.

    UPD: даже у тостера оказывается проблема с суррогатами, вместо <смайлик> должен был быть U+1F60A ( https://www.compart.com/en/unicode/U+1F60A)
    Ответ написан
    Комментировать
  • Как настроить docker?

    ayazer
    @ayazer
    Sr. Software Engineer
    Как уже написал Василий Банников - вы собираете проект, не весь солюшен. Потому и падает - оно не может найти свои зависимости. Ниже - пример, обрезаный с рабочего решения:

    FROM mcr.microsoft.com/dotnet/sdk:5.0 AS builder
    COPY . .
    WORKDIR /src
    
    RUN dotnet restore "SolutionName.sln" && \
            dotnet build "SolutionName.sln" -c Release -o /src/build && \
            cd /path/to/proj && \
            dotnet publish "ProjectToPublish.csproj" -c Release -o /src/publish
    
    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS final
    
    WORKDIR /app
    COPY --from=publish /src/publish .
    
    ENTRYPOINT ["dotnet", "ProjectName.dll"]


    вам по сути надо поправить
    RUN dotnet restore ./build/ShoppingCart.API.csproj
    RUN dotnet publish -c Release -o out


    Ну и да, судя по ошибке (описание которой я бы скопировал если бы вы вставляли текст, а не скриншоты) - у вас таки нет5. Потому и образы соотв. нужно использовать.
    Ответ написан
    1 комментарий
  • Отличия GET и POST запросов в контексте ASP.NET MVC 5?

    ayazer
    @ayazer
    Sr. Software Engineer
    к asp.netу отношения не имеет, это часть http стандарта (GET - https://tools.ietf.org/html/rfc2616#section-9.3, POST - https://tools.ietf.org/html/rfc2616#section-9.5)

    по применению - это вам скорее про REST читать. в целом - GET это получение информации, POST - добавление новой.
    Ответ написан
    Комментировать
  • На каком уровне в трехуровневой архитектуре должна находиться пагинация, фильтрация и сортирование?

    ayazer
    @ayazer
    Sr. Software Engineer
    конечно, ведь репозиторий должен знать как составить скл (или какие параметры передать в орм чтоб она сгенерировала нужный запрос).

    можно пойти и от противоположного - если репозиторий ничего не знает про пагинацию/фильтрацию то вам нужно будет каждый раз доставать все данные с базы чтоб потом выбрать только те что нужно отображать. выглядит максимально мерзко, правда?)
    Ответ написан
    Комментировать
  • Какие дипломы/сертификаты по C#, VisualStudio, ASP.MVC, web - можно получить?

    ayazer
    @ayazer
    Sr. Software Engineer
    MCSA: Web Applications (70-480/70-483 + 70-486)
    MCSD: App Builder = MCSA + 70-532/70-535/70-487/еще парочка менее интересных

    статус MCP получается навсегда, сертификации MCSD надо подтверждать раз в 3 (или 4?) года. но подтверждать проще, там надо будет только 1 сертификацию проходить (по крайней мере так было года 3-4 назад).

    сертификации на самом деле достаточно простые (хотя бывают достаточно спорные вопросы), но лучше дождатся акции когда в 80$ входит еще 1 попытка перездачи.

    и это пожалуй единственная сертификация которая может иметь какой-то смысл (компания выгодно иметь в штате специалистов с такой сертификацией т.к. она получает статус партнера майкрософта и скидки покупку лицензий).

    все остальные сертификации - либо лютый треш на уровне "вспомните какие параметры в каком порядке надо передать в <название библиотеки>" / найдите пропущенную запятую в листинге в 50 строчек без какой-либо подсветки, либо проходятся не особо отвлекаясь от просмотра ютуба.
    Ответ написан
    Комментировать
  • Как разобраться с типами проектов .net core и где тут ARM?

    ayazer
    @ayazer
    Sr. Software Engineer
    То есть, насколько я понимаю, несмотря на то, что у меня выбрано приложение .net core, оно всё равно будет создано под целевую платформу .net framework? И, соответственно, будет работать только на винде?

    это было бы странно. нет, будет создан .нет кор проект.

    а что тогда во втором столбце, что еще за runtime?

    1 - сдк для разработчика, 2 - рантайм для клиента (на котором будет выполнятся приложение). если знакомы с той-же джавой то это JDK/JRE соотв.

    В чем различия между первым и вторым столбцом, нужно качать обе версии?

    нет, для пишке нужен только рантайм

    Почему в .net core пошло разделение на x64 и x86

    ну это в принципе разные архитектуры. такое разделение везде

    Раньше я мог писать приложение на винде x64, но при публикации указывать, что оно будет на x86. Что теперь с этим разделением делать?

    если не использовать прекомпиляцию ngen-ом то пофиг. указывайте x64-x86 (для полного фреймворка) или версию неткора в качестве целевой платформы, все остальное - проблема .нета

    На компьютере x64 нужно установить SDK x86, чтобы писать под x86 архитектуру?

    нет

    Что мне необходимо установить и как правильно скомпилировать приложение при разработке на винде?

    с 2.1 версии неткор поддерживает ARMv7/v8. потому на пишку нужно установить .неткор рантайм нужной верии и под него компилировать на рабочей машине. все остальное - проблемы рантайма. Собственно именно для этих целей он и был нужен.
    Ответ написан
    3 комментария
  • Наследование об базового класса Object в c#?

    ayazer
    @ayazer
    Sr. Software Engineer
    если мы ничего явно не указываем - мы наследуем базовый Object. Если мы указываем какой-то класс - мы наследуем именно его (а он уже в свою очередь наследует базовый Object)
    Ответ написан