Lightweight Code Generation with Linq Expressions

Linq expressions are the key ingredient behind the IQueryable<T> interface. One aspect of them, largely underestimated if you ask me, is the fact they can be compiled into executable code at runtime.

Let's look at a concrete example: a generic comparer, which compares objects based on one of their properties. Take a Person class, with a Name property (amongst others), and you want to sort a List<Person> by Name. Sure, if you statically know, at compile time that is, the property on which to sort, you can simply use the Linq orderby operator and pass it the Lambda to extract the property value. But what if you don't know the property statically? What if you need to be able to sort any type on any of its properties?

In that case you need a way to extract the property dynamically. Reflection can do the job, but it's slow. With Reflection.Emit you can generate a DynamicMethod, but Expressions provide an easier alternative.

The function I need will have three parameters:

var x = Expression.Parameter(typeof(TObject), "x");
var y = Expression.Parameter(typeof(TObject), "y");
var c = Expression.Parameter(typeof(IComparer<TProperty>), "c");

Given a PropertyInfo (or just a name) for the property, I can generate and expression for the function and compile it:

compare = Expression.Lambda<Func<TObject, TObject, IComparer<TProperty>, int>>
     (
         Expression.Call(
             c,
             "Compare", null,
             Expression.Property(x, propertyInfo),
             Expression.Property(y, propertyInfo)),
         x, y, c
     ).Compile();


That's really all there is to it. I can then wrap this function into an IComparer<TObject>, as shown below.

Why bother? Sure, generation of the comparer will take its fair share of CPU cycles. But execution of the comparer will be a lot faster. When I need to sort, say, 10 objects, it doesn't matter, that will be done quickly enough either way. But when I need to sort thousands of objects, this technique can offer a significant speedup.

And what alternatives do I have? I could use DynamicMethod, which is what I used to do before .NET 3.5. In fact, that's exactly what the Compile() method on an expression is doing. The generated function would be no different, but the generation code definitely is more difficult and error prone to write. Both options share the fact that I'm doing a delegate call for every comparison. I could get rid of that delegate call by generating a full assembly using Reflection.Emit. But then I need to worry about memory leaks, because I can't unload the assembly.

Expressions aren't as powerful as the raw DynamicMethod, but they're easier to use. That's why I prefer them over DynamicMethod whenever I can.

Full source code for the example, including a SortedBindingList<T> that uses PropertyComparer<T>:

using System; 
using System.Collections.Generic; 
using System.ComponentModel;
using System.Linq.Expressions; 
using System.Reflection;  
 
namespace Vandermotten.Collections.Generic 
{
    public class PropertyComparer<TObject>
    {
        public static IComparer<TObject> Create(string propertyName)
        {
            return Create(propertyName, ListSortDirection.Ascending);
        }
 
        public static IComparer<TObject> Create(string propertyName, ListSortDirection direction)
        {
             return Create(typeof(TObject).GetProperty(propertyName), direction);
        }
 
        public static IComparer<TObject> Create(PropertyInfo propertyInfo)
        {
            return Create(propertyInfo, ListSortDirection.Ascending);
        }
 
        public static IComparer<TObject> Create(PropertyInfo propertyInfo, ListSortDirection direction)
        {
            if (propertyInfo == null)
            {
                throw new ArgumentNullException("propertyInfo");
            }
            if (!propertyInfo.CanRead)
            {
                throw new ArgumentException("Cannot read property " + propertyInfo.Name);
            }
            Type cT = typeof(Comp<>).MakeGenericType(typeof(TObject), propertyInfo.PropertyType);
            return (IComparer<TObject>)Activator.CreateInstance(cT, propertyInfo, direction);
        }
 
        private class Comp<TProperty> : IComparer<TObject>
        {
            private Comparer<TProperty> comparer;
 
            public Comp(PropertyInfo propertyInfo, ListSortDirection direction)
            {
                comparer = Comparer<TProperty>.Default;
 
                var x = Expression.Parameter(typeof(TObject), "x");
                var y = Expression.Parameter(typeof(TObject), "y");
                var c = Expression.Parameter(typeof(IComparer<TProperty>), "c");
 
                if (direction == ListSortDirection.Ascending)
                {
                    compare = Expression.Lambda<Func<TObject, TObject, IComparer<TProperty>, int>>
                        (
                            Expression.Call(
                                c,
                                "Compare", null,
                                Expression.Property(x, propertyInfo),
                                Expression.Property(y, propertyInfo)),
                            x, y, c
                        ).Compile();
                }
                else
                {
                    compare = Expression.Lambda<Func<TObject, TObject, IComparer<TProperty>, int>>
                        (
                            Expression.Call(
                                c,
                                "Compare", null,
                                Expression.Property(y, propertyInfo),
                                Expression.Property(x, propertyInfo)),
                            x, y, c
                        ).Compile();
                }
            }
 
            Func<TObject, TObject, IComparer<TProperty>, int> compare;
 
            public int Compare(TObject x, TObject y)
            {
                return compare(x, y, comparer);
            }
        }
    } 
 
    public class SortedBindingList<T> : BindingList<T>
    { 
        private bool sorted; 
        private ListSortDirection sortDirection = ListSortDirection.Ascending; 
        private PropertyDescriptor sortProperty; 
 
        public SortedBindingList() 
        { 
        }  
 
        public SortedBindingList(List<T> list) 
            : base (list) 
        { 
        }
 
        protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction) 
        { 
            List<T> items = Items as List<T>; 
            if (items != null) 
            { 
                sortDirection = direction; 
                sortProperty = prop; 
                IComparer<T> pc = PropertyComparer<T>.Create(prop.Name, direction); 
                items.Sort(pc); 
                sorted = true; 
            } 
            else 
            { 
                sorted = false; 
            } 
        } 
 
        protected override void RemoveSortCore() 
        { 
            sorted = false; 
        } 
 
        protected override bool SupportsSortingCore 
        { 
            get { return true; } 
        } 
 
        protected override bool IsSortedCore 
        { 
            get { return sorted; } 
        } 
 
        protected override ListSortDirection SortDirectionCore 
        { 
            get { return sortDirection; } 
        } 
 
        protected override PropertyDescriptor SortPropertyCore 
        { 
            get { return sortProperty; } 
        } 
    } 
} 

 

Comments (95) -

  • Tarot Gratis

    1/7/2010 11:48:30 PM |

    Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

  • employment lawyer

    1/8/2010 8:53:51 PM |

    I am not much of a guy who thinks in so deeply about web design but I think your post had some valid points in it. Like designers are forced to design stuff within the limited code available and not go beyond it, their innovation is somewhat limited but still I think Web Design won't die! I agree that Amazon and other some big sites won't have a blog but now a days it's very important to have some sort of option available so people can quickly communicate their thoughts. I think Amazon if wants to shift it to that, they can get a customized CMS for themselves.

  • Arizona personal injury lawyer

    1/9/2010 11:47:10 PM |

    I admire what you have done here. I like the part where you say you are doing this to give back but I would assume by all the comments that this is working for you as well.

  • offshore incorporate

    1/12/2010 4:22:48 PM |

    I was looking for crucial information on this subject. The information was important as I am about to launch my own portal. Thanks for providing a missing link in my business.

  • Valentine 2010

    1/13/2010 3:32:00 AM |

    I completely agree with the above comment, the internet is with a doubt growing into the most important medium of communication across the globe and its due to sites like this that ideas are spreading so quickly.

  • Make Money

    1/14/2010 9:49:43 PM |

    I admit, I have not been on this webpage in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. I thank you to help making people more aware of possible issues.
    Great stuff as usual...

  • vibrators

    1/14/2010 11:47:33 PM |

    Me and my friend were arguing about an issue similar to this! Now I know that I was right. lol! Thanks for the information you post.

  • Wholesale Clothing

    1/15/2010 8:11:37 AM |

    Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.

  • signs of autism

    1/15/2010 8:54:53 AM |

    Hi. I wanted to drop you a quick note to express my thanks. I've been following your blog for a month or so and have picked up a ton of good information as well as enjoyed the way you've structured your site. I am attempting to run my own blog but I think its too general and I want to focus more on smaller topics. Being all things to all people is not all that its cracked up to be.

  • offerte viaggi

    1/17/2010 3:17:06 AM |

    Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

  • find hungry niches

    1/20/2010 7:10:05 PM |

    Just wanted to give you a shout from the valley of the sun, great information. Much appreciated.

  • how to sell on amazon

    1/20/2010 7:58:22 PM |

    That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

  • dr britt borden md

    1/23/2010 4:12:17 AM |

    Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.

  • vehicle donation MN

    1/23/2010 7:12:51 PM |

    Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

  • roulette systems

    1/24/2010 12:25:33 AM |

    I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

  • roulette system

    1/24/2010 1:19:30 AM |

    This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free. It is the old what goes around comes around routine. Did you acquired lots of links and I see lots of trackbacks??

  • GED Online

    1/24/2010 9:24:30 PM |

    Do you accept guest posts? I would love to write couple articles here.
    I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

  • Online

    1/25/2010 8:04:39 AM |

    Hi. this is kind of an "unconventional" question , but have other visitors asked you how get the menu bar to look like you've got it? I also have a blog and am really looking to alter around the theme, however am scared to death to mess with it for fear of the search engines punishing me. I am very new to all of this ...so i am just not positive exactly how to try to to it all yet. I'll just keep working on it one day at a time.

  • payday loans

    1/25/2010 2:01:16 PM |

    Attempt the impossible in order to improve your work.

  • club penguin

    1/25/2010 5:20:32 PM |

    I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

  • Willys Jeeps

    1/27/2010 1:03:58 AM |

    Do you accept guest posts? I would love to write couple articles here.
    I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

  • how to sell on amazon

    1/27/2010 1:30:19 AM |

    Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!

  • Seattle Blogs

    1/28/2010 8:50:52 PM |

    Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

  • umbrella payroll

    1/30/2010 2:27:31 AM |

    While this subject can be very touchy for most people, my opinion is that there has to be a middle or common ground that we all can find. I do appreciate that youve added relevant and intelligent commentary here though. Thank you!

  • contractor accountant

    1/30/2010 12:01:50 PM |

    When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
    Is there any way you can remove me from that service?
    Thanks!

  • seo tips

    1/31/2010 11:46:40 AM |

    I have recently started using the blogengine.net and I having some problems here? in your blog you stated that we need to enable write permissions on the App_Data folder...unfortunately I don't understand how to enable it.

  • Electric Train Sets

    1/31/2010 4:30:23 PM |

    Thank you for the sensible critique. Me & my neighbour were preparing to do some research about that. We got a good book on that matter from our local library and most books where not as influensive as your information. I am very glad to see such information which I was searching for a long time.This made very glad Smile

  • creative gigaworks t40

    1/31/2010 5:31:33 PM |

    Just wanted to give you a shout from the valley of the sun, great information. Much appreciated.

  • ekstern backup

    2/2/2010 3:37:07 AM |

    I must say that overall I am really impressed with this blog.It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

  • online backup

    2/2/2010 3:51:57 AM |

    I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful.

  • online backup

    2/2/2010 5:35:20 AM |

    I personally have embraced the new technologies and the CMS platforms, I think the new tools only make the web designs better. I am glad that new technologies are coming out in web design that make things easier, improved, and better looking for design.

  • payday loans

    2/3/2010 3:43:19 PM |

    Small opportunities are often the beginning of great enterprises

  • cash loans

    2/3/2010 3:43:37 PM |

    Coming together is a beginning, staying together is progress, and working together is success.

  • cash loans

    2/3/2010 3:43:54 PM |

    The man who will use his skill and constructive imagination to see how much he can give for a dollar, instead of how little he can give for a dollar, is bound to succeed

  • payday loans

    2/3/2010 3:59:42 PM |

    When placed in command - take charge.

  • payday loans

    2/3/2010 3:59:50 PM |

    The ability to convert ideas to things is the secret of outward success.

  • homemade acne remedies

    2/3/2010 10:59:30 PM |

    Couldn?t be written any better. Reading this post reminds me of my old room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thanks for sharing!

  • best shower water filter

    2/4/2010 7:08:55 PM |

    That is some inspirational stuff. Never knew that opinions could be this varied. Thanks for all the enthusiasm to offer such helpful information here.

  • shower head filter

    2/4/2010 7:10:20 PM |

    There are certainly a lot of details like that to take into consideration. That is a great point to bring up. I offer the thoughts above as general inspiration but clearly there are questions like the one you bring up where the most important thing will be working in honest good faith. I don?t know if best practices have emerged around things like that, but I am sure that your job is clearly identified as a fair game.

  • shower head filter

    2/4/2010 7:11:48 PM |

    This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article

  • shower head filter

    2/4/2010 7:13:04 PM |

    This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

  • shower head filter

    2/4/2010 7:14:49 PM |

    Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming. Thanks again and good luck!

  • courtier hypothécaire

    2/4/2010 8:46:55 PM |

    Hi webmaster, commenters and everybody else !!! The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!b Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

  • courtier hypothecaire

    2/4/2010 8:48:29 PM |

    The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

  • usa payday loans

    2/4/2010 11:12:41 PM |

    Minds are like parachutes - they only function when open.

  • no fax payday loans

    2/4/2010 11:13:01 PM |

    It is a paradoxical but profoundly true and important principle of life that the most likely way to reach a goal is to be aiming not at that goal itself but at some more ambitious goal beyond it.

  • online personal loans

    2/4/2010 11:13:20 PM |

    Treat a person as he is, and he will remain as he is. Treat him as he could be, and he will become what he should be.

  • payday loans

    2/4/2010 11:29:18 PM |

    Be glad of life because it gives you the chance to love, to work, to play, and to look up at the stars.

  • online payday loans

    2/4/2010 11:29:29 PM |

    Success is focusing the full power of all you are on what you have a burning desire to achieve.

  • eagle idaho homes

    2/5/2010 2:42:47 AM |

    The beauty of these blogging engines and CMS platforms is the lack of limitations and ease of manipulation that allows developers to implement rich content and 'skin' the site in such a way that with very little effort one would never notice what it is making the site tick all without limiting content and effectiveness.

  • meridian idaho real estate

    2/5/2010 1:55:09 PM |

    The beauty of these blogging engines and CMS platforms is the lack of limitations and ease of manipulation that allows developers to implement rich content and 'skin' the site in such a way that with very little effort one would never notice what it is making the site tick all without limiting content and effectiveness.

  • meridian idaho home search

    2/5/2010 3:10:38 PM |

    Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

  • seo expert

    2/5/2010 6:33:23 PM |

    Hello,I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.

  • comforter sets

    2/7/2010 10:04:49 PM |

    I have recently started using the blogengine.net and I having some problems here? in your blog you stated that we need to enable write permissions on the App_Data folder...unfortunately I don't understand how to enable it.

  • swing trading

    2/7/2010 11:29:13 PM |

    I must say that overall I am really impressed with this blog.It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

  • golf gps reviews

    2/8/2010 1:52:57 AM |

    I must say that overall I am really impressed with this blog.It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.

  • hammock swings

    2/8/2010 5:05:11 PM |

    I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

  • angular cheilitis

    2/8/2010 9:19:55 PM |

    I was very pleased to find this site.I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.

  • weight lifting supplements

    2/8/2010 10:25:00 PM |

    This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work.

  • teeth whitening free kit

    2/9/2010 8:55:03 AM |

    Success is not the key to happiness. Happiness is the key to success. If you love what you are doing, you will be successful.

  • colon cleanse

    2/9/2010 8:55:23 AM |

    One chance is all you need.

  • colon cleaner

    2/9/2010 8:55:42 AM |

    The greater the obstacle, the more glory in overcoming it.

  • digestit

    2/9/2010 8:56:23 AM |

    Tomorrow is often the busiest day of the week.

  • high life style

    2/9/2010 9:22:02 AM |

    Learning is the beginning of wealth. Learning is the beginning of health. Learning is the beginning of spirituality. Searching and learning is where the miracle process all begins.

  • acai berry

    2/9/2010 9:22:12 AM |

    Leadership is a potent combination of strategy and character.

  • Freeport Garage Door Repair

    2/13/2010 5:41:54 AM |

    Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since I'm more of a visual learner,I found that to be more helpful well let me know how it turns out! I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys I've added you guys to my blogroll. This is a great article thanks for sharing this informative information.. I will visit your blog regularly for some latest post.

  • solar powered security light

    2/13/2010 7:09:26 AM |

    Hi webmaster, commenters and everybody else !!! The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!b Keep 'em coming... you all do such a great job at such Concepts... can't tell you how much I, for one appreciate all you do!

  • Roswell Garage Door Repair

    2/13/2010 7:54:12 AM |

    When I originally commented I clicked the "Notify me when new comments are added" checkbox and now each time a comment is added I get four emails with the same comment.
    Is there any way you can remove me from that service?
    Thanks!

  • ip security cameras

    2/13/2010 10:41:09 AM |

    Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.

  • teleconferencing equipment

    2/13/2010 7:04:11 PM |

    The beauty of these blogging engines and CMS platforms is the lack of limitations and ease of manipulation that allows developers to implement rich content and 'skin' the site in such a way that with very little effort one would never notice what it is making the site tick all without limiting content and effectiveness.

  • Longmeadow Garage Door Repair

    2/13/2010 9:05:04 PM |

    You got a really useful blog I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me.

  • Powder Springs Garage Door Repair

    2/13/2010 10:08:26 PM |

    Resources like the one you mentioned here will be very useful to me! I will post a link to this page on my blog. I am sure my visitors will find that very useful.

  • jvc kd-hdr50

    2/14/2010 1:20:27 PM |

    Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!

  • liquid acrylic

    2/14/2010 1:20:48 PM |

    I admire what you have done here. I like the part where you say you are doing this to give back but I would assume by all the comments that this is working for you as well.

  • gel fuel

    2/14/2010 1:22:02 PM |

    I admit, I have not been on this webpage in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. I thank you to help making people more aware of possible issues.
    Great stuff as usual...

  • desktop air conditioner

    2/16/2010 12:24:31 PM |

    Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.

  • BPO for Public Sector Services

    2/18/2010 11:49:47 PM |

    I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post

  • Synthetic wigs

    2/19/2010 7:30:13 AM |

    Great post! I am just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case.

  • diet review

    2/20/2010 10:56:41 PM |

    Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It's always nice when you can not only be informed, but also entertained! I'm sure you had fun writing this article.

  • small diesel generators

    2/22/2010 12:54:49 AM |

    Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since I'm more of a visual learner,I found that to be more helpful well let me know how it turns out! I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys I've added you guys to my blogroll. This is a great article thanks for sharing this informative information.. I will visit your blog regularly for some latest post.

  • Shower Radio

    2/22/2010 8:04:59 AM |

    Thank you for another great article. Where else could anyone get that kind of information in such a perfect way of writing? I have a presentation next week, and I am on the look for such information.

  • selling on ebay

    2/22/2010 3:55:15 PM |

    Have you ever considered adding more videos to your blog posts to keep the readers more entertained? I mean I just read through the entire article of yours and it was quite good but since I'm more of a visual learner,I found that to be more helpful well let me know how it turns out! I love what you guys are always up too. Such clever work and reporting! Keep up the great works guys I've added you guys to my blogroll. This is a great article thanks for sharing this informative information.. I will visit your blog regularly for some latest post.

  • Company Name Ideas

    2/23/2010 1:35:17 AM |

    Admiring the time and effort you put into your blog and detailed information you offer! I will bookmark your blog and have my children check up here often. Thumbs up!

  • Top rated treadmills reviewed

    2/23/2010 1:39:16 AM |

    I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful.

  • movie posters

    2/23/2010 1:47:19 AM |

    I have recently started using the blogengine.net and I having some problems here? in your blog you stated that we need to enable write permissions on the App_Data folder...unfortunately I don't understand how to enable it.

  • Fossil watches

    2/24/2010 4:43:28 AM |

    I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will find that very useful.

  • commercial roofing Concord

    2/24/2010 10:34:42 AM |

    Do you accept guest posts? I would love to write couple articles here.
    I was wondering what is up with that weird gravatar??? I know 5am is early and I'm not looking my best at that hour, but I hope I don't look like this! I might however make that face if I'm asked to do 100 pushups. lol

  • round about place

    2/25/2010 9:20:44 PM |

    I was very pleased to find this site.I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.

  • trout fishing lures

    2/26/2010 1:02:26 AM |

    Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

  • KitchenAid Hand Blender

    2/28/2010 10:18:56 PM |

    Ik ben toevallig op uw blog betreden met de hulp van Google Search

  • Car Hire Geneva

    3/2/2010 12:26:09 AM |

    Resources like the one you mentioned here will be very useful to me! I will post a link to this page on my blog. I am sure my visitors will find that very useful.

  • How to Choose a Financial Advisor

    3/7/2010 5:05:20 PM |

    The coding are very beneficial. I think every reader gets some benefit from the post. Many many thanks for sharing such a nice post.

  • emekli sandıgı

    3/16/2010 9:51:52 AM |

    This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

  • arac sorgulama

    3/16/2010 4:31:59 PM |

    I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

Pingbacks and trackbacks (2)+

Loading

SQL Server 2014 In-memory OLTP (a.k.a Hekaton) @ Techorama

U2U Blog

for developers and other creative minds

SQL Server 2014 In-memory OLTP (a.k.a Hekaton) @ Techorama

A few days ago I presented a session on the In-Memory OLTP engine in SQL Server 2014 at Techorama, the Belgian developer conference. I talked about the good things In-Memory OLTP does, and the limitations it has. If you want to go through the slides and code examples again, feel free to download these from my OneDrive.

Nico Jacobs -Hekaton

Comments (27) -

  • filme online

    6/10/2014 11:15:31 AM |

    Zune and iPod: Most people compare the Zune to the Touch, but after seeing how slim and surprisingly small and light it is, I consider it to be a rather unique hybrid that combines qualities of both the Touch and the Nano. It's very colorful and lovely OLED screen is slightly smaller than the touch screen, but the player itself feels quite a bit smaller and lighter. It weighs about 2/3 as much, and is noticeably smaller in width and height, while being just a hair thicker.

  • zielona kawa apteka cena

    6/28/2014 3:01:21 AM |

    I gotta bookmark  this  web site  it seems very useful   very beneficial

  • dream dictionary

    7/3/2014 5:14:49 AM |

    I couldn’t resist commenting. Perfectly written.

  • Google Sniper Review

    7/13/2014 4:30:28 AM |

    The trouble with <a href=?http://www.youtube.com/watch?v=vW8JaWjz9DQ?>Google Sniper</a> is that it doesn't give you the tools and abilities you need to generate income with google and the web. It's type of like it provides you into a weapon fight equipped with nothing more than a limp plastic butter blade.

  • Pinterest

    7/17/2014 2:38:13 AM |

    You can find a whole lot of <a href="www.pinterest.com/.../";>Indian Wedding Dresses here</a>

  • Efren Mceniry

    8/15/2014 10:55:53 PM |

    Thanks for all your hard work on this blog. Kim takes pleasure in setting aside time for investigation and it's really simple to grasp why. Most people learn all of the compelling tactic you render vital ideas on this blog and recommend response from some others on the content plus our favorite child is without a doubt studying a lot of things. Take advantage of the rest of the new year. You are performing a very good job.

  • Hong Lomascolo

    8/15/2014 11:13:51 PM |

    Hello my loved one! I want to say that this post is awesome, nice written and come with approximately all significant infos. I'd like to look more posts like this.

  • dirty computers

    8/22/2014 1:34:20 AM |

    Hi Just located Your web site On Yahoo Search. Amazing Page On Your Website!

  • free emr software

    8/26/2014 6:54:54 AM |

    I savour, lead to I discovered just what I was taking a look for. You have ended my 4 day long hunt! God Bless you man. Have a nice day. Bye

  • ketolisis

    8/26/2014 9:41:55 AM |

    Hi just thought i would tell you something ketolisis.. This is twice now i've landed on your blog in the last 3 days hunting for totally unrelated things. Spooky or what?

  • Florida Lottery Winning Numbers

    9/4/2014 12:40:36 PM |

    An impressive share, I simply given this onto a colleague who was doing slightly evaluation on this. And he in truth purchased me breakfast as a result of I discovered it for him.. smile. So let me reword that: Thnx for the deal with! But yeah Thnkx for spending the time to discuss this, I really feel strongly about it and love reading extra on this topic. If possible, as you turn out to be expertise, would you thoughts updating your blog with more particulars? It's extremely useful for me. Massive thumb up for this blog publish!

  • Replica Rolex

    9/16/2014 2:54:43 PM |

    This post is worthy of appreciation, looking forward to more exciting!

  • DEBORA Laurence

    9/17/2014 1:55:26 PM |

    Covoiturage, annonce & covoiturage. Deposer votre annonce gratuitement sur portail2000.com/ et faites des rencontres

  • DEBORA Laurence

    9/17/2014 2:08:40 PM |

    Covoiturage, annonce & covoiturage. Deposer votre annonce gratuitement sur portail2000.com/ et faites des rencontres

  • DEBORA Laurence

    9/17/2014 3:03:49 PM |

    Covoiturage, annonce & covoiturage. Deposer votre annonce gratuitement sur portail2000.com/ et faites des rencontres

  • Ed Mcwells

    9/23/2014 7:21:49 PM |

    Hi there would you mind sharing which blog platform you're working with? I'm planning to start my own blog in the near future but I'm having a hard time making a decision to go with B2evolution.

  • Ed Mcwells

    9/24/2014 3:20:13 AM |

    Hey! This is kind of off topic but I need some guidance from an established blog. Is it tough to set up your own blog? I'm not very techincal but I can figure things out pretty quick. I'm thinking about creating my own but I'm not sure where to start. Do you have any tips or suggestions?  Many thanks

  • discount coupons

    10/4/2014 7:57:41 AM |

    This is certainly really legal factor as heightened around the post. Treasure referring to encompassing.

  • document scanning software

    10/6/2014 1:18:48 PM |

    My brother recommended I might like this website. He was once totally right. This post actually made my day. You can not imagine just how so much time I had spent for this info! Thanks!

  • vp-corp

    10/6/2014 5:49:30 PM |

    You are great man, thanks for sharing.

  • computer mouses

    10/13/2014 5:35:59 AM |

    Momentous weblog, keeping me from updated

  • guaranteed facebook fans

    10/13/2014 11:34:14 PM |

    monkley polyanthus kerekes glerawly cucciola maglena marbled felicca murple

  • fans for you and me

    10/13/2014 11:38:02 PM |

    ohhh nice info VRy interesting to read it?

  • guaranteed facebook fans

    10/14/2014 5:25:47 AM |

    I had been reading content, i have to concur with what Tom said.

  • cheap facebook fans

    10/14/2014 5:29:40 AM |

    Smart stuff, I count on reading more.

  • Teri Linkowski

    10/16/2014 4:29:34 PM |

    Everything is very open with a precise description of the challenges. It was really informative. Your site is very helpful. Thank you for sharing!

  • Matthew Sgammato

    10/16/2014 7:20:58 PM |

    Everyone loves what we posted. I actually agree with anything you wrote.

  • Gabriele Atoe

    10/22/2014 5:52:16 PM |

    Howdy, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it's driving me mad so any assistance is very much appreciated.

  • hogan outlet

    10/26/2014 3:08:55 PM |

    Honda have now created his most modern release towards the Maven Ceed vast array with a lot of exceedingly seductive brief Shows ad. A brilliant as well as natural <a href="http://www.nadirstar.com/libraries/";>hogan online opinioni</a> technique influence any plans concerning offering inexpensive sports activity coupe layout to a European union viewers.

  • pop over to this website

    10/29/2014 12:55:22 PM |

    I just want to say I'm new to blogging and site-building and definitely savored you're blog. Most likely I’m going to bookmark your blog . You surely have really good writings. Thanks a lot for revealing your blog site.

  • babyoye coupons

    10/30/2014 3:54:14 AM |

    This really is tremendously legal spot as raised into the wordpress blog. Truly appreciate discussing about surrounding.

  • hogan interactive

    10/30/2014 1:17:47 PM |

    Kia obtain established their personal recent form inside the Instructor Ceed array with a little terribly seducing tiny Tv for computer endorsing. A smart and intuitive <a href="http://www.nadirstar.com/libraries/";>scarpe hogan</a> alternative to result his or her's usages related with promising low-cost running coupe doing you hair at a American buyers.

  • armani horloge

    10/30/2014 4:03:49 PM |

    This post is worthy of appreciation, looking forward to more exciting!  

  • Kyra Bratcher

    10/31/2014 10:34:18 PM |

    I am so grateful for your post.Really looking forward to read more. Keep writing.

  • address

    11/6/2014 4:36:07 PM |

    I simply want to mention I am beginner to blogs and definitely savored your web-site. Very likely I’m likely to bookmark your site . You surely have remarkable posts. Thank you for sharing with us your website.

  • DEBORA Laurence

    11/12/2014 11:30:08 AM |

    Forum Annuaires-gratuit.com, annuaire de sites web et moteur de recherche sur annuaires-gratuit.com/annuaires/ .

  • DEBORA Laurence

    11/12/2014 1:42:13 PM |

    Forum Annuaires-gratuit.com, annuaire de sites web et moteur de recherche sur annuaires-gratuit.com/annuaires/ .

Loading