In the beginning!
It all started with LINQ2SQL and the need for making a good Web Application Architecture, making loosely coupled layers and separating concerns, the fact that we need to transfer lambda expressions between layers to support fully function interfaces for search made me start thinking about how LINQ2SQL really works, to be honest i never thought i would be digging into Expression treeS i thought its all about just making methods which expect Lambda Expression and passing them through layers, here is some facts i went through:
- I need away to transfer Lambda Expression between layers.
- Since layers should`nt know nothing about upper layers i need to find away to translate lambda expression parameters types to fit the need of lower layers as long as it travel deeper and deeper through layers.
- I needed to support MemberAccess expressions, Method Calls, almost all kind of Expression Types to allow fully functional Lambda expression.
So any way after i made all this possible i decided to start a learning Path toward the Expression Trees and i decided to blog that path, i will start posting almost everything i needed to learn to get to Expression Trees and then im willing to post everything i learn about Expression trees, so far in the next Posts i will be writing the following topics in this order:
- Anonymous Delegates.
- Lambda Expressions.
- evolution of Predicate (Func/Action).
I would also like to make it clear that most of the info im going to provide i learned by searching and by other articles, but i never find any place that i could learn about expression trees from A to Z, that is why i thought of starting this series of posts, hoping it will give developers who wants to learn about Expression Tree what i couldnt find any where.
see you in several coming Posts.
Good work Mohamed, this topic is really IMPORTANT, thanks for your help to understand this topic before I am waiting the new posts related to this topic because I like your way in explaining things. Well done