Ratnakar’s Weblog

Prepare and Install SharePoint 2010

Posted in General I.T, SharePoint 2010 by Ratnakar Garikipati on January 20, 2010

Please go through the following Microsoft article if you are looking to prepare and install SharePoint 2010 for dev purposes –

It has detailed step by step instructions and the relevant steps to your O/S or env that are to be followed without fail. The link also provides insight into some of the exceptions you might encounter depending on which step you might’ve missed.

Help to some of the other errors that are likely to surface while running the SharePoint 2010 Configuration error is as follows –

Exception – Failed to create the configuration database. An exception of type System.Security.Cryptography.CryptographicException was thrown. Additional exception information: The data is invalid.
Resolution – This has two steps
Step 1: Make sure that the “Network Service” account has full access to the “14” directory under %commonprogramfiles\Microsoft Shared\Web Server Extensions.
Step 2: Delete the registry key located under “SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\Secure\FarmAdmin” Registry key and then run the SharePoint 2010 Products Configuration Wizard.
It is likely that this registry key is required to be cleared each time you run the wizard after an unsuccessful attempt:)

Exception – “An exception of type Microsoft.SharePoint.SPException was thrown. Additional exception information :User cannot be found.
Likely cause – The admin account that you are using for the install is a domain account and the workstation is not connected to the domain????
Resolution – Make sure your workstation is connected to the domain – use VPN if working remotelyJ and run the wizard again by clearing the registry key as advised above.

Hopefully this will come in handy for some of you.

I will revise this if I make further observations, and I’d greatly appreciate if you guys keep me appraised of any other issues that you guys might have come across:)

– Ratnakar


playlists based on the folders (using the iTunes SDK)..

Posted in General I.T by Ratnakar Garikipati on November 19, 2009

Huge relief that I finally have managed to reorganise my music on my home server (was putt off for a while now:))

Realised that a number of people on the net are looking to do some of the things that I’ve done such as cleaning up the duplicates, removing the dead ones, recreating the playlists based on the folder structure on the server.

Here’s a snippet that recreates playlists based on the folders  (obviously in C#) – 

             iTunesApp app = new iTunesApp();
            var mainLibrary = app.LibraryPlaylist;
            var mainLibrarySource = app.LibrarySource;
            var tracks = mainLibrary.Tracks;
            var numTracks = tracks.Count;
            var numPlaylistsCreated = 0;
            var numTracksAddedToPlayLists = 0;
            var playlists = mainLibrarySource.Playlists;
             for (var i = 1; i <= numTracks; i++)
            // get the track from the current tracklist                
            IITTrack currTrack = tracks[i] as IITFileOrCDTrack;
            // only work with files

         if (currTrack.Kind == ITTrackKind.ITTrackKindFile)
         IITFileOrCDTrack file = (IITFileOrCDTrack)currTrack;
                if (file.Location != null)
                    var p =file.Location;
                    var location = p; 
                 if ((location != null) && (location != “”))
                 FileInfo fi = new FileInfo(file.Location);
                       if (fi.Exists)
                           string dir = fi.Directory.Name;

                           if (app.LibrarySource.Playlists.get_ItemByName(dir) == null)
                              var currPL = app.CreatePlaylist(dir) as IITUserPlaylist;

                               IITUserPlaylist currPL = app.LibrarySource.Playlists.get_ItemByName(dir) as IITUserPlaylist;

                               IITTrackCollection iTracksInPlayList = currPL.Tracks;
                               if (iTracksInPlayList.get_ItemByName(currTrack.Name) == null)

Auckland Code Camp 2008

Posted in .Net Framework 3.5, .Net Training, ASP.Net MVC, C#, General I.T, Visual Studio 2008 by Ratnakar Garikipati on August 2, 2008

For the code enthusiasts who live around Auckland  – The Auckland Code Camp 2008 is a free-of-charge .Net Community event and that’s where you want to be!

This all day event is on
Sunday, 31 August 2008 (the day before TechEd), 9:30 a.m. – 5:00 p.m. and at Crowne Plaza Hotel, 128 Albert St, Auckland.

Clik here to find more details.


As it is a free event with limited funding, I suggest you register ASAP – there’s also an option to pull out.
See you there!

heard of VisualWebGUI (www.visualwebgui.com) yet???

Posted in ASP.Net, C#, General I.T, Sliverlight, Visual Studio 2008 by Ratnakar Garikipati on July 28, 2008

I haven’t until I bumped into a post by David Hayden.

According to it’s web site (http://www.visualwebgui.com/) – “Visual WebGui (VWG) is an open source rapid application development (RAD) framework for Line-Of-Bussines AJAX & Silverlight GUIs. VWG cuts down development time (proven up to 90%) , without compromising on extensibility, scalability, performance, security or complexity.

Visual WebGui is the only framework that provides seamless integration to Visual Studio and the .NET framework and extends ASP.NET. VWG is unique and not more of the same (200 AJAX frameworks)! Visual WebGui replaces all of the ASP.NET methodologies which were designed for developing sites, with WinForms methodologies, which were designed for developing applications.

VWG provides the developer with an extremely efficient designer to design interfaces using drag and drop instead of hand coding HTML layouts.”

I am not advocating to use it or promoting it by any means as I myself haven’t used it yet but I must say I watched this webcast and I am now intrigued to have a dig at it when I get a spare moment.

Also there’s this rescheduled MSDN event (webcast) originally planned for 23rd July, register if you are keen as mustard as I am – http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032379516&CountryCode=US

ASP.NET MVC CodePlex Preview 4 – released!!

Posted in .Net Framework 3.5, ASP.Net, ASP.Net MVC, C#, Dynamic Data, Visual Studio 2008 by Ratnakar Garikipati on July 19, 2008

The installer and source for Preview 4 is now available on CodePlex for download (http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=15389).

Here’s a list of changes that have been made between Preview 3 and the current release Preview 4 –

  • New Simple Membership Features in the Default Project Template
  • New Filter Types for Authorization and Exception Handling
  • New Output Cache Filter
  • Changes for ASP.NET AJAX
  • Namespaces in Routes
  • New Interface for Enhanced Testability of TempData
  • ActionInvoker Extensibility Improvements

As I highlighted in my previous post – Scott Guthrie has an excellent post with an example covering the new changes – http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx

A sneak peek into ASP.NET MVC Preview 4 Release

Posted in .Net Framework 3.5, ASP.Net, C#, General I.T, Visual Studio 2008 by Ratnakar Garikipati on July 15, 2008

If you are keeping a close eye on what’s happening in the ASP.Net MVC space – Scott Guthrie has a post suggesting that the next Preview version (# 4) is to be expected later this week – which I can’t wait to get my hands on!!!

This is perfect for me in terms of timing because for the last few months I have been spending most of my time at one of our client’s place training/mentoring their application development team while trying to employ/adopt a long-term/future-proof Enterprise Development Strategy.

I was reluctant to introduce MVC yet to the team as it is still early stages. Although with some level of custom coding you can implement the core aspects of AJAX  etc, I wanted to wait until I check out Preview 4 – rightly so and as expected here comes an announcement from Scott that preview 4 has new features such as Caching, Error Handling and Security plus further additional support for AJAX.




ASP.NET 3.5 Extensions Preview

Posted in .Net Framework 3.5, ASP.Net, ASP.Net MVC, C#, Dynamic Data, General I.T, Sliverlight, Visual Studio 2008 by Ratnakar Garikipati on May 7, 2008

is available for download now..(click here)

The ASP.NET 3.5 Extensions Preview is a preview of new functionality being added to ASP.NET 3.5 and ADO.NET. The release includes ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET controls for Silverlight, ADO.NET Data Services, Entity Framework runtime, and new features for ASP.NET AJAX.

Both ASP.NET MVC and ASP.NET controls for Silverlight have been updated since this release. The latest versions can be accessed at:

a couple of LINQ tools

Posted in .Net Framework 3.5, C#, General I.T, Visual Studio 2008 by Ratnakar Garikipati on May 4, 2008

Visual LINQ Query Builder  

Visual LINQ Query Builder is an add-in to Visual Studio 2008 Designer that’s developed to help you build LINQ to SQL queries through a friendly interface. The tool can be seen in action here – http://blogs.msdn.com/mitsu/archive/2008/04/02/visual-linq-query-builder-for-linq-to-sql-vlinq.aspx  and available for download from the MSDN Code Gallery – http://code.msdn.microsoft.com/vlinq


LINQPad is proving to be quite successful and seen as a tool that’s not only useful to learn LINQ but also for dev purposes.  This tool:   

       supports C# 3.0 and Framework 3.5 (LINQ to SQL, LINQ to Objects, LINQ to XML)

       comes with 200 preloaded examples

       offers code snippet IDE

       free and only 2mb in size

more here –  http://www.linqpad.net/

.Net Framework 3.5 Enhancements Training Kit

Posted in .Net Framework 3.5, ASP.Net, C#, Dynamic Data, General I.T, Visual Studio 2008 by Ratnakar Garikipati on April 29, 2008


If you haven’t subscribed to Microsoft’s Download Notifications and aren’t aware of .Net 3.5 Enhancements Training Kit then check it out here – http://go.microsoft.com/?linkid=8741672


The .Net Framework 3.5 Enhancements Training K it features presentations, hands-on labs, demos, this content is designed to demonstrate how to use the 3.5 enhancements like ASP.Net MVC, ASP.Net Dynamic Data, ASP.Net AJAX History, Silverlight, ADO.Net Data Services and ADO.Net Entity Framework.


Also, if you want to keep on top of new downloads I suggest you subscribe here – http://go.microsoft.com/?linkid=8741740

Windows Mobile 6.1 on HTC Apache??

Posted in General I.T, Mobile, Windows Mobile 6.1 by Ratnakar Garikipati on April 17, 2008

Thanks to PPC geeks, I just managed to install Windows Mobile 6.1 on the old HTC Apache.


It’s relatively a simple process – download the ROM Kit onto your PC from the PPC Kitchen’s site (http://ppckitchen.org/joomla/index.php?option=com_content&view=article&id=44:ppckitchen-released-apache&catid=1:latest-news) , get the updates, open up the default project file for your device, pick and choose the OEMs that you want on your mobile including the skins, wallpapers etc, connect your PPC to your PC, compile and run the project.


The amazing part is I neither had to do any registry hacks to connect it up to the exchange nor install the certificate to the root manually. Also, I realised that the device is much faster and stable.

Dynamic Data Preview for ASP.Net now available for download!!!

Posted in ASP.Net, C#, Dynamic Data, General I.T by Ratnakar Garikipati on April 10, 2008

ASP.NET Dynamic Data is a powerful new feature that provides two significant usability improvements to working with data controls in ASP.NET Web sites and Web applications.

The first improvement is for existing applications that use DetailsView, FormView, GridView, or ListView controls. The DetailsView and GridView controls have been extended to display fields by using templates instead of by using hard-coded rules that are programmed in the controls. These templates are part of the project, and you can customize them to change their appearance or to specify what controls they use for rendering. This makes it very easy to make a change in one place that specifies how to present dates for editing, as one example. FormView and ListView controls can implement similar behavior by using a DynamicControl control in their templates and by specifying which field in the row to display. Dynamic Data will then automatically build the UI for these controls based on the templates that you specify.

The second improvement is that the controls look at the metadata for a LINQ to SQL or Entity Framework data model and provide automatic validation based on the model. For example, if a column in the database is limited to 50 characters, and if a column is marked as not nullable, a RequiredFieldValidator control is automatically enabled for the column. (The controls also automatically support data-model-level validation.) You can apply other metadata to take further control over display and validation.

You can find more details here – http://code.msdn.microsoft.com/dynamicdata, and Scott Gu has a good post with an example here (http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx) plus links to other useful posts about this topic.

Add to Tecnorati Favorites

Creating and Using Silverlight and WPF User Controls by Scott Guthrie

Posted in General I.T by Ratnakar Garikipati on April 8, 2008

Not sure how many of you follow Scott Gu’s weblog but there are some cool Silverlight demos and colleteral that he’s been reggularly posting so if your work lingers around Microsoft’s product set, I suggest you subscribe to his weblog – http://weblogs.asp.net/scottgu/default.aspx

his most recent one is about creating and using Silverlight and WPF User Controls – of course, the demo requires expression blend, but, you can always trial it!

 Add to Technorati Favorites

Repository Factory for VS 2008

I have seen many people wanting to know the future state of the Repository Factory (formerly known as Data Access Guidance Package) – the news from Microsoft is that it will be retired and there won’t be any further releases. 

As you probably know the current version available on CodePlex isn’t VS 2008 compatible – so if you have moved on to using VS 2008 and are looking to use the repository factory further then write to me (leave a comment), I will flick you a copy. The version I have was tweaked and compiled for VS2008 and it uses Partial Classes etc so it is indeed better than the previous release!!!

There’s one issue with this version of the Repository Factory that I would like to highlight –
If you encounter an exception of type ‘System.Configuration.ConfigurationErrorsException’ it is because the code generated web.config entry for the repository interface will look like the following:

<add interfaceType=”CustomerMgmt.DataAccessLayer.ICustomerRepository, DataAccessLayer” repositoryType=”CustomerMgmt.DataAccessLayer.BusinessLayer.CustomerRepositoryArtifacts.CustomerRepository, DataAccessLayer”/>

instead, this is how it should have been:

<add interfaceType=”CustomerMgmt.DataAccessLayer.Interfaces.ICustomerRepository, DataAccessLayer” repositoryType=”CustomerMgmt.DataAccessLayer.BusinessLayer.CustomerRepositoryArtifacts.CustomerRepository, DataAccessLayer”/>

I will correct and repackage the project but for now modify the web.config mannually.

Note: This issue is now resolved in the new version of the package that I created.

Microsoft released the new Software Factory refresh for VS 2008

Posted in General I.T by Ratnakar Garikipati on April 4, 2008

The Web Service Software Factory: Modelling Edition (also known as the Service Factory) is an integrated collection of resources designed to help developers quickly and consistently build Web services that adhere to well-known architecture and design patterns.

A refresh for VS 2008 was released a few days ago to address the following feedback that the team had received:
– The tool should remember the information provided so it does not have to be provided each time the source code is generated.
– The next version should focus less on the data access and business logic tiers and more on the service interface.
– Help those who want to modify the Service Factory source code; doing this is not a straightforward process.
– Wizards are okay some of the time, but a visualization of the services is a better experience.
– Services should be designed in a technology-independent manner.

More information can be found here: http://msdn2.microsoft.com/en-nz/library/bb931187(en-us).aspx

Add to Technorati Favorites

iPhone in New Zealand

Posted in General I.T by Ratnakar Garikipati on March 18, 2008

was speaking with one of my colleagues about how he got his iPhone and unlocked it to work in NZ etc, the conversation got me so intrigued that I started digging deep, in the process, I came across these blogs that are quite popular and informative, one’s about where not to buy it and the other one is about where to buy and hack it to get it going in NZ…
These blogs led me to another useful New Zealand based site (http://www.kiwi-ise.co.nz/) where a bunch of iPhone enthusiasts seem to share fixes, patches, hacks, mods for iPhones and iPods.There’s apparently some issues with the browser (Safari) authenticating Gmail and Facebook, a colleague of mine (a big thanks to him) has worked out fixes for these and has some useful posts at this link –

Some other useful links for the hacks – 

Add to Technorati Favorites

Banned XBOX advert on youtube

Posted in General I.T by Ratnakar Garikipati on March 18, 2008

thought some of you might be interested – it might not be long before it gets blocked though =)

Web Client Software Factory 2.0 for Visual Studio 2008 now avaiable

Posted in General I.T by Ratnakar Garikipati on March 9, 2008

This software factory contains a collection of reusable components and libraries, Visual Studio 2008 solution templates, wizards and extensions, How-to topics, automated tests, extensive architecture documentation, patterns, and a reference implementation. The software factory uses ASP.NET, ASP.NET AJAX, the AJAX Control Toolkit, and the Enterprise Library–May 2007.

New In This Release

The February 2008 release of the Web Client Software Factory is an update to the June 2007 release. These are the major changes:

  • Added new Guidance Assets. These allow a developer to quickly, conveniently and easily learn, evaluate, and implement different components of the factory without having to use it in its entirety. These assets also contain functionality you can use on your existing ASP.NET Web sites.
  • Added user interface responsiveness guidance. The guidance includes documentation, Web controls, QuickStarts, and a new reference implementation that demonstrate how to incorporate Microsoft ASP.NET AJAX and AJAX Toolkit technologies in your Web applications to provide a richer user interface experience. A new recipe to enable Microsoft ASP.NET AJAX in an existing Web application has been incorporated into the guidance package.
  • Added support for the Model-View-Presenter pattern in user controls and master pages. The Composite Web Application Block includes a new Dependency Injection mechanism that facilitates the implementation of the Model-View-Presenter pattern in Web controls and master pages. The guidance package also includes new recipes that help developers create master pages and user controls that implement the Model-View-Presenter pattern. By using the Model-View-Presenter, developers can extend the testability surface to user controls and master pages.
  • User controls can be reused across modules. Developers can build Web pages made up of user controls from different modules.
  • Updated the Composite Web Application Block. The main changes include the following:
    • Improved performance
    • Support for services registration through configuration
    • Support for type mapping for dependency injection
  • Updates to the Add Business Module and Add Foundational Module recipes. These recipes now include a new option to create a separate project for the modules’ public interface.
  • Updated the patterns documentation topics. The main changes include two new pattern description topics, Inversion of Control and Module Interface Separation, and updates to the Model-View-Presenter topic.
  • Included additional guidance for several technical concepts. The technical concepts covered are views testability, modularity, autoComplete, validation, and search. The guidance consists of documentation, QuickStarts, Web controls, and How-to topics.
  • Added support for Visual Studio 2008 to the guidance package.
  • Added support for dependency injection on ASMX Web services. This allows developers to inject services and dependencies into traditional Web services and JSON services which are accessed through AJAX calls.

To keep on top of the news and the updates on Microsoft’s Patterns and Practices, keep an eye over this link – http://msdn2.microsoft.com/en-us/practices/default.aspx

PowerCommands For Visual Studio 2008

Posted in C#, General I.T, Visual Studio 2008 by Ratnakar Garikipati on March 3, 2008

PowerCommands 1.1 is a set of useful extensions for the Visual Studio 2008 adding additional functionality to various areas of the IDE. The source code is included and requires the VS SDK for VS 2008 to allow modification of functionality or as a reference to create additional custom PowerCommand extensions.

More details about extending the Visual Studio can be found here – http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=df3f0c30-3d37-4e06-9ef8-3bff3508be31 and visit the VSX Developer Center at http://msdn.com/vsx

Web Client Software Factory and Data Access Layer

Posted in .Net Framework 3.5, ASP.Net, C#, General I.T, Visual Studio 2008 by Ratnakar Garikipati on November 30, 2007

I was exploring the Web Client Software Factory recently and one thing that I thought would be important to share with you all is – it does not come with a recipe to create data access layer for web applications – might feature in the next version though.

The current recommendation according to Microsoft’s Patterns and Practicses is to use the Data Access Guidance Package that comes with the current version of the Web Service Software Factory – From what I read, the next version of the Web Service Factory might not feature the Data Access Guidance Package as well but will be released separately.

The Data Access Guidance Package is fairly impressive with the features like Command Factories, Entity Factories and allows to create a flexible Framework for your Data Access Needs.

There are other Data Access Packages/Tools available if you wish not to use Microsoft’s Data Access Guidance Package inconjunction with the Web Client Software Factory – here’s a list of few – NTiers, NHibernate, WilsonORMapper, TableAdapters, ActiveRecord…


Host your Silverlight applications for free (upto 4gb) at…

Posted in General I.T by Ratnakar Garikipati on September 14, 2007


Microsoft® Silverlight™ Streaming by Windows Live™ is a companion service for Silverlight that makes it easier for developers and designers to deliver and scale rich media as part of their Silverlight applications.

The service offers web designers and developers a free and convenient solution for hosting and streaming cross-platform, cross-browser media experiences and rich interactive applications that run on Windows™ and Mac. Combined with the ability to create content with Microsoft® Expression Studio and other 3rd party tools, Web designers and content publishers wishing to integrate Silverlight applications into their online properties can enjoy complete control of the end user experience.

more to come on this topic…so watch this space =)

C# 3.0 demo

Posted in C# by Ratnakar Garikipati on August 24, 2007

My previous blog talks about the new C# language enhancements/extensions.


Here’s an excerpt from Luke’s C# demo at TechEd 2007 which covers things like Auto-Implemented properties, ‘var’ – Local Variable Type Inference, Collection Initializers, Object Initializers, Lambda Expressions etc


If you are a C# enthusiast…I would suggest you subscribe to his feeds at: http://blogs.msdn.com/lukeh/


using System;

//using System.Linq;

using System.Collections.Generic;

class Customer


    // C#3.0 Feature:  Auto-Implemented Properties

    public string CustomerID { get; set; }

    public string ContactName { get; set; }

    public string City { get; set; }


public delegate TResult Func<TArg, TResult>(TArg c);

static class Query


    // C#3.0 Feature:  Extension Methods

    public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T,bool> filter)


        foreach (var item in source)

            if (filter(item))

                yield return item;


    public static IEnumerable<TResult> Select<TSource,TResult>(this IEnumerable<TSource> source, Func<TSource,TResult> selector)


        foreach (var item in source)

            yield return selector(item);



class Program


    static void Main(string[] args)


        List<Customer> customers = LoadCustomers();

        // C#3.0 Feature:  Query Expressions

        var query = from c in customers

                    where c.City == “London”

                    // C#3.0 Feature:  Anonymous Types

                    select new { c.CustomerID, c.ContactName };

        // C#3.0 Feature:  Lambda Expressions

        //var query = Query.Select(Query.Where(customers, c => c.City == “London”),

        //                         c => new { c.CustomerID, c.ContactName });

        //var query = customers.Where(c => c.City == “London”)

        //                     .Select(c => new { c.CustomerID, c.ContactName });

        foreach (var item in query)

            Console.WriteLine(“{0}, {1}”, item.CustomerID, item.ContactName);


    private static List<Customer> LoadCustomers()


        // C#3.0 Feature:  ‘var’ – Local Variable Type Inference

        // C#3.0 Feature:  Collection Initializers

        var customers = new List<Customer>()


            // C#3.0 Feature:  Object Initializers

            new Customer { CustomerID = “ALFKI”, ContactName = “Maria Anders”, City = “Berlin”},

            new Customer { CustomerID = “ANATR”, ContactName = “Ana Trujillo”, City = “México D.F.”},

            new Customer { CustomerID = “WOLZA”, ContactName = “Zbyszek Piestrzeniewicz”, City = “Warszawa”}


        return customers;



Tech-Ed 2007 New Zealand – has come and gone!

Posted in General I.T by Ratnakar Garikipati on August 17, 2007

With over 100 experts and 2000 delegates it was bigger than last year.


My favourite topic clearly –  “Windows Communication Foundation”.


Due to the hectic schedule and the urgent deliverables at hand I couldn’t attend all the sessions. But for me clearly the stand-out sessions were the WCF ones by Justin Smith. His sessions were very useful, relevant and to-the-point. I had a chat with him after one of his sessions and I was humbled by the command that he had on the subject. For those who are working or about to embark on a project that involves WCF, I strongly recommend you keep a very close watch on his blogs or subscribe the feeds.


From what I gather, WCF is considered to be the best written framework that Microsoft put together so far. Also, the SDK for WCF is quite comprehensive and a good place to start.


I will add a couple of posts covering the goodies that were mentioned by Justin during his sessions…and may be link or two to his powerpoint slides.


TechFest – The theme was great, Evermore was great…but I felt Townhall wasn’t the best choice, it was small, resonant and pretty much faded the good performance of Evermore.

C# 3.0 language extensions

Posted in C# by Ratnakar Garikipati on August 17, 2007

C# 3.0 (“C# Orcas”) introduces several language extensions that build on C# 2.0 to support the creation and use of higher order, functional style class libraries. The extensions enable construction of compositional APIs that have equal expressive power of query languages in domains such as relational databases and XML. The extensions include:

  • Implicitly typed local variables, which permit the type of local variables to be inferred from the expressions used to initialize them.
  • Extension methods, which make it possible to extend existing types and constructed types with additional methods.
  • Lambda expressions, an evolution of anonymous methods that provides improved type inference and conversions to both delegate types and expression trees.
  • Object initializers, which ease construction and initialization of objects.
  • Anonymous types, which are tuple types automatically inferred and created from object initializers.
  • Implicitly typed arrays, a form of array creation and initialization that infers the element type of the array from an array initializer.
  • Query expressions, which provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.
  • Expression trees, which permit lambda expressions to be represented as data (expression trees) instead of as code (delegates).

Rosario now available for download

Posted in C#, General I.T by Ratnakar Garikipati on July 20, 2007

Visual Studio® Team System Code Name “Rosario” is the version of Team System that follows Visual Studio Team System 2008. This release provides the earliest public glimpse of the work in progress on the next generation of Team System.

you can download this from:


Visit http://msdn2.microsoft.com/en-us/teamsystem/bb725993.aspx to get an idea of what to look out for.

I got to play around with it during the Tech-Ed 2007 in New Zealand and it’s awesome.

MOSS 2007 – CMS – Publish the content to one or more sites with different look and feel???

Posted in General I.T by Ratnakar Garikipati on April 1, 2007

I  was working on a presentation to demonstrate MOSS’ CMS capabilities and this was one of the requirements that I had to prove.  
Initially, I thought there’s at least a couple of ways of achieving this but in the end I had to give up on option 1 and reside to the latter.  
Without going into too many details, I will outline what I tried and the roadblocks that I hit with option 1  

1.    Created a new publishing site (the publisher)

2.    Created a custom content type

3.    Created a custom page-layout based on the custom content type, checked-in, published, approved so that the page-layout is usable

4.    Created a new page based on the custom page-layout created above

5.    Edited the page, checked-in, submitted for approval, approved so that it is available for the users

6.    Created a new web  application and a blank site (“the subscriber”) using STSADM #### make sure you use STSADM instead of creating a site collection using Sharepoint Central Admin. The purpose of this site is to subscribe to the content published by “the publisher” site.

7.    Because the source site is of Publishing type a quick deploy job is created. Leave this alone and create a new job with pretty much the default settings

8.    Then select the job, right-click and run the job now.

9.    Go to the destination site and you will notice that the custom content type, page-layout and page along with the content is published.  

So far all hanky dory but I hit a roadblock at this stage, as soon as I customise the page-layout on the destination site and go back to the source site, change the content republish and run the deployment job, it overwrites the page-layout that I modified on the destination site.

I thought of changing the styles on the destination site that this page-layout uses but the style itself is inline within the page.

I also tried to checkout the page-layout on the destination site so that it won’t be overwritten by the source and quote rightly the deployment job failed with an error ( this is what I would expect )

Option 2 using site variations – it works!

1.    I created a new publishing site (the publisher)

2.    Created site variations, and the site variation labels, and then the hierarchy (one being a source and the other being the destination)

3.    Then created a custom content type

4.    Created 2 custom page-layouts, one for source and other for the destination with each one deriving from the custom content type created above.

5.    When creating the page-layouts make sure you set the variation labels property accordingly (Source for the first and the destination for the other)

6.    Change the destination page-layouts to use different font type for the body (just to display with a different look and feel)

7.    Check-in each of the page-layouts, publish, submit for approval and approve so that it is available to create pages.

8.    Created a page on the source site deriving from the source site page-layout, check-in, submit for approval and approve

9.    You will notice that this page is available on the destination, now edit the page, change the page layout to be the second one (that you’ve created for the destination site)

10.  Also, the subsequent versions of the page when published from source site will use the destination page layout(same content displayed differently on source and destination which we couldn’t achieve using option 1)   

For those who want to know how to create page-layouts, customise them using sharepoint designer, create variations, variation labels, associate page-layouts to variation labels and  so on….drop me a line.  

I had less than 5 minutes and so had to be very brief but am happy to help if you leave a comment or a question.