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
- twitter.com/dotnetmepodcast
- twitter.com/hammadrajjoub
- twitter.com/ronaldwidha

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.

History
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 http://www.dotnetboom.net) and Qatar (with oryx dev http://oryxdev.com/en/default.aspx) 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. http://twitter.com/DotNetMEPodcast
- 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 http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

Office Development with VS 2010

Get up to date with office development on .net platform with Somasegar’s post <a href=”http://blogs.msdn.com/somasegar/archive/2009/01/10/office-client-developer-enhancements-with-vs-2010.aspx”>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”;
doc.SaveAs(fileName);

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 asp.net web apps/asmx web services. Its a known issue and has a resolution documented in kb article @ http://support.microsoft.com/kb/821268.


The resolution revolves around fine tuning machine.config parameters.


To improve your asp.net web app performance do read http://msdn.microsoft.com/en-us/library/ms998549.aspx

VS 2008 sp1 & .Net 3.5 sp1 is out

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


http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&DisplayLang=en


 


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 (dev.live.com) 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 applications.

  • 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 http://opensource.atlassian.com/confluence/oss/display/IBATIS/How+do+I+use+an+embedded+sqlMap.config+file

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 http://support.microsoft.com/kb/327131.


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.