Попробовал, наконец, разработку на Blazor. Это такой фреймворк под .NET, который позволяет писать фронтенд на C#. Работает он двумя способами: либо собирает весь проект в WebAssembly, и бедный пользователь грузит себе мегабайтную dll, либо устанавливает клиент-серверное соединение через SignalR и шлёт клиенту информацию об обновлённых DOM-элементах.
Вот вторую то я и пробовал. Казалось бы — каждое нажатие кнопки требует отправить на сервер запрос и получить ответ. Никогда такого не было! Но субъективно разницы во времени отклика нет (потому что веб и так достаточно медленный, хаха).
Фронтенд-часть пишется очень похоже на JSX: вёрстка реактивно вперемешку с кодом. Когда-то я очень ругал React за такой подход, потому что каша. Но нетипизированный JS по-умолчанию каша, а здесь же по факту получается очень удобно: статический анализ не даёт тебе делать ошибки и писать ерунду.
Но приятный полноценный язык программирования вместо JavaScript это лишь вишенка на торте. Самое крутое — вся сила серверного кода с полноценной возможностью обращения к базе данных, шеринг моделей данных между сервером и клиентом, и, наконец, Dependency Injection любого серверного модуля в «клиент»! То есть вы не просто пишете одно приложение вместо двух, вы ещё и получаете отсутствие ошибок при каком-нибудь изменении моделей API, когда сервер стал отдавать не то, что ожидает клиент. Вам вообще теперь не нужен API, достаточно закодить нужную функцию на серваке и инжектировать её в нужный фронтенд-модуль.
Это супер удобно, супер быстро, супер устойчиво к ошибкам. Теперь не хочется возвращаться даже на вполне крутой Vue 3. Но, система пока новая, она не обросла решениями от комьюнити, а браузерный API всё равно придётся дергать через JavaScript Interop. Для совсем кайфа нужно подождать годик, поскольку развитие идёт довольно быстро. Например, там нет очень нужного в таком деле hot reload, но в .NET 6 он уже анонсирован, и вроде как есть в превью, а релиз в ноябре.
#dev
Luigi Di Maio (#IC): "Non ci sono se, ma o scuse da accampare. Abbiamo perso. Gli Italiani non hanno considerato abbastanza maturo e valido il nostro progetto politico".
@UltimoraPolitics
Новий графік руху: Укрзалізниця прискорила поїзди до Варшави
Прямий рейс №67/68 Київ — Варшава, що сполучає дві сусідні столиці, отримав у новому графіку 2025-2026 прискорення на більш ніж 2 години.
🕐 Тепер відправлення з Києва о 19:51 — прибуття до Варшави — о 09:43. Зворотно поїзд вирушає о 18:41 з Варшави, а прибуває до Києва о 09:49.
📌 14 грудня варшавський поїзд прибуватиме та вирушатиме і з головного вокзалу польської столиці: Варшави Центральної. Там можна зручно пересісти на громадський транспорт по місту.
У новому графіку також повністю оновлений поїзд №23/34 Київ — Холм — тепер ним можна найшвидше дістатися до Варшави з пересадкою.
🕐 Відправлення з Києва о 21:57 — у Холмі о 8:08. А вже о 8:38 з Холма відправляється #IC 2802 Gorski на Щецин через Варшаву на Познань. Прибуття до Варшави Центральної об 11:19.
Impegno Civico (#IC) di #DiMaio pubblica un sito web (https://www.tagliabollette.eu/) per calcolare il risparmio in bolletta con la proposta di copertura dell’80% del costo della stessa da parte dello Stato.
@UltimoraPolitics
#Italia#Elezioni2022
Luigi #DiMaio (#IC): "In vista della presentazione del progetto politico di domani posso dirvi il nome: è Impegno Civico e rappresenta un principio di responsabilità civica evocato ieri da Papa Francesco"
@UltimoraPolitics
#Elezioni2022 Domani in prima serata, alle 21.30 su Rai 1, speciale "Porta a Porta" con i principali leader dei partiti che partecipano a questa campagna elettorale. Ospiti di Bruno Vespa, nell'ordine: 📍 Luigi #DiMaio (#IC) 📍 Silvio #Berlusconi (#FI) 📍 Giorgia…
#Elezioni2022
Domani in prima serata, alle 21.30 su Rai 1, speciale "Porta a Porta" con i principali leader dei partiti che partecipano a questa campagna elettorale. Ospiti di Bruno Vespa, nell'ordine:
📍 Luigi #DiMaio (#IC)
📍 Silvio #Berlusconi (#FI)
📍 Giorgia #Meloni (#FdI)
📍 Giuseppe #Conte (#M5S)
📍 Carlo #Calenda (#Azione/#IV)
📍 Matteo #Salvini (#Lega)
📍 Enrico #Letta (#PD)
@UltimoraPolitics