Saturday, November 23, 2013

SQL Server 2008 R2 installation

I was trying to install SQL Server 2008 R2 express. I got the following error message. Please help me to solve the problem.
Thanks
[Error Message]
Attributes do not match. Present attributes (Directory, Compressed) , included attributes (0), excluded attributes (Compressed, Encrypted).

[Details]
Microsoft.SqlServer.Configuration.Sco.DirectoryAttributesMissmatch: Attributes do not match. Present attributes (Directory, Compressed) , included attributes (0), excluded attributes (Compressed, Encrypted).
================================================================================


For those that stumble upon this as well. I had the same issue with SQL Server 2008r2 on a Dev box.
For me, the error message was valid, the setup had found compressed files and "Compressed" is an excluded attribute.
So decompress folders C:\Program Files\Microsoft SQL Server and if you have it C:\Program Files (x86)\Microsoft SQL Server.
Good luck

Thursday, October 17, 2013

Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.

Error:
Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm. (see the image below)




Cause:
Your login user has no 'db_owner' access for SharePoint Databases.
1. SharePoint_Config
2. SharePoint_AdminContent_[XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX]
3.Your web application DB in which you want to deploy WSP (Example. WSS_Content_XXXX)

Solution:
Now connect your SQL Server with admin user.
Then select your user which has error in deployment.
Then assign all above DBs to db_owner rights. (see the image below)





Now try to deploy your WSP.

You can successfully deploy WSP.

Happy SharePointing...!!!

Wednesday, August 28, 2013

Programmatically copy items from one list to another in SharePoint 2010


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

namespace Console
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("http://serverName/sites/Vijai/"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList sourceList = web.Lists.TryGetList("Test");
                    foreach (SPListItem sourceItem in sourceList.Items)
                    {
                        SPList destinationList = web.Lists.TryGetList("CopyTest");
                        if (destinationList != null)
                        {
                            SPListItem destItem = destinationList.Items.Add();
                            foreach (SPField field in sourceItem.Fields)
                            {
                                if (!field.ReadOnlyField && !field.Hidden && field.InternalName != "Attachments")
                                {
                                    if (destItem.Fields.ContainsField(field.InternalName))
                                    {
                                        destItem[field.InternalName] = sourceItem[field.InternalName];
                                    }
                                }
                            }
                            destItem.Update();
                        }
                    }                  
                }
            }
        }
    }
} 

Moving List Items from one list to another list in SharePoint 2010

We can move list items from one list to another list using standard SharePoint user interface. Here is the simple way to move items from one list to another in SharePoint 2010.
 
  1. Browse to the source list, click List tab on the ribbon bar and click List Settings icon.
     
  2. Click “Save list as template” link that exists under Permission and Management section which will bring up another page where you need to provide template File Name, Template name and Template Description. Make sure you didn’t check “Include Content” checkbox. Then, click the OK button.
     
  3. Go to Site Actions --> More options --> Click List under Filter By section. You can see the template which has been created in the previous step as part of other templates on the right pane. Choose the template and provide list name.
     
  4. If there are any workflows associated with the existing list that may still persist on the newly created destination list. Usually when lists are saved as template, all workflows associated to the original list will be saved as part of template except currently running workflows. Make sure all workflows associated with the original list have been removed if it’s not required. To remove workflows associated to list, go to List Settings Click on Workflow Settings Click “Remove a workflow” link, choose Remove option and click OK button.
     
  5. Open New (destination) List, Go to Site Actions --> Manage Content and Structure, choose the Original List on the left pane.
     
  6. You can increase the currently showing items up to 1000, sort list items by clicking column header and choose all items by clicking Select All option (displyaed top-left corner on the header) or individual items can be selected by clicking the checkbox displayed on each individual item.
     
  7. Click “Actions” --> Move and choose the target list (newly created destination list from template) on the popup.
     
  8. Finally click the OK button and wait until the list items are moved to destination list. If required, follow step 5, 6 & 7 until you moved the required list items to destination list.

The components for the 64-bit debugger are not registered. Please repair your Visual Studio 2008 Remote Debugger installation via 'Add or Remove Programs' in Control Panel.

To resolve this issue, you will need your Visual Studio 2008 installation disk. On this disk, you will find the following path -


Open visual Studio 2008 Setup and search inside that ..\Remote Debugger\x64\rdbgsetup.exe

A little surfing and I found a solution. Install the debugger! The 64-bit debugger is not installed by default. The installer is on the Visual Studio install disc. “<Drive Letter>\Remote Debugger\x64\rdbgsetup.exe”

Tuesday, July 30, 2013

Visual webpart in SharePoint 2013 using Visual studio 2012

Visual webpart in SharePoint 2013 using Visual studio 2012

In this article you will learn how to build a Visual webpart in SharePoint 2013 using Visual studio 2012.
This webpart has been introduced in SharePoint 2010. The major help with this webpart is you don't need to write the coding for building your controls, which saves lots of time while developing the custom webparts using this option.
Lets starts..

Building Visual webpart:

Open visual studio 2012, click on new project select SharePoint solutions under the office/SharePoint from which select project type as SharePoint 2013- Visual web Part.
Enter your project name, here it is First-VisualWebPart.




Click OK. It will open the wizard to create the project.
Select the site where you want to deploy the webpart. "http://dvlabapp01".
Click on Validate Option to validate the site details. It will show the pop-up saying that connection successful.




Close the Pop-up, and select Deploy as a sandbox solution and click on Finish to create the project for this webpart.




You can see the below screenshot which represents the project structure for the webpart.


In this article we will take a simple example of getting the data from the list and bind it to the dropdown control using the SharePoint object model.
I am adding one dropdown "ddltickets" and button "btngettickets" controls to the page. Whenever a user clicks on the button, it will load all the ticket details in the system. To design the page write the below lines of code in your

Visual webpart.ascx file:


1234567891011121314151617181920212223
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VisualWebPart1.ascx.cs" Inherits="First_VisualWebPart.VisualWebPart1.VisualWebPart1" %>
<table >
<tr>
<td>
<asp:DropDownList ID="ddltickets" runat="server"></asp:DropDownList>
</td>
<td>
</td>
<td>
<asp:Button ID="btngettickets" runat="server" Text="Get Ticket Information" OnClick="btngettickets_Click" />
</td>
</tr>
</table>
Add Microsoft.SharePoint.dll to the project to write the code in the SharePoint object Model which requires Microsoft.SharePoint namespace.


After adding the dll reference write the below code in

Visual webpart.cs file:


1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
using System;
using System.ComponentModel;
using System.Web.UI.WebControls.WebParts;
using System.Data;
using Microsoft.SharePoint;
namespace First_VisualWebPart.VisualWebPart1
{
[ToolboxItemAttribute(false)]
public partial class VisualWebPart1 : WebPart
{
// Uncomment the following SecurityPermission attribute only when doing Performance Profiling using
// the Instrumentation method, and then remove the SecurityPermission attribute when the code is ready
// for production. Because the SecurityPermission attribute bypasses the security check for callers of
// your constructor, it's not recommended for production purposes.
// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, UnmanagedCode = true)]
public VisualWebPart1()
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitializeControl();
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btngettickets_Click(object sender, EventArgs e)
{
DataTable dt = GetItemDetails();
ddltickets.DataSource = dt;
ddltickets.DataTextField = "Title";
ddltickets.DataValueField = "Title";
ddltickets.DataBind();
}
private DataTable GetItemDetails()
{
SPWeb spweb = SPContext.Current.Web;
SPList ticketsList = spweb.GetList("http://dvlabapp01.cloudapp.net/Lists/Ticket%20Details/AllItems.aspx");
return ticketsList.Items.GetDataTable();
}
}
}
view rawwebpart.csThis Gist brought to you by GitHub.
Once you have added the code, its time for

Deploying webpart:

To deploy the webpart, right click on the project and click on deploy. During deployment, in the output window you can observe all the steps that are happening for the first time, see the below screenshot.
Some of the important steps are
  1. Configuring the Sandbox code service
  2. Adding solution
  3. Deploying solution
  4. Activate Features


Once the webpart have been successfully deployed then you can

Add the webpart to the page:

To add the webpart which we have deployed, Open the page and click on the edit page option. From the INSERT tab, select webpart icon. Choose the webpart deployed from custom category, select the web part that needs to be added to the page and click on Add button.


After adding the webpart, whenever a user clicks on the "Get ticket Information" button the dropdown list control populates the required information.

Redeploying webpart:

If you make any changes to webpart and wanted to deploy again. Follow the same step, right click on the project and click deploy option. But this time if you observe the Output window some of the new steps in redeployment you can observe in below screenshot.
  1. Retract solution
  2. Deactivating feature
  3. Deleting the solution
Once the above steps got completed, It will perform below steps
  1. Add Solution
  2. Deploying solution
  3. Activate Features


Download Solution Files:

You can download the solution files here.


Conclusion:

In this article you have seen how to develop a basic visual webpart in SharePoint 2013 using visual studio 2012.
 

SharePoint list, Content Types in SharePoint 2013


Developers can develop the SharePoint list, content types, site columns in SharePoint 2013 with less effort and time using visual studio designer, which is one of the new features in visual studio 2012.
In this post we will use the visual studio designer to create lists, content types and site columns in Visual studio 2012 for SharePoint 2013.

Before developing the lists, SharePoint content types and site columns we need to understand what is SharePoint list, content types etc. And why do we have to create them in the SharePoint site.
Lists are data containers in SharePoint, where you can store the data of different data types. In SharePoint this content will get stored in the database and the content is very important for any organization.
So whenever you start developing any project the important question you need to ask the client is what type of data or different data types you're maintaining or want to maintain in future. That data may be Sales documents, Finance documents, Project proposals and implementation documents, maintenance documents etc. These are all different kinds of data. In normal scenario document is a just a document, but in SharePoint you can have types of documents. Each type of document has its own metadata. The way you organize the data and persisting it and entire editing experience is a great thing in SharePoint.To manage the content we will create content Types.
I hope you got a little bit of understanding about the importance of SharePoint list and content type in SharePoint.
Let's move on to develop the artifacts using visual studio 2012.

Site Columns:

Whenever you develop the SharePoint list and Content type, first develop required site columns that will be used while developing SharePoint lists and Content types.

what are site columns?

A site column is a reusable column definition, or template, that you can assign to multiple lists across multiple SharePoint sites. We will see how we achieve this.
Let's open the Visual studio 2012.
Create a new project by selecting the SharePoint 2013 - empty project template from the SharePoint solutions under office/SharePoint section. Please see below figure for reference.
SharePoint 2013 - empty project
Enter the name of the project and click OK.
SharePoint 2013 - project wizard
Enter the site URL and click on validate make sure the connection is successful then select the "Deploy as s farm solution" and click on Finish.
It's time to add the required site columns to the project. To do that right click on the project click on Add -> New Item, the below screen will come up from that select Site column, enter column name and click on Add button.
The column will get added to the project and the required XMl file will get generated.
Site-column
In the same way you add all the required columns. In this example I have added two site columns i.e. Team Name, Task assigned.
Once you add the site column it will generate the Elements.xml file where you can change the properties of the field. Please see the below default code snippet which will generate.

1234567891011
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field
ID="{779bdd44-c459-49cd-8265-3190420c7633}"
Name="Team_x0020_Name"
DisplayName="Team Name"
Type="Text"
Required="FALSE"
Group="Custom Site Columns">
</Field>
</Elements>
You can change the Required and Group properties of filed according to your requirement.
Now we are ready with the site columns required for our site. Now its time to create Content Types.


Content Type:

Content types are used to manage the different types of metadata (columns).
It is a reusable collection of metadata with event receivers, workflows, other settings for the group of items in a SharePoint list or library.
To create content type, right click on the project which has been created above step, click on Add -> New Item, the screen will come up from that select Content Type and enter the name of your content type and click Add.
content_type
Select the base content type which you want to inherit from. I am selecting Item content type as a base one.
content_type_wizard
Click finish. It will create a content type where you can add your site columns which has been created above.
Once you create the content type, it will show the VS designer view with two tabs Columns and Content Type.
From the Columns section you can add the site columns.
See in the below figure when you enter "a" it is displaying all values which matches with "a". This detail will get populated based on site columns available in the site and site columns you have added to the solution.
content-type
Once you have added all the site columns like below screen click on save.
If you want to delete any column which you have added, right click on that column name it will show small pop up "Delete-Del" click on that to delete it.
Content-type-column
Move on next tab content type. In the content type section you can enter your content type name, description, group name and there are three more properties.
Inherits the columns from the parent content type, you can check or uncheck that option based on your requirement.
content_type_settings
After completion of your required settings of your content type, click on save. Try to open the Elements.xml file, when you open it it will ask to close the content type designer view.
If you open the Eelements.xml file of your content type, you can observe that everything has been created for you. Please see the below code snippet for reference.

12345678910111213141516171819202122232425262728
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Item (0x01) -->
<ContentType ID="0x0100118703F0484042118516B33BD9488ECB" Name="ContentType-Object Model" Group="SharePoint-Journey" Description="My Content Type" Inherits="TRUE" Version="0">
<FieldRefs>
<FieldRef ID="{a4a8c94a-6a0d-4ef2-880d-a049720e2a73}"
DisplayName="Team Name"
Required="TRUE"
Name="Team_x0020_Name" />
<FieldRef ID="{2f6753f2-1584-477a-868e-d75ead1aaa07}"
DisplayName="Task assinged"
Required="TRUE"
Name="Task_x0020_assinged"
NumLines="6"
Sortable="FALSE" />
<FieldRef ID="{64cd368d-2f95-4bfc-a1f9-8d4324ecb007}"
DisplayName="$Resources:core,Start_Date;"
Required="TRUE"
Name="StartDate"
Format="DateOnly" />
<FieldRef ID="{8A121252-85A9-443d-8217-A1B57020FADF}"
DisplayName="$Resources:core,End_Date;"
Required="TRUE"
Name="_EndDate"
Format="DateTime" />
</FieldRefs>
</ContentType>
</Elements>

SharePoint List:

So far you have build site columns and content type. Now using these two we need to build the list.


Create a list by adding a new item to the project.
List
Enter the name of the list that you want to create and click on Add. It will open the wizard to choose the list settings.
Use the default (Blank) template to create the list and click finish.
create_list
It will open the list designer in visual studio where we can add the required columns from columns tab or click on the content type button at the bottom of the columns tab to select the content type that will be used to create a list.
As a standard practice we will create the columns by selecting the content type, so click on content types button from columns tab.
create_list
Choose the content type from the dropdown menu, this populate the all content types available in the SharePoint site and content types that we have added to the project. You need to add the content type which you created before.
create-list
Once you select the content type, click ok. It will populate the site columns which has been used for that content type, see the below screen.
create_list
Go to next tab i.e. Views. Here you can set the row limit and available fields in that of that particular view. By default you will have Allitems view, you can add the views which you want to customize it.
List-Views
Next click on the List tab to change the title, URL, description of the list. There are two options Display list at quick launch and Hide list from browser, based on your requirement you can change that.
create_list
Once you change the settings of the list the Elements.xml file of list instance will get modified.
Please see below snippet for reference.

12345678910
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListInstance Title="TeamDetails"
OnQuickLaunch="TRUE"
TemplateType="10000"
Url="Lists/TeamDetails"
Description="My List Instance">
</ListInstance>
</Elements>
Once you complete everything, build the project and deploy it to your SharePoint site by clicking a deployment option from the project.
build-list-project
After successful deployment you can check your SharePoint list, content type and site columns which you have built here in your SharePoint site.
Check here for the video of developing SharePoint list, Content Types and site columns in SharePoint 2013.

Conclusion:

We have seen the capabilities of visual studio designer in visual studio 2012 to develop the SharePoint list, Content types and site columns for SharePoint 2013 with less effort and time. That makes developer's life much easier.
 

Search results web part and content Search web part

Search results and Content search webparts SharePoint 2013

Search webparts had great improvements in SharePoint 2013. A couple of them are search results and content search webparts in SharePoint 2013.
When you look both webparts at first instance you will feel like all the new changes like properties looks similar we will see all those changes while going through the post.
If you learn one of these webparts then another one is quite similar.
To test these webparts you have to configure the search, have a look at my previous on
Configuring Enterprise Search in SharePoint 2013 to configure the enterprise search.

Search results webpart:

Search Results Page
Figure:Results page
Click on search results webpart properties to edit the properties of it. It will show the below Figure : Search results webpart properties.

1.Search criteria:

From the Figure:Search results webpart properties, click on Change query button to see what are the various properties in it.
Search-Results-webpart-Basics
From the above figure we can observe that there are five major Tabs under "Build Your Query".
  • Basics
  • Refiners
  • Sorting
  • Settings
  • Test
Apart from above five major Tabs there is one more Tab called "Search Preview Result".
This one of the exiting feature where you can see the results immediately in the preview once you configure all the required properties in Build your query. Which was really missing in the previous versions of SharePoint.Thanks to Microsoft.


Search Results Preview
We will cover one Tab at a time and explore what are ll the new properties available at each Tab of Build your Query.

BASICS Tab :

Basic Tab has two modes once is quick mode other is Advanced mode. By default it will be advanced mode.
We will change the mode to quick mode to explore the properties inside the Basic section of the Build your query.

Basics Tab - Quick Mode:

The basic difference in the quick mode and advanced mode is in quick mode SORTING Tab won't be there, in Build your Query section, it is included in the BASICS-Tab.

Select a query:

From the select query option you can select which type of content you want to search.
The list of values showing in drop is called "Results source"s. What is Result source?.
Result source:
Result sources replace “search scopes” in previous SharePoint versions.
Result sources can be thought of as “containers” for search results that hold the results For specific locations are filtered by specific criteria.
Result sources can be defined from SharePoint site settings.
You can click the "Result Source" hyperlink to manage the result sources.
Select a query

Restrict Results by App:

Using Restrict results by app setting you can search the results from a specific site, list or site collection. There is option doesn't restrict by location.
RestricResultsByURL

Restrict by tag:

You can use the restrict by tag option to limit the search results . You have option not to restrict by tag, even you can restrict the details with navigation and tags.

Sort Results:

There are different options to sort the search results in BASICS-Tab of quick mode. Please see the below Figure.
Basics-SortResults

BASICS Tab- Adavanced Mode:

In the BASICS Tab -Advanced mode has three options. One is to select the query, By default it will local SharePoint Results (system). Other two options are Keyword filter and Property Filter.
Once we select those values and click on the respective Add Keyword Filter and Add Property Filter the Query Text Text box will get populated automatically, with the help of that you can test the queries to see the preview.


Keyword and Property Filters


In the above Figure i have selected Keyword filter as "Only return lists and libraries", Property Filter Author with contains in this sitecollection. It will create the Query text for you. To see more values related to Property filter see the below Figure.


Property Filter
If you see the above options you will realize that there is lots of potential with this option itself, If you are a developer this will reduce lot of effort for you. But you need to make sure that these results are based on search so these results depends on how your crawl mechanism is running.
To get updated results from this webpart for all these conditions you might require continuous crawl, please make sure it matches your requirement.
Let's move on to other Tab Refiners now.

REFINERS Tab:

Refiners are usually the links on the search engine’s results page, typically in the left navigation which allow the user to further filter the results.We will added REFINEMENT webpart to display these values you can check in top of the page for reference.
You can in the previous post as well where we have seen different refiners such as
  • Result Type
  • Author
  • Modified Date
You can add you own custom refiners also in the REFINMENT webpart will see that later in the post on how to explore the features of refinement webpart.

SORTING Tab:

In the sorting Tab you have two options based on those options you can change the sorting of the results get by search results webpart.
  • Sort by Properties
  • Ranking Model
Sorting

Sort By:

You can sort by multiple order see the above figure for reference.
In the below Figure where the default sort by is Rank and there are plenty of options to sort your search results which were not available be default in SharePoint 2010 and Fast search option.
Try to gothrough complete list of sort by values.
Metadata-properties

Ranking Model:

You can sort the results using ranking models which are available in the OOB functionality. If you create a custom ranking model for displaying the results, under this option it will show the newly created ranking model you can simply use that newly created ranking model to display the search results.
Sorting-Rankingmodel
Based on the selected Ranking model you have option to promote or demote the search results based various conditions. Here also you can provide multiple conditions to promote and demote the search results functionality.
Sorting-dynamicRanking

SETTINGS Tab:

Settings tab is mainly used for overriding the some of the settings you do at site level or search service level.
You can override Query rules, URL rewriting and Loading behavior of the search results page.
Settings-Tab
Final Tab is coming up, which is the most helpful for the administrators or developers. Let's see what is there below section :).

TEST Tab:

Quickly see the below figure where we are in the TEST tab of Build your query section, based on the various options we have selected so far it will display accordingly in the Query text box.
Because of Test-tab you don't need to Apply from the webpart properties menu and see the preview of the page each and every time, so that way you will save a lot of time while configuring the search results webpart. Thanks one more time for MICROSOFT for providing the TEST option to test the configuration which you have done for the search results webpart.
Search-Results-webpart-Test


By default you will not see all the options in TEST-Tab, to see all options click on Show more hyper link.
In the below figure you can observe that the Search Results Preview showing the less results, because here i have added one more condition.


Search-Results-webpart-Test


So far we have explored all the options of search criteria property in search results webpart.

2.Display Template:

Display templates, new in SharePoint 2013, are HTML files that dictate how items result and their corresponding hover panels display metadata, links, and previews.
There are mainly two types of options for display templates. One is Results Types to display items and use a single template to display items.
Display-Template
Display-Template
If you select the single template to display items, the search results page will display the results like in the below Figure. Here i have chosen the default option.
Display-Templates-Results


If you want to to design the custom display templates click on "Control Display Template" hyper link from the Display template properties, it will redirect you to"Edit Design Templates" section of Design manager. See the below figure.


Design-Manager

3:Settings:

The properties in the Settings section is where you can restrict the number of results per page. You check or uncheck various check boxes based on various requirement like show ranked results, show promoted results etc. For more options see the below figure.


Settings
Regarding the content search webpart Chri's has written excellent article, so by going through this article will help you understand the Content Search webpart in detail.

Conclusion:

We have explored one of most important webpart in search i.e. Is search results webpart in SharePoint 2013.
So far what we have seen is the configuration of the search results webpart, in coming post we will explore we will see what are the differences in Search Results webpart and Content Search webpart so please stay tuned.