Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

Diskuze: Začátečník - Multiplatformní aplikace v C# (Windows, MacOS, Linux)

C# .NET .NET (C# a Visual Basic) Začátečník - Multiplatformní aplikace v C# (Windows, MacOS, Linux) American English version English version

Aktivity (3)
Avatar
Bart
Člen
Avatar
Bart:31. července 18:55

Ahoj,

jsem úplný začátečník v programování (alespoň s kompilovanými jazyky). Začínám s C#.

Podle všeho je to velice vhodný programovací jazyk pro úplné začátečníky (chci kompilovaný), případně alternativa Java. Narazil jsem na to zde na portále, všude jiné na internetu, v diskusích, článcích i od kamarádů, kteří se programování věnují, případně kamarádů kamarádů... :).

Za programování se určitě asi moc nedá považovat HTML, CSS, XML, které ovládám docela dobře. Mám nějaké menší základy PHP (dost jsem toho zapomněl, takže si připadám, že nic nevím). A dobře se orientuji ve WordPress a Joomla!.

Nevím jak pořádně začít. Mám sérii knih věnované C#. Jde o knihu od Pavel Bory - C# bez předchozích znalostí. Dále kompletní sérii učebnic od Radek Vystavěl - Moderní programovaní (.NET/C#).

Knihy mám už 3/4 roku. Z důvodu velkého shonu a povinnosti, do toho školy, kterou dělám dálkově jsem se k tomu dostal až teď. Pomaličku se prokousávám principy a ještě pomaleji literaturou.

Rád bych začal na nějakém menším projektu domácím / osobním projektu (ale nevím nevím, na kterém bych se učil principy programování, možnosti jazyka a ovládání Microsoft Visual Studio 2017 Enterprise (mám od školy zdarma :)).

Podotýkám, k programování mě nikdo nenutí, ani zaměstnavatel ani škola. Je to moje nadšení a iniciativa. Rád bych se naučil jeden programovací jazyk dokonale (tedy asi C#) a pak na tom všem vědění stavěl dál (a naučil se další jazyk, třeba Python nebo Java).

Pro začátek bych chtěl si napsat multiplatformní kalkulačku pro Windows, MacOS, Linux s nějakým hezkým a stejným UI pro všechny. Nevím vůbec jak vygenerovat dmg pro MacOS či rpm/deb pro Linux (potíž je s tím, že pro Linux aplikace jsem nic nenašel). Pro MacOS se zdá, že to problém nebude.

Narazil jsem tu na velice krátký článek o Mono... Bohužel z něho nejsem schopen se nějak odpíchnout.

Prosím o rady.

Děkuji a nezlobte, možná to jsou hloupé dotazy. Děkuji za pochopení a vysvětlení.

Hezký den,

Bart

Editováno 31. července 18:56
 
Odpovědět 31. července 18:55
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Bart
vajkuba1234:31. července 23:35

Zkus to postavit na ".net core" a klidne zacni tou kalkulackou pro Windows. Pak si treba napis dalsi mensi appku. Az si pak projdes OOP tak si zkus takovou mensi domaci (konzolovou knihovnu), taky klidne pro Windows, a az se do toho trochu dostanes, zacni vymymslet dalsi platformy atd. Ted se do toho, dle meho nazoru, zbytecne akorat zamotas...

Nahoru Odpovědět  +1 31. července 23:35
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
David Klouček:1. srpna 7:41

.NET Core oficiálně nepodporuje žádný GUI. A budoucnost JavaFX je asi trochu nejistá https://jonathangiles.net/…e-on-javafx/

 
Nahoru Odpovědět  +1 1. srpna 7:41
Avatar
Bart
Člen
Avatar
Bart:1. srpna 13:21

Děkuji Vám za odpovědi.

Tak jinak se zeptám. Jaké UI frameworky jsou pro Windows / či Android dostupné a jaké jsou možnosti?

Podle wiki jich není moc :(.

Podle vzhledu se mi líbí Qt Framework, ale lze je zprovoznit pomocí bindingu? Co si pod tím představit?

Dá se C# při vývoji na platformě .NET "míchat" s jinými jazyky? Třeba JavaScript či Python.

Děkuji

 
Nahoru Odpovědět 1. srpna 13:21
Avatar
Odpovídá na Bart
Radek Chalupa:1. srpna 20:51

pokud jde o to "míchání", tak když pominu visual basic (učí se ho ještě vůbec někdo??) tak ideální doplněk je C++/CLI, především pro vytváření výkonných knihoven tříd, které si pak zavoláš z GUI aplikace naklikané v C#.

 
Nahoru Odpovědět  +1 1. srpna 20:51
Avatar
Bart
Člen
Avatar
Bart:1. srpna 21:02

Díky. Popiš mě to prosím blíže. Docela mě to zaujalo.
Já jako neprogramátor se do toho postupně snažím dostat. A udělat si přehled.

Nejlepší je to podat formou takovou, jako bys to vyprávěl dědovi :D - aspoň tak se mi to v IT osvědčilo. V IT se pohybuji, ale programování fakt zatím nerozumím.

 
Nahoru Odpovědět 1. srpna 21:02
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na David Klouček
Jan Vargovský:1. srpna 21:32

Neoficiálně je pár hezkých UI knihoven pro .net core (resp. některé dokonce .net standard). V oficiální roadmapě .net core je zahrnuta konverze wf, wpf atd. ve verzi 3.0, nějaké datum bylo tuším do konce roku.

 
Nahoru Odpovědět  +1 1. srpna 21:32
Avatar
Odpovídá na Jan Vargovský
David Klouček:2. srpna 7:26

Sice WPF a WF budou součástí .NET Core, ale nebudou multiplatformní.

 
Nahoru Odpovědět  +2 2. srpna 7:26
Avatar
Odpovídá na David Klouček
David Klouček:2. srpna 12:23

https://blogs.msdn.microsoft.com/…pplications/

To je právě ten fail, dokud MS neudělá oficiální multiplatformní GUI, nebude .NET Core plnohodnotný.

 
Nahoru Odpovědět  +1 2. srpna 12:23
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Luboš Satik Běhounek:2. srpna 13:06

WF C# aplikace zkompilovaná v VS mi někde před 5 rokama běhala v Ubuntu aniž bych musel cokoliv měnit, tak bych čekal, že .NET aplikace už bude dneska Linux umět spustit bez nějakých kejklí jen poklepáním na exáč, jak je to na macOS netuším, tam jsem to jsem nezkoušel.

Nahoru Odpovědět  +1 2. srpna 13:06
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:4. srpna 11:33

Tady jsem našel zajímavý instalátor : https://installbuilder.bitrock.com/

 
Nahoru Odpovědět 4. srpna 11:33
Avatar
Bart
Člen
Avatar
Bart:4. srpna 12:03

Když se tak dívám a testuji tuto appku, tak napsat instalátor je stejná věda jako programování samotné...Docela "těžký". Promiňte, trochu předbíhám, rád testuji appky a dost mě to zajímá - pro budoucí "použití".

Prosím Vás, jaké multiplatoformní GUI frameworky je možné použít pro projekt napsaný v C# / .NET Framework (tedy ne .NET Core).

Jaký je rozdíl mezi .NET Frameworkem a .NET Core? Já to zjednodušeně pochopil tak, že .NET Core je určený především pro "webové aplikace", jestli se nepletu. Docela by mě zajímalo, jestli se vůbec někdy pro .NET Core objeví nějaký GUI Framework.

 
Nahoru Odpovědět 4. srpna 12:03
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Bart
David Čápka:4. srpna 14:45

Vždyť se to tu řešilo, proč se ptáš znovu na to samé? Core nemá a vypadá to, že nebude mít multiplatformní GUI a .NET také nemá multiplatformní GUI. To znamená, že pokud chceš dělat multiplatformní GUI, je výhodnější použít jiný programovací jazyk, než "hackovat" C# a pak to postavit na nějaké knihovně třetí strany, která tu za rok již nemusí být. Pokud máš rád Linux, tak vyvíjet v C# nedává valný smysl, i když ti tu pár lidí napíše že si pro to něco přeložili, když začneš dělat něco vážnějšího, zjistíš, že to úplně tak stejné není.

Tvé možnosti jsou:

  • Začít dělat v něčem jiném, třeba v Javě nebo v Kotlin, případně Pythonu
  • Dělat webové aplikace místo desktopových, tam je pak C# opravdu multiplatformní
Nahoru Odpovědět  +1 4. srpna 14:45
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na David Čápka
Ondřej Štorc:4. srpna 15:13

Jak už říkal Jan Vargovsky, tak UI je v plánu ve verzi 3. https://blogs.msdn.microsoft.com/…pplications/

Nahoru Odpovědět 4. srpna 15:13
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Ondřej Štorc
David Čápka:4. srpna 16:32

Proč nečtete ty příspěvky předtím? Podívej se na ten obrázek na odkazu co jsi právě poslal, zejména na text "Windows-only".

Nahoru Odpovědět 4. srpna 16:32
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Bart
Luboš Satik Běhounek:5. srpna 0:08

Pokud máš rád Linux, tak vyvíjet v C# nedává valný smysl, i když ti tu pár lidí napíše že si pro to něco přeložili,

C# i s GUI je uplne v pohode multiplatformni, mono a WF fungujou celkem v pohode na Linuxu i MacOs. Proc by mel nekdo nesmyslne prechazet na jinej jazyk a jeste k tomu treba na min user-friendly Javu?

když začneš dělat něco vážnějšího, zjistíš, že to úplně tak stejné není.

co treba presne mas na mysli?

Nahoru Odpovědět 5. srpna 0:08
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:5. srpna 9:41

Nějak se v tom ztrácím. Příspěvky čtu a snažím se tuto problematiku studovat (i když vám to tak teda nepřipadá).

Mám rád Linux, ale není pro mě primární. Myslel jsem, že C# je multiplatformní, zde i všude jinde to bylo zmíněno. A bez GUI je to k prdu...

 
Nahoru Odpovědět 5. srpna 9:41
Avatar
Bart
Člen
Avatar
Bart:5. srpna 9:47

Chtěl jsem nějak začít. Viz můj první příspěvek. Nejsem programátor, přesto bych rád nějak začal. Každý přece nějak začínal.

Teď opravdu nevím, jestli raději nejít do Javy. Nadšení z C# opadlo.

 
Nahoru Odpovědět 5. srpna 9:47
Avatar
Bart
Člen
Avatar
Bart:5. srpna 10:22

A je C# vhodný jazyk pro pochopení úplných principů programování? (viz můj první příspěvek).

Chci se jeden jazyk naučit dokonale, naučit se dokonale principy programování. A pak na tom stavět dal. Protože si myslím, že ten princip bude všude víceméně stejný (Java). Ale to je jen domněnka, jak to je skutečně nevím.

Jeden programovací jazyk bude těžko stačit... Asi.

 
Nahoru Odpovědět 5. srpna 10:22
Avatar
David Klouček:5. srpna 10:42

Neoficiální GUI - o tom bych vůbec neuvažoval, je to jen taková náplast..
WF/WPF - třeba se dá nějakým způsobem spustit na Linuxu, ale není to nativní záležitost, takže pokud chceš cílit na Linux, je blbost o něm uvažovat.

Doporučuju si přečíst odkaz ohledně JavaFX, co jsem poslal výše, pak zjištíš, že její budoucnost také není moc jasná.

A pak zjistíš, že momentální stav GUI frameworků stojí za nic :D Budeš muset udělat kompromis.

Jazyk si vybert podle toho, co plánuješ dělat.

Editováno 5. srpna 10:44
 
Nahoru Odpovědět  -2 5. srpna 10:42
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Bart
Luboš Satik Běhounek:5. srpna 11:46

Ano, C# multiplatformni je a stejne tak treba pres WF - Winforms GUI, ktery v C# je.
Budto pres mono nebo treba i pres Wine.

Ano, C# vhodny k pochopeni uplnych zakladu vhodny je.

A programovacich jazyku se vzdycky hodi umet vice, mimochodem zadny jazyk se nikdy nenaucis dokonale :)

Nahoru Odpovědět  +1 5. srpna 11:46
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Luboš Satik Běhounek:5. srpna 11:49

WF/WPF - třeba se dá nějakým způsobem spustit na Linuxu, ale není to nativní záležitost, takže pokud chceš cílit na Linux, je blbost o něm uvažovat.

ugh...
blbost je akorat to, co jsi tu prave napsa :) l.

Nahoru Odpovědět  +1 5. srpna 11:49
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:5. srpna 14:36

Plánuji primárně psát pro Windows / Android.

Ale jako "správný vývojář" bych chtěl appky multiplatformní (Windows, MacOS, Linux, FreeBSD, Android a iOS - to bych chtěl pokrýt). Jediná možnost je C / C++ nebo Java (co vím z toho, co jsem načetl).

Příklad, až se do toho více dostanu - do programování, chtěl bych napsat multiplatformní kalkulačku. A vyzkoušet si to, co obnáší optimalizování pro danou platformu, zkompilování atd. To prostě považuji za strašně super věc a já mám z toho takové nadšení. Špatný na tom všem bude to, že zase bude chybět určitě GUI. Vadí mi ta až úchylná roztříštěnost IDE / programovacích jazyků / kompilátorů / programovacích jazyků (dost to omezuje...).

Chci se prvně naučit programovat, umět myslet u toho... Moc možností asi stejně nemám. Myslím si, že buď C# nebo Java. A když už mám tolik literatury kolem toho, Visual Studio nainstalované v plné palbě... Tak asi začnu C#...

Já se to prostě musím prvně naučit. Jak můžu něco víc vědět, když o programování vesměs vím prd.

Editováno 5. srpna 14:39
 
Nahoru Odpovědět 5. srpna 14:36
Avatar
Bart
Člen
Avatar
Odpovídá na Luboš Satik Běhounek
Bart:5. srpna 14:51

Ano, C# vhodny k pochopeni uplnych zakladu vhodny je.

O to mi jde v prvé řadě. Zpočátku to beru tak, že to bude můj velký večerní koníček (rok - dva, než se to opravdu naučím). Pak bych chtěl psát profesionálně (pod nějakou firmou) aplikace pro PC (Windows / MacOS, Linux, FreeBSD) a mobilní platformu (Android a iOS) a taky webové appky (což je dle mého docela budoucnost).

IT mě baví, pracovat si na něčem taky...

Mám hodně rád Windows (ať si každý říká co chce..a znám je z hlediska ovládání a administrace dobře). Linuxu taky trochu holduji, i když ne tolik jako Windows. A ve virtuálce jsem nedávno měl i MacOS.

 
Nahoru Odpovědět 5. srpna 14:51
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Bart
Luboš Satik Běhounek:5. srpna 14:56

Windows, MacOS, Linux, FreeBSD, Android a iOS

Tohle pokryva c# taky, pres xamarin/mono. A platform specific veci (cesty k souborum, user slozky apod.) musis pak stejne resit i v c++/jave.

zrovna u kalkulacky toho kolem resit moc nebudes kvuli multiplatformnosti - nejspis nic, pokud nebude mit nejaky specialni funkce :)

Nahoru Odpovědět  +1 5. srpna 14:56
https://www.facebook.com/peasantsandcastles/
Avatar
David Klouček:5. srpna 21:55

WF/WPF oficiálně multiplaformní není, i když existujiou způsoby, jak ho spustit mimo Windows. Takže určitě žádná velká firma co chce svůj důležitej produkt prosazovat jako multiplaformní, nezvolí ani jedno z nich.

Bart: Já bych se klidně vydal cestou C#, na jednoduchý udělátka jako kalkulačka si vystačíš buď s GUI třetí strany nebo Windows-only. Navíc vždycky neni problém si z C# odskočit do Javy, protože k ní nemá daleko. A samozřejmě pokud chceš dělat webový a mobilní aplikace, nezanedbal bych JavaScript (+TypeScript).

 
Nahoru Odpovědět  +1 5. srpna 21:55
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Luboš Satik Běhounek:5. srpna 22:50

Takže určitě žádná velká firma co chce svůj důležitej produkt prosazovat jako multiplaformní, nezvolí ani jedno z nich.

To pak asi zalezi na tom, co povazujes za velkou firmu, pro me treba firma s prijmama pres miliardu dolaru rocne velka firma uz je :)

Editováno 5. srpna 22:50
Nahoru Odpovědět 5. srpna 22:50
https://www.facebook.com/peasantsandcastles/
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 27 zpráv z 27.