Dealing with Web Proxy on WFE When Configuring Apps

Sometimes our client’s network has some policy restrictions. One of common restrictions is the enforcement to use explicit proxy in web browsers. It should be easy to deal when we use regular browsers to connect to the internet, we just need to enter proxy server name manually into the browser’s Settings window. But, when configuring Apps in SharePoint 2013, this could give us a little head ache.

SharePoint 2013 WFE needs to connect to SharePoint Apps Store (internet) to retrieve list of applications in Central Administration. However, it does not use the same connection settings as the locally installed browsers. So, whatever proxy settings we entered into the browser, it won’t affect internet connection initiated from WFE. SharePoint WFE will perform direct connection to SharePoint Store.

If this happens, our browser will display the following error message: Sorry, we can’t seem to connect to the SharePoint Store. Try again in a bit.

Solution

Fortunately there is a setting that we have to add manually into the web.config to give WFE information about the web proxy it should use when connecting to SharePoint Store. Find system.net section in the web.config, and change it to include proxyAddress attribute. For example:

<system.net>
    <defaultProxy useDefaultCredentials="false">
       <proxy usesystemdefault="True" proxyaddress="http://192.168.1.100:8080" 
         bypassonlocal="True" />
    </defaultProxy>
</system.net>

We have to enter proxyAddress value in URI form, i.e.: <protocal>://<proxy-server-name>:<port> (port can be omitted if we use standard port 80). And remember that we have to add this setting to all web applications including Central Administration.

Now refresh Apps list in Central Administration, you should see all available apps from SharePoint Store.

SharePoint Store
Source: Dealing with Web Proxy on WFE When Configuring Apps

Advertisements

Simple Visual Studio Workflow with Initiation Form

Creating Visual Studio Workflow in SharePoint 2010 is easy. So, don’t make the word Visual Studio scares you. It’s a little bit more difficult than SharePoint Designer workflow, but, trust us, this is not a rocket science. At certain point SharePoint Designer can no longer serve you. At that point and beyond, Visual Studio can be your life saver.

So, in this post we would like to show a very simple SharePoint 2010 Visual Studio Sequential workflow with initiation form. Eh, what is initiation form? It’s an ASP.NET form that is shown when we start the workflow manually. Initiation form gives us a chance to input data to workflow before the workflow is started for a particular item.

The Objective (End Result)

We would like to create a very simple Visual Studio 2010 workflow. This workflow will be associated with a Shared Documents library. When the workflow is started, the following initiation form is displayed:

Workflow Initiation Form

The “workflow” itself is very simple, there is no process in the workflow that we will build. We’ll keep it very simple at this point. The “workflow” only logs anything we input in the initiation form into the Workflow History list. Here it is.

Workflow History Outcome

Step by Step

Here is a little details about how-to create a simple Visual Studio workflow with initiation form. We use Visual Studio 2010 and we use SharePoint 2010. Dare to make the same experiment with Visual Studio 2012/2013 and SharePoint 2013? You are welcome to put a comment in this post.

  • Create a Visual Studio project using Empty SharePoint Project template.

    Empty SharePoint Project

  • Add a Sequential Workflow project item. Name it SeqWorkflow.

    Visual Studio Sequential Workflow

  • Right click on the SeqWorkflow project item, choose Add New Item. Choose Workflow Initiation Form, name it WorkflowInit.aspx.

    Add Workflow Initiation Form

  • Inside PlaceHolderMain content area, construct the the form using existing ASP.NET controls on the toolbox. Here is an example:

    &amp;lt;asp:Content ID=&amp;quot;Main&amp;quot; ContentPlaceHolderID=&amp;quot;PlaceHolderMain&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
        &amp;lt;div style=&amp;quot;margin: 20px&amp;quot;&amp;gt;
            Title: &amp;lt;asp:TextBox ID=&amp;quot;TitleText&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; &amp;lt;br /&amp;gt;
            &amp;lt;br /&amp;gt; 
            &amp;lt;asp:Button ID=&amp;quot;StartWorkflow&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;StartWorkflow_Click&amp;quot; Text=&amp;quot;Start Workflow&amp;quot; /&amp;gt;
            &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
            &amp;lt;asp:Button ID=&amp;quot;Cancel&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;Cancel_Click&amp;quot; Text=&amp;quot;Cancel&amp;quot; /&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/asp:Content&amp;gt;
    
  • Open WorkflowInit.aspx.cs, change GetInitiationData() method to return the value of Title TextBox in the form:

    // This method is called when the user clicks the button to start the workflow.
    private string GetInitiationData()
    
        return this.TitleText.Text;
    
    
  • Now double-click SeqWorkflow.cs to open workflow design window. Drag LogToHistoryListActivity from Toolbox to workflow design area, below onWorkflowActivated1 activity.

    Workflow Designer Area

  • Implement the MethodInvoking event of logToHistoryList activity, use the following code:

    private void logToHistoryList_MethodInvoking(object sender, EventArgs e)
    
        logToHistoryList.HistoryOutcome = this.workflowProperties.InitiationData;
    
    
  • We’re done. Build and deploy the farm solution, then try.

Source code: Simple visual studio workflow with initiation form source.
Source: Simple Visual Studio Workflow with Initiation Form

Using DevExpress ASP.NET Controls in SharePoint

Sometimes we get questions from our developer’s community asking about DevExpress ASP.NET Controls in SharePoint. The common question is: Can we use DevExpress ASP.NET Controls in SharePoint? The answer is yes we can. If we can use it, then how? In this post we will answer that ‘how’ question.

First thing we have to concern about the version of DevExpress and the version of SharePoint we use. Different SharePoint version requires different DevExpress ASP.NET Controls version. In this post we want to limit the scope of SharePoint versions: 2013 and 2010 (widely used at the time of writing this post).

We also have to know DevExpress ASP.NET Controls version cycle. DevExpress releases one major version each year, two minor versions for each major version, and several revisions (variable) for each minor version. For example in 2013, they rolled-out DevExpress ASP.NET Controls version 13.1.4 on June 6th, 2013. Major version is 13, minor version is 1, and revision number is 4. As you can see the first public revision number does not necessarily started from 1. Then they launched version 13.2.5 on Dec 4th, 2013. The pattern seems obvious here, the first minor version is launched on June and the second one is launched on December.

DevExpress Version Cycle

As the time of writing, the most recent DevExpress ASP.NET Controls version is 14.1.5 (Jul 17th, 2014), but we haven’t touched version 14 yet. In this post, we also limit our scope to DevExpress ASP.NET Controls major version 12 and 13 only. In other words, we may mention major version 11 or lower, but we actually haven’t tested them.

Now we will explain version matching between SharePoint version and DevExpress ASP.NET Controls version. SharePoint 2013 will work with DevExpress version 13. This is because SharePoint 2013 and DevExpress version 13 has the same .NET Framework as target of compilation: .NET Framework 4.5. On the other hand, SharePoint 2010 will work with DevExpress version 12. This is because both platform target the same .NET Framework 3.5.

So if your DevExpress version is lower than 12, you should check the version of .NET Framework as its target compilation. If it targets .NET Framework 3.5 it should work with SharePoint 2010. Also, DevExpress 14 should work on SharePoint 2013. We haven’t verified it yet because we haven’t use it for existing project. Surely we will update this post when we already apply DevExpress 14 in our future projects.

Now we will explain how we can use DevExpress ASP.NET Controls in SharePoint

Using DevExpress ASP.NET Controls in Development Environment

In Development environment, we just need to install DevExpress from its installer package. We can install it on a developer’s machine, or on web server. Launch the installer, and follow installation wizard until finish.

In Windows Explorer, open C:\Program Files (x86)\DevExpress 13.2\Components\Tools\SharePoint (note: you should replace 13.2 with your own DevExpress version). You can run ASPxSharePointRegister.exe or register its farm solutions (DevExpressSharepoint2013_GAC.wsp or DevExpressSharepoint2013_GAC.wsp) manually using PowerShell. There is also some batch files (*.cmd) to make us easier registering the farm solutions to SharePoint. Note that when installing DevExpress from its installer package we enter its registration license if we already bought one.

Then we can use DevExpress ASP.NET Controls in our SharePoint 2013 Visual Web Part project from Visual Studio 2012/2013.

Using DevExpress ASP.NET Controls in Production Environment

In Production environment, we shouldn’t install DevExpress from its installer package. We just need to copy SharePoint folder from C:\Program Files (x86)\DevExpress 13.2\Components\Tools\ in Development environment to any folder in production web server. Then run ASPxSharePointRegister.exe or register its farm solutions. Note that we don’t have to enter license information in Production environment. License information is verified only in Development environment.

Compilation and build should be performed on the Development environment where we entered our license. Assembly output from this compilation process already has license information embedded. So, when the assembly is deployed to Production environment, it won’t need to enter license information again.
Source: Using DevExpress ASP.NET Controls in SharePoint

SharePoint 2013 People Search Result Empty

If you just configured SharePoint 2013, you might stumble into common problem in Search feature: people search result is empty. We have configured several SharePoint 2013 farms for our clients and for our own Development farms, and we consistently faced this common behavior. So, today we decide to document what we did to make SharePoint displaying search result in People Search.

Check User Profile Service Application

People Search takes data from User Profile Service Application. So, the first thing you should check is User Profile Service and User Profile Synchronization Service. Make sure both services are up and running, and also make sure user data is successfully synchronized to SharePoint. You can check this from SharePoint Central Administration.

SharePoint User Profiles

Check User Policy for Search Crawling/Content Access Account

Search Crawling account and Search Content Access account should have Read Only permissions in My Sites web application user’s policy setting. Usually this configuration has been performed automatically by SharePoint. Nevertheless, we should check whether this condition is met. If not, add it manually.

Search Crawling / Content Access Account's User Policy

Grant “Retrieve People Data for Search Crawlers” Permission

Check whether we already grant Retrieve People Data for Search Crawlers permission to Search Content Access account. To check this, go to Central Administration > Manage Service Applications, and then highlight (don’t click the link) User Profile Service Application. On the ribbon, click Administrators icon.

Retrieve People Data for Search Crawlers

Make Sure sps3://<server-name> is Included in a Search Content Source

Go to Search Service Application in Central Administration, and make sure you have included sps3://<server-name> in Start Addresses of a Content Source.

sps3://

Afer you make sure all steps above have been performed, do crawl manually from Central Administration. After crawling is completed, you can perform people search. Now you should see some result.

People Search Result
Source: SharePoint 2013 People Search Result Empty

Using Yammer Enterprise on Office 365

We have written two posts that show how Yammer can be integrated with SharePoint 2013 on-premise. The first post talks about out-of-the-box SharePoint social features, and the second one shows you how Yammer can substitute out-of-the-box SharePoint social interaction with Yammer social platform. Now, it’s time to skim how we can integrate Yammer Enterprise with SharePoint Online (Office 365). Note that not all Office 365 plans come with Yammer Enterprise, you should check your Office 365 plan for Yammer Enterprise availability.

But what is Yammer Enterprise? What is the difference between Yammer Enterprise and regular (or basic) Yammer that we can freely set up? According to Why Yammer, Yammer Enterprise offers additional benefit as follows:

  • Admin Tools. Take control of your network with administrative tools like network configuration, user management, and more.
  • Network Level Apps and Integrations. Authorize and manage apps for your network, and gain access to advanced integrations like SharePoint, Microsoft Dynamics, Single Sign-On and Active Directory Sync.
  • Services & Support.

Now, we’ll delve into details. The following list is step-by-step on how to configure Yammer Enterprise on SharePoint Online / Office 365:

  1. Login to your Office 365 admin area by visiting https://portal.office.com
  2. Click on Admin > Office 365 menu.
  3. Make sure you see Yammer Enterprise in current health status.

    Yammer Enterprise

  4. On the same page, click included service, then click Yes, activate Yammer Enterprise for my network.

    Activate Yammer Enterprise

    Follow step-by-step on the wizard.

  5. Click on Admin > SharePoint menu.
  6. On the SharePoint admin center, click on settings.
  7. On Enterprise Social Collaboration section, choose Use yammer.com service.

    0dwzfylmg4bga1w

  8. Click OK button, and wait 30 minutes for Office 365 to complete configuring Yammer service.
  9. When configuring is done, make sure you see Yammer on Office 365 global navigation, replacing Newsfeed.

    Yammer on Office 365 Global Navigation

Now we can click on Yammer navigation item to bring us to Yammer and perform social interaction there. Until this point we haven’t touch about deeper integration between Office 365 and Yammer Online. We’ll delve into this topic on future posts. Keep tune-in.
Source: Using Yammer Enterprise on Office 365

SharePoint 2013 On-Premise and Yammer Integration (Part 2)

This is the second sequel of our posts about SharePoint 2013 on-premise and Yammer integration. In the first part, we skimmed on SharePoint 2013 social networking features. In this second part, we will talk about what Yammer will ‘replace’ in SharePoint social networking stacks, and what will stay the same after we use it. We don’t explain the how-to details here because it is already covered well in the following whitepaper: Lead with Yammer for SharePoint 2013 on Premises.

Yammer is a social network platform for business. Its features are like what Facebook and Twitter offer but it is designed more for collaboration and interaction between business colleagues. It’s pretty much like what SharePoint My Site can do but with more features. When we use Yammer, we use their online services. Our data is stored in their server, and we connected to their server via internet through web services.

Here is summary about what Yammer will ‘replace’ in SharePoint social networking stacks (taken from from the whitepaper we mentioned above):

  • Viewing or posting to conversations in newsfeeds on My Sites and Team Sites.
  • Viewing activities in the Newsfeed.
  • Viewing activities on profile pages.
  • Viewing the I’m Following web part on My Sites.
  • Mentioning users from their profile page. Note: this appears on a user’s profile page when the user fills in the Ask Me About field on their profile.
  • Following people.
  • Following tags.
  • Viewing Trending #tags on users’ Newsfeed page.

However, the following features of SharePoint social networking features will stay the as is:

  • Following documents.
  • Following sites.
  • Updating information on the Profile page.
  • Posting on a note board.
  • Liking or rating documents in a document library, and a video from the asset library.
  • Using community sites.
  • Changing activity settings on the Newsfeed Settings page.

My Site After Applying Yammer

We followed step by step on the whitepaper we mentioned above to apply Yammer to our My Site. Here we show you how it looks like after applying Yammer. We have set up our network in Yammer before, and its name is pena.co.id. Here we show you the screen capture of Yammer interface when we logged on as user Agus Suhanto on http://www.yammer.com.

Yammer of pena.co.id

Yammer Home Feed on My Site

Newsfeed, Followed Counts, and Trending Hashtags web parts have been removed from My Site. They have been replaced by Yammer Feed app part. This app part takes data directly from Yammer website. There are three Yammer feed types: Group feed, Home feed, and Comment feed. We can choose one of them from the app part option pane. Here we chose Home feed to replace Newsfeed:

Yammer Feed Web Part

We can use the same app part on team site to display Yammer Group feed related to a particular team.

We hope now you can see differences between SharePoint bare-metal My Site compared to Yammer-integrated one. You know what’s missing, what’s stay the same. Sure you’ll calculate the benefit and cost before making the decision whether to let My Site as is, or integrate it to Yammer.
Source: SharePoint 2013 On-Premise and Yammer Integration (Part 2)

SharePoint 2013 On-Premise and Yammer Integration (Part 1)

We are planning to write some posts in series about SharePoint 2013 on-premise and Yammer integration. We know that since Service Pack 1, integration between SharePoint 2013 on-premise and Yammer becomes easier to configure. In this first part, we will cover from high level summary about what SharePoint 2013 offers in its social networking package. We won’t touch Yammer yet for now. Note that this post is scoped only to SharePoint 2013 on-premise installation, not covering SharePoint online or Office 365.

SharePoint 2013 social networking package is a huge topics, we won’t cover what they are here since our focus is on its integration with Yammer. We assume that you already knew some basics concepts about it, including knowledge about My Sites. Social networking feature of SharePoint 2013 could not be separated with My Site feature since almost all social interactions are performed and aggregated on My Site.

What’s on SharePoint 2013 My Sites

We will cover what’s on SharePoint 2013 My Sites with examples from our own My Sites. We made it on our Development environment for development purpose. There is no real day-to-day interactions that can be captured. But we’ll create some samples of them. At least we can show you what’s on it. We won’t cover 100% of all My Sites features here, just the ones that we usually use for day-to-day activities.

Follow Sites, Documents, People, and Tags

In SharePoint 2013 social networking package, we can follow not just people, but also sites, documents, and tags. Following means we monitor any updates of the following objects. For example if we follow a document A, any updates to document A will be displayed on our My Site’s Newsfeed.

Follow any sites just by clicking the Star button located at the right top side of any SharePoint site:

Follow SharePoint Site

We can also follow our colleagues. From People Search result page, hover to the person whom we want to follow:

Follow a Person in SharePoint

Also, we can follow a document in SharePoint to put constant attention to its changes. Whenever there is change in document, it will be displayed on Newsfeed.

Follow a SharePoint Document

Last but not least, we can follow a tag. A tag is a keyword prefixed by a hash (#) mark. In other social media platform, it is commonly called as hashtag. For example we can follow a tag #indonesia.

Follow a Tag in SharePoint

Comments, Tags, and Like

We already knew this feature from SharePoint 2010. We can comment on any content in SharePoint. We can comment on a document, a list item, and a page. We also can tag content with any words. We can also give rating or just hit like button on them.

Comments on SharePoint content is called note board. Tags and Note Board can be accessed from the ribbon of every list or document library.

Tags and Note Board

I like it tag is still supported in SharePoint 2013, but its function is no longer aimed to implement Like button. Like button in SharePoint 2013 is replaced by Rating feature in list or document library. Previously in SharePoint 2010 ratings feature contains only star rating. Now, it is added with Like option.

Like Option in Rating Settings

Social interaction also has different comment and like functions. For example when someone updates status, we can comment or hit like button on it.

Newsfeed (Timeline)

Newsfeed is the SharePoint way to implement timeline. It consists of update activities from sites, people, documents, and tags we follow. There is also Sites tab where we can view all sites we follow.

SharePoint My Site Newsfeed

Followed Counts Web Part

In Newsfeed page there is also a web part displaying how many people, documents, sites, and tags we follow. It’s just a kind of statistics showing number of following objects. Its function is just like followers and following widget counts on Twitter.

About Me (Profile Page)

There is also a profile page where we can display and update our profile data. For example if we want to change profile photo, we can do this from this page. Not all profile data can be changed of course, because the change to the profile data is subject to governance of the SharePoint owner’s organization.

SharePoint My Profile Page

Local One Drive

This is the place where we can store our private documents (related to work of course) in SharePoint. This feature encourages us to save our documents in SharePoint, not local folder inside personal computer’s hard disk. The One Drive tab also has additional Followed Documents menu where it displays all documents we follow.

ieji4wcfy40zyol

My Blog

This feature needs no explanation. It’s there since SharePoint 2010. It’s a kind of personal content publishing where we can write articles or thoughts, and categorizes them based on certain custom taxonomy.

SharePoint My Site Blog

My Apps

This is new in SharePoint 2013. But the apps concept itself is well-known especially in mobile platforms. In SharePoint 2013 we can purchase or install apps from Apps catalog and scope it in My Sites.

Aggregated Tasks (My Tasks)

This is also new in SharePoint 2013, but the Tasks list itself has becomes an important features in SharePoint. The idea of My Tasks in My Site is to aggregate all tasks from other sites in the same SharePoint farm into a single display. Therefore we do no longer need to visit all sites to check all our tasks, because it is already aggregated in a single location: My Tasks.

SharePoint My Site Tasks
Source: SharePoint 2013 On-Premise and Yammer Integration (Part 1)