Category Archives: 6824

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

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.


MVP Summit – 2008

I am back from MVP Summit 2008 that took place in Seattle last week. It was an absolutely amazing experience and I was overwhelmed by the sheer amount of information that was offered during the summit. From the Toby’s welcome note to speech by Sean O Driscoll to the break out sessions that took place in Building # 43 @ Redmond Campus to the key notes by Ray Ozzie and Steve Balmer, it was an enlightening experience.

I would like to point out to a news article posted by Seattle times here. I will be looking forward to attend next years summit that is scheduled for March 1-4th, 2009.

I will blog shortly about Connected System SDRs.

User group event: Web 2.0 in Enterprise

<dotNetBulls/> hosted their first technical event on 11th of March, 2008. Topic for this event was “Web 2.0 in Enterprise” and it was hosted by Linda Chong, from Microsoft. Linda Chong works for Microsoft in the capacity of Architect Evangelist and she has 12 years of extensive experience on management, consulting, evangelism, architecture design/review, pre-sales engagement and systems integration in the areas of SOA, Web 2.0, e-business/e-commerce and enterprise application integration (EAI). Event started with Hammad Rajjoub introducing <dotNetBulls/> and speaker.

Linda started off with talking about Software + Services and Web 2.0 and where it stands today and then moved towards Microsoft’s Silverlight and its applications in local/international market. It was a successful event that saw a conference room filled with geeks, snacks (thanks to SDC) and guest speaker engaged in technical dialogue for more than an hour.

ODP Bug (or so I think)

I found out that ODP.Net for Oracle 10g behaves in strange way for Oracle Parameter that are passed on to oracle command. It always expects parameters to be added in the same order as they are originally available on stored proc in db.

So, if a sp (stored proc) expects two parameters, first being “pId” and second being “pName” and you use the following code:

oraCommand.Parameters.Add(new OracleParameter(“pId”, OracleDbType.Int64, “10001”,


oraCommand.Parameters.Add(new OracleParameter(“pName”, OracleDbType.Varchar2, “John Doe”,


It works fine since the first parameter is of type Int64 (as expected) and the second parameter is of type Varchar2. However if you reverse their orders ODP wouldn’t work.

oraCommand.Parameters.Add(new OracleParameter(“pName”, OracleDbType.Varchar2, “John Doe”,


oraCommand.Parameters.Add(new OracleParameter(“pId”, OracleDbType.Int64, “10001”,


This will raise an exception that would say “Invalid number or type of arguments passed ….etc etc”. Now this is a strange behavior because we always (at least in terms of ADO.Net ) expect that parameter names will be binded against the stored procs parameters. But this doesn’t happen in the world of ODP.Net. And if you pass parameters in right order, parameter names doesn’t even matter.

I don’t know if its just my bad assumption or bad ODP design or a bug for that matter. It definitely caused me a whole lot of annoyance and wasted my time. I actually ended up adding a unit test and passing each and every parameter manually to sp and then running it against new provider. Since I was adding those parameters manually I added them in the same order as that of sp and hence a successful insert. But as and when I resorted to xml file containing field definitions, it always failed. I even ended up creating excel sheets with formulas to compare parameter types and values because that’s what I thought were most likely to go wrong. Bad day I guess!

I really think its a bad design atleast. API should be intuitive and inline with general design of framework (in our case ADO.Net).