“Napa” Development Tool for Office 365 Apps

The “Napa” Office 365 Development Tools make it easy to start building apps for Office and SharePoint without leaving your browser or installing software.

When we jump to Office 365 and try to install Napa, you might get error saying :
"We need your help to make this app work:
Turn on Developer Feature

This means we need to have a developer site created to use Napa tools.
Now go to SharePoint work space in Office 365.

Once you are on SharePoint Admin Center, try creating a Site collection. Please note that you cannot create a new Public site collection until you subscribe(not available in trail version).


SharePoint - Copy Files / Documents from Search screen using JavaScript

One of the major enhancement of SharePoint 2010 is "Content Organizing" which makes it more strong in "Document Management System (DMS)" race.

Content Organizing means, the content automatically routed to different destinations based up on various factors.

Best part of it, content is organized without any manual intervention.

Worst part of it, Data / Docs are scattered across site collection or whole web application.

Lets consider a scenario, where the user uploaded 20 documents which were organized into multiple libraries in a site collection. Now i want to bring all that 20 docs to one single library where the user can edit them and resubmit.

Let me show you what i am aiming for.

First Question "Why Search?"


Document Center Vs Record Center - SharePoint 2010

This is not a new discussion, there are lot of links talking about differences between Document Center and Record Center.

Let me summarize what you may get going through most of the sites:

Document Center: This is meant for Document Collaboration and mostly for Live Documents. Basically is like your File Server , except that you have searching and indexing capabilities.

E.g., If a team is working on a project, and there will be lot of documents which all team members will be Creating / Reading / Updating / Organizing. DC suites this purpose.

Record Center: This is meant for Document Retention and mostly for Read-Only documents.

E.g., Once the project is completed all the documents will be saved and secured for further references. These documents are not meant to be modified. RC suites for this purpose.


Basics of Sharepoint Search

In this post we discuss about basics of sharepoint search.
Below are the concepts which we cover in this post.
  • Components of Search
  • Enabling / Understanding Search Service Application
  • Sharepoint Content Source
  • Crawl Rules
  • Crawl Logs
  • Setting-up Enterprise Search
  • Crawl Properties / Search Schema
  • Search Managed Properties / Search Schema


Mtom Encoding in WCF

In this post we will cover
  • What is MTOM Encoding
  • MTOM Vs Text Encoding
  • Reasons to choose MTOM
  • Demo

MTOM (Message Transmission Optimization Mechanism) – WCF supports 3 encodings (in context of WCF, encoding means converting a WCF message (serialized XML InfoSet) into bytes) – Text, MTOM & Binary. All Http Bindings (Basic, WS, Dual, etc.) support Text / MTOM encoding, Text being the default one.

Problem with Text Encoding is it uses base 64 encoding format which can inflate the message size by 30%. This can be a heavy penalty while carrying large binary attachments.
On the otherhand, MTOM avoids base 64 encoding for binary attachments keeping the overall size of message in control. Moreover, MTOM is based on open specifications & hence is largely interoperable.

Enough of theory... Let's do a demo to concretize the concept.

For this, i have created a simple WCF service. Below image will describe what we intend to do.


Integrate Yammer into Sharepoint 2013

In this post we see how to integrate Yammer features into SharePoint Server 2013. You can achieve this by installing the Yammer app for SharePoint and embedding your Yammer feeds.

 Step 1: Get the app from the Store

Important: Use an account that is a member of the farm administrators group to perform this step. Do not use the farm administrator account that was used to install and configure SharePoint Server 2013. The farm administrator account cannot import app licenses because that could result in performance problems. For more information, see http://technet.microsoft.com/en-us/library/fp161231.aspx. You can add additional farm administrators to the farm administrators group in Central Administration. When in the online store, you will need a Microsoft account to add the app successfully.


Step-By-Step installing Sharepoint 2013 Using AutoSPInstallerGUI

In earlier post we dealt with Issues while Installing and Issue in hosting App model in SharePoint 2013.

We can avoid most of these issues by using AutoSPInstaller.

Its a batch file which triggers a series of powershell commands, which reads configuration data from an xml file and installs SharePoint 2013 and all other supporting components.

Even though AutoSPInstaller made installation easy, but still we have a pain point. Configuration.

Now we have a AutoSPInstallerGUI, as simple web application specially designed for SP 2010 and 2013 installations. This will make our lives easy dealing with configuration part.

All you need to do is download #1. AutoSPInstaller and #2. AutoSPInstallerGUI from respective links.

AutoSPInstaller has all the required batch files, configuration files, Powershell script files, and pre-requisite installer files.

AutoSPInstallerGUI has a simple windows application, using which we modify the installer file in AUtoSPInstaller.

If this is so simple, why I am writing this post!


Using Certificate Authentication for Cross Domain Communication

I have addressed couple of posts on logic behind certificates , how to use them with WCF in both transport and message security contexts.

In this post i try to present the basic idea and implementation of using certificates for communication between different parties in realtime scenario. Dont worry about the screenshots of config files, you can download the sample and get all the settings you required for copy.

There are many scenarios which demand certificates authentication mechanism. Common examples are
#1. Banking web application which do their transactions using FBA and Certificate authentication
#2. Server to Server calls.
#3. Service to Service calls
#4. Application to service calls.
and so on covering most of the high security requirments.

But everything boils down to "A cross domain communication or we can say Domain independent communication".


Sharepoint DDD / TDD Code Testing Tip

In this post i would like to demonstrate a small tip in writing SharePoint code, which can make testing a bit easy.

Now before going into further details lets talk about 2 concepts DDD and Unit Test Vs Integration Test.

#1. DDD & TDD : Domain Driven Development  targets at unrelenting Domain layer from technology, thus making it flexible to be accessed by any technology for re-usability.

On the other hand TDD targets at implementing the functionality based on scenarios. For example, lets consider Agile implementation. Each sprint will target a couple of scenarios, which may not comprises of complete functionality. So, we will write the test cases for those scenarios and will write the code against to the test cases until they are success.

In both the cases, the main idea is separation of concerns and increasing the testability of the code.

#2. Unit Test is a test that will be executed in isolation, means no dependency on any other factor. In SharePoint , the unit test should be executed even without Sharepoint dlls, and Sites, and any other factor.
We have several frameworks like Moles, TypeMock which will give you ability to mock complete SP Object model thus execute your code in isolation.

On the other hand Integration testing is running the code in coordination with various layers that actually perform tasks on the site.


Feature Stapling in Sharepoint

Feature Stapling is a concept using which a specific feature will be stappled to site template.

What we gona acheive with it?

There will be scenario where certain resource has to be populated to every site collection that was / will be created on a farm.

Eg : I am dealing a client who is a owning a chemical lab. He want complete list of "Elements and their Atomic weights" to be present in every site that was already created, and any site that will be created in future.

In this scenario, Feature stappling will be used.
Lets see how to demonstrate it.