DotNetMe Podcast ++

Hi folks, its been a while since my last post. I guess i have been a bit too busy, but no complains thats the way it goes.

Coming to the point, althought i havent been blogging but i have been busy sorting out podcasts for the DotNetMe (Microsoft.Net Middle East) show. Just to give you a head’s up, so far, we have recorded following sesssions:

– Agile Development with Hammad Rajjoub (shameless plug, i know :> )
– Localizing Microsoft Technology Stack for Arabic with Dina Lasheen
– Understanding Micrsoft EPM – Enterprise Project Management with Bilal Okour

We are going to record two more sessions tonight

– Understanding Sharepoint for Developers using C# with Mostafa Arafa
– Inside Sharepoint for Arabs with Ayman el Hattab

We are aiming to go live on MSDN Channel9 15th December with these shows with lots of more shows to follow.

Yes, in the meantime for more ‘real-time’ updates, do follow us on

Gulf Developer Podcast series 09

I am extremely pleased to announce the very first ‘Microsoft.Net focused podcast series in Gulf’. Let me give you a little bit of background first and then we can drill down into the details of who, what, how and when.

Having been in Dubai, on and off, for past 4-5 years and being Microsoft MVP all the while has given me an oppurtunity to work with local developer communities here in the Gulf. In terms of dev communities, Kwait (with dotnetboom and Qatar (with oryx dev have been successful with setting up their user groups. Unfortunately we dont have similar success story for the UAE in particular and the rest of Gulf in general.

The Motivation
This lack of dev community itself is a biggest motivation for trying to bring all the developers on a common platform. Objectives include empowering regional Microsoft developers with relevant technical content on Microsoft Platform, presenting topics in English/Arabic, sharing ideas, learning from each others experiences/mistakes and above all finding an oppurtunity to get in touch with like minded professionals across the region.

The Idea
From years of experience we have learned that its difficult to get developers to come and attend user group events in the emirates. Generally this is attributed to problems related to ‘commuting’ to and from the event venues as well as lack of well designed event calendar(schedule).
To mitigate these potential issues, myself and Anton (from Microsoft Dubai) agreed on hosting a developer podcast series. The idea was discussed when Somasegar was visiting Microsoft Dubai and hosted local dev community for an informal talk/lunch at Microsoft Dubai office in DIC – Dubai Internet City last month.

The Plan
The plan, as i said, is to host a series of sessions targetting regional developer community. Come up with a clear agenda and share the detailed schedule with the developers so that they can mark their calendars and look forward to the events that they think are most relevant for them. Upload all the podcasts to MSDN Channel 9 so that the content can be downloaded easily (and be listened to while driving on Sheikh Zayed Road ;)).

The Schedule
I will be posting a detailed calendar in next 2-3 weeks but tentatively we have agreed on following dates and topics:-

1- Agile 101 presented by Hammad Rajjoub on 7/8th October 2009
2- Win 7 for Developers by XXXXX on 27/28 October 2009
3- Whats new in WCF 4.0 by XXXXX on 17/18 November 2009

Ofcourse this is an initial draft and we would like to get the feedback from the community and let them choose the content thats most relevant for them.

Whats Next
– Watch out this space for more details as we finalize the plan and confirm the content/date/speaker tuples.
– Follow us on Twitter for instant updates.
– Provide us with your feedback on twitter or this blog post

Microsoft’s Web Platform Installer

The Web Platform Installer (Web PI) is a simple tool that installs Microsoft’s entire Web Platform, including IIS, Visual Web Developer 2008 Express Edition, SQL Server 2008 Express Edition and the .NET Framework. Using the Web Platform Installer’s user interface, you can choose to install either specific products or the entire Microsoft Web Platform onto your computer. The Web PI also helps keep your products up to date by always offering the latest additions to the Web Platform.

get it here

Office Development with VS 2010

Get up to date with office development on .net platform with Somasegar’s post <a href=””>here</a>

My personal favourite is simplification of .net’s integration with COM’s OM.

As per the example posted in Somasegar’s blog.

Instead of doing the following

object fileName = “Test.docx”;
object missing  = System.Reflection.Missing.Value;
doc.SaveAs(ref fileName,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing);

You can do with VS 2010

object fileName = “Test.docx”;

Contention, poor performance, and deadlocks when you make Web service requests from ASP.NET applications

If you are (un) lucky like me then you may run into gettin this error on IIS server web apps/asmx web services. Its a known issue and has a resolution documented in kb article @

The resolution revolves around fine tuning machine.config parameters.

To improve your web app performance do read

VS 2008 sp1 & .Net 3.5 sp1 is out

You can download VS 2008 sp1 and .Net 3.5 sp1 @


This release has major improvements on WCF and WF.

Brief overview avaialble @ download page says:


.NET Framework version 3.5 Service Pack 1 provides the following new features and improvements:

  • ASP.NET Dynamic Data, which provides a rich scaffolding framework
    that enables rapid data driven development without writing code, and a
    new addition to ASP.NET AJAX that provides support for managing browser
    history (back button support). For more information, see What’s New in ASP.NET and Web Development.
  • Core improvements to the CLR (common language runtime) that include
    better layout of .NET Framework native images, opting out of
    strong-name verification for fully trusted assemblies, improved
    application startup performance, better generated code that improves
    end-to-end application execution time, and opting managed code to run
    in ASLR (Address Space Layout Randomization) mode if supported by the
    operating system. Additionally, managed applications that are opened
    from network shares have the same behavior as native applications by
    running with full trust.
  • Performance improvements to WPF (Windows Presentation Foundation),
    including a faster startup time and improved performance for Bitmap
    effects. Additional functionality for WPF includes better support for
    line of business applications, native splash screen support, DirectX
    pixel shader support, and the new WebBrowser control.
  • ClickOnce application publishers can decide to opt out of signing
    and hashing as appropriate for their scenarios, developers can
    programmatically install ClickOnce applications that display a
    customized branding, and ClickOnce error dialog boxes support links to
    application-specific support sites on the Web.
  • The Entity Framework is an evolution of the existing suite of
    ADO.NET data access technologies. The Entity Framework enables
    developers to program against relational databases in according to
    application-specific domain models instead of the underlying database
    models. For more information, see Getting Started with the Entity Framework.
    The Entity Framework introduces some additional features, including
    support for new SQL Server 2008 types, default graph serialization of
    Entities, and the Entity Data Source. This release of the Entity
    Framework supports the new date and file stream capabilities in SQL
    Server 2008. The graph serialization work helps developers who want to
    build Windows Communication Foundation (WCF) services that model full
    graphs as data contracts. The Entity Data Source provides a traditional
    data source experience for ASP.NET Web application builders who want to
    work with the Entity Framework.
  • LINQ to SQL includes new support for the new date and file stream capabilities in SQL Server 2008.
  • The ADO.NET Data Services Framework consists of a combination of
    patterns and libraries, which enable data to be exposed as a flexible
    REST (Representational State Transfer)-based data service that can be
    consumed by Web clients in a corporate network or across the Internet.
    The ADO.NET Data Services Framework makes data service creation over
    any data source. A conceptual view model of the underlying storage
    schema can easily be exposed through rich integration with the ADO.NET
    Entity Framework. Services created by using the ADO.NET Data Services
    Framework, and also compatible Windows Live ( services,
    can be easily accessed from any platform. For client applications that
    are running on Microsoft platforms, a set of client libraries are
    provided to make interaction with data services simple. For example,
    .NET Framework-based clients can use LINQ to query data services and a
    simple .NET Framework object layer to update data in the service.
  • Windows Communication Foundation now makes the DataContract
    Serializer easier to use by providing improved interoperability
    support, enhancing the debugging experience in partial trust scenarios,
    and extending syndication protocol support for wider usage in Web 2.0
  • The .NET Framework Data Provider for SQL Server (SqlClient) adds
    new support for file stream and sparse column capabilities in SQL
    Server 2008.

Embedded sqlMap.config

If you are like me you would like to embed sqlMap.config file for your ibatis project. Although its not provided out of the box but its very simple to implement.

All you have to do is to write your own sqlMapper implementation.The core logic revolves around building DomSqlMapBuilder.

 protected static void InitMapper()
            DomSqlMapBuilder builder = new DomSqlMapBuilder();
            XmlDocument sqlMapConfig = Resources.GetEmbeddedResourceAsXmlDocument(“YourNamepspace.YourConfigFile.config”);
            mapper = builder.Configure(sqlMapConfig) as SqlMapper;


for more details do check out

The invoked member is not supported in a dynamic assembly

When i tried running an ibattis related unit test fixtures in my exsiting test assembly I started getting this wierd error that’s a known bug documented at

Interesting thing is that when i run that fixture in a separate assembly it works fine but as soon as i add it to existing test fixtures it crashes with this error :”The invoked member is not supported in a dynamic assembly”.

I think it has to do with how nUnit created dynamic assemblies for test fixtures internally. Unfortunately i cant change that behavior. So for now the work around is to use a separate assembly.


More on Composite Architecture

As i posted earlier that i will be presenting @ IASA Singapore’s chapter evening. It turned out to be an interesting session and i got the chance to interact with the audience and hear their pain points on composite architecture and enterprise mashups.

Enteprisewise initiatives, sharing data across services/apps and need for top quality tools came out as the most crucial elements to the success of composite architecture. I also heard some interesting remarks from the audience. One of the gentlement mentioned that there is nothing that composite arch/enterprise mashup offers that couldnt be done with traditional apps/services. I’d say lets look at this analogy:

“if you are travel from point x to y, you could either walk, run, ride a horse, drive, commute through train, or fly in a plane. Ofcourse it will depend on the distance b/w x and y. Among other things it will also depend on your mind set and approach. if you want to cover the distance in excess of hundreds of kilometers by riding a horse then God speed. Surely you will get there but the question is how much will it cost you in terms of time and effort”

I strongly believe in composite arhictecture and enterprise mashups. This truly leads to realization of potential promised by SOA.