Musings on Cloud, BigData, AI, Machine Learning, Containers and IOT

Visual Studio 2013 Community Launch @ Chennai–Dec 21, 2013

Date/Time:
Saturday, December 21, 2013 from 9:30 AM to 1:00 PM (PST)

Location:
Chennai

471, 2nd floor, Prestige Polygon, Anna Salai
Rathna Nagar, Teynampet
Chennai, 600018
India

Agenda & Schedule

No Agenda Schedule
1 Registration 9:30 – 10:00 AM
2 Visual Studio Studio 2013 IDE Changes and what’s new in .NET 4.5.1 10:00 AM – 11:00 AM
3 Tea Break 11:00 AM – 11:15 AM
4 Web Development in Visual Studio 2013 11:15 AM – 12:15 PM
5 Build HTML 5 based LOB Apps with Light Switch 12:15 PM – 1:00 PM
6 Q&A 1:00 AM – 1:15 AM

 Subscribe to my blog

Useful resources on SharePoint 2013 Capacity Planning

I’ve collated a list of resources that comes handy when we do Capacity Planning and Sizing for SharePoint Server 2013. The list of resources are below :-

1.Hardware and software requirements for SharePoint 2013
http://technet.microsoft.com/en-us/library/cc262485.aspx

2. Enterprise scale farms for SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=35569

3. Streamlined topologies for SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=37000

4. Traditional topologies for SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=30377

5.Plan and use the Distributed Cache Service in SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=35557

6.Plan for feeds and the Distributed Cache Service in SharePoint Server 2013
http://technet.microsoft.com/en-in/library/jj219572.aspx

7.Enterprise Search architectures for SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=30383

8.Internet sites search architectures for SharePoint Server 2013
http://www.microsoft.com/en-us/download/details.aspx?id=30464

9.Scale search for performance and availability in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/jj219628.aspx

10.Capacity Planning, Sizing and High Availability for Search in SPC172
http://social.technet.microsoft.com/wiki/contents/articles/16002.sharepoint-2013-capacity-planning-sizing-and-high-availability-for-search-in-spc172.aspx

11.Configuring a highly available workflow in workflow manager
http://technet.microsoft.com/en-us/library/jj193534

12.Use best practice for configurations for the SharePoint 2013 virtual machines and Hyper-V environment
http://technet.microsoft.com/en-us/library/ff621103.aspx

13.Plan Office Web Apps Server
http://technet.microsoft.com/en-us/library/jj219435.aspx

14.Estimate performance and capacity requirements for enterprise intranet collaboration environments (SharePoint Server 2013)
http://technet.microsoft.com/en-in/library/ff758657.aspx

15.Estimate capacity and performance for Web Content Management (SharePoint Server 2013)
http://technet.microsoft.com/en-us/library/d819b0d0-aa83-4e40-82d8-7a32195cc669(v=office.15).aspx

16.Estimate capacity and performance for Managed Metadata Service
http://technet.microsoft.com/en-in/library/gg681889.aspx

17.Estimate capacity and performance for video content management in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/dn169054.aspx

18.Estimate capacity and performance for compliance and eDiscovery for SharePoint Server 2013
http://technet.microsoft.com/en-us/library/dn169053.aspx

 Subscribe to my blog

Microsoft Community Day–Nov 9

Tomorrow, Nov 9 is the Microsoft Community Day, there are whole lot of community activities planned around latest Microsoft technologies. 

The following webcasts are scheduled.

Working with Windows Azure IaaS

2:00PM IST

Register

What’s new in CRM 2013

3:00PM IST

Register

ONE ASP.NET

4:00PM IST

Register

Developing Near Field Communication in Windows Phone 8

5:00PM IST

Register

Windows 8 and Hyper-V

6:00PM IST

Register

Exchange Server 2013: Modern Public Folders

8:00PM IST

Register

Working with SharePoint 2013

9:00PM IST

Register

The following chat sessions are also scheduled

8103_image30_thumb_37F6FF58

If you are interested, please register here  http://blogs.technet.com/b/southasiamvp/archive/2013/11/04/community-day-activities.aspx

 Subscribe to my blog

Retrieve Person or Group field using SharePoint 2013 Client Object Model

I’m involved in troubleshooting a crazy people picker field issue in SharePoint 2013, which necessitates me to programmatically query the Person or Group field of SharePoint list using Client Object model. I was trying to figure out the exact syntax that can be used to grab the Person or Group field using FieldUserValue objects. Here is the complete code below :-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using System.Net;

namespace ReadApproverNameField
{
    public class Program
    {
        static void Main(string[] args)
        {
            GetApproverDetails();
            Console.ReadLine();

        }

        public static void GetApproverDetails()
        {
            ClientContext clientContext = new ClientContext(http://servername/sites/sitecollectionname);
            
            NetworkCredential oNetworkCredential = new NetworkCredential();
            oNetworkCredential.Domain = @"Domain Name";
            oNetworkCredential.UserName = @"User Id";
            oNetworkCredential.Password = @"Password";
            clientContext.Credentials = oNetworkCredential;

            List list = clientContext.Web.Lists.GetByTitle("Name of the list");

            CamlQuery camlQuery = new CamlQuery();
            camlQuery.ViewXml = "<View/>";
            ListItemCollection listItems = list.GetItems(camlQuery);
            clientContext.Load(list); 
            clientContext.Load(listItems);
            clientContext.ExecuteQuery();


            foreach (ListItem oListItem in listItems)
            {
                
                FieldUserValue name = oListItem.FieldValues["ApproverName"] as FieldUserValue;
                string person = name.LookupValue;                
                Console.WriteLine(oListItem.Id + "     " + oListItem["Title"].ToString() + "     " + person);


            }
        }
    }
}
Basically we cannot create a new instance of FieldUserValue object, it needs to be casted from the current item’s field using ‘as FieldValue’ syntax
and then the LookupValue need to be invoked to fetch the value. If we run the above code, we’ll get the output below.
pic1

 Subscribe to my blog

Import MS Project 2010 plan to Project Server

This article will cover the steps required to import the Project Plan created in MS Project 2010 to the Project Server (Project Web Access). This assumes that you’ve already established a connectivity to the Project Server through File –> Info –> Manage Accounts –> Add

pic1

Now let’s add an option in the Ribbon Control to enable upload the project plan to Project Server

File –> Options –> Customize Ribon

Under Main Tabs –> Project –> Create a a new group pressing ‘New Group’ button

On the left side –> Choose commands from –> Select ‘Import Project to Enterprise’

pic2

Now you’ll get to see an option called ‘Import Project to Enterprise’ under Projects in Ribbon.

 Subscribe to my blog

Connecting MS Project 2010 to Project Web App

I was trying to connect MS Project 2010 to a Project Web App (MS Project Server), got this error “.

pic1

The root cause of the issue was that, the MS Project 2010 was not able to connect to Project Web App using the logged on user’s credential.

I had to make a change to the following browser settings to get this working.

IE –> Tools –> Internet Options –> Security –> Intranet (in my case PWA site is hosted in intranet zone)

Custom Level –> User Authentication –> Logon –> Prompt for user name and password

pic2

 Subscribe to my blog

You can’t remotely debug events Windows Azure Service Bus connection string is missing

I was trying to debug a SharePoint 2013 remote event receiver running against a SharePoint Hosted App in Visual Studio 2012. I got the following error.

pic1

I learnt that I need to create a Windows Azure Service Bus and configure the end point of Azure Service Bus in the Visual Studio project property.

Create a new service bus object in Azure Management Portal

pic3

Go to project property in Visual Studio 2012 –> SharePoint Tab –> Enable Remote Debugging by providing the endpoint of the Azure Service Bus

pic4

Now we’re able to debug the remote event receiver in Visual Studio 2012.

pic2

 Subscribe to my blog

Microsoft MVP Lunch Hour Session on Sep 18

I’m conducting a session for the South Asia Microsoft MVP Lunch Hour series  on Microsoft events online platform (msevents.microsoft.com).

The topic is ‘SharePoint 2013 Remote Event Receivers” and it will be a Level 300 session. The event date is 18’th September 2013.

If you are interested, please register it in the below link
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032561518&Culture=en-IN&community=0

 Subscribe to my blog

SharePoint 2013 OAuth Tokens–Frequently asked questions

In one of my previous blog post I wrote about SharePoint 2013 App authentication flow, which briefed about oAuth protocol. There is lot of things to be learnt with respect to oAuth. I feel it’s worth compiling an FAQ  on oAuth, this is the result of that :

1. What is a Context Token ?

The context token is specific to App Configuration information and it is issued by Windows Azure Access Control Services (ACS). The trusted ACS server signs and issues the Context Token, when it receives request from App.

2. What is the format of CacheKey of Context Token ?

The CacheKey of context token is a combination of UserNameId, UserNameIdIssuer, ApplicationId and Realm.

CacheKey= UserNameId + “,” + UserNameIdIssuer + ApplicationId + “,” + Realm.

Note: The Cache Key does not have site URL details. The Cache Key relies on the uniqueness of the realm, it is unique for user, app and tenant.

3. How a Context Token look like ?

The same context token is illustrated below:

{"typ":"JWT","alg":"none"}.{"aud":"a044e184-7de2-4d05-aacf-52118008c44e/contoso:122@040f2415-e6e3-4480-96ce-26ef73275f73","iss":"00000001-0000-0000-c000-000000000000@040f2415-e6e3-4480-96ce-26ef73275f73","nbf":"1335822895","exp":"1335866095","nameid":"s-1-5-21-2127521184-1604012920-1887927527-415149","actor":"00000003-0000-0ff1-ce00-000000000000@040f2415-e6e3-4480-96ce-26ef73275f73","identityprovider":"urn:sharepointsundar:idp:activedirectory",
"appctx":"{"CacheKey":"KQAIUpDUD0sm5Tr83U+jZGYVuPPCPu8BGwoWiAACqNw=","SecurityTokenServiceUri":"
https://accounts-int-sn2-005.accesscontrol.aadint.windows-int.net/tokens/OAuth/2"}","refreshtoken":"IAAAAC1Lv5w0OrcFAmJx0xk6aaBdhgsw3VPnPzNEDAWypTHtCYytZ2/dBBUKj+HLK8YB3IUCUfDxYpAque
NHKtgs4rYJJ5AegQpNMOJR1yYK8ngivQx0oetj7aSPuGVb+k6at6G0Kx5LZ5vhxkAq8iUSwu8p4L2cvNMzDF1mDKfMivqxgrIZkr2nbf9as0SJFL6VG5hZnDE4HKq
xJnejSW3umatKM4fsfY1MClVCxrkXb2EQ8H/TmwaJc388YW063GEVUS/3BTSgSIRBKQUmXJuJ6BZY7WTm84LaGrx3mIjnUTM/jnqPoPG55JbCC9sS/MeGNPtzPPCDg
6Vv7dVhQ1Dq5Y3fQ65e9LpJ580jCgzYYvpIFT+Wx5V+17mjY2T8wug04K2ts87Znsr+GfFCorf7NS/lj5HjoxRAQ2tva/8dwguSLwxcUwi/Q9MbpR0NNtlpwVazqi9O
hJ4Df7gVhUDdJ0Dtc6aFCPbl5ZLDDRs42xK2"}

4. What are the various information present in the Context Token ?

Terms

Details

Represented Fields

Sample Value

add

‘add’ means audience. The format of add is below

{target client ID}/ {target URL authority} @ {target realm}

TargetClientId

b044f184-7df2-4e05-aakf-52118008d44e

iss iss stands for issuer. It represents the principal that has created the Token. The format is {ACS}@{target realm} ACS

00000002-0000-0000-c000-000000000000

realm Tenancy realm

04gf2415-e6k3-4480-96bb-26ee73275f73

nbf ‘nbf’ stands for not before. It represents the validity start of the token nbf

1435822895

exp ‘exp’ stands for expiration. It represents the time after which the token is not valid. exp

1435822895

Actor It is the principal identity of SharePoint 2013 SharePoint 2013

 

5. How to calculate the validity and expiry timestamp from nbf and exp ?

Nbf and Exp are denoted based on JWT specification. It is calculated as number of elapsed seconds since 1’st January, 1970.

6. How long a refresh token is valid ?

The refresh token is valid for 6 months (as of today’s App Authentication Framework design).

7. Can we store the access token in cookies ?

It is recommended not to store the access token in cookies (it’s not very secure). The refresh token can be stored in cookies (which is valid for 6 months), a new Access Token can be requested based on the stored refresh token.

8. Can we grant or deny the permissions for launching an App ?

No. If the user has access to browse the site, he’ll automatically be able to launch the app. The Grant or Deny permissions for an app can be defined only during the install time.

9. Can we use HttpDav protocol (HttpDav APIs) inside the App ?

The HTTP Dav protocol does not work with oAuth.

10. Whether AppId and SecretId will be same across all tenants for a given app ?

The AppId and SecretId are constant across all tenants for a given app, if the app is running in a separate remote web application and app is registered in the Seller dashboard.

 

 Subscribe to my blog

How to Add external users to SharePoint Online

I was wondering if there is a way to add external users to SharePoint Online. The external users are nothing but people who don’t have user accounts in the SharePoint Online environment. The access to external users can be provided by sending them an invitation through e-mail. I’ve learnt that we can send the e-mail invitation to any type of e-mail address such as *.gmail.com, *.yahoo.com or *.yourowndomain.com. However to log-in to the SharePoint online environment, the e-mail account has to be associated with a valid Microsoft account.

 

Click Share

pic1

Now the a email invite will be sent to the invitees (external users)

Open the e-mail invite and click the link on that.

pic2

To accept the invite, you need to have a valid Microsoft account.

pic3

This completes the sign-in process for the external user to the SharePoint Online Team site using a valid Microsoft account.

 Subscribe to my blog