Dotazovací jazyky, který používat ve spojení s C#?   zodpovězená otázka

C#, Databáze

Zdravím všechny,

před půl rokem jsem začal s C# a teď bych chtěl postoupit a přidat ASP.NET a nějak komunikovat s databází. Mám trochu zmatek v těch dotazovacích jazycích. Někde jsem četl o LINQ, někde o SQL a pak zas o T-SQL a nakonec z toho nejsem vůbec moudrý. Mohl by mi někdo říct, který se mám učit (respektive, co se mám učit)? Takže pokud by byl někdo z vás tak hodný a napsal k čemu se využívá LINQ a jaký je rozdíl mezi SQL / T-SQL a který je vhodnější, byl bych vám vděčný. V budoucnu bych chtěl využívat C# a ASP.NET k tvorbě webových aplikací. Děkuji Petr Bitter

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

LINQ - práce s IQueryable datovými typy v .NET Frameworku na způsob SQL

SQL - základní množina příkazů společná pro všechny databáze

T-SQL - SQL s rozšířeními pro Microsoft SQL Server

LINQ to SQL - primitivní ORM, které standardně funguje pouze s Microsoft SQL Serverem (ne Compact)

Začněte tím, že se naučíte základní SQL. Doporučuji na to W3Schools: http://www.w3schools.com/sql/default.asp

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

Děkuji za vysvětlení a odkaz.Petr Bitter

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

No,..

Dle mého názoru není vůbec nutné se zabývat něčím již tak překonaným jako je samotný SQL jazyk.

Samozřejmě LINQ z něho jistým způsobem vychází, ale dá se naučit i bez něho... Také vím, že se často používá, ale .net nabízí daleko pohodlnější práci s databází.

Ještě jste zapomněl zmínit Entity Framework, což je technologie kterážto (a teď omluvte, že nemachruji a vyjadřuji se lajcky) pro vás databázi uklidí do normální c# tříd. Tedy pracujete s objekty tříd místo řádků v tabulce (něco podobného umí i LINQ to SQL, ale tato technologie je také už méně používaná/né tak dobrá)....

Mé doporučení je - naučit se pracovat s LINQem a nechat si databázi přechroustat Entity Frameworkem.

--jde to dobře...

http://www.aspnet.cz/articles/397-novink...

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

SQL bych rozhodně nepodceňoval, ani nezatracoval. Jak LINQ to SQL tak Entity Framework je jenom obal nad čistým SQL, který náramně usnadňuje práci. Spoustu věcí je také možné udělat pomocí uložených procedur, což má např. tu výhodu, že lze částečně upravovat aplikační logiku bez nutnosti rekompilace aplikace. A uložené procedury jsou čisté (T)SQL.

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

Tvrdit,že SQL jazyk je překonaný a není nutné se ho učit je formulace vhodná na facku. Pak se člověk nemůže divit, že občas narazí na projekty, které je lepší nevidět, spálit a rychle zapomenout.

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

To říkají většinou ti, kteří byly donuceni se ho naučit, jelikož jim nic jiného nezbývalo, respektive nic jiného neexistovalo...

Znát SQL je dobré, tedy vědět přibližně co který zápis způsobí o čem to vlastně celé je...

Ale učit se ho zevrubně, pokud ho nebudete používat (a ano skutečně je možné ho i v aplikacích využívajících databáze nepoužívat) je zcela zbytečně...

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

Naopak, u jakékoliv složitější aplikace Entity Frameworku začne docházet dech a bude generovat tak složité dotazy, že je nutné detailně znát SQL a vědět, kde napsat view, kde použít stored proceduru, aby aplikace fungovala.

Entity Framework a ostatní ORM jsou velmi dobrá věc a v 90% případů fungují. V každé větší aplikaci ale mám několik míst, kde prostě musím v SQL napsat stored proceduru nebo pohled, z výkonnostních důvodů. A nejedná se o nějaký zapomenutý Include, ale prostě o situaci, kdy máte dotaz s 20 joiny a potřebujete jej zavolat co nejefektivněji.

Takže kdybych to shrnul - u malých aplikací SQL asi znát nemusíte a stačí vše udělat přes LINQ. Na druhou stranu SQL není složité a jeho dobrá znalost SQL rozhodně neuškodí ani u menších projektů. U větších projektů pak lidé, kteří znají jen LINQ, a ne SQL, napáchají spoustu škod.

nahlásit spamnahlásit spam 4 / 4 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