Bernie Cook's Blog

Azure, C#, .NET, Architecture & Related Tech News

Leave a comment

IQueryable, IEnumerable & List – What’s the Difference?

Back when .NET 2 was released in 2006 Lists appeared and I remember having one of those “OMG this is fantastic moment for coding“. You could immediately see the benefits – how they’d reduce the amount of code you had to write and increase readability. Prior to that in .NET 1.1 there was IEnumerable, which I can’ t say was something I made a lot direct use of, with emphasis on the word “direct”. I utilised a number of classes that implemented IEnumerable (SortedList, Hashtable, List, etc.) but, unlike today, it wasn’t a class that I worked with directly. Then a few years later .NET 3.5 was released and IQueryable was brought into the mix and suddenly I started having to think a touch more about which one was the “right” one to use when it came to manipulating a collection of objects. Continue reading



Dynamically Creating Zipped PDFs in .NET

This post illustrates how you can dynamically create a number of PDFs on the fly, zip them all up, and return the ZIP file via a HTTP response.

I’ve created a sample project which you can download that has a working example of the source code referenced in the post – (1.5 MB). For simplicity I went for an ASP.NET web application. The only requirements are that you have Visual Studio 2010 installed. Continue reading

1 Comment

Architecting .NET Solutions For Beginners

After a few years focusing on pure software development work, using primarily Microsoft technologies, I started to get an itch to seek something more challenging in a different are of IT.  Don’t get me wrong, I love programming, I just wanted to branch out a bit and broaden my skillset. Thankfully my employer at the time allowed me to spend time with our company’s Business Analysts, Team Leaders, Technical Trainers, Project Managers, Software Architects etc. so that I could learn from them and spend time applying this knowledge. Thankfully I found it quite enjoyable, and the exposure to different roles, all of which contributed in their own way to the software development lifecycle, was invaluable.  The most interesting by far for me was software architecture.

As with the other aforementioned roles I spent time with the seasoned software architects and learnt from their example. Not to say I agreed with everything they did but it was very informative and helped me develop my own opinions and methodologies. Continue reading