Aplikácia v JavaFX vs ASP.NET/Micronaut

jano6

Aplikácia v JavaFX vs ASP.NET/Micronaut
« kdy: 02. 05. 2021, 21:45:15 »
Zdravím,

plánujem vytvoriť aplikáciu na export/import dát (bežné formáty XML, JSON, HTML, XLSX, PDF...). Niečo
pre bežného užívateľa Excelu, ktorý si potrebuje importovať dáta do tabuliek a niečo
vyexportovať. Výber jazyka som zúžil na C# a Javu, pretože obe platformy majú najprepracovanejšie
knižnice pre export/import dát. V Jave ma najviac zaujali Micronaut, JavaFX, v C# ASP.NET.
Všetky riešienia sú multiplatformové. Veľkou výhodou  je možnosť tvorby bináriek; v Jave (GraalVM)
je to trochu komplikovaniejšie, ale zdá sa, čo som testoval, že to ide. V C# je to malina.

ASP.NET ma zaujalo čistotou, kompaktnosťou a jednoduchosťou; je tam všetko, čo potrebujete.
Naopak mi tam chýba možnosť modulárneho vývoja, čo ma dosť prekvapilo. Ale keďže moja aplikácia
nebude rozsiahla, tak tam nevidím problém.

Micronaut je vylepšený a vyblýskaný Spring Boot. To by som asi zvolil pri rozsiahlejšom projekte.
Príde mi to podstatne viac komplexné, možno pre moje potreby overkill. (Ale ináč perfektné.)

 V JavaFX tvorba GUI je malina a pôžitok. Ide to ako po masle. (Webové riešenia sú podstatne
zložitejšie.) TableView komponent je určite tiež rýchlejší a prepracovanejší, než čokoľvek čo
existuje v JS. Podarilo sa  mi tiež vybuildovať binárku pomocou Gluon projektu, takto má aplikácia
výrazne nižšie pamäťové nároky a rýchlejší štart.

JavaFX bude bežať len na desktope, kým ASP.NET/Micronaut si zákazníci môžu spustiť
na desktope a tiež nasadiť na cloude, či u seba na intranete "on premises". Čo si myslíte, je to zásadná
výhoda ASP.NET/Micronaut riešenia oproti JavaFX? Sú potencionálni zákazníci oveľa
ochotnejší si zakúpiť aplikáciu, ktorá beží aj na webe?


Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #1 kdy: 02. 05. 2021, 22:03:01 »
1. Tak pokud to je do excelu, tak to mas nej udelat nejaky plugin, ne?
2. Koncipoval bych takovouto utilitu priparne jako command line tool, k tomu si pak muzes udelat GUI a je jedno v cem
3. Kdyz uz to bude cmd tool, vsadil bych se ze takova knihovna uz existuje v Pythonu.
4. Nevim k cemu ti bude micronaut, to je primarne na web
5. Kdyz uz to bude web, tak zase nepotrbujes graalvm.
6. V Jave nebo v .NETu, gui bude vosklivy bych rekl, lepsi mas cmd tool + pouzit native gui pro kazdou platformu na kterou to pojede.
« Poslední změna: 02. 05. 2021, 22:06:13 od registrovany123 »

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #2 kdy: 03. 05. 2021, 09:09:24 »
Pochybuju, že by si zákazníci něco sami instalovali někam do cloudu. Výhoda webového řešení je ta, že naopak nemusíte jako uživatel nic instalovat, prostě zadáte adresu do prohlížeče a je to. Pro vás jako pro vývojáře je výhoda v tom, že nemusíte podporovat různé verze na nejrůznějších systémech – prostě aplikaci instalujete na jeden svůj server (nebo cloud) a máte jistotu, že všichni mají nejnovější verzi s nejnovějšími opravami. Jednodušší je i případné zpeněžení – nemusíte řešit, že si ten software bude někdo kopírovat.

Výhodou nativní aplikace je to, že v ní lze pořád ještě naprogramovat komplexnější GUI, než na webu. Resp. ty rozdíly nejsou přímo v GUI, ale spíš v interakci s okolním prostředím. I když i v tom webové technologie mezery rychle dohání – už dávno můžete používat drag-and-drop, dnes můžete pracovat i se soubory na lokálním počítači, aplikace může fungovat offline. Každopádně naprogramovat pro desktop něco, co zatím nelze udělat webovými technologiemi, je také dost složité.

Dost také záleží na tom, jak má být aplikace interaktivní. Pokud by tam měl uživatel něco vyplňovat a editovat, neobstojí už dnes aplikace založená jen na serverovém řešení a budete potřebovat nějaký frontendový framework jako Vue, React, Svelte… Pak dává smysl použít na serveru Micronaut, ten je pro JSON backend jako dělaný.

jano6

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #3 kdy: 03. 05. 2021, 11:35:46 »
Myslím si, že Excel plugin je pre požiadavky aplikácie reštriktívny.

Python som zamietol kvôli nemožnosti vytvoriť binárku (binárku považujem za veľkú konkurečnú výhodu)
a horšiemu výberu knižníc. Napr. Python nemá poriadnu knižnicu na prácu s PDF súbormi, čož je
v obore import/export dát zásadná vec. Jediný jazyk ktorý sa približuje duu Java/C# v tejto oblasti
je zrejme Go; ten má čo som pozeral, veľmi slušnú výbavu.

O command-line tooloch som uvažoval ako o doplnku pre power userov.

Vytváraniu natívneho GUI pre 3+ platformi by som sa rád vyhol; to by bolo príliš veľké
bremeno.

Micronaut nie je len pre web, resp. microservices. Samotný lead developer hovorí vo
svojich prednáškach, že Micronaut je určený pre všetky typy aplikácií, ktoré majú
public static void main.

1. Tak pokud to je do excelu, tak to mas nej udelat nejaky plugin, ne?
2. Koncipoval bych takovouto utilitu priparne jako command line tool, k tomu si pak muzes udelat GUI a je jedno v cem
3. Kdyz uz to bude cmd tool, vsadil bych se ze takova knihovna uz existuje v Pythonu.
4. Nevim k cemu ti bude micronaut, to je primarne na web
5. Kdyz uz to bude web, tak zase nepotrbujes graalvm.
6. V Jave nebo v .NETu, gui bude vosklivy bych rekl, lepsi mas cmd tool + pouzit native gui pro kazdou platformu na kterou to pojede.

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #4 kdy: 03. 05. 2021, 11:51:58 »
Citace
Vytváraniu natívneho GUI pre 3+ platformi by som sa rád vyhol; to by bolo príliš veľké
bremeno.

Tak rikas ze to ma byt komercni, tak kdo si myslis ze si to jako koupi, kdyz to nebude vypadat poradne na jeho platforme?


jano6

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #5 kdy: 03. 05. 2021, 11:55:03 »

Väčšina zákazníkov určite nie, ale nájde sa zopár užívateľov, ktorý by si
to mohli sami inštalovať na VPS, Cloud atď. Alebo firma, ktorá má povedzme
5 ľudí, ktorí by s tým pracovali a admin im to nahodí na intranet.
V prípade buildu do bináriek je to pomerne triviálna záležitosť.
A práve to je moja hlavná otázka, či sa to kvôli tejto flexibilite Micronaut/ASP.NET
riešenia oplatí z obchodného hľadiska voči JavaFX desktopovej aplikácii.
Teda, či vývojár takto dokáže predať o zásadný počet licencií viac.

Čo sa týka SPA, uvažoval som nad Reactom, ten má najväčší výber komponent, napr.
spreadsheet. Zatiaľ však by som si vystačil len so spreadsheet komponentom
bez Reactu. Potrebujem načítanie do spreadsheetu, sorting, filtering,
cleaning dát a následný export. Časom by sa mohlo v prípade potreby migrovať
do Reactu.

Ináč, ja zatiaľ neuvažujem o centrálne hostovanej webovej aplikácii, ale o
možnej webovej aplikácii, ktorú si užívateľ stiahne ako binárku. Teda o takej
aplikácii, ktorá sa správa pre bežného užívateľa ako desktopová.


Pochybuju, že by si zákazníci něco sami instalovali někam do cloudu. Výhoda webového řešení je ta, že naopak nemusíte jako uživatel nic instalovat, prostě zadáte adresu do prohlížeče a je to. Pro vás jako pro vývojáře je výhoda v tom, že nemusíte podporovat různé verze na nejrůznějších systémech – prostě aplikaci instalujete na jeden svůj server (nebo cloud) a máte jistotu, že všichni mají nejnovější verzi s nejnovějšími opravami. Jednodušší je i případné zpeněžení – nemusíte řešit, že si ten software bude někdo kopírovat.

Výhodou nativní aplikace je to, že v ní lze pořád ještě naprogramovat komplexnější GUI, než na webu. Resp. ty rozdíly nejsou přímo v GUI, ale spíš v interakci s okolním prostředím. I když i v tom webové technologie mezery rychle dohání – už dávno můžete používat drag-and-drop, dnes můžete pracovat i se soubory na lokálním počítači, aplikace může fungovat offline. Každopádně naprogramovat pro desktop něco, co zatím nelze udělat webovými technologiemi, je také dost složité.

Dost také záleží na tom, jak má být aplikace interaktivní. Pokud by tam měl uživatel něco vyplňovat a editovat, neobstojí už dnes aplikace založená jen na serverovém řešení a budete potřebovat nějaký frontendový framework jako Vue, React, Svelte… Pak dává smysl použít na serveru Micronaut, ten je pro JSON backend jako dělaný.

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #6 kdy: 03. 05. 2021, 11:58:48 »
ASP.NET ma zaujalo čistotou, kompaktnosťou a jednoduchosťou; je tam všetko, čo potrebujete.
Naopak mi tam chýba možnosť modulárneho vývoja, čo ma dosť prekvapilo. Ale keďže moja aplikácia
nebude rozsiahla, tak tam nevidím problém.

ASP.NET od Core 3.0 podporuje modularny vyvoj - odporucam googlit Application parts.

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #7 kdy: 03. 05. 2021, 14:25:48 »
Väčšina zákazníkov určite nie, ale nájde sa zopár užívateľov, ktorý by si
to mohli sami inštalovať na VPS, Cloud atď. Alebo firma, ktorá má povedzme
5 ľudí, ktorí by s tým pracovali a admin im to nahodí na intranet.
V prípade buildu do bináriek je to pomerne triviálna záležitosť.
A práve to je moja hlavná otázka, či sa to kvôli tejto flexibilite Micronaut/ASP.NET
riešenia oplatí z obchodného hľadiska voči JavaFX desktopovej aplikácii.
Teda, či vývojár takto dokáže predať o zásadný počet licencií viac.
Že by si tu aplikaci někdo hostoval mi připadá dost nepravděpodobné. Znamená to režii, musí se o to starat nějaký správce, mít na to hardware. Pokud by to ve firmě se 100 zaměstnanci používalo 60, tak se to vyplatí. Ale já to chápu tak, že to ve firmě se 100 zaměstnanci budou používat 3 lidé. Představte si to, že ti tři lidé mají prosadit, aby jim interní IT začalo provozovat takovouhle aplikaci, aby na to dostali zdroje.

Ináč, ja zatiaľ neuvažujem o centrálne hostovanej webovej aplikácii, ale o
možnej webovej aplikácii, ktorú si užívateľ stiahne ako binárku. Teda o takej
aplikácii, ktorá sa správa pre bežného užívateľa ako desktopová.
V tom případě je jediná reálná možnost použít Electron. A to znamená i backendovou část psát v JavaScriptu. Že by si uživatel zprovozňoval svůj vlastní webserver, na to zapomeňte – to už by víc uživatelsky přívětivá byla ta command line aplikace.

Re:Aplikácia v JavaFX vs ASP.NET/Micronaut
« Odpověď #8 kdy: 03. 05. 2021, 14:54:30 »
Uživatel podle mě ocení tu hostovanou aplikaci + poplatek za její použití. Pokud to bude kvalitní (= mraky práce) tak to má podle mě šanci.

Pokud by šlo o desktopovou aplikaci, tak dnes už skoro nic jako nativní look and feel neexistuje, protože i Windows platforma je neuvěřitelně roztříštěná. V JavaFX se vyvíjí dobře a vypadá to přijatelně, ve výchozím skinu to vypadá podobně jako Qt aplikace. Já tvrdím, že Electron a JavaFX jsou přibližně srovnatelná řešení, v praxi si obě varianty ponesou svoje runtime a velikost a nároky budou cca podobné.

Se samotnou multiplatformností je určitá práce tak jako tak - minimálně testování, build.

Commandline varianta je také ui, je to commandline ui. Takže základní funkčnost by měla být sdílena jako knihovna + k tomu to ui (webové, desktopové, commandline...).