• В какой профессии можно применить все это?

    @mletov
    Если вы знаете, что вам это нравится, то, наверное, вы уже где-то работали/работаете. И, соответственно, уже сами знаете ответ на ваш вопрос.

    Если нигде не работали и не работаете, то откуда вы знаете, что вам это нравится?

    Вы бы рассказали о своем опыте.
  • На чем писать веб приложения с GUI как в desktop app?

    @mletov
    Денис И.,
    В чем-то я с вами согласен. Все перечисленные проблемы действительно имеют место быть.
    Но большинство из них являются проблемами не конкретно веб-разработки с использованием REST, а проблемами программирования в целом. И даже если вы решите писать приложение под десктоп, то не факт, что вы их избежите.

    Например:

    начинается расслоение бизнес логики многих "атомарных" операций на сервер и клиент., т.к. вы не можете выполнить все на клиенте, и вы будете вынуждены разрывать многие "единые операции с точки зрния логики" на 2 части - клиент и сервер. просто потому, что вы не имеете права отгрузить клиенту некоторые данные в силу требований безопасности
    ============================
    жизненный цикл приложений построенных на рест стремится к обработке данных на клиенте. сам по скбе рест сервис этому способствует. это передача данных клиенту, обработка данных на клиенте тяжелым js, передача данных на сервер. на этот цикл у вас завязано 99% всех актуальных js-фреймворков. посмотрите например на ту же компоненту типа handsonTable - она не держит на клиенте только "отображение". вы сгружаете клиенту полный объем данных, он их жует-редактирует и потом вы всю пачку пытаетесь отослать на сервер и там прожевать.

    В декстопных приложения размазывание бизнес-логики бежду уровнями - вещь вполне обычная.
    Есть знакомый, работавший в нескольких банках. Говорит, ситуация везде похожа. Часть бизнес-логики выполняется на клиенте, написанном на C#/Java/Delphi, а другая часть засунута в хранимые процедуры, триггеры и пр в SQL SERVER. Причем весьма большая часть.
    Тут и все перечисленные вами проблемы с актуализацией отображения данных, и "атомарность операций" и т д. Пусть и немного в других слоях приложения.
    Просто для веба клиент - это браузер, а сервер IIS/Apache с C#/PHP. А для десктопа это приложение на C# - это клиент, а сервер - MSSQL с логикой на T-SQL.
    И это банки, у них и объемы данных большие, и риски в случае фэйла вполне серьезные.


    хотя это можно пытаться нивелировать разарботкой на typescript с последующей трансляцией в js, но typescript далеко не самая распространенная технология

    До появления Angular 2+ так и было. TypeScript, CoffeeScript и пр были своеобразной игрушкой для ревностных поборников языков со статической типизацией, по каким-то причинам решившим вкатиться во frontend.
    Но с появлением Angular 2+ все изменилось. На данный момент это, пожалуй, самый популярный js-фреймворк. Ну, по крайней мере, точно входит в TOP 3. И да, он на TypeScript. Т е теперь TS для fronted разработчика если не "must have", то уж точно большой и жирный плюс в резюме.


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


    Так как раз те самые выше упомянутые WebSocket, SignalR. С помощью него вполне можно отправить сообщение c сервера на клиент пользователю или нескольким пользователям.
    Сервер может отреагировать на действия пользователей или послать им сообщение на клиент по своей инициативе. У SignalR есть API, в интернете достаточно примеров для работы с ним на Jquery и Angular.


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


    В вашей интерпретации это звучит ух как страшно, как будто программист сам лично все эти пакеты отслеживает)
    На деле сейчас много чего есть из коробки. Для авторизации используются JWT токены. А для проверки прав для доступа действия к методу REST сервиса список ролей и пользователей можно написать прямо над ним.
    Типа
    [Authorize(Roles = "admin,manager")]
    JsonResult MyMethod() {
    
    }



    но вот нет хороших промышленных решений работающих по этим принципам. есть c++/qt и их трансляция формы в веб. есть java и jsf, в варианте какого нибудь там primefaces, вроде как есть vaadin, но как я понимаю, это фактически перекомпиляция java в js с полной отгрузкой приложения клиенту (что малопригодно в ситуации недоверия клиенту).

    Да. А в .NET был ASP.NET WebForms, еще 7-10 лет назад достаточно популярный. Тот самый десктопный подход: интеграция клиента и сервера в одно целое, сохранение состояния в скрытом поле, обработчики событий контролов прямо в C# коде. Чего еще надо для полного счастья? Тем не менее, знаково то, что MVC, когда вошел в полную силу, его фактически убил. И я вот думаю, это не потому, что WebForms был написан плохо. А потому, что сам подход для веба оказался неподходящим по сравнению с Rest. И даже если завтра кто-то попытается сделать что-то под веб с дестктопной идеологией, то это будет заведомо мертворожденный проект. Или как мимнимум очень узко используемый.
  • На чем писать веб приложения с GUI как в desktop app?

    @mletov
    Денис И.

    Прочитал, но так и не понял, чем современный подход на REST принципиально не подходит для написания
    СЭД (системы документооборота), арм различных госструктур, арм различных операторов, и тд.


    90% последователей этих технологий не понимают даже основ проблем разработки больших систем на языках с динамической типизацией


    REST сервисы вполне можно писать на языках со статической типизацией, C# или Java. Никто использовать js для сервера не заставляет. Клиентскую часть вполне можно писать на вышеупомянутом TypeScript. Тот же Angular его активно использует.


    одна только попытка использовать stateless подход и тяжелый толстожЁпый js грозит вам переработками такого масштаба

    А зачем использовать stateless? При современном развитии клиентских фреймворков использование REST и сохранение состояния - друг друга никак не исключают. На том же Angular создание многошаговой формы с кучей зависимых контролов и запоминание данных, введенных пользователем на предыдущих шагах - задача вполне посильная.

    я вижу перспективу в использовании web-socket, но опять же, промышленных наработок и фреймворков нет.

    Как нет, в ASP.NET давно написана обертка для них, SignalR. Пользуйтесь на здоровье.
  • На чем писать веб приложения с GUI как в desktop app?

    @mletov
    Денис И.

    В контексте вопроса - дотнет кор тоже не решает вопросы связанные с тем "как писать веб-приложения как будто для тдесктопа". Или решает?
    Что они предлагают для того что бы не городить "частокол костылей rest-сервисов" ?


    Не решает и даже не пытается) И Rest считает не костылями, а вполне себе полноценным подходом. Посмотрите мой ответ. Тем, кому реально хочется писать под веб так же, как и под десктоп, следует использовать ASP.NET WebForms.
    Если есть опыт написания под десктоп на WinForms или Wpf, то обработчики вида
    void btn_Click(Object sender, EventArgs e) { }
    будут близкими и родными.
  • Как правильно написать php код для кнопки оплаты робокасса и добавления объявления на сайте?

    @mletov
    Arinka_45, Вы программист?

    Если да, то, прежде чем работать с робокассой, разберитесь с основами, почитайте про передачу данных из формы в action методом POST, про скрытые поля (hidden) и пр

    Если нет, то наймите программиста.

    А готового кода, который вы сможете скопипастить без понимания вам тут все равно никто не даст.
  • На чем писать веб приложения с GUI как в desktop app?

    @mletov
    Евгений,

    Сейчас популярен REST API.
    Т е на на сервере реализуются url, отдающие json.
    А на клиенте в зависимости от сложности интерфейса. Если что-нибудь простенькое, то довольствуются jquery. Если же есть много хитрых взаимосвязанных контролов, то используют какой-нибудь js фреймворк (angular/react/vue). Он подхватывает json и визуализирует его как надо.
  • Как правильно написать php код для кнопки оплаты робокасса и добавления объявления на сайте?

    @mletov
    Arinka_45, Так вы ничего не добьетесь. Почитайте документацию по API робокассы, создание подписи через md5 и т д.

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

    @mletov
    У вас редактор съел все вставки кода, а без них ваш пост - уравнение с сотней неизвестных.
  • Можно ли использовать известных персонажей в своей игре?

    @mletov
    xmoonlight, Алексей Уколов, в передаче, которую я смотрел на эту тему, объяснение было довольно обтекаемым и неточным, в духе "Ну вот смотрите, Микки Маус. У него круглые уши, овальные глаза и он мышь. Скорее всего использование персонажа мыши с круглыми ушами и овальными глазами будет признано плагиатом". Я тут же вспомнил про Джерри...
  • Можно ли использовать известных персонажей в своей игре?

    @mletov
    stratosmi, Согласен, законы разнятся. Но, на мой взгляд, из-за глобализации, всеохватности интернета и лобби крупных игроков рынка, законы об авторском праве в разных странах постепенно усредняются.
  • Почему не работает LIKE при поиске в бд?

    @mletov Автор вопроса
    Спасибо, уже пробовал, как с COLLATE сервера, так и базы, не работает.
  • Насколько сложно сделать рефакторинг проекта и переписать код с C# на Python/Java?

    @mletov
    @RGoldvarg

    веб-морда, которая написана на C#

    А это как?

    Или у вас клиент - не браузер?

    Ну и чем вообще плох C# ? Я понимаю, сейчас многие переписывают приложения 20-летней давности с Delphi или VBA под современные языки, но C# то чем принципиально хуже Python или Java ?
  • Какой язык программирования выбрать на проект взамен Excel VBA?

    @mletov
    Поддержу, уже во второй конторе работаю, где обильное наследие на VBA переписывается на ASP.NET.
    Основная причина, думаю - базы на MSSQL. Правда язык - C#.
  • Как задать максимальный уровень для навигационный свойств при использовании include?

    @mletov Автор вопроса
    eRKa, т е ограничить вложенность цикла для include никак нельзя?
    Только нечто такое делать
    return Json(db.Questions
                              .Select(x => 
                                        new Question
                                        {
                                            Id = x.Id,
                                            Info = x.Info,
                                            Answers = db.Answers.Where(y => y.QuestionId==x.Id).ToList()
                                        })
                              .ToList());
  • Как задать максимальный уровень для навигационный свойств при использовании include?

    @mletov Автор вопроса
    eRKa,

    Уточню: Это ASP.NET Core WebApi.
    Никакой ошибки не выдает, просто вывод json оборван посередине, судя по всему, как раз из-за вечного цикла.
    Если Question ссылается на Answer, а Answer на Question, то цикл как раз и будет вечным.
  • Как вы верстаете? Сверху-вниз или сначала создаете скелет сайта?

    @mletov
    Бинго! Смешали в кучу программистов, дизайнеров и верстальщиков)
  • Как открыть доступ к определенной группе ресурсов?

    @mletov Автор вопроса
    Руслан, спасибо, получилось!
    Один недостаток: в видео дают доступ по принципу "все, что не запрещено - разрешено". Т е недостаточно гибко. А ели у меня скажем 10 групп пользователей и 10 групп ресурсов.
    И я хочу для каждой группы пользователей выделить свою группу ресурсов.
    Вроде группы привязал, а все равно не админ видит только те ресурсы, которые не в группе Администратор.