Downloaded the Office 2010 Beta? Cool.. Outlook 2010 is awesome (and so is OneNote 2010, try it). Here's a very easy fix for the following Outlook2010 startup message:
"Cannot open you default e-mail folders. An unexpected error has occured.
MAPI was unable to load the information service msncon.dll. Be sure the service is correctly installed and configured."
Steps:
· Close Outlook2010
· Goto Control Panel > Add or Remove Programs
· Uninstall your old Outlook Connector for Hotmail/Live mail > Restart
· Get the new connector (version 14.0.4514.1004) from the links below:
· Open Outlook2010 again, no restart required.
32 bit: http://download.microsoft.com/download/D/F/8/DF8DC3A7-CF01-4F22-B965-DD8CD86411ED/OutlookConnector.exe
64 bit: http://download.microsoft.com/download/8/F/2/8F2D0D4D-719B-4BD3-90BC-56B7AF48C419/OutlookConnector.exe
I noticed that some posts out there have download links to Version 12 of the connector, which is not compatible with Outlook2010. Use the links above and it will work like a charm J
Enjoy Office2010! . . .Need more help? See here
Please Note: This post is specific to .Net Framework 3.5 and VS2008
In this scenario we have an existing WF workflow instance that we will change using the WorkflowChanges class. Our objective would to be to retain these changes (using XOML) and use this new WF activity structure to create new WorkflowInstance(s).
So, let’s look at the code. For easy understanding we will break this up into 5 simple steps.
1. Create a XOML only workflow as a starting point. This would have an associated assembly containing the functionality that we will load later.
2. Host the WF runtime in a console app and create a workflow instance.
3. Make changes to the workflow instance
4. Store the new (modified) workflow template
5. and finally, create new instances from this new template
Step1: Create a XOML only workflow
a) Create a Class Library project and create your own type that derives from SequenceActivity and add the required code beside elements and compile it. Refer to WorkflowProject1 in the attached code.
Note: make sure that the code handlers are public otherwise you won’t be able to bind to it from your markup (XOML workflow).
namespace WorkflowProject1
{
public partial class Activity1 : System.Workflow.Activities.SequenceActivity{
public void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
Console.WriteLine("Executing Code Activity1");
}
public void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
Console.WriteLine("Executing Code Activity2");
}
}
}
b) Create a XOML only workflow (TextFile1.xoml) as shown below. Note that the type created above is the root activity in this case and refers to the assembly created above. Also note that we have only two CodeActivities in this template.
<ns0:Activity1 x:Name="Activity12" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ns0="clr-namespace:WorkflowProject1;Assembly=WorkflowProject1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<CodeActivity x:Name="codeActivity1" ExecuteCode="{ActivityBind Name=Activity12, Path=codeActivity1_ExecuteCode}" />
<CodeActivity x:Name="codeActivity2" ExecuteCode="{ActivityBind Name=Activity12, Path=codeActivity2_ExecuteCode}" />
</ns0:Activity1>
Step2: Host the WF runtime in a console app and create a workflow instance
Create a Console app (ConsoleHostApplication1) and add the WorkflowProject1 assembly as a reference.
Before we can create an instance of the above XOML workflow, we need to tell the WorkflowRuntime where to find the associated functionality (for the activities being used). For this we need to add a TypeProvider runtime service. Add the following to the Program.cs (you would need some more WF hosting code that you would find in the attached code sample)
Note: We do not need the TypeProvider if the assembly is deployed to GAC.
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Add the Assembly that contains the codebehind
// to a TypeProvider and register the TypeProvider with
// the WorkflowRuntime.
TypeProvider t = new TypeProvider(workflowRuntime);
t.AddAssembly(typeof(WorkflowProject1.Activity1).Assembly);
workflowRuntime.AddService(t);
//run XOML workflow
XmlTextReader reader = new XmlTextReader(@"TextFile1.xoml");
WorkflowInstance instance = workflowRuntime.CreateWorkflow(reader);
instance.Start();
Related reading for Step 2:
Loading Workflow Models in WF
Using Workflow Markup
Using Rules with Workflow Markup
Using Custom Activities with Workflow Markup
Step3: Make changes to the workflow instance
We do this with the help of the WorkflowChanges class in Framework. This lets us create a transient workflow and make changes to it. Read more about it in the “Related reading” section for this step.
In our case we add another CodeActivity to the existing activity tree.
** You may want to provide a designer for editing the XOML. Please find related resources/sample code at the end of this post.
//Suspend before changing
instance.Suspend("Changing");
//making changes
WorkflowChanges changes = new WorkflowChanges(instance.GetWorkflowDefinition());
changes.TransientWorkflow.Activities.Add(new CodeActivity("codeActivity3"));
ActivityBind bind = new ActivityBind("Activity12", "codeActivity2_ExecuteCode");
changes.TransientWorkflow.Activities["codeActivity3"].SetBinding(CodeActivity.ExecuteCodeEvent, bind);
instance.ApplyWorkflowChanges(changes);
Related reading for Step 3:
Workflow Changes Overview
Workflow Changes to Rule Conditions
Using Workflow Changes in Workflows
How to: Apply Workflow Changes to Workflows
Dynamic Update from Host - Sample
Changing Rules - Sample
Step4: Store the modified template for future use
Note that we had suspended the workflow instance in step3. We take the structure of this paused (and now modified) workflow instance and store it in memory. Later we show it on the Console as output. You can just as well add some simple code to store this in a database table and even associate some version numbers to these templates. The key to this step is the WorkflowMarkupSerializer. Read more about it in the “Related reading” section for this step
//get the new workflow template/blueprint, optionally save it to a database with new version number for the template
WorkflowMarkupSerializer serializer = new WorkflowMarkupSerializer();
StringBuilder sb = new StringBuilder();
XmlWriter xwriter = XmlTextWriter.Create(sb);
serializer.Serialize(xwriter, instance.GetWorkflowDefinition());
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(sb.ToString() + "\n"); //show modified workflow template, notice the additional Code activity in the console output
Console.ForegroundColor = ConsoleColor.White;
//or write it to a file so that we can use it later
XmlWriter xwriter2 = XmlTextWriter.Create(@"C:\NewWorkflowTemplate.xoml");
serializer.Serialize(xwriter2, instance.GetWorkflowDefinition());
//resume the original workflow instance
instance.Resume();
Now let’s RUN the console app to see the changed workflow structure. Notice the additional CodeActivity that we added dynamically “codeActivity3” and the third CodeActivity output (highlighted).
Related reading for Step 4:
Serialization Overview
How to: Serialize Workflows
Serializing Custom Activities
Workflow Serialization Sample
Step5: Create new workflow instances from the new template
Create another Console app (ConsoleHostApplication2) and add the WorkflowProject1 assembly as a reference. Here we write the usual WF hosting code (see attached code sample for specifics).
As before we create a TypeProvider to associate the assembly, and then use the XMLReader overload of the WorkflowRuntime.CreateWorkflow() method to create an instance for the new workflow blueprint.
TypeProvider t = new TypeProvider(workflowRuntime);
t.AddAssembly(typeof(WorkflowProject1.Activity1).Assembly);
workflowRuntime.AddService(t);
//run XOML workflow
XmlTextReader reader = new XmlTextReader(@"C:\NewWorkflowTemplate.xoml");
WorkflowInstance instance = workflowRuntime.CreateWorkflow(reader);
instance.Start();
Upon running this console app, you would see that there is a third CodeActivity output (highlighted), whereas the original workflow template from Step 1b had only two CodeActivities.

Download Code
XOML Workflow designer re-hosting resources:
Viewing/Editing Workflow's in XML (WF Beta1 codebase) **
WFPad for Windows Workflow Foundation Beta 2 (with code) **
and also..
WF Scenarios Guidance: Workflow Designer Re-Hosting
Windows Workflow Foundation: Everything about Re-Hosting the Workflow Designer
Here are some good posts on .Net 3.5 enhancements (dlls) and compatibility with previous versions of the Framework.
Read about the Visual Studio 2008 Evolution
.Net Framework 3.5 - Red and Green Bits - the additive changes, 3.5 should not break your application unless your code is based on some bug that has now been fixed. CLR v.2.0 stays the same though, see here.
Jason Zander wrote a blog on Framework compatibility in the VS 2005 context (in case you are interested)
While working with WCF services over HTTP you may come across this error:
HTTP could not register URL http://+:8000/OrderManagerService/. Your process does not have access rights to this namespace.
Using WCF over HTTP either requires the use of a host (like IIS), or a manual configuration of HTTP Settings. In this case it really easy to do. The tool is different for different OS though.
Windows Server 2003/Windows XP - use the HttpCfg.exe tool
Windows Vista/Windows Server 2008 - configure these settings with the Netsh.exe tool (you need to deal with UAC here). The steps are mentioned below:
1. Go to Start > Accessories > Command Prompt > Right-Click (Run as Administrator)
2. Execute this at the command prompt:
netsh http add urlacl url=http://+:8000/OrderManagerService user=DOMAIN\username
8000 here is your port number, you can replace this with a port number of your choice (using which your WCF service is hosted)
You should get a message saying “URL reservation successfully added”
What you just did is to configure a Namespace registration. Namespace reservation assigns the rights for a portion of the HTTP URL namespace to a particular group of users. A reservation gives those users the right to create services that listen on that portion of the namespace. You will find more information here. There are other useful information on this page like Configuring SSL Certificates etc.
I would also recommend this related post.
Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. So you can expose a service over multiple channels, each of which can be configured to take advantage of select protocols like WS-Security, WS-Trust or WS-SecureConversation for secure message exchanges; WS-ReliableMessaging for reliable transfer of messages etc. You can also choose what transport protocol you want to use for communication (eg: HTTP, TCP, MSMQ, Named Pipes, custom) and the encoding format (XML, Binary, MTOM).
WCF is able to support interoperability as it’s native messaging protocol is SOAP (an open standard) thus providing the opportunity for WCF services to interact with different technologies running on Microsoft and non-Microsoft platforms. It also works with its predecessors like COM+ and Enterprise Services which reduces the amount of infrastructure code that you have to write as a developer in order to achieve heterogeneous interoperability. Here is a performance article you can go through.
Some resources to get started:
WCF Community Website
Windows Communication on MSDN
Understanding Windows Communication Foundation Virtual Lab
Books
Learning WCF: A Hands-on Guide
Inside Windows® Communication Foundation
Programming WCF Services by Juval Lowy (Author)
Windows Communication Foundation Unleashed
Great news everyone, the first version of the .NET 3.5 Enhancements Training Kit has been released!
These training kits provide a way for developers to grasp the breadth of the entire release, as well as dive deep into a specific technology. The .NET 3.5 Enhancements Training Kit covers the technologies in the .NET 3.5 SP1 release and beyond (ASP.NET MVC and the ASP.NET Silverlight controls). Currently, the training kit contains six hands-on labs, made up of the following technologies:
1) ADO.NET Data Services
2) ADO.NET Entity Framework
3) ASP.NET AJAX History
4) ASP.NET Dynamic Data
5) ASP.NET MVC
6) ASP.NET Silverlight controls
You can download the training kit at http://go.microsoft.com/?linkid=8719735
Happy Learning!!
Here it is, now available in different formats and explains really well the additive version releases of the Framework leading upto .Net 3.5

Download Links:
Full XPS
Split XPS
PDF
Tiled PDF
Enjoy!!
Recently I tried running Virtual Server 2005 R2 on Vista Ultimate edition, the program installed ok but I was unable to start the Virtual Server Administration site. It prompted me Open or Save vswebapp.exe
In order to fix the same you need to do the following:
· Add IIS features on an existing Windows Vista OS
· Add an IIS handler mapping so it will treat EXE files as CGI
Add IIS features on an existing Windows Vista OS:
IIS is not installed by default when installing Windows Vista, so in most cases you will need to add several IIS features before being able to install Virtual Server 2005 on Windows Vista. I used the following steps to add IIS to my Windows Vista system that is running the Ultimate edition:
1. Go to the Programs and Features control panel. I typically do this by pressing the Windows key + R and typing appwiz.cpl in the run dialog
2. Click the Turn Windows features on or off link in the Tasks list on the left side of the Programs and Features control panel, and click Continue to launch with administrator privileges
3. In the Windows Features dialog, locate the item named Internet Information Services in the feature tree. Check the root node to enable the default set of IIS features
4. Expand the root node and check the following child nodes that do not end up getting checked by default (this is the list of items that I checked, but I don't know for sure if all of them are necessary in order to use Virtual Server 2005): all of the IIS 6 management tools under the Web Management Tools node, all of the features in the Application Development Features, Common Http Features and Security nodes under the World Wide Web Services node
5. Click OK to add all of the IIS features that you selected in the previous 2 steps
6. Reboot after IIS feature installation completes
Add an IIS handler mapping so it will treat EXE files as CGI:
After adding IIS features to your Windows Vista system and installing Virtual Server 2005, you will need to configure a new handler mapping for the VirtualServer web site. To do this, I used the following steps (there may be other ways of doing this, but this is the way I found that worked for me):
1. Go to the Windows start menu, choose All Programs, then Administrative Tools, then Internet Information Services (IIS) Manager
2. Click Continue to launch the IIS Manager application with administrator privileges
3. In the Connections tree control on the left side of the IIS Manager UI, expand Web Sites, then expand Default Web Site, find the VirtualServer web site and click on it
4. In the main pane, you should see /VirtualServer Home. Select Group by area if it is not currently selected in the Group by drop down. Then find the IIS settings section and double-click on the item named Handler Mappings
5. In the Handler Mappings pane, right-click and select Add Module Mapping...
6. In the Request path text box, enter *.exe
7. In the Module drop-down, select CgiModule. If you do not see CgiModule listed in this drop-down, you will need to go back to the control panel and make sure that you add the CGI feature to IIS (located under Internet Information Services | World Wide Web Services | Application Development Features | CGI in the Windows Features control panel), then try these steps again
8. In the Name text box, provide a friendly name for the module mapping. I used EXE-to-CGI, but it doesn't matter what you type here
9. Click OK to add the module mapping to the VirtualServer web site
10. In the Connections tree control on the left side of the IIS Manager UI, expand Web Sites, then right-click on the Default Web Site and choose Restart to make sure that the changes made above will take effect
These steps were enough for the issue I was facing. These were originally provided by Aaron Stebner here. Please refer to this post in if you require additional help.
Just had to blog about this :) surface technology from Microsoft it's AWESOME!!
The launch of Microsoft Surface marks the beginning of a new technology category and a user-interface revolution. Surface, Microsoft’s first surface computer, provides effortless interaction with digital content through natural hand gestures, touch and physical objects. Surface computing breaks down traditional barriers between people and technology, changing the way people interact with all kinds of everyday information — from photos to maps to menus.
Read about it here.

If you are using the persistence service in Windows Workflow Foundation (WF) you may experience failures in the Delay activity to fire it's completed event. This can be worked around in WF but not in SharePoint workflows. We now have KB932816 article describing the problem and how to obtain a fix from Microsoft.
This fix applies to workflow in Windows Workflow Foundation and also in Windows SharePoint Services 3.0 and in Microsoft Office SharePoint Server 2007.
Here is the original post. Paul is a GREAT resource for WF. Thanks Paul!
What is Microsoft adCenter?
Microsoft adCenter, is a newly launched Pay-Per-Click (PPC) service with the best-converting PPC audiences on the web.
Powered by the sophisticated Microsoft Live Search engine, searching online becomes more natural, accessible and innovative. resulting in a larger target audience.
You can create you own ad Campaigns and manage them. Use the new performance filter feature to view performance data for your campaigns, orders, ads, and keywords.
Catch the adCenter demos here!! also see adCenter FAQs.
Video Hyperlink - http://adlab.microsoft.com/vhl/
MSN Entertainment shows of Kohl’s department store using the Video HyperLink Technology, which is an interactive video tool which provides more information about objects in a video when you click or even hover on them.
For example, you might want details about a product you see in the video. So as the video plays, you can move the mouse over the product to see where more information is available. Then, you can click the summary information to go to a merchandize website for details.
Check out Kohls department store Video HyperLink at:
http://entertainment.msn.com/videohyperlink/kohls
Check out Paul Andrew's latest post on BPEL for Windows Workflow Foundation
Paul is a Windows Workflow Foundation Technical Product Manager at Microsoft
Paul Andrew on BPEL for Windows Workflow Foundation March CTP
BPEL for Windows Workflow Foundation March Community Technology Preview RELEASED!!
Windows Workflow Foundation (WF) is the programming model, engine and tools for quickly building workflow enabled applications. WF radically enhances a developer’s ability to model and support business processes. You can go to the extent of hosting a workflow designer in your own application, thereby enabling non-developers to make changes whenever necessary. Here are some resources to get started:
WF Community Website
MSDN: Windows Workflow Foundation
Get Started: Install Framework 3.0 and WF extensions for VS2005
Books
Microsoft Windows Workflow Foundation Step by Step
Presenting Windows Workflow Foundation
Essential Windows Workflow Foundation
Foundations of WF
Programming Windows Workflow Foundation
Pro WF: Windows Workflow in .NET 3.0