LINQ2LLBL vs LINQ2SQL

Každý c# programátor už určite zachytil správu o technológiách, ktoré Microsoft uviedol spolu s .NET Frameworkom 3.5 pod hromadným názvom LINQ. Ide hlavne o zjednodušený (alebo aspoň iný) prístup k dátam z rôznych zdrojov. Hlavne z objektov (teda klasických polí, kolekcií, zoznamov a p.), XML a databáz. Všetky 3 možnosti sú zaujímavé, možno sa ku niektorej ešte vrátim, ale poďme sa pozrieť hlavne na prístup k relačným databázam tzv. LINQ2SQL. Samozrejme skúsime sa pozrieť či ešte z tejto technológie netrčí nejaká slama a či nie je niečo už o niečo vyspelejšie (áno, skúsené oko čitateľa vidí, že smerujem ku produktu Fransa Boumu LLBL Gen Pro, ktorému sa budeme hlbšie venovať).

LINQ2SQL

Každému, kto skúšal DBASE II, FoxPro a podobné výdobytky techniky čias minulých je jasné, že relačné databázy a SQL bol veľký krok vpred. Samozrejme, kto raz skúsil objektové programovanie, na príkaz SELECT si spomína už len ťažko. Tety a ujovia z Microsoftu však dali dokopy LINQ, ktorý stavia na syntaxi podobnej SQL, ale je objektová (a aj ked to na prvý pohľad nevidno a nie je to nutnosť ak programátor sám nechce) plne typová. Miesto tisíc slov malá ukážka:

Požiadavky:

Microsoft Visual Studio 2008

Microsoft .NET Framework 3.5

Nechcem tu rozoberať detaily ako pridať do projektu Linq, na to si nájde rozhľadený čitateľ iste nejaký screencast sám… Pozrime sa teda priamo na pár pŕikladov v kóde:

var q = from user in md.Users select user.Password;

vygeneruje viacmenej takéto SQL

SELECT Password FROM Users;

Takže vidno, že je celkom jednoduché vytiahnuť dáta do rôznych štruktúr. No a teraz by sme chceli použiť miesto príkazu SELECT príkaz UPDATE, DELETE alebo INSERT. Tak to nejde… (chvíľka ticha). Samozrejme, že to ide, ale nie tak, ako v SQL.

LINQ2LLBL

Ak ste sa s LLBL ešte nestretli, v skratke čo to je. LLBL je ORM (čiže pre prácu s relačnou databázou používate objekty OOP programovacieho jazyka – miesto polí a tabuliek máme entity a kolekcie entít). LLBL si môžete vyskúšať na 30 dní.

Požiadavky

Microsoft Visual Studio 2008 + .NET 3.5 (pre samotné LLBL bez LINQ stačí VS 2002 + .NET 2.0)

(Existuje aj okresaná verzia pre Compact Framework)

LINQ2SQL vs LINQ2LLBL

LINQ2SQL

+ cena (zadarmo)

+ rozšírenie (je to MS technológia)

+ generátor je priamo vo Visual Studiu

- generátor je príliš jednoduchý a pri veľkých datázach neprehľadný

- predikáty spoliehajúce iba na lambda expressions

LLBL2SQL

+ subjektívne lepšia štruktúra projektu

+ možnosť v predikátoch využívať PredicateExpression

+ možnosť úpravy templatov, ktoré generujú triedy (naozaj je to použiteľné, nie je to marketingový ťah ako v podobných prípadoch)

+ skvelý support (odozva na fóre je blesková – rádovo v hodinách a veľmi kvalitná)

- cena (nie je to zas tak veľa a licenčná politika je vcelku príjemná)

Finálne hodnotenie Linq2SQL 50%, LLBL2SQL 90%.

This entry was posted in Nezaradené, Programovanie and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">