Saturday, November 26, 2011

ADO.net - linq - EF- random notes

churn alert ...

Inside Microsoft camp, I feel the 3 generations of dominant[1] DB access tools are ado, linq2sql and EntityFramework. I feel this is a churning field, so a lot of popular technologies will come and go. ADO/ODBC tends to survive longer. (My experience and focus is WPF/WCF...)

[1] Any time in the dotnet history, there would be "chims" challenging the gorilla. I don't even know their names, though some may grow quite popular.

A) Ado.net is like the basic jdbc. ADO works with DataSet and DataTable. Better performance than any ORM (Linq/EF), because it doesn't do mapping to objects.
http://msdn.microsoft.com/en-us/library/bb399365.aspx says There are three separate ADO.NET based LINQ technologies: LINQ to DataSet, LINQ to SQL, and LINQ to Entities. 1) LINQ to DataSet provides richer querying over the DataSet; 2) LINQ to SQL enables you to directly query SQL Server; 3) LINQ to Entities is less popular and probably more ambitious and complicated.

B) L2sql and EF both generate SQL queries, often unoptimized.

B1) The DataSet is a disconnected programming model in ADO.NET. L2DataSet is an  upgrade/enhancement/expansion

B2) LINQ to SQL is for developers who do not require mapping to a customized, conceptual model. LINQ to SQL enables developers to generate entity classes from DB tables. Rather than mapping to a conceptual data model, these generated classes map directly to database tables. You can easily mix LINQ to SQL code with existing ADO.NET applications

C) the competition between the simpler L2SQL vs the bigger EntityFramework.
LINQ to SQL is a simple and easy to use ORM system. It allows for only simple inheritance or association features. There was talk awhile back about Microsoft retiring it, but it is likely to be around for awhile.

EF is more suitable for complex object graphs. It allows for more complex inheritance or association features. EF shares many features with Nhibernate.

No comments:

Total Pageviews

my favorite topics (labels)

_fuxi (302) _misLabel (13) _orig? (3) _rm (2) _vague (2) clarified (58) cpp (39) cpp_const (22) cpp_real (76) cpp/java/c# (101) cppBig4 (54) cppSmartPtr (35) cppSTL (33) cppSTL_itr (27) cppSTL_real (26) cppTemplate (28) creditMkt (14) db (65) db_sybase (43) deepUnder (31) dotnet (20) ECN (27) econ/bank` (36) fin/sys_misc (43) finGreek (34) finReal (45) finRisk (30) finTechDesign (46) finTechMisc (32) finVol (66) FixedIncom (28) fMath (7) fMathOption (33) fMathStoch (67) forex (39) gr8IV_Q (46) GTD_skill (15) GUI_event (30) inMemDB (42) intuit_math (41) intuitFinance (57) javaMisc (68) javaServerSide (13) lambda/delegate (22) marketData (28) math (10) mathStat (55) memIssue (8) memMgmt (66) metaProgram` (6) OO_Design (84) original_content (749) polymorphic/vptr (40) productive (21) ptr/ref (48) py (28) reflect (8) script`/unix (82) socket/stream (39) subquery/join (30) subvert (13) swing/wpf (9) sysProgram` (16) thread (164) thread_CAS (15) thread_cpp (28) Thread* (22) timeSaver (80) transactional (23) tune (24) tuneDB (40) tuneLatency (30) z_ajax (9) z_algoDataStruct (41) z_arch (26) z_arch_job (27) z_automateTest (17) z_autoTrad` (19) z_bestPractice (39) z_bold (83) z_bondMath (35) z_book (18) z_boost (19) z_byRef^Val (32) z_c#GUI (43) z_c#misc (80) z_cast/convert (28) z_container (67) z_cStr/arr (39) z_Favorite* (8) z_FIX (15) z_forex (48) z_fwd_Deal (18) z_gz=job (33) z_gzBig20 (13) z_gzMgr (13) z_gzPain (20) z_gzThreat (19) z_hib (19) z_IDE (52) z_ikm (5) z_IR_misc (36) z_IRS (26) z_javaWeb (28) z_jdbc (10) z_jobFinTech (46) z_jobHunt (20) z_jobRealXp (10) z_jobStrength (15) z_jobUS^asia (27) z_letter (42) z_linq (10) z_memberHid` (11) z_MOM (54) z_nestedClass (5) z_oq (24) z_PCP (12) z_pearl (1) z_php (20) z_prodSupport (7) z_py (31) z_quant (14) z_regex (8) z_rv (38) z_skillist (48) z_slic`Problem (6) z_SOA (14) z_spring (25) z_src_code (8) z_swingMisc (50) z_swingTable (26) z_unpublish (2) z_VBA/Excel (8) z_windoz (17) z_wpfCommand (9)

About Me

New York (Time Square), NY, United States
http://www.linkedin.com/in/tanbin