Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
nickname01
Člen
Avatar
nickname01:23.6.2018 16:03

Líbí se mi, že HTML + CSS + JS lze použít na tolika platformách. C# je mi ale mnohem simpatičtější než JS, umím ho lépe a má užitečné funkce, které JS nemá. Jak ho tedy použít na místě JS?

Zkusil jsem: Najít jak zkompilovat C# do JS. Našel jsem Bridge.js, tam se mi ale nelíbilo, že “HTML objekty” se vkládají pomocí JS, což je (100 x velmi) nesémantické, čímžpádem to bude mít v případě použití na webu nízké pozice mezi výsledky, pokud to tedy vůbec mezi výsledky bude (což asi ne).

Též jsem našel Edge.js, kde si ale nejsem jistý, zda to může běžet i na mobilech. Na jejich (asi) ofiko webu psali podpora pro Windows, Mac OS a Linux, o mobilech ani zmínka. Pakliže to podporuje i mobily, nemám problém Edge.js použít. Líbilo se mi na něm, že umožňuje i JS volat ze C#.

Našel jsem i JSIL, který kompiluje IL do JS. Tady si ale nejsem jist sémantikou, obávám se, že JSIL funguje v oblasti HTML stejně jako Bridge.js

Chci docílit: Abych to shrnul, požaduji:

  • Sémantiku na webu
  • Multiplatformnost jako u JS
  • Ideálně soužití s JS a možnost použít JS knihovny/frameworky v C#, není to ale nutnost.
Editováno 23.6.2018 16:04
 
Odpovědět
23.6.2018 16:03
Avatar
Lukáš Cach
Člen
Avatar
Lukáš Cach:23.6.2018 16:19

Zkus se podívat na Blazor.

 
Nahoru Odpovědět
23.6.2018 16:19
Avatar
nickname01
Člen
Avatar
nickname01:23.6.2018 16:40

Jo a ještě jsem zapomněl zmínit že bych chtěl, aby ta kompilace do js mohla být součást nějakého IDE/editoru, abych nemusel pořád dokola kompilovat do JS a výsledek pokaždé vkládat do IDE/editoru

 
Nahoru Odpovědět
23.6.2018 16:40
Avatar
nickname01
Člen
Avatar
nickname01:23.6.2018 17:00

Jen ještě upřesním svůj divně napsaný dotaz: Chci dělat frontend pomocí HTML, CSS a případně JS a backend pomocí C# s tím, že výsledek bude stejně nebo více multiplatfomní jako/než JS. Ta kompilace C# do JS byl jen nápad, jak by to mohlo jít. Tou “multiplatformnosti jako u JS” myslím možnost vytvářet:

  • Nativní apps pro Android, iOS, Windows Mobile a Firefox OS
  • Nativní apps pro Windows, Mac OS a Linux
  • Apps běžící v prohlížeči
 
Nahoru Odpovědět
23.6.2018 17:00
Avatar
Lako
Člen
Avatar
Odpovídá na nickname01
Lako:23.6.2018 17:16

Hm. Jestli chceš dělat frontend v HTML,CSS, JS a zbytek v c#, tak jdi do ASP.NET Core - to je přesně skladba kterou hledáš. Potom lze "nahradit" js s pomocí C# přes WebAssembly https://github.com/aspnet/Blazor. Je to ale projekt v rané fázi. Přes web assembly se dají vytvářet klientské aplikace ve spoustě jiných jazycích... Appky pro android/iOS /Windows 10 se dělají poměrně často v Xamarinu, kde se používá C#. Firefox OS je mrtvola, tím bych se nzabýval. Aplikace pro Mac, Windows Linux můžeš dělat postavené nad .NET core. Existuje například https://github.com/…aUI/Avalonia , což je knihovna pro vytváření multiplatformních UI. Apps běžící v prohlížeči za pomocí c# se dělali v silverlightu, ale to je pasé. Dneska buď nějak experimentálně ten Blazor nebo jiné kompilace do js, ale upřímně si myslím, že doba C# na klinentské straně teprve zraje.

Avšak nepředstavuj si to tak, že napíšeš jeden kód a pofrčí ti to na všech strojích.

 
Nahoru Odpovědět
23.6.2018 17:16
Avatar
nickname01
Člen
Avatar
Odpovídá na Lako
nickname01:23.6.2018 18:57

Avšak nepředstavuj si to tak, že napíšeš jeden kód a pofrčí ti to na všech strojích.

To si nepředstavuju, no.

Jinak jasně, že mohu použít jiné technologie, de o to, že dělat frontend v HTML a CSS umím. Takhle bych se musel učit ten Xamarin a třeba WPF

Jinak díky za odpověď

Editováno 23.6.2018 18:57
 
Nahoru Odpovědět
23.6.2018 18:57
Avatar
nickname01
Člen
Avatar
nickname01:23.6.2018 18:59

A jak je to s Kotlinem/Dartem. Vyplatí se je učit kvůli následné kompilaci do JS?

 
Nahoru Odpovědět
23.6.2018 18:59
Avatar
Odpovídá na nickname01
Neaktivní uživatel:23.6.2018 19:06

Xamarin se jako ještě neučíš, nebo jsi ještě úplně na začátku? Podle <a href="https:/­/www.itnetwor­k.cz/csharp/dis­kuzni-forum-c-sharp-visual-studio-net-xna/kde-byste-mi-doporucili-ucit-se-xamarin--5a85c2e32deab">to­hohle</a> jsem myslel, že už něco umíš :-).
A WPF tak těžké není a hodit se ti určitě bude.

Nahoru Odpovědět
23.6.2018 19:06
Neaktivní uživatelský účet
Avatar
nickname01
Člen
Avatar
Odpovídá na Neaktivní uživatel
nickname01:23.6.2018 19:15

Neučím :-D V té diskuzi jsem pouze uvažoval o učení se Xamarinu, zjišťoval jsem, jestli jsou nějaké přijatelné kurzy zadarmo.

 
Nahoru Odpovědět
23.6.2018 19:15
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na nickname01
gcx11:23.6.2018 20:08

Kotlin se vyplatí učit, pokud chceš dělat něco pro JVM. Kompilace do JS funguje dobře, ale setup toho je složitější a návodů k tomu je dost málo. Navíc multiplatformní projekty jsou zatím v experimentální fázi, celé se to ještě dolaďuje. Takže použít se to dá, ale není to úplně "production ready"

Příklad: https://github.com/…ultiplatform

 
Nahoru Odpovědět
23.6.2018 20:08
Avatar
nickname01
Člen
Avatar
Odpovídá na gcx11
nickname01:23.6.2018 20:13

A co Dart? Honza Bittner

Editováno 23.6.2018 20:14
 
Nahoru Odpovědět
23.6.2018 20:13
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na nickname01
Petr Šťastný:24.6.2018 0:08

Bridge.Net

Můžu doporučit. Funguje to tak, že si to stáhneš do Visual Studia, napíšeš kód v C# a ono to vyplivne klasický javascript. Funguje to úplně jako klasický javascript, můžeš s tím dělat úplně to stejný, ale píšeš v C# - se vším všudy, včetně třeba LINQu. Funguje to všude, můžeš z toho volat klasický javascript (včetně js knihoven), můžeš třeba i pracovat s canvasem - cokoliv. A na SEO to nemá negativní vliv, protože to je v podstatě jenom klasický javascript. Vážně to vyzkoušej.

 
Nahoru Odpovědět
24.6.2018 0:08
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na nickname01
Petr Šťastný:24.6.2018 0:22

Ještě poznámka: mluvil jsi o Bridge.js, nemyslel jsi tím Bridge.net? Jestli ano, tak html objekty se nemusejí vkládat pomocí js - normálně napíšeš web v html/css (a třeba i php nebo asp) a existující objekty upravuješ nebo můžeš přidávat nové, ale rozhodně to není tak, že bys byl omezený pouze na js. Prostě to "zkonvertuje" C# do JS, funguje to úplně stejně a dokáže to stejný věci jako nativní JS kód.

Editováno 24.6.2018 0:23
 
Nahoru Odpovědět
24.6.2018 0:22
Avatar
nickname01
Člen
Avatar
Odpovídá na Petr Šťastný
nickname01:24.6.2018 4:19

Mluvil jsem o Bridge.net, jen jsem spletl ten název. Jinak vypadá to dobře, díky.

 
Nahoru Odpovědět
24.6.2018 4:19
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na nickname01
vajkuba1234:24.6.2018 21:18

Zkus kouknout na cesky framework www.dotvvm.com od kluku z Riganti.

Editováno 24.6.2018 21:19
Nahoru Odpovědět
24.6.2018 21:18
No hope, no future, JUST WAR!
Avatar
nickname01
Člen
Avatar
Odpovídá na Petr Šťastný
nickname01:27.6.2018 14:06

Je tam možnost volat JS objekty ze C#?

Editováno 27.6.2018 14:09
 
Nahoru Odpovědět
27.6.2018 14:06
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na nickname01
Petr Šťastný:27.6.2018 14:49

Ano. Javascript můžeš volat přímo pomocí Script.Call(funkce, parametry) - třeba Script.Call("a­lert", "Hello World"); -> v javascriptu alert("Hello World")

Pokud chceš získat objekt nebo nějakou hodnotu z JS, uděláš tohle: var user = Script.Call<dy­namic>("getUser"); (getUser je funkce v javascriptu, která něco vrací, třeba objekt uživatele). (místo dynamic můžeš použít třeba i normální objekt, dynamic použij když nevíš nebo nemáš to, co JS vrací, deklarováno v kódu)

https://github.com/…l-javascript

Editováno 27.6.2018 14:51
 
Nahoru Odpovědět
27.6.2018 14:49
Avatar
nickname01
Člen
Avatar
Odpovídá na Petr Šťastný
nickname01:27.6.2018 15:03

Super. Díky.

 
Nahoru Odpovědět
27.6.2018 15:03
Avatar
nickname01
Člen
Avatar
Odpovídá na Petr Šťastný
nickname01:27.6.2018 16:06

A jak je to kompatibilní s .NET frameworkem? Mám na mysli jen tu "logickou vrstvu", samozřejmě ne WPF nebo WinForms :-)

 
Nahoru Odpovědět
27.6.2018 16:06
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na nickname01
Petr Šťastný:27.6.2018 19:54

Výborně, nikdy jsem s tím neměl problém. Zvládá to generiku, oop, dokonce i LINQ.

 
Nahoru Odpovědět
27.6.2018 19:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.