LINQ Tools
I’ve recently started giving a series of talks on LINQ based tools. While Visual Studio offers a lot in regards to support for LINQ, there are a number of mostly free tools that come in handy both from a usability and a learning experience. I gave a brief look at some of the tools as part of Russ’s Tool Shed which should be airing on MSDN’s Channel 9 in early October. In addition, I’m premiering the full presentation at this weekend’s Tallahassee Code Camp. If you can’t make it out, feel free to try the tools on this list to see if they help you thinq LINQ. Also, let me know if I’m missing any tools that you think are worthy to be included in the list.
- Samples
- 101 Samples (actually 404 samples in C# and another 303 in VB)
- LINQ to SQL Visualizer – Visualizer to see what queries will be issued based on your LINQ to SQL Query. You can also modify the generated SQL and preview the results.
- LINQ to Entity Visualizer – Visualizer to see what queries will be issued based on your ObjectQuery<T> (LINQ to Entities) query. You can also preview the results.
- Expression tree Visualizer – Visualizer that shows you how the query is broken down into an expression tree. (Update: This only works with Visual Studio 2008. It is not supported in VS 2010)
- Paste As XML Element – Tool that allows you to copy sample XML into the clipboard and then paste it in C# Code using the functional construction syntax.
- Profilers
- SQL Server Profiler – Tool built into the SQL Server management tools that allows you to monitor all requests issued against the database including update statements in addition to the translated LINQ based queries.
- LINQPad – free, but $ if you want C# intellisense. A great tool to test and prototype LINQ queries.
- Huagati LINQ to SQL Profiler ($) – Profiler which extends the Context.Log functionality including performance and call stacks for the queries.
- ORM Profiler ($) – Brought to you by the same team that does LLBLGEN (see below under designers). Works with any O/R mapper or data access layer using the DbProviderFactory, including: LLBLGen Pro Runtime Framework 3.x, Entity Framework v1, Entity Framework v4.x, Dapper.net, Massive, SubSonic, Microsoft.Data (WebMatrix)
- Designers
- EDM Designer – Alternative designer for EDMX files which allows you to break-up the model into digestible subsets of the conceptual model. This is particularly helpful when working with models with many tables.
- Huagati DBML/EDMX Tools ($) – Visual Studio add-in that helps to manage database schema changes and synchronize changes between the model and database.
- LLBLGEN Pro ($) – Designer originally built for the LLBLGEN OR/M, but now expanded to support EF, LINQ to SQL, and NHibernate. Worthwhile considering for large models that you need to break into manageable visual chunks.
- Code Gen
- L2ST4 – T4 based code generation to replace the default code generated from the DBML file with LINQ to SQL.
- PLINQO – Code Smith code generation templates for LINQ to SQL which add capabilities not included in the code Visual Studio generates for DBML files. The templates themselves are free, but they do require a Code Smith license. For a limited time, you can get Code Smith free if you try PLINQO.
- Providers
- I4O – Indexed LINQ to Objects project which can drastically increase your performance when querying LINQ to Objects.
- PLINQ – Parallel LINQ implementation coming in .Net 4.0.
- LINQ to XSD – Project which was going to give type safety and intellisense for C# over XML was released to codeplex to support the enterprise customers who were already using it since Microsoft decided not to continue enhancing it.
- LINQ to REST – Client library included with .Net 3.5 sp1 used to write LINQ queries against Ado.Net Data Services to translate the LINQ query into the REST URI.
- LINQ to Twitter – Sample LINQ provider against the Twitter and Twitter Search REST services.
- BLINQ – Another sample LINQ provider, this time for the BING search engine.
- IQueryable Toolkit – A must have tool if you want to build your own LINQ provider written by the mind behind LINQ to SQL.
Again, I hope you find this list helpful and let me know any others that should be included here. If you’re looking for more developer’s tools, make sure to check out Scott Hanselman’s incredible collection at http://www.hanselman.com/tools.