Náhrada C# něčím multiplatformním

Fbi

Náhrada C# něčím multiplatformním
« kdy: 25. 05. 2016, 22:38:33 »
Zdravím.

Zdědil jsem určitou aplikaci, kde běží několik win strojů, které komunikují s hlavním win strojem.
Všechny aplikace jsou napsány v C# - jsou to vícevlánkové aplikace (Běží hlavní server, k tomu se občas spouštějí některá další vlákna. Šlo by to však napsat i jinak, řídit to pouze nějakými eventy v jednom vlákně...), které používají TCPClient, SerialPort, timery, atd. Na hlavním stroji pak běží nějaká SQL databáze, to však není podmínkou.

Aplikace se 99% času flákají, po přijetí SerialPort dat proběhne nějaká TCP komunikace s hlavním PC, který posílá dotazy do DB a vrací odpovědi tazateli. Tazatel pak posílá data po SerialPort a tak pořád dokola. Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi? Napadá mě Python. Ale nevím, jestli je použití výše zmíněných komponent tak jednoduché, jako v .NET.

Díky


Radek Miček

Re:Náhrada C# něčím multiplatformním
« Odpověď #1 kdy: 25. 05. 2016, 23:07:47 »
Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi?

S vyjmenovanými platformami C# funguje - viz .NET Core nebo Mono.

Franta <xkucf03/>

Re:Náhrada C# něčím multiplatformním
« Odpověď #2 kdy: 26. 05. 2016, 00:14:10 »
Java

32bit

Re:Náhrada C# něčím multiplatformním
« Odpověď #3 kdy: 26. 05. 2016, 05:44:47 »
Jde o to co vse to ma umet ma vyjit .net core ktere je multiplatformni nicmene minimalne ve verzi 1.0 to bude hodne osekane ale treba komunikaci se serial portem ma obsahovat

čumil

Re:Náhrada C# něčím multiplatformním
« Odpověď #4 kdy: 26. 05. 2016, 06:22:31 »
Java

Sice ji nemám rád ale java je to pravé ořechové.


Re:Náhrada C# něčím multiplatformním
« Odpověď #5 kdy: 26. 05. 2016, 07:03:35 »
Java + Netty. Netty umí komunikovat po TCP/IP i po sériovém portu a má dobře navržený model postavený na událostech.

mimi

Re:Náhrada C# něčím multiplatformním
« Odpověď #6 kdy: 26. 05. 2016, 07:21:15 »
C# .. je taky multiplatformni ...

youda

Re:Náhrada C# něčím multiplatformním
« Odpověď #7 kdy: 26. 05. 2016, 07:30:15 »
Zdravím.

Zdědil jsem určitou aplikaci, kde běží několik win strojů, které komunikují s hlavním win strojem.
Všechny aplikace jsou napsány v C# - jsou to vícevlánkové aplikace (Běží hlavní server, k tomu se občas spouštějí některá další vlákna. Šlo by to však napsat i jinak, řídit to pouze nějakými eventy v jednom vlákně...), které používají TCPClient, SerialPort, timery, atd. Na hlavním stroji pak běží nějaká SQL databáze, to však není podmínkou.

Aplikace se 99% času flákají, po přijetí SerialPort dat proběhne nějaká TCP komunikace s hlavním PC, který posílá dotazy do DB a vrací odpovědi tazateli. Tazatel pak posílá data po SerialPort a tak pořád dokola. Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

Šel by tedy C# nahradit něčím, co by se dalo rozběhat jak na PC s Win, tak s Linuxem, tak například na RPi? Napadá mě Python. Ale nevím, jestli je použití výše zmíněných komponent tak jednoduché, jako v .NET.

Díky

Na to se vykasli.

Nahradou C# je samozrejme Java. C# neni nic jineho nez zamerne nekompatibilni kopie Javy, kterou MS vyrobil v dobach sveho obchodniho modelu:
- opajcuj poizivanou technologii a proved zamerne nekompatibilni klon
- klon protlac silou sveho monopolu
- rejzuj

Ale C# prisel na sklonku teto ery a uz se moc neuchytil.

C# a Java si jsou vicemene rovnocenne, C# mel az do prichodu Java FX navrch v oblasti desktop aplikaci (Java AWT a Swing je otres), naopak Java je multiplaformni a me mnohem lepsi set frameworku - pro MS neexistuje nic jako Apache Foundation a jeji luxusni softy, resp pouze jenom stin a omezene porty Javovych verzi.

Pokud ta aplikace nyni funguje a neni potreba ji nejak modifikovat, tak do toho rozhodne nehrab.
MS SW licence stoji par supu.

Je zbytecne menit existujici funkcni SW kvuli par supum za wokenni licence

fedorac

Re:Náhrada C# něčím multiplatformním
« Odpověď #8 kdy: 26. 05. 2016, 07:36:10 »
samozrejme: golang.org
(akorat stary rpi ma tusim soft float,tam nevim)

youda

Re:Náhrada C# něčím multiplatformním
« Odpověď #9 kdy: 26. 05. 2016, 07:38:34 »
C# .. je taky multiplatformni ...

Jojo, multiplatformni, akorat jenom na jedne platforme...

Mono podporuje subset funkcionalit .NET (treba vyvoj Windows Forms byl zastaven), naopak zavadi svoje nekompatibilni technologie, treba Moonlight, ktery je obdobou Silverlight, ktery MS zrusil nez nahrady.

S .NET je zbytecne ztracet cas. Proc delat s zamerne nekompatibilnim klonem, kdyz muzu delat primo s originalem.

codemonkey

Re:Náhrada C# něčím multiplatformním
« Odpověď #10 kdy: 26. 05. 2016, 09:04:29 »
Citace
S .NET je zbytecne ztracet cas. Proc delat s zamerne nekompatibilnim klonem, kdyz muzu delat primo s originalem.

haha, vdycky se dobre bavim jak Java evangelisti pisou zamerne nesmysly o vsech ostatnich jazycich/platformach.
Java je do ted pomaly a zastaraly jazyk. Ani neumi vytvorit typovy seznam, jen na oko do jazyka zavedla generiku a na pozadi je to kolekce objektu. Kdyby neprisel Android tak je Java uz davno mrtva. I tak zpusobuje na Androidu velke vykonnostni a pametove problemy na mobilech. Chtel bych opravdu vedet, kdo ma rad Javu. Mac lidi, kde odsuzujou uplne Garbage collectory? Tezko, Windows lidi, kde Java aplikace jsou pomale obludy s hnusnym UI? Tezko, Linux lidi? Podobne jako Mac lidi by se ji nejradeji zbavili a pouzili neco kompilovaneho do nativniho kodu.

Java je dobra akorat tak na pomale business sracky, kterych je vsude plno.
V dnesni dobe vyhrava JavaScript. V budoucnosti to bude uplne jiny jazyk.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Náhrada C# něčím multiplatformním
« Odpověď #11 kdy: 26. 05. 2016, 09:31:19 »
Aha. Ja Javu nemam rad, ale uz si predstavuji, jak tazatel pise tu aplikaci znovu v JavaScriptu a jak to pak provozuji v browseru ke vseobecnemu nadseni. Tak to aby snad preventivne zacal brat Prozac.

TVL

Re:Náhrada C# něčím multiplatformním
« Odpověď #12 kdy: 26. 05. 2016, 09:35:01 »
Takže je poněkud zbytečné stavět pro takovouto ptákovinu kompletní PC, platit licenci Win a tak dále...

A kolik těch strojů plánujete? Jestli desítky, tak proboha nic neřeš a nech tam PC s win a odladěnou aplikaci v .NETu. Jestli stovky nebo tisíce, tak je to potřeba analyzovat.
Něco co přečte data na RS232 a pošle je někam dál přes TCP/IP (a naopak) se dá postavit na ledasjakém levném ARM.
Ale něco na čem poběží databáze - hmm - tady bude hodně záležet jak velká databáze, jak rychlé odezvy jsou požadované. Tady se může stát, že PCčko bude nejlevnější řešení i při tisících nasazení.

Ale proč mám pocit, že plánuješ jeden kus (tedy jeden nový server a několik RS232 stanic) nebo max. jednotky toho zařízení a tvoje otázka je tedy zcela nesmyslná?

pistelak

Re:Náhrada C# něčím multiplatformním
« Odpověď #13 kdy: 26. 05. 2016, 09:58:09 »

pistelak

Re:Náhrada C# něčím multiplatformním
« Odpověď #14 kdy: 26. 05. 2016, 09:58:58 »
Java

Sice ji nemám rád ale java je to pravé ořechové.

od kdy ?