Santosh Benjamin's Weblog

Adventures with AppFabric, BizTalk & Clouds

Archive for the ‘General’ Category

Presenting AppFabric @Avanade Soltech AfterHours

with one comment

I have been invited to present a session on Exploring AppFabric (Server & Cloud) at Avanade, London on the 28th October (next week). This is part of the regular Soltech After Hours meetings. This session will be a hands on look into the components of both Server AppFabric as well as Azure AppFabric. We will also look at how these offerings fit into Microsoft’s overall platform strategy and how they align with other products such as BizTalk Server and what the roadmap for all of them looks like.

My AppFabric presentation at TechDays Online 2010  went off very well. Thanks to all those who took the time out to attend my session as well as the other sessions. There were more than a 350 attendees through the day and even with 3 tracks going on simultaneously, I managed to get over a 100 in my talk alone which is really encouraging  🙂 . If you attended my webcast (or have watched it since) and have any questions or require clarifications, feel free to ping me on this blog.

Written by santoshbenjamin

October 21, 2010 at 6:25 PM

Posted in AppFabric, Conferences

Tagged with , ,

Presenting Azure AppFabric @ TechDays 2010

leave a comment »

In case you weren’t aware, we are organizing the TechDays Online Conference on Oct8th. Check out the agenda. You’ll find some well known names and an unknown one in the middle 🙂 Yep, lil ol’ me speaking on a “Lap Around Azure AppFabric” at 1pm in Track-1.

In general the track is supposed to be a high level one but i will be talking about getting to grips with the AppFabric vision, components that are on-premises, in the cloud and the general plan for convergence. We’ll also talk about how good ol BizTalk Server fits into this vision. We’ll discuss common patterns of usage in the Service Bus and ACS.

If you can make it, do register for the conference and it would be cool to have you attend my talk !!

Written by santoshbenjamin

September 22, 2010 at 6:10 PM

Posted in Conferences

Tagged with ,

A nice metaphor for object orientation and service orientation

with one comment

I was recently watching an awesome webcast by Scott Hanselman on the topic of OData. Even if you are familiar with OData, I would recommend that webcast. The way he explains the position of REST and WS* is very balanced and educative. No dogmatic rants on how “rubbish” WS* is and how waay-cool (not) REST is. Anyway, more about the subject of that webcast in another post but what I wanted to highlight was this cool metaphor that Scott used when talking about OO and SO.

To paraphrase his illustration, “In the old days in the 90s we would model, say, a book as a “Book” object and that book object would have a “Checkout()” method and we would call “book.Checkout()” and we would sit back feeling satisfied with the “real world” approach. But then service orientation made us realize that there really is a Librarian Service and a Checkout Request and you submit the Checkout Request to the Librarian Service and it would go off and do that work asynchronously and you would “hang out” in the library and when it was ready it would call you back and give you the Book Checkout Response. This turns out to be a better metaphor for how life works. 

 IMO, this is a great explanation for the difference in approaches to system design. It’s still quite possible for these two to co-exist in scenarios where we design the “macro” system with SO and the internal components follow nice “OO” composition and/or hierarchies. The really cool part of SO is that it takes the “encapsulation” level much higher up. Consumers think in more coarse grained terms of message exchange patterns and about service levels rather than about methods on individual objects.

Written by santoshbenjamin

September 5, 2010 at 3:39 PM

Posted in Coding, General, System Design

Tagged with ,

A new lifetime gig

with one comment

I’m Dad again for the second time 🙂 . Baby Rachel arrived last week and is already alert and ready to take over the world. Just check out the picture.

Rachel Benjamin

Well, I guess that pretty much squeezes down my community project bandwidth down to a minimum. This is going to be a long project. Western parents usually get away with an 18-year gig but Indian ones don’t 🙂

Written by santoshbenjamin

September 1, 2010 at 10:37 PM

Posted in General

Tagged with

MockingBird Videos

with 4 comments

I’ve taken my first foray into the world of producing videos with a set for MockingBird.

Take a look and let me know what you think of the quality and content (and also if these links all work for you. SkyDrive has been giving me some problems in sending links around). I will work on doing more videos if there is a demand for them.  Looking forward to your feedback.

Written by santoshbenjamin

August 15, 2010 at 4:41 PM

Posted in MockingBird, Tools, Videos

Tagged with ,

LINQ-ed Lists

leave a comment »

If you’re still staying on the fringes of LINQ (quite like me 🙂 ) , here’s something I found that got me liking it quite a bit more and maybe it will do the same for you. I like LINQ in small doses. I’ve seen horrible complex expressions that I would never understand even if i lived a million years, and I dont want to write such code, so I only use it where it makes expressing intent concise and preferably, in one simple line.   (Read on only if you are not a LINQ expert).

So I’ve got a (contrived) example here that resembles closely a few problems I needed to solve recently. The 3 or 4 main scenarios I was faced with are as follows  (all operating on a list of complex objects).

  • Remove a set of entries (specific criteria) from somewhere in the list
  • Check if the list contains all the specified objects
  • Finding an object with a specific attribute (pretty much a subset of any of the 3 scenarios above).

Now as you can imagine,  removing entries from custom collections is not a trivial task. Iterating through collections and deleting them causes collection modification errors as the system tries to deal with the changing length of the collection and so on. Even finding an item in a custom collection is several lines of a foreach. So here’s how to do all this in a trivial way in LINQ.  (Its possible there are even more concise ways to do this , so feel free to enlighten me (as long as it doesnt involve an IQueryable<> that joins to an IEnumerable<> and magically projects something into the universe, blah, blah etc 🙂 , see I know the lingo!)

Assume a class named Customer (what else ?) with the following structure

class Customer
        public int Id { get; set; }
        public string Name { get; set; }
        public Customer(int id, string name)
            this.Id = id;
            this.Name = name;

Now lets assume I create a List<> of these customer objects named Customers with values such as (1,Name1), (2,Name2), (3,Name3) and so on.

Remove all customers with name = Name2

customers.RemoveAll(c => c.Name.Equals(“Name2”));

Check if the list contains all the given entries

List<string> expectedReferences = new List<string> { “Name1”, “Name2”, “Name3”, “Name4”, “Name5” };

var references = from c in customers select c.Name;


Finding an entry with a specific criteria

var result = from c in customers where c.Name.Equals(“Name2”) select c;

.. and so on. If your custom object implements the Equals property then you can do even more funky stuff like returning the Intersection (common elements) of the lists or the Except (distinct elements) with single lines of code. I thought the RemoveAll() and SequenceEqual() methods were particularly fascinating because of the amount of code they reduce. I immediately put this to work in the project and in MockingBird where I had a number of places where I was doing object searches.

So that’s it on the subject of LINQ for now. Definitely not intended to be a tutorial. Just something I found and it helped me quite a bit.

Written by santoshbenjamin

August 3, 2010 at 10:31 PM

Posted in Coding, General, LINQ

Tagged with

Speaking on AppFabric @ SBUG

leave a comment »

I’m delighted to be delivering my first presentation for the UK SOA/BPM User Group next week on the topic of Windows Server AppFabric (formerly code-named “Dublin”). The link to register is here and the page will be updated with the abstract shortly.

The tight integration between WCF and WF 4.0  and the hosting support in AppFabric is looking very promising now and will definitely provide a good platform for solutions which dont require BizTalk and, where BizTalk is already available, can work well alongside and integrate with it.   We’ll look at some scenarios where there may be overlap and how to approach the solution in such cases. Sure there will be some good discussions !

I know Yossi will be there 🙂 . Looking forward to catching up with some of the other UK / London gang as well.

Written by santoshbenjamin

January 18, 2010 at 9:38 AM