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í.

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

Aktivity
Avatar
Bart
Člen
Avatar
Bart:31.7.2018 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.7.2018 18:56
 
Odpovědět
31.7.2018 18:55
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Bart
vajkuba1234:31.7.2018 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
31.7.2018 23:35
No hope, no future, JUST WAR!
Avatar
David Klouček:1.8.2018 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.8.2018 7:41
Avatar
Bart
Člen
Avatar
Bart:1.8.2018 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.8.2018 13:21
Avatar
Odpovídá na Bart
Radek Chalupa:1.8.2018 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.8.2018 20:51
Avatar
Bart
Člen
Avatar
Bart:1.8.2018 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.8.2018 21:02
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na David Klouček
Jan Vargovský:1.8.2018 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.8.2018 21:32
Avatar
Odpovídá na Jan Vargovský
David Klouček:2.8.2018 7:26

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

 
Nahoru Odpovědět
2.8.2018 7:26
Avatar
Odpovídá na David Klouček
David Klouček:2.8.2018 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
2.8.2018 12:23
Avatar
Luboš Běhounek Satik:2.8.2018 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
2.8.2018 13:06
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:4.8.2018 11:33

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

 
Nahoru Odpovědět
4.8.2018 11:33
Avatar
Bart
Člen
Avatar
Bart:4.8.2018 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.8.2018 12:03
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Bart
David Hartinger:4.8.2018 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
4.8.2018 14:45
You are the greatest project you will ever work on.
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na David Hartinger
Ondřej Štorc:4.8.2018 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.8.2018 15:13
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Ondřej Štorc
David Hartinger:4.8.2018 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.8.2018 16:32
You are the greatest project you will ever work on.
Avatar
Odpovídá na Bart
Luboš Běhounek Satik:5.8.2018 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.8.2018 0:08
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:5.8.2018 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.8.2018 9:41
Avatar
Bart
Člen
Avatar
Bart:5.8.2018 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.8.2018 9:47
Avatar
Bart
Člen
Avatar
Bart:5.8.2018 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.8.2018 10:22
Avatar
David Klouček:5.8.2018 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.8.2018 10:44
 
Nahoru Odpovědět
5.8.2018 10:42
Avatar
Odpovídá na Bart
Luboš Běhounek Satik:5.8.2018 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
5.8.2018 11:46
https://www.facebook.com/peasantsandcastles/
Avatar
Luboš Běhounek Satik:5.8.2018 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
5.8.2018 11:49
https://www.facebook.com/peasantsandcastles/
Avatar
Bart
Člen
Avatar
Bart:5.8.2018 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.8.2018 14:39
 
Nahoru Odpovědět
5.8.2018 14:36
Avatar
Bart
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Bart:5.8.2018 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.8.2018 14:51
Avatar
Odpovídá na Bart
Luboš Běhounek Satik:5.8.2018 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
5.8.2018 14:56
https://www.facebook.com/peasantsandcastles/
Avatar
David Klouček:5.8.2018 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
5.8.2018 21:55
Avatar
Luboš Běhounek Satik:5.8.2018 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.8.2018 22:50
Nahoru Odpovědět
5.8.2018 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.