Showing posts with label SharePoint. Show all posts
Showing posts with label SharePoint. Show all posts

Estimate The Time Frame To Migrate Content To SharePoint Online

This article focuses on the actual content migration effort which is separate from planning, redesign, fixes, deployment, and configuration.

It's a very common question during the analysis phase of a SharePoint migration project. - How much time a "Tool or Migration API" will take to migrate the actual content from the source to the destination?

I found a couple proposals where people simply say 5GB per hour but it's not really practical.

It depends on multiple factors. I am not going to dive deep into how the below factors impact this. Just take the estimation based on content.
  • Network bandwidth
  • Type of content & file format i.e. List Item, Document, and Video etc.
  • Check In / out files & Versions
  • User base, Custom Permission & Groups
  • Workflow (OOTB, Design. Custom, Nintex)
  • Customization
  • Asp.Net Forms, InfoPath Forms
  • Threshold limit (Items, Lookup, Unique permission)
High-level content migration estimation view 


 List Item size is very low and associates with the large metadata, Workflows, Events etc.
  • Library item size quite big (files size like MBs) associated with versioning, large metadata, workflow, events etc.
  • File Share – No metadata, No Versioning
  • Video – Big size files.

How Migration API (Most of the tools use) works





How does version impact the estimation (which we usually miss)  






Conceptual View To Enrich SharePoint Enterprise Search

Search is one of the key features of the SharePoint Platform. It really helps business to grow and make their regular operations cost effective.
It really is vital to show the right content to the right people. I believe it’s big from asking customers and really feasible using the below pillars at least 70 percent of the time.

 
Information Architecture
  1. The organization has a rich profile of employees as compared to Google. It’s quite possible to get rich user profile properties with this data.
  2. Application defined schema and structure for storing & categorization of content.
  3. Integration with a different source like LOB, SAP, One drive Google drive, drop box etc.

     
Contextual Search
  1. Organizations have rich user profile attributes which can be derived from multiple sources 
  2. The content has logical categories within Site Collection, Subsites, List & Libraries
  3. Segment filters the content based on user region, locale etc.

     
Usability
  1. User experience is very crucial to catch the audience and meaningful UI.
  2. Re-configure the template as per department & area.
  3. Display trending results on the top (first page) i.e. most viewed, liked, comments & shared etc.

     
Metadata
  1. Rich and appropriate tags help to find the content. It’s really possible with automation jobs to find the matching content from taxonomy & defined weight-age of text.
  2. Metadata is required around schema like Sites, Folder, List & Library i.e. Static or Dynamic. It really helps to drill down the results.
  3. It really helps to build query suggestions. 

     

Deploy Provided Hosted App In SharePoint Online (O365) – Part 2

In Continuation of Part 1 (http://manojmittalblogs.blogspot.in/2016/06/deploy-provided-hosted-app-in.html​)
To make provided hosted app work –
Step 1
Navigate to Old Azure Portal ( https://manage.windowsazure.com )​
Select Web Apps and search for Web App - what you have created in New Portal or via Visual Studio 2015


Step 2
Click on searched  web app and click to Configure link

Step 3
Scroll down till App Settings and Add Client ID and Client Secret which we used in our visual studio solution  and Save it.
Now you have done with all azure related settings and you are good to go with  provided hosted app.


Step 4
Create the .app file from solution.  Right click the app  solution and publish it.


Step 5
Click the package add-in and you will ready with your .app file.


Step 6
As i don't have access to App Catelog, alternatively I created one site collection with Developer Site Template.
Developer site template have OOTB - "App in Testing " List.
Browse the App in Testing List and upload the  .app file created in step 5



Step 7
After the upload the .app. Wait for couple of minutes . Its gonna to install the file automatically. Once the installation done. you can click the file and Provided hosted app will act like single page app .



Happy Coding ..
Part 1:- http://manojmittalblogs.blogspot.in/2016/06/deploy-provided-hosted-app-in.html

Deploy Provided Hosted App In SharePoint Online (O365) -Part1

Deploy Provided Hosted App in SharePoint Online (O365)

There are three section we need to configure to make it work i.e. Provided Hosted App in SharePoint Online.
1. Create Visual Studio Project using SharePoint Add in Template
2. Create Azure Web App for Hosting purpose​
3. Generate the Client Id and Client Secret using https://<<SiteCollection>>/_layouts/AppRegNew.aspx
4. Set generated client Id and Client Secret in VS Solution Web.Config.
5. Set Client Id and Client Secret in Azure Web App using Old Portal.
Step 1
Preferable: Launch Visual Studio 2015 

 
Step 2:-
Give SharePoint site URL and Select Provided Hosted App and click Next

 
Step 3
Provide the user name and password and Sign In and Click Next

 

Step 4
Select SharePoint Online and click Next

 

Step 5
Select ASP.Net MVC with Web Application and click next

 

Step 6
Select Window Azure Access Control option and click Finish.
 


Step 7
You need to host the Provided Hosted App in to Azure
Login to Http://portal.azure.com
If you have subscription login with that else you can create the new account which give one month free subscription.
Select New -> Web + Mobile (under Market place) -> Web App (under Featured Apps)
 

Step 8
Enter App Name, Select Subscription, Create or use existing Resource Group, Select Service Plan and click create.
 

Step 9
Now user will automatically navigate to newly created Web App Setting Page. Click on the Get Publish Profile. Now you are ready with Web App.

 

Step 10
I logged in to my developer site and navigate to https://<<SiteCollection>>/_layouts/AppRegNew.aspx
Click on the generate button for client Id and Client Secret and Give the Title of the application. It can be abc.
App Domain and Re-direct URL is important.
App Domain: - Copy the Azure Web App URL without http://
Redirect Url:- Copy the Azure Web App URL with Https://
Click on the create and you are good to go with Client Id and Client Secret.

 

Step 11

After click create, you will redirect to below page. Save the Client Id and Client Secret somewhere else also. It will come into use multiple places.
 

Step 12

Add Client Id and Client Secret to Web.Config which was generated in step number 11

 
Step 13

Select App Manifest.xml file and assign the read only permission to Web scope.
 

Step 14

Publish the Visual Studio solution and Import already created profile of Web App
 ​
Step 15

Browse the earlier downloaded profile of Web App (Step 9) and It will set automatically all properties.
Important:- Change the Destination url with Https instead of http
Click Next -> Publish.
 

Note:- After Publish your web app will open and show the error message.
 

Create Content DB at Site Collection Level using Power shell

Create Content DB at Site Collection Level using Power shell


A content database is a database file that stores content for one or more site collections for SharePoint web application. The content can be pages,files,documents,images and much more. So if the Site Collection has more number of SharePoint sites, the content database size grows rapidly.

One SharePoint web application can have more than one content database mapped to it and the max limit is 300 Content DB's per Web Application. If you want to add more content databases to web application, Go to Central Admin -> Application Management -> Manage Content Databases -> select web application -> Add a content database.

Maximum Content database size is 200 GB in general usage scenarios.


Create Content Data Base at Site Collection Level using Power Shell Script

#this line is to reference Microsoft SharePoint PowerShell namespace
#to be able to use SharePoint commands
Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue;
#Create command required variables
$siteName = "ABC";
$webAppUrl = "http://server:1002";
#You can select any site collection template code by typing Get-SPWebTemplate
$template = "BLANKINTERNET#0";
 $ownerAlias = "domain\username";
$secondaryOwnerAlias = "domain\username";

#this variable is considering that you have a wildcard manged path "departments"
$siteUrl = $webAppUrl + "/sites/"+ $siteName;
$databaseName = $siteName;
$databaseServer = "dbservername";

#Create new content database for DMS department site collection

New-SPContentDatabase -Name $databaseName -DatabaseServer $databaseServer -WebApplication $webAppUrl;

#Create new site collection for DMS department
New-SPSite -Url $siteUrl -OwnerAlias $ownerAlias -SecondaryOwnerAlias $secondaryOwnerAlias -ContentDatabase $databaseName -Template $template -Name $siteName;



#New-SPSite doesn't create default SharePoint security groups
#Create DMS site collection default groups
$web = Get-SPWeb $siteUrl;
# this symbol i:0#.w is presenting windows authentication security mechanism
$web.CreateDefaultAssociatedGroups("i:0#.w|$ownerAlias","i:0#.w|$secondaryOwnerAlias",$siteName);
$web.Update();



Manually also we can achieve.





Filter based on Managed Metadata using Left Navigation of List or Libraries

Senario:- User have List or Library which is having 100’s record and user used taxonomy for tagging purpose against each record. Now s(he) need to filter the record based on tags in the same List or Library and Unique tags is also more than 20+ It may increase in future to any extent.

Best Posiible solution, I feel:-
Step by Step creation of structure and Configuration with Example:-
Step1:-
user create one term set in the Managed Metadata:-




Step2:-
User create one List and apply the metadata against each records:-




Step3:-
Go to the List Setting -> Metadata Navigation Settings ->Configure Key Filters



Click Ok and Return to your List or Library
Step4:-
Now you will Metadata Field in Left Navigation which will filter the record based on applied tags.



Happy Codding!!


Provisioning CEWP on Share Point Pages


Project Structure:-

1. Add Default Data to Content Editor Web Part

Create any Pages in Solution and Add necessary tag:-


<asp:Content ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
<SharePoint:ListItemProperty Property="BaseName" maxlength="40" runat="server" />
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
<meta name="GENERATOR" content="Microsoft SharePoint" />
<meta name="ProgId" content="SharePoint.WebPartPage.Document" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="CollaborationServer" content="SharePoint Team Web Site" />

</asp:Content>

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

<WebPartPages:WebPartZone runat="server" title="loc:TitleBar" id="TitleBar" AllowLayoutChange="false" AllowPersonalization="false" Style="display:none;" >

 </WebPartPages:WebPartZone>

</asp:Content>


Add XML tag in Element File with C-Data tag

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="TestModule" Url="SitePages">

    <File Path="TestModule\asas.aspx" Url="TestModule/asas.aspx" Type="GhostableInLibrary"  >
      <Property Name="Title" Value="CEWP- Provisioning"/>

      <AllUsersWebPart WebPartZoneID="TopZone" WebPartOrder="0">

        <![CDATA[<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2">
                  <Title>Content Editor</Title>
                      <FrameType>Default</FrameType>
                      <Description>Allows authors to enter rich text content.</Description>
                      <IsIncluded>true</IsIncluded>
                      <ZoneID>TopZone</ZoneID>
                      <PartOrder>0</PartOrder>
                      <FrameState>Normal</FrameState>
                      <Height />
                      <Width />
                      <AllowRemove>true</AllowRemove>
                      <AllowZoneChange>true</AllowZoneChange>
                      <AllowMinimize>true</AllowMinimize>
                      <AllowConnect>true</AllowConnect>
                      <AllowEdit>true</AllowEdit>
                      <AllowHide>true</AllowHide>
                      <IsVisible>true</IsVisible>
                      <DetailLink />
                      <HelpLink />
                      <HelpMode>Modeless</HelpMode>
                      <Dir>Default</Dir>
                      <PartImageSmall />
                      <MissingAssembly>Cannot import this Web Part.</MissingAssembly>
                      <PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge>
                      <IsIncludedFilter />
                      <Assembly>Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
                      <TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
                      <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                      <Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor"><![CDATA[ ​This is my test Content editor webpart ]]]]><![CDATA[></Content>
                      <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
                      </WebPart>]]>


      </AllUsersWebPart>
      
    </File>
  </Module>
</Elements>


2. Add HTML File link to Content Editor Web Part


Use above code as is and replace the Content Link tag with below mention setting.

Note:- here i am using HTML file reference from style library. 

 <ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">~SiteCollection/Style%20Library/HTMLFiles/abc.html</ContentLink>




Get and Set People Picker Value


Friends, this is simple example to save the people picker value in share point list and get the people picker value form list shown to people picker control on the custom form . But most of the developer do very silly mistake and forget the one important scenario while start the coding.

Most of the time issue arise,
If Active Directory having multiple user with same first and last name.

Get value from People Picker Control
Note: - people picker control pass as parameter.
public string GetPeoplePickerValue(PeopleEditor peoplePicker)
        {
            string userValue = string.Empty;
            try
            {
                if (peoplePicker.ResolvedEntities.Count.Equals(1))
                {
                    PickerEntity pickerAppEntity = (PickerEntity)peoplePicker.ResolvedEntities[0];
                    userValue = pickerAppEntity.Key;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return userValue;
        }

Set value to People picker control
Note:- People Picker Control pass as parameter and value as SPListItem Object , where Web object can also pass as parameter.
  public void SetPeoplePickerValue(PeopleEditor peoplePicker, object value)
        {
            try
            {
                if (value != null)
                {
                    SPWeb edgeWeb = SPContext.Current.Web;
                    string user = Convert.ToString(value);
                    SPFieldUserValueCollection userCol = new SPFieldUserValueCollection(edgeWeb, user);
                    peoplePicker.CommaSeparatedAccounts = Convert.ToString(userCol[0].User);
                    peoplePicker.Validate();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }