Dec 16, 2015

How to upload Images to SharePoint List from another library with OOB feature


Guys,

Recently I got a small requirement to give an option to the user to select images from another library in to SharePoint list while adding a new item. Basically the default attach file option of a list item opens you the windows explorer to choose the items.

Firstly I thought, I should go for list form customization and a script injection by creating a file upload control and save the selected image in to the item with sp modal dialogue and the call back options.

But later I found that, this can be achieved using the OOB site column called “Image with formatting and constraints for publishing”, which is available with the Publishing Infrastructure Feature.

Steps to use this:
·          Create a site column called “Image with formatting and constraints for publishing”.

Site Actionsà Site Settingsà Create Site Column à Give some name “Product Image” of type “Image with formatting and constraints for publishing “






·        Add the site column to your list where you want the image upload feature.
List Settingsà Add from existing site columns à Select the above created site column

·        In the New Form you can see this column like this




              
      On clicking of the link, it will open a popup to select an image from a library. On click of browse, it will list all the lists and libraries throughout the site collection, from where you can choose an image and insert.






Once you say insert, it will ask you to provide other properties like size, layout, alternate text etc. like below




It will added to your list item like this




In Edit form, on selection of Image it will highlight the respective ribbon options to update the image.

Really this saves lot of time in developing a custom feature to upload image in new and edit forms…

Hope this helps…!!!!

Nov 16, 2015

Bulk Check-In the files in SharePoint with OOB feature

Hello Guys,

Recently i have noticed an oob feature to bulk check-in the files from the SharePoint Site Actions page.. sharing the same with you in this post...

Here are the steps ..

Go to Site ActionsàSite Settings àSelect "Content and Structure" under Site Administration group and then Change the view to “Checked Out to Me” as shown below



You can see all the files which are check out by you in the website.

Select all and say “Check In” from Actions Menu as shown below.



If you notice the context menu of the view tab, you have multiple options like "My Tasks","Last Modified by Me" etc..( see the below screen shot for the options )




This feature is available with SharePoint 2007 (Moss) too..

Thanks
Purna




Oct 9, 2015

Can not find Microsoft.Office.SecureStoreService.dll in SharePoint 2013

Hello Guys,

Recently I came across with a requirement to access the Secure Store Service Token in one of my project modules. As part of this , I have searched for the securestoreservice dll in 15/ISAPI folder but could not find it there.

I came to know that, the location of this dll is changed in Sharepoint 2013 server as the GAC location of asp.net 4 has changed.

Here is the path where you can find this:

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.SecureStoreService\v4.0_15.0.0.0__71e9bce111e9429c

Hope this helps someone..

Thanks,
Purna

Sep 13, 2015

Sharepoint App is now SharePoint Add-in - Microsoft update for SharePoint and Office App Names

Guys,

I came across through an msdn blog and surprisingly noticed that the "SharePoint App" names is being changed to "Add-in".  Did you notice this.?

Here is the update :


Original name
New name
Applies to
apps for Office
Office Add-ins
Office
mail app for Outlook
Outlook Add-in
Office
app for Excel
Excel Add-in
Office
app for PowerPoint
PowerPoint Add-in
Office
app for Word
Word Add-in
Office
Office App Model
Office Add-in Model
Office
apps for SharePoint
SharePoint Add-ins
SharePoint
SharePoint App Model
SharePoint Add-in Model
SharePoint
app part
add-in part
SharePoint
app web
add-in web
SharePoint


In msdn,  the posts related to apps (now add-in) shows this name change notification :



Refer this msdn link for more details :

Aug 23, 2015

How to get all the installed apps in a sharepoint online site programatically

Hello guys,

Here I am writing a small post on how to get the apps from a SharePoint Online site. The property "Status" of the AppInstance class tells us the app's status like whether it is installed/uninstalling/disabled etc..

Here I took a console app with managed CSOM code.

  1.        string siteUrl = "https://msplab.sharepoint.com/sites/SPOLPUB/";  
  2.        string username = "purna@msplab.onmicrosoft.com";  
  3.        string password = "mspcloud"; 
  4.        // Ref: Microsoft.SharePoint.Client
  5.        ClientContext ctx = new ClientContext(siteUrl);  
  6.       // Ref :System.Security
  7.        SecureString encryptedSecureString = new SecureString();
  8.        password.ToList().ForEach(encryptedSecureString.AppendChar);  
  9.        ctx.Credentials = new SharePointOnlineCredentials(username, encryptedSecureString); 
  10.       // Ref: Microsoft.SharePoint.Client        
  11.        Site site = ctx.Site;  
  12.        ctx.Load(site);  
  13.        ctx.ExecuteQuery();     
  14.        Console.WriteLine("Successfully Connected to Site "+site.Url);  
  15.        Console.WriteLine("Loading Web.. ");  
  16.        Web web = ctx.Web;  
  17.        ctx.Load(web, w => w.Url);  
  18.        ctx.ExecuteQuery();     
  19.        Console.WriteLine("Web Loaded.." + web.Url);  
  20.        Console.WriteLine("Getting AppInstance Collection ...");        
  21.        //CRC is from CC, so typecasting from cc         
  22.        ClientRuntimeContext ctxRuntime = (ClientContext)web.Context;
  23.        //Getting appinstances from appcatalog with webcontext  
  24.        ClientObjectCollection appInstanceCollection =AppCatalog.GetAppInstances(ctxRuntime, web);
  25.        ctxRuntime.Load(appInstanceCollection);  
  26.        ctxRuntime.ExecuteQuery();  
  27.    
  28.        Console.WriteLine("Got AppInstance Collection...");        
  29.        foreach (AppInstance appinstance in appInstanceCollection)  
  30.        {  
  31.          ctxRuntime.Load(appinstance);  
  32.          ctxRuntime.ExecuteQuery();  
  33.          Console.WriteLine("==================Retrieving App Details =================");  
  34.          Console.WriteLine("App Title: " + appinstance.Title);  
  35.          Console.WriteLine("Principle Id: " + appinstance.AppPrincipalId);  
  36.          Console.WriteLine("Web Url: " + appinstance.AppWebFullUrl);  
  37.          Console.WriteLine("Start Page: " + appinstance.StartPage);  
  38.          Console.WriteLine("Installation Status: " + appinstance.Status);  
  39.          Console.WriteLine("Remote App Url: " + appinstance.RemoteAppUrl);  
  40.          Console.WriteLine("Settings Page: " + appinstance.SettingsPageUrl);  
  41.          Console.WriteLine("Error Details: " + appinstance.GetErrorDetails());  
  42.          Console.WriteLine("==================Completed App Details =================");
  43.        }     
  44.        Console.WriteLine("Completed...");  
  45.        Console.ReadLine();



Here is the output :



If you observe the above code, we have created a object called appInstanceCollection for the ClientObjectCollection class. It needs ClientRuntimeContext and the web.

The ClientRuntimeContext represents the runtime context for  accessing data from remote objects and invoking methods on remote objects. This can be safely typecasted from ClientContext class as shown above.

Note : In the new version of the CSOM dll  you can find a new method called "GetAppDetails()" from the APPcatalog class. Please refer this link.

Hope this helps,

-Purna

Aug 18, 2015

Step by Step Guide to Create Provider Hosted App in Sharepoint 2013 Online with Azure Hosting Model- Part 1

Hello Guys,

In this post I am going to explain you how to develop and publish a SharePoint Provider Hosted app in Online. Here I am using Azure Hosting (low trust or ACS) model to publish the app.

In this post, I am mainly focusing the hands-on steps with very high level information. This is a very big post with 4 parts..

These are the steps involved in building and hosting a provider hosted app in azure.

·       Creating website in windows azure
·       Downloading the azure profile
·       Developing SharePoint provider hosted app in visual studio
·       Generating Client Id and Client Secret in Sharepoint online Site
·       Publishing the appwebsite in to azure
·       Publishing/Uploading  the app in SharePoint online appcatalog
·       Install and Run the App.

Creating website in azure:


Login to azure portal with the Microsoft account and create the azure website from the azure management portal. Like below
Go to azure management portal, Click on Websites in the left pane




Click on “New” link in the bottom left.  Then select Computeà Web AppàQuick Create

Give the url which you want to refer your azure website. Here I am giving it as “moresharepoints.azurewebsites.net”

Select the service plan (make default if you don’t have any subscription)


Then Click Create Web App link in the down. It will create a webapp with the provided url.

Click on the URL (moresharepoints.azurewebsites.net), it should show like this.


Now we are ready with the azure website. In next steps in this post, we will publish our sharepoint app web on to this website.

To publish the appwebsite on to this azure website, we have to use the profile of this website while publishing. So download the profile and save it to your desktop. We will use it in our next steps. How to download..? See below

Download the azure profile:

Go to azure management portal and click on the Website Name.



And download the publish profile. Save it to your desktop or some folder in your system.



The profile would have extension “.publishsettings”(in my case this is the profile  : “moresharepoints.azurewebsites.net.PublishSettings”.)

With this the azure website and its profile creation is done.

Now let’s go and create the SharePoint Provider Hosted app. Follow next post for the continuation...

Refer Part2 for the continuation..

Step by Step Guide to Create Provider Hosted App in Sharepoint 2013 Online with Azure Hosting Model- Part 2


This is a continuation to my previous post.Step by Step Guide to Create Provider Hosted App in Sharepoint 2013 Online with Azure Hosting Model- Part 1


Developing SharePoint provider hosted app in visual studio:




Open visual studio (in my case 2013)à Newà Project àClick on Office/Sharepoint Templates à Appà 

then select the “App for SharePoint” template. Give the name as “MSPProviderHostedDemo”.



Give the url of your sharepoint site. (Here I am giving my sharepoint online site url).
And select the option Provider Hosted as we are dealing with provider hosted in this demo.


Say next, and select the SharePoint Online as the target


Say Next.  In next screen elect Aspnet/mvc. Here iam going with asp.net web forms appn for this demo.
In Next screen, this is something important to know. See the below screen.


Here we have two options to authenticate our app with the site.

  •    Windows Azure Access Control Service – This is also called as ACS or low trust hosting      type. Basically this will be used when the appwebsite is hosted in azure. In our case we will be   using this.
  •   Use a Certificate – This is also called as High Trust/ Server to server authentication model.  Here the appwebsite is hosted on to a IIS website in a server instead in azure. The handshake  between the app and the website is done by the certificate.

Say Finish. For more details, refer authentication and hosting techniques from msdn.

So now our solution structure will be like this. It contains two projects. AppProject and AppWebProject like below.



Once you build the AppProject, itwill give the .app file(like .wsp for our sp solutions). We will publish this file to sharepoint site.

The appwebproject , we will deploy/host/publish this appwebproject to azure website.

We are ready with the solution.. Lets write a simple code for the app and web ..follow next post for the continuation...

Refer Part3 for the continuation..

Step by Step Guide to Create Provider Hosted App in Sharepoint 2013 Online with Azure Hosting Model- Part 3


Now let’s write the business logic which you required.  Here Just I am placing some div with text in default.aspx.



Next step is we need to register the client id and client secret in sharepoint site and use them in our app. (What is this Client id and Client secret??- Big QuestionJ,)

But I am not going to write details about it in this post…L ). Let’s concentrate on the steps to generate…

Generating Client Id and Client Secret in Sharepoint Online Site:


Go to the _layouts/15/appregnew.aspx page in your SharePoint site and generate client id, client secret and give the details as shown in following screen.




Title: MSPDemoProviderApp

AppDomain : Give the domain of the azure website(don’t provide http/https). In our case, it is
moresharepoints.azurewebsites.net

Redirect Url : Give the url of the azure web page where your app need to redirect/land.

The reason to give above url is, we are hosting appwebproject in to azure website. So our page default.aspx is placed in to azure site. Here we are saying the app that, go/redirect to default.aspx page in azure website upon its click.


Say Create. And save the information in to note pad.




Now we are ready with client id, client secret etc. We will use this information in our appsolution.
Go to
AppManifest.xml in AppProject(MSPProviderHostedDemo), set the required settings Title, Version , Start Page etc.. like below.


Permissions: Here I am setting Web : Full Control. Anyhow we are not dealing with any sharepoint functionality here.. But just to show you the app permissions tab, here I am giving this.




Now Right Click on AppManifest file and say view code.

Replace the Clinet Id * with the above generated client id. Like this.


And also update the Client Id and Client Secret in web.config of app webproject (MSPProviderHostedDemoWeb )with the generated Ids like below.



With this the required settings to host the app are completed in our visual studio solution. Now let’s publish the appwebproject in to azure site.

Publish the appwebsite into azure:

Right click on AppWebProject(MSPProviderHostedDemoWeb) à Say Publish.



Say Import and select Import from a publish profile file.

Then browse and select the azure profile which you downloaded in above steps.( moresharepoints.azurewebsites.net.PublishSettings)

Now it shows the connection information like below



Click the Validate connection, it should passed. Then Click Next.In Settings Window, Select Configuration as Release like below.


Then say next. Click Start Preview to see what files are going to place in azure. For the first time it publishes all your appwebproject files. From next time onwards, when you say publish it will only publish the modified files.


Now say Publish. In the OutPut window of visual studio it says “Publishe Successed” for successful publish.



With this the appwebsite publishing to azure is completed.. Lets Publish the app in to sharepoint online site in next post..  
Refer Part4 for the continuation..