Natív mobilos fejlesztésre is alkalmassá vált a Microsoft Blazor
2020-04-26T22:17:59+02:00
2020-04-30T08:30:17+02:00
2022-07-20T15:36:51+02:00
  • Bár az már third-party, azért ilyen létezik Xamarin.Forms hoz is: ReactiveUI
    Mutasd a teljes hozzászólást!
  • nincs szétválasztva a View meg a logika

    Nem kényszerít, de a lehetőséget megadja.

    Ugye nem kötelező a @code {...} blokkba és a html részbe (valójában szabadon bővíthető XML, ami csak webes megjelenéshez kell hogy a html elemeket tartalmazza) belekeverni a ViewCode részbe illő kódokat.

    Ugye a @code {...}-ba beinjektálható a ViewModel class, ami már ugyanolyan különálló, külön tesztelhető és újrafelhasználható lehet.

    Igazából a blazor file arra ad lehetőséget, hogy gyorsabban lehessen és jobban átláthatóan az adatkötéseket és eseményeket behuzalozni. Az események lekezelését (pl. gombnyomás hatása viewmodel state-re) sem kell olyan nyakatekerten megoldani, mint az XAML esetén, de csak a kezdők teszik a @code {...} blokkba ezt a kódot, mehet az nyugodtan a helyére a VM osztályba.

    És akkor a komponensbe ágyazott komponensek gyártásának egyszerüségét nem említtem :)
    Mutasd a teljes hozzászólást!
  • Jaaa, így érthető, köszi.
    A legkevésbé sem értek a Blazorhöz, nem tudtam, hogy így lehet konfigurálgatni.
    Remélhetőleg akkor a base layout is megoldható valamilyen értelmes módon.
    Mutasd a teljes hozzászólást!
  • Ez üzleti stratégiának tűnik.

    Ahogy a JS befurakodik mindenhová (pl. asztali kódokba is) így a webes blazor jelenlétből (aminek szép jövőt terveznek) szeretnének terjeszkedni.

    Ha van kész Blazor kódod, az könnyedén átvihető legyen mobilra és terveznek asztali alklamazást is, ami Blazor alapú.

    Hirtelenjében a szabad és végtelenül egyszerű Blazor komponens építés lehetővé teszi könnyedén, hogy már most olyan komponenseket rakjon össze valaki magának, ami weben <p></p>-t tartalmaz, de mobilon <label />-t.

    Vagyis a Blazor kódjában valaki nem <StackLayout>-ot vagy <div>-et ír, hanem <MyContainer>-t, ami mobilon a stacklayoutot tartalmazza weben meg egy div-et. Így egyszerűen a két projectjébe más-más komponen forrást/libet fordítva azonnal forrás szinten kompatibilis felületeket tud alkotni, ami mindkét környezetre natív elemekké fordul.
    Nem lesz pixelazonos, de pont működés azonos maradhat.
    Mutasd a teljes hozzászólást!
  • Ha jól látom a sample-ket, ez nem böngészőben fut, hanem razor módban buzergálhatod a XAML fájlokat, majd pedig lefordul, mint egy normális Xamarin.Forms app, szóval tényleg natív (iOS-en kötelező jelleggel van AOT compilation, Droidon opcionális)

    Csak éppen épp a Sample-öket elnézve adódik a kérdés, hogy mivel is jobb ez, mint a Xamarin Forms?!

    Tökéletesen ugyanaz a kód, csak éppen többé nincs szétválasztva a View meg a logika
    Az első példa amire rányomtam

    Ha ez egy PoC, vagy egy gyakornoksrác ujjgyakorlata, akkor oké. De amúgy annyi értelmét látom, mint egy JITelő Brainfuck interpreternek.
    Mutasd a teljes hozzászólást!
  • Az XAML néha ágyú verébre. Ha ki kell tenni három edit mezőt, két üzenet label-t és egy gombot, akkor arra bőven elég egy sima, natív felületleírás, minden extra nélkül.
    Egy egyszerűbb felület leírás.
    A Blazor meg az, egy egyszerű felületleíró nagy szabadságfokkal.
    Nézd meg a működését, semmi köze a html-hez vagy a web konténerhez.
    A felület leíró elemeket, a bele vegyített C# kóddal egy osztályba fordítja. Semmi nem marad a html-ből, csak writeline sorok, amik az "outputba" írják a html-t (a bele vegyített C# módosulásokkal), mint a DOM tartalmát.
    A technika a lényeg, valóban kicsiny módosítás kell csak és ugyanat a módszertan nem DOM elemeket generál (writeline függvényhívásokkal), hanem natív grafikai elemeket (azok függvényeinek hívásával) és azokat töltögeti,

    Ezért változott a <p>..</p> <label..../>-re, mert a leíró file maradt XML, ami azonban a natív label tartalmát határozza meg.
    De az XAML-tól eltérően itt a Blazor féle kevert C# és XML elemek módszertana működik.
    Mutasd a teljes hozzászólást!
  • Azért a html és az xaml elég nagy kettő, és abban sem vagyok biztos, hogy a databinding hasonlóan műxik a blazorben. A sima razoros asp.net MVC mindenesetre eléggé más. Aztán az is kérdés, hogy mennyire tekinthető natívnak egy olyan cucc ami web browserben futkározik, még ha C#-ban is írtad webassemblyvel. Ez azért nem egészen ugyanaz, mint egy xamarin ami droidos bytekódra fordít és natív kontrollokat használ minden platformon.
    Mutasd a teljes hozzászólást!
  • Kicsit ránéztem.
    Ha van egy Blazor weblapja az embernek, akkor nem csak a háttér könyvtárait oszthatja meg (pl. EF, üzleti logika, Model), hiszen azt eddig is megtehettük a Xamarinnal, de a Megjelenítésben (View)  szereplő kód (ViewModel) is változatlan maradhat a validálással és a view manipulálásával (pl. kötelező, látható, stb elemek) csupán a közvetlen megjelenítési réteget kell lecserélni, de azt is nagy "automatizmussal", pl. a <p>@content</p> helyett <label content=@content /> megadással (nem garantált a szintaxis, hasból írtam, de az elv azonos)

    Szóval van benne fantázia.
    Mutasd a teljes hozzászólást!
abcd