I'm getting back into .NET development after a couple years and it seems that now, especially with LINQ, the way you access your data has changed and become much easier. For instance, in a ASP.NET MVC website, I can:
- Add Item
- add LINQ-to-SQL classes
- drag on database tables onto the LINQ-to-SQL Object Relational Designer, click save
- access and manipluate my data via LINQ one-liners (which I learned here: http://www.asp.net/learn/mvc/tutorial-11-cs.aspx)
This looks great, but how real-world is it?
- is the above LINQ-to-SQL scenario something that you use in real projects or is it just a quick scaffolding technology, i.e. what happens when you start adding, removing fields and tables in your database, how do the LINQ-to-SQL classes stay in sync?
And how do I make sense of all the new technologies in this space, e.g.
- Where does Subsonic fit in?
- Where does Astoria (ADO.NET Data Services) fit in?
- Where does NHibernate fit in?
- How can I use other databases with LINQ-to-SQL (I tried dragging a SQLite table on the Object Relational Designer and got a "not supported error) or is LINQ-to-SQL only for SQL Server?
- does LINQ-to-XML work like LINQ-to-SQL, e.g. can I drag in XML files onto a designer and then access them with LINQ, or do I need to write my own code for this?
does LINQ-to-Entities work like LINQ-to-SQL i.e. automatically generated classes but just with more options?
is ADO.NET with its DataTables and DataSets an old technology now that we have LINQ? Does LINQ-to-ADO.NET make sense?
where does Azure fit in where you don't really even have RDBMS anymore
- where does ESB fit in when your UI is just talking RESTfully to WCF or speaking to web services?
Now that we have so many options, if you could choose any of these technologies for a project, which would you choose and why?