Licence a výběr technologie   otázka

C#, Offtopic, .NET

Ahoj, plánuji si vydělávat programováním (i když určitě zezačátku v jiné technologii). Teď se ale dívam hodně po .NET (C#) a Javě a napadlo mě, jak to asi bude s licencema, když se budu chtít někdy později jednu z těchto technologií zaměřit.

Co se týče Visual Studia, jak dlouho se dá v reálu s Express verzí dobře fungovat? Co jsem pochopil, tak mě omezuje hlavně v pluginech, jinak ji můžu používat pro komerční účely jak chci, nebo ne? Chápu, že je to investice, ale 16 000 za Pro verzi mi v tuhle chvíli přijde hrozně přemrštěný. A to neumluvim o SQL Serveru. Sice je taky verze Express, ale nejsem podle parametrů chopnej posoudit, na co všechno mi v praxi bude stačit. Přitom můžu použít PostgreSQL nebo MySQL který jsou zdarma. Moc jsem to zatím nestudoval a nevím, jesti se to dá vůbec srovnávat.

MS mi přijde drahej. Můžu si stáhnout Eclipse a programovat aplikace v Javě(FX). Raději bych šel ale k .NET, protože v C# se mi dělá líp. Hlavně jsem teď zkoušel něco dělat v obojim. Java jako jazyk - dobrý, ale tvorba GUI v JavaFX+SceneBuilderu mi přijde hrozně neohrabaná oproti C# + WPF a hodně mě to odrazuje.

A ještě, proč se s C# nepoužívá víc MySQL a PgSQL? Třeba hosting, kterej má ASP.NET i MySQL asi v ČR ani nenajdu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

http://www.dotnetportal.cz/clanek/8467/p...

Je tam část o cenách.. Defakto jde vyvíjet i zdarma komerčně.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

MySQL má téměř každý hosting, ale upřímně, proč se složitě dostávat z ASP.NET do MySQL, když k MSSQL je ASP.NET přímo dělaný? Z M$ stránek lze stáhnout zdarma Visual Studio Community edition, které lze k tomuto účelu použít a je to mnohem lepší, než Express.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Můj názor je asi takový, .NET byl po dlouhou dobo nepřenositelný na jiné OS než Windows, proto spoustu programátorů šla do Javy. Vývoj v Javě mě teda moc nikdy nepřišel pohodlný. SQL Server Express je v podstatě použitelný na většinu malých projektů. Pokud neminíte vyvíjet aplikace, které by sežraly 10GB na jednu databasi, tak si s ní vystačíte hodně dlouho.

MySQL bych se radši nezmiňoval. Posledně co jsem se koukal na její zdrojáky, tak to připomínalo textový preprocesor. PostgreSQL jsem nikdy nepoužíval, takže nevím jak to je s licencí. Ale ať už tak či tak, MSSQL je s query optimalizacemi cca o 5 let před konkurencí a express verze postačuje na hodně věcí.

Pokud budete potřebovat jít hodně do výkonu a velkých objemů, tak ale narazíte na to, že sql database je stejně nevhodná.

Obecně pokud si chcete vydělávat programováním, tak to je spíše o tom jít do velké korporace. A pak už je to o tom co ta firma dělá. Ale i teď lze říct, že velké firmy opět přesedlávají na zpět .NET.

Kdysi šlo poukazovat na to, že java je open-source. To je .NETu už také. Je cross-platformní. Navíc za chvíli bude mít i jednotný UI framework pro všechny zařízení i platformy.

Pokud bych chtěl teď začínat, rozhodně bych šel do C#. Schopných lidí je stále málo, co vyvíjí pro .NET je stále málo.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

NO, přestože .NETu fandím, tak nemám odvahu na to říct, že .NET je multiplatformní,.. ještě mu to minimálně rok potrvá, než to bude použitelné a nebude nutné se toho bát.

o tom ui frameworku myslíte co? WPF?

Říct, že relační SQL databáze je nevhodná pro velké projekty, mi taky přijde trošku jako hloupost,.. dokumentové databáze nejsou nutně rychlejší, stejně tak jiné typy.. jsou prostě jiné.

NoSQL jsou obecně silně přehypované, především díky věcem jako NopeJS, které je taky přehypované PHPkáři.

MB

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mimochodem .NET Core, dnx atp. velmi silně trpí naprostýma hloupostma,... Například poslední s jakou jsem se setkal...

Při buildu nebyl žádný problém s vestavěným IOC containerem, ale při runu to vyhazovalo takovou tu klasickou hlášku, že nemůže najít parameterless konstruktor.. strávil jsem nad tím X hodin.. nakonec jsem to vyřešit tak, že jsem vymazal .cs soubor, vytvořil ho znova s tím samým zdrojákem a už to bez problémů jelo. Tedy nějaké neviditelné znaky,.. kódování souboru, nebo něco podobného.

Pokud to bylo ale kódováním, nebo neviditelným znakem, tak to nemá jít zbuildit. Takovýchto hloupostí je tam spousta a prozatím to za to nestojí ani trošku. Multiplatformní .NET je tedy spíše vlhký sen pro geeky, než pro reálné použití.

Jak jsem ale řekl, věřím že do roka a do dne to bude dobré a potom... PHP, PHP.. zemřeš ;-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak aktuálně to úplně nefunguje, chce to dost poladit, případně dopsat. Ale než se to člověk pořádně naučí, tak to chvíli trvá a další chvilku potrvá, než se v tom napíše nějaká appka, která by to využila. Třeba bude .NET použitelný i na Linuxu. Bohužel to nevypadá moc šťastně s UI frameworky, ale na serverové appky s UI v html by mohly být OK.

Multiplatformost mi mimochodem připadá jako další celkem relevantní důvod proč se vyhnout MSSQL serveru, protože provozovat servery na Linuxu může být levnější, případně tam nějaká podpůrná technologie může lépe chodit.

https://azure.microsoft.com/en-us/pricin... levnější až o 30% :D

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Multiplatformní je samozřejmě v rámci mezí, ale aplikace se v tom psát dají. Několik jich už napsaných máme a to ještě i z dob, kdy se o multiplatformosti moc hovořit nedalo. Samozřejmě ne vše v tom lze udělat. Ale zase je otázka co byste chtěl psát, tak specifického aby to nějak nešlo.

Tím UI frameworkem jsem myslel DotVVM. V tuhle chvíli je to BETA, ale do budoucna by to měl být framework, který by měl být schopný přesnést UI mezi platformy.

Ta poznámka o nevhodnosti sql databasí byla pro miliony requestů za hodinu, nikoliv pro velké projekty.

Pokud chcete výkon, tak SQL database jsou dost často nevhodné, protože jim to prostě trvá a řeší se to brutálním cachingem. Např. StackOverflow řeší caching třemi Redis vrstvami. Facebook má upravenou MySQL, tak aby byla dokumentová. Což v podstatě zřejmě znamená, že pravděpodobně s původním MySql to mít nic společného nebude.

Jde trochu i o to vědět jak ty dokumentové případně key/value database mají správně fungovat. Najdete spoustu implementací, ale ne všechny to prostě dělají dobře. Většina z nich ani nepodporuje transakce, o permissions nemluvě, a takových věcí lze najít spousta.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No to jste možná dělali, ale předpokládám, že mluvíte ještě o OWIN WebAPI... ? to je taková podle mě hrubě malá část, celého toho .NET prostředí, že jo.. Pokud si pamatuji, tak ani ORM na tom nejely,.. A pokud něco nefunguje proto, že tam jsou neviditelné znaky a nic to nezahlásí... to se prostě nesmí stávat a dokud se to nevyřeší, tak je to risk to používat někde jinde než na hraní.

Koukám teď na ten DotVVM,.. jeslti to správně chápu, tak to prostě bude Hybridní appka,.. kde je to mezi sebou propojené pomocí klasického interceptoru na requestech - tedy stejně, jako to dělají hybridní aplikace postavené na Xamarinu?

Hmm.. to se mi nelíbí :-) Obecně je u Dekstopových aplikací to Nenativní UI často hodně znát.. a je jedno, jestli je na frontendu vanilla js, react js, angular js, nebo něco podobného.. vždy je tam silný overhead, který bez podpory minimálně native scrollingu není ani schopný fungovat (díky bohu za něj na xamarinu). Nechápu vůbec tu potřeba rvát Javascript do úplně všeho, jen proto, že někdo neumí nic jiného než HTM, CSS a JS. Chápu ale, že zde je to z důvodu přenositelnosti.

No ale pořád je lepší mít UI nenativní a Backend nativní, než naopak (Jako to třeba dělá React Native, který lživě tvrdí, že jde o nativní aplikaci)

Měl jsem ale za to, že WPF / Winforms je z určité části součástí vNEXTu, není tomu tak?

Ohledně databází.. na NOSQL databázi hlavně musí být určitý typ requestu,.. nelze říct, že SQL databáze lze nahradit za NOSQL, nebo že to bude mnohem rychlejší.. Kromě toho, že NoSQL umí samo o sobě většinou obrovské kulový,.. Spíše tam jde o tu škálovatelnost..

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aj teď jsem si všiml, že jste si udělal tak trošku reklamu :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vzhledem k tomu kolik lidí tuhle konverzaci čte, tak bych moc o reklamě nemluvil.

Až o tom uslyšíte na MVP summitu v Seattlu, tak ano. To už bude reklama :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V podstatě chápu co říkáte a myslím si, že mluvíme o tom samém. Jen každý jinou řečí.

U těch NoSQL, jak jsem říkal, záleží na tom jak je umíte použít, případně i upravit. O úplném nahrazení jsem, ale nemluvil :)

Rozlišovat jestli nativní nebo nenativní backend mě příjde, že by se mělo opět podle toho co chci napsat za appku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já tu reklamu myslel v legraci, musím říct ale, že mě to při uvidění "knockoutJS" připomnělo způsob, který používal Redwood.. hádám tedy, že došlo k přejmenování ;-) Fandím vám.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, DotVVM je přejmenovaný Redwood. Snažíme aby bylo možné web, i ostatní appky, vyvíjet pohodlnějším způsobem. Uvidíme zda se podaří. To prověří až čas. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Záleží, kterou databázi vezmete. Když si tam dáte Redis, tak se není třeba divit proč to sakra neumí agregační dotazy :). Zkuste se mrknout na ArrangoDB nebo OrientDB, to umí podstatně víc něž SQL, akorát na to asi neměli takový rozpočet, tak tomu možná bude něco dobastlitelného chybět.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady jde hlavně o princip. Můžu mít neomezenou databázi zdarma, kterou bych použil na cokoliv jinýho. Tak nevidim důvod, vybírat si k .NETu jinou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

K té poslední otázce:

Na MSSQL jde používat entity framework, což je dle mého názoru nejlepší způsob práce s relační databází.

Na ostatní datábáze to lze nějak taky, ale je to trochu boj (a především boj třetích stran).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

ja pouzivam SharpDevelop (http://www.icsharpcode.net/opensource/sd... a nevim o nejakem omezeni pro komercni uziti (pravda, licenci jsem si pri instalaci necetl =D)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback