Thursday, October 28, 2010

Integrate External SharePoint 2010 List to Outlook 2010

Hi All,

A friend of mine asked for how to integrate SharePoint 2010 external list that is configured to pull information from an external system into outlook 2010.

So, To begin the office 2010 has unique and enhanced integration with sharepoint 2010, If you are able to configure SharePoint 2010 to pull data from external data using BCS Exteranl List. You will be able to manage this list in outlook 2010.

First, When you create external list that is designed to be used in outlook the ECT ( Exteranl Content Type ) has to be with type Office item type and select from the options: Task, Post, Appointment or contact.

How to connect to external list using SPD:
1) Open SPD with the SP site.
2) Select External content type and click on External content type from the ribbon.
3) Type the ECT name and select the office item type from the list.
4) select the data source and do the mapping.
5) Note: You have to map the fields to the appropriate office mapping.
6) Save your ECT and click on Create Lists and Form from the ribbon.
7) Now you have the ECT and the list in the SharePoint Site.
8) Before test the list, set the permission to the External list from the central admin -> application management -> application services -> select BCS -> select your list and click on set permissions - > provide the required permissions per user.
9) Visit your SP site and click on lists link and select your list to check it.

Note: I went through how to create ECT and External List in SP 2010. There is more tips and security best practices for above items - Please check MSDN how to setup BCS with SSS service.

How to get the created external list on your outlook ?
1) Select your list.
2) Select List tab and click on connect to outlook.
3) an Add-In will be installed and configured to your outlook 2010 to the list.

Now, You will be able to manage the list once the configuration is done and outlook will be launched automatically once SP 2010 is done with the configuration.

Another Question: How can i change the mapping for the created ECT ?
The only thing you need to do is to open SPD and select your ECT - > Read Item and then click on Edit Operation from the ribbon and change the ECT field mapping and save it.

Tip: if you have your outlook 2010 is opened, and you right click on the contact list and run the sync option you won't be able to get the new mapping fields. Close the outlook and open it again.

Hope this helps.

Mostafa Arafa

Wednesday, October 20, 2010

Avoid Run Time Errors while deploying SharePoint 2010 Solutions

Hi All,

Through my discussions with developers and attendees in SharePoint Events, I was getting a lot of questions about the target .net framework for applications and solutions that are built against Server and Client Object Model in SharePoint 2010.

I decided to list the things you need to take care and set before start compiling and deploying your solutions and getting runtime errors using SharePoint object model.

1) If you are developing a SharePoint 2010 Solutions. You solution has to target .NET Framework 3.5 Only and Not 4.0.

2) Also, if you build your solutions as layers and you have different projects ( Non SharePoint Project) all are used within your SharePoint project, ALL OF THEM HAVE TO TARGET .NET FRAMEWORK 3.5 as well.

3) Your target CPU platform can't be x86. Even if you are building a console application using the client object model. The Solution ? Next Point.

4) It's recommended that all your projects to target Any CPU platform, You can't have some projects are targeting x86 ( Such as Console Application ) that are referencing x64 CPU platform.

5) You have the option "Less Recommended" to target all your project to x64. but in this case your solution will not be able to run on x86 machines. Instead, Select Any CPU platform as recommended on Point 4.

6) If you made all your projects to target Any CPU, the only point you have to put in your consideration is the file size for your solution will be bigger than if you target x64 CPU platform.

7) If you decided to enable x64 configuration, here is the steps you need to do in VS 2010 and the resource of this post:

Hope this helps.

Regards,Mostafa Arafa

Saturday, October 16, 2010

Sandbox Solutions in SharePoint 2010

Hi All,

Today i was presenting in SharePoint Saturday DC Federal and the event was hosted in Booz Allen Hamilton in McLean,VA.

I enjoyed the questions from Devs,Architects and attendees. It was really awesome meeting you all. The questions were primarily for secured sandbox solutions which are important for the federal employees and secured environments.

In this session i covered the following topics:
1) Sandbox overview.
2) Sandbox life cycle.
3) Developing and Deploying Sandbox solutions.
4) Custom workflow actions in workflow.
5) Custom Validator.
6) Resource Management.
7) Blocking Sandbox Solutions.
8) Points to metrics equation and how to convert points to different units.

And more...

Presentation url:

Demos url:

Hope this helps.

Regards,Mostafa Arafa

Sunday, October 10, 2010

My session in Richmond Code Camp - SharePoint Development using VS 2010

Hi All,

Saturday 9th October we had a code camp in Richmond, Virginia. The Code Camp was full of new and challenging topics: Windows 7 Mobile Development, Windows Azure Development, Silverlight, WCF Data Services and JQuery and set of other topics.

My session was talking about SharePoint 2010 Development using VS 2010. In this session I covered set of great tools in VS 2010 for SharePoint Developers such as:
Feature Designer, Package Designer, SharePoint Explorer, Feature Dependency, Mapped Folders, Deployment Options and Activation steps.

The presentation has been uploaded:

Feel free to share it and use it with developers and community talks.

Regards,Mostafa Arafa

Friday, October 01, 2010

Generate machineKey for your web.config in .NET

Hi All,

We were implemeneting Single Sign-On for our enterprise ASP.NET applications, I have been asked: How can we generate our own machine keys in our web.config ? Here is the console application you need to run and to get a random key based on the length you need and then add it to your web.config.

C# Code:

static void Main(string[] keyLength)

int len = 128;
if (keyLength.Length > 0)
len = int.Parse(keyLength[0]);
byte[] buff = new byte[len / 2];
RNGCryptoServiceProvider rng = new
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < buff.Length; i++)
sb.Append(string.Format("{0:X2}", buff[i]));


If you didn't pass anything to this method will generate 128 character key (64 byte), If you want to get 32 byte key, you need to pass 64 as key length input.

If you are trying different cryptography algorithms provided by System.Cryptography namespace in .NET Framework so here is the reference you need to read for what is the required length for each algorithm ? either if you are using: DES,3DES,AES,SHA1...etc.

Hope this helps.

Regards,Mostafa Arafa