Friday, May 16, 2008

Partial rendering without UpdatePanel

Performance on the Visual Studio development web server was slower than I expected. I don't have any benchmarks, but I thought the boss' initial yawn when I tried to show him the prototype was sufficient. So, after not getting much perceived performance gain even with the LINQ queries all tightened up, I stumbled onto the AJAX-ed UI templating sans Upload Panel technique as Scott Guthrie posted on his blog about some time ago. I thought this technique was quite suited to my application since it used a lot of custom user controls. So, I put it in and it worked. It felt a little faster than before.

Along the way, I discovered that I couldn't implement PageMethods in the user control, but that I could get the user control to call PageMethods defined in the containing page. So in my best effort not to have my logic strewn all over the place, I put the PageMethod in a base page which each containing webpage would inherit from. I didn't want to use web services. Of course, you wouldn't understand any of this unless you read Scott's post.

In any case, I was pleasantly surprised to find out that ASP.NET 3.5 performance, particularly with LINQ was not as bad as I had experienced after deploying to a staging server. A case of premature optimization, that's all.

Sunday, May 11, 2008

Links

Reading EXIF data with Javascript; And downloading binary streams with JS.

Tuesday, May 6, 2008

Links

John Resig's pure JavaScript HTML parser complete with SAX style parser, XML Serializer, and DOM builder; A JavaScript color fading effects script; And lastly, more JavaScript esoterica, JavaScript compression using Canvas and PNG-embedded data

Monday, May 5, 2008

Links

Have ASP.NET WebMethod called from jQuery; Create an ASP.NET 3.5 AJAX control extender; and, Dynamic Text Replacement with JavaScript and C# ASP.NET.

On my current preoccupation with LINQ programming, and more specifically, my current problem involving dynamic querying, these came up rather interesting - although I ended up denormalizing the data structures out of the dynamic querying: dynamic methods via LINQ expressions; Using an extension method to combine query predicates; and, dynamic queries and LINQ expressions.

From the Three Helpful JavaScript Libraries article, Fluently (for method chainability), MOP JS (for metaprogramming), and Collection JS (for collections and stuff).

And finally, some JavaScript miscellania: Running Java in JavaScript; and, a (partial, canvas-dependent implementation of) Wolfenstein 3D in JS.