Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

Ссылка скопирована
1 ответ

Планирую писать небольшую узкоспециализированную социальную сеть. В ВУЗе вообще пишем на C#, но не знаю, подойдёт ли C# для моих целей и как он дружит с React и другими фреймворками. И вообще, есть ли смысл в таком взаимодействии. Буду рад каким-либо советам по возможным технологиям.

Дополнительно:

Я уже много лет пишу бек на C# а фронт на Vue. Как показывает моя практика это наиболее оптимальный подход. Когда мы с командой разрабатывали систему управления виртуализацией для b2b чтобы они с ее помощью продавали ресурсы как b2c. Мы строили микросервисную архитектуру с использованием именно бека на C# а фронта на Vue. Работа с беком была на RestApi, Websocket для реактивности сайта (signalR не стали использовать из-за говеной авторизации на кукисах, тогда на тестовом прогоне куча проблем всплыло и отказались от него в пользу чистого websocket) межсервисный внутренний брокер сообщений RabbitMQ. Все запихиваем в кибер с настройкой автоматического массштабирования по нагрузке и все.

Подойдет! Бек можно писать на всем, что отдает JSON/HTML. Начиная от С, С++, PHP, Ruby, Java, Rust, C# и заканчивая Groovy, Clojure, NodeJS и прочими, прочими, прочими.

  • А есть какие-либо ресурсы, которые могут помочь в изучении? Видео, статьи или что-то подобное?
  • a_verum, гугл, хотя сначала надо было бежать в него, а сюда уже когда в чем-то конкретном проблема
  • Everything_is_bad, пробегал. По-моему, если тебя интересует какой-то вопрос, его следует задавать. Мне нужно направление, а дальше станет попроще) Пока не совсем понимаю, в какую сторону лучше двигаться
  • a_verum, со стороны бека начните с создания http-сервера с отдачей странички index.html и парой эндпоинтов с json.
    Начните например отсюда - https://metanit.com/sharp/aspnet6/2.10.php
    React прикручиваете, как загрузку javascript-файла

    PS. На шарпе практически не программирую (ну так...), программирую на яве, clojure, C, python...

  • Алексей Черемисин, Спасибо
  • Groovy, Clojure, NodeJS, JavaScript
  • iljaGolubev, технически все же nodejs хоть и написана на JS, но есть нюансы.... конечно же JS можно и внутри JVM запустить, но серевер я бы так не стал писать...
    Так что предложу все же NodeJS с языком JS.
  • Бек на C# пишется на ASP.Net
    Чистый бек пишется через шаблон Web Api, который предоставляет rest-ручки через контроллеры. Можно через ASP и фронт отдавать через статику, но я бы предложил не заниматься такими извращениями, и использовать условный Nginx для роутинга между страницами и ручками api

Ответы:

Схема вполне рабочая и такой стек применяется во многих компаниях.
Никаких проблем в C#, применительно к этой задаче я не вижу.

  • Понял, спасибо

И чему в этих ВУЗах учат? В подавляющем большинстве случаев клиент и сервер не знают на чём другой написан и им пофиг так как общаются они по стандартизированному протоколу, в случае web-разработки по HTTP.

  • точно, чему учат в институтах, когда люди не различают фронт и клиент....
  • Saboteur, браузер и web-сервер - это прям классический пример клиент-серверного взаимодействия, а фронтенд и бэкэнд web-приложения - это прикладная логика этого клиент-серверного взаимодействия. Так что нечего тут различать.
  • В современном программировании, фронт часто генерится бэком, поэтому "сервер" и "фронт" называть сервером и клиентом можно довольно условно. Клиент это все-таки браузер.

Эти стеки совместимы очень хорошо. Лично я делал минимум 2 (пет)проекта на этом стеке.

Даже есть отдельный шаблон для React приложений - dotnet new react

Конечно можно. C# в основном и используется в качестве бэка, так как обладает достаточной стабильностью и надёжностью при высоких нагрузках. Более того .NET работает и в Windows, и в Linux, и в MacOS, так что можно разместить Backend на простом VPS.

  • А можете ещё посоветовать, что посмотреть или почитать на эту тему? Сегодня, вроде, достаточно много интересного нашёл на эту тему, но доп. информация лишней не будет)

Проблема сайтов на c# в том, что почти нет нормальных хостингов для него в отличии от php. А те что есть и поддерживают net core. я использовать не смог - при публикации (обновлении) сайта везде вылезала ошибка, типа нельзя заменить исполняемый файл, поддержка ничем не помогла. Таким образом сайт придется хостить на собственном впс на windows server, что довольно дорого.
Так что попробуй опубликовать и обновить хотя бы простенький сайт на таких хостингах как fozzy и smarterasp

  • Глупости какие. У asp.net core есть прекрасный кроссплатформенный веб-сервер kestrel
  • есть же .net для Linux, кроме тогда можно сделать образ со всем чем нужно и размещать его где угодно на любом vps

Вообще это довольно странный вопрос. Если вы знаете что такое C#, вы уже должны понимать, что такое стек технологий. Тем более, если понимаете связь между back-end и fron-end приложениями.

Смысл есть! Почему? Первое на что стоит обратить внимание, это на рынок .NET. Там большая половина веб-апп делается на этой связке

Или же смысла нету если вы хотите вложиться в некие дедлайны. Потому что, судя по ваших знаниях, вам это надоест уже на начале 2го месяца изучения asp.net, а это ещё к React даже не приступите.

Пока есть смысл учить язык и фреймворки, а потом уже сверху на это всё ложить какой-то стек технологий

Проблема заключается в том, что из-за брака знаний, вы не сможете нормально реализовать это. А вашу идею может украсть кто-то более продвинутый в этом и напишет нормально. Без багов/лагой и прочих недоработок, которых вы 100% допустите в ходе разработки. Или вашим приложением никто не будет пользоваться... В прочем, вариантов для краха этой идеи есть уйма

Второе дело, это дело обучения. В целях обучения, это достаточно хорошая идея, но только вы должны понимать объём знаний, которые нужно изучить, или то, ЧТО вы хотите изучить. Хватит ли вам этого для написания приложения?

  • Это идея для дипломного проекта, так что исключительно в целях обучения. Всё время писали WPF приложения на учёбе, а на диплом всё же хочется что-то поинтереснее попробовать сделать) Спасибо за совет.
  • Бэк для ERP на чем лучше писать? Какой ЯП лучше?
  • LucyM, для кого как. ERP система это как общая бизнес-идея. Вы можете выбрать то, что вам по душе.

    ERP это очень большая система работы с данными, по этому если я скажу, что его лучше будет писать на C#, т.к. я уже это пробовал и у меня получилось. Вы не выучите .NET на такой уровень, что бы это написать, если вашим основным языком является Python

Можно, но если вы знаете c# я бы советовал blazor webasembly вместо реакта, будет быстрее разобраться и написать при незнании реакта. Пользователи зайдя на сайт смогут легко установить как приложение на смартфон.

  • Пробовал Blazor на практике, но от работников компании слышал, что он сильно уступает во многих аспектах React)

Можно и нужно. Это обычная нормальная практика. В нескольких проектах участвовал, где бек на микросервисах c#, а фронт на react. C# сервисы поднимаются в докере и работают на любом, даже самом дешевом vps хостинге.

Такой стек многие используют.
Через, например, Nginx настраивается маршрутизация запросов: по каким путям отдавать фронт, а по каким - дергать backend. А дальше - дело техники: чаще всего используют http-rest, и он непривередлив. Имплементируете rest-api через ASP.Net Core, дёргаете его с фронта, маршрутизация решает вопросы доставки пакетов.

P.S. Лучше пару тестовых приложений написать ч разными вариациями имплементации. Так появится понимание из чего выбирать. А в интернетах уже написано, что устарело, а что - свежачок

Собственно, все "умные" рекомендации уже написаны выше...
Так что остаётся оставить не-умный комментарий: вы путаете божий дар (C#) с глазуньей из яиц (react)... Шарп с жаваскприптом нормально дружит ой! -- как много лет, раньше - чем ваш начальник родился...
Так что дерзай, грызи доки (раз уж курить их не умеешь...)
УДАЧИ!!!

  • Спасибо)
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Игорь Волков Ответ

Да, конечно, можно писать бэкенд на C# и фронтенд на React. Это довольно распространенная практика, которая имеет свои преимущества и недостатки.

Одним из главных преимуществ использования C# для бэкенда является его мощный инструментарий, широкие возможности для работы с базами данных, асинхронное программирование и многое другое. C# также обладает хорошей производительностью и стабильностью.

С другой стороны, React является одним из самых популярных фреймворков для разработки фронтенда. Он обладает большим сообществом разработчиков, множеством готовых компонентов и библиотек, а также хорошей производительностью благодаря виртуальному DOM.

Сочетание C# для бэкенда и React для фронтенда может быть очень удачным выбором. Благодаря этому вы можете использовать сильные стороны обеих технологий, разрабатывая масштабируемое и производительное приложение. Кроме того, разделение бэкенда и фронтенда позволяет легко масштабировать и поддерживать код.

Однако стоит помнить, что при таком подходе потребуется обеспечить коммуникацию между бэкендом и фронтендом, например, с помощью API. Также необходимо учитывать, что разработка на двух разных технологиях может потребовать от разработчиков дополнительных навыков и времени на согласование работ.

В целом, выбор использования C# для бэкенда и React для фронтенда зависит от конкретных требований проекта, команды разработчиков и их опыта. В некоторых случаях это сочетание может быть оптимальным решением, в других - нет. Важно анализировать все аспекты и принимать решение исходя из конкретной ситуации.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно