Sunday, February 24, 2013

How to determine the version and edition of SQL Server and its components

 

KB321185 explains a number of different methods to determine the version and edition (Developer, Standard, Enterprise,…) of SQL Server. The easiest in my opinion is method 4:

Connect to the instance of SQL Server, and then run the following query:

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')



 

Monday, February 04, 2013

Manually configure Lync 2013 clients for Office 365

If you want to manually configure a connection to Lync Online – select Tools > Options in the Lync Client. Next select the Personal category on the left hand-side. You will see a screen which lists your sign-in address – click on the Advanced button next to it and select the Manual Configuration option. Fill in the following settings:

  • Internal server name: sipdir.online.lync.com:443
  • External server name: sipdir.online.lync.com:443

 

Thursday, January 31, 2013

Getting started with JQuery UI Tabs

JQuery UI Tabs allows you to create HTML tabs in a very simple fashion. Listed below are the different steps you need to take:

  1. Add a reference to the JQuery javascript files
  1. Add a reference to a JQuery UI css
  1. Create your tabs by adding an unordered list in a div – note the href=”#tabs-1” part which points to the id of a div which will contain the tab content
  1. Create the divs which will contain the tab content
  1. Initialize your tabs by adding some javascript code

Finally your code should look this

 

Some interesting references:

Tags van Technorati: ,,,

Wednesday, January 30, 2013

6 interesting facts about continuous crawling in SharePoint 2013

One of the new features in SharePoint 2013 is continuous crawling which  allows your SharePoint search results to be be as fresh as possible. Continuous crawls run every 15 minutes by default but you can change the interval. This might sound similar to incremental crawling but there are some important differences:

  • Continuous crawls can run in parallel and a crawl does not require a previous crawl to be completed prior to launch
  • Processed results will appear in the search results immediate after the crawl – there is no need for index merging
  • Continuous crawling is only available for SharePoint content
  • It is not possible to pause or stop continuous crawls
  • Continuous crawling is not available in SharePoint Online – only in on-premise deployments (See Search features in Office 365 Preview)
  • A SharePoint 2013 farm will also be able to crawl older versions of SharePoint using continuous crawling.

References:

Saturday, January 26, 2013

How and why to compact your Outlook OST file

When you delete items in your mailbox, the size of the Outlook data file (.pst or .ost file – it is an ost file if you are using Microsoft Exchange Server) might not decrease as much as you expected. You can free more space by doing a compact of your mailbox – check out How to compact PST and OST files to eliminate deleted file spaces in Outlook. This is especially useful after you have done a complete cleanup of your mailbox since this probably grew your .ost file because the deleted items are also kept in this same .ost file.

Tags van Technorati: ,,

Wednesday, January 16, 2013

Office apps development - Getting started building an Excel task pane app

Apps for Office are a new type of apps which allow you to extend Office 2013 client applications  using a combination of web technologies (Javascript, CSS and HTML) and the new Javascript API for Office. If you are new to this I recommend that you check out these apps for Office and SharePoint 90 second videos. 

Afterwards you can immediately dive in and check out Build apps for Office. In this series of blog posts I will explain how I learned to built an Excel Content app and issues I faced when trying to built this type of app. There are different types of Office 2013 apps – check out.

A good place to start building a task pane app is Sample task pane and content app walkthroughs – which shows you how to build a Bing Maps content app.

The Excel content app I will build is a variant of the Bing Finance apps – which is basically aimed at integrating stock data into Excel. Where the Excel 2013 app which I will illustrate will differ in a first version:

  • Allow the app to work with Excel sheets which already have tables to add and bind to these existing tables and refresh data in these apps
  • Incorporate financial data from multiple sources (not only Bing Finance)

Usage scenario is the following:

  • User selects an existing Excel table which contains stock information – every row is representing a stock. For each stock there should be a column which contains the stock symbol code. User defines which column contains this stockdata and in which column he wants to update the stock price.
  • Provide a button to update the table with the latest stock price for each stock in the table
  • When a row is selected in the Excel table – show extra information in the task pane.

In the sample code from the Bing Maps content app - you notice that you need to create bindings to interact with specific sections of your Office apps – see Binding to regions in a document or spreadsheet . This is something I will need as well for the Excel table with stocks.

There are 3 types of bindings which you can create and from which you can read data  ( see BindingType enumeration) – in this case I want to use Office.BindingType.Table and read information from that binding afterwards. First create the binding:

Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Table, { id: 'stockdata' }, function (asyncResult) {
        if (asyncResult.status == Office.AsyncResultStatus.Failed) {
            write('Action failed. Error: ' + asyncResult.error.message);
        } else {
            write('Added new binding for table with' asyncResult.value.columnCount + ' columns');
        }
    });








Afterwards you can retrieve the binding again and read data from that binding. Unfortunately the sample code in the MSDN article only showed how to read data from a text binding – so it took me some time to find out how to read it from TableData object.









//Retrieve binding - if no binding - provide warning
Office.context.document.bindings.getByIdAsync("stockdata", function (asyncResult) {
   if (asyncResult.status == Office.AsyncResultStatus.Succeeded) 
   {
         //Loop over table rows
         asyncResult.value.getDataAsync({coerciontype:Office.CoercionType.Table},function(asyncResult2){
           if (asyncResult2.status == Office.AsyncResultStatus.Succeeded)
           {
               var rows = asyncResult2.value.rows;
               for (i = 0; i < rows.length; i++)
               {
                  write(rows[i][1]);
               }                       
            }
         });                
    }
});








In a next blog post I will explain how you can you use events in combination with the binding object.









Friday, December 21, 2012

Unable to use Windows Phone 8 Emulator without SLAT support

After installing the Windows Phone 8 SDK I got an error stating that hardware virtualization was not supported on my machine therefore I could not use the emulator.

Apparently there are two requirements for your machine to meet to support the Windows Phone 8 emulator:

  • Support for hardware virtualization in the form of either Intel-Virtualization Technology (Intel-VT) or AMD-V (also called SVM)
  • Support for Second Level Address Translation (SLAT) – see How to Check if your CPU supports SLAT – on Intel CPUs this is also called Extended Pages Tables.

This is caused by the fact that the Windows Phone 8 Emulator is using the client version of Hyper-V (which ships with Windows 8 client OS) which requires SLAT. The Hyper-V server does not.

Because I don’t have a Windows Phone 8 device on hand – I’m pretty much stuck building Windows Phone 7.1 apps.

Technorati Tags: ,,,

Thursday, December 20, 2012

First sessions announced for TechDays 2013 Belgium - early bird discount available

TechDays 2013 will take place on 5,6 and 7 March at Kinepolis Antwerp – the agenda is slowly filling up. For SharePoint developers there is an interesting pre-conference deep dive track with sessions by Dan Holme, Serge Luca and Lieven Iliano.

SharePoint sessions:

During the main conference no SharePoint sessions seem to be scheduled which is quite strange because the goal of the new SharePoint app model was to open up SharePoint to the average .NET developer.

Tags van Technorati: ,,

Tuesday, December 04, 2012

Exploring search driven applications with SharePoint Server 2013

Activating Windows 8 Enterprise and changing the key

If you install Windows 8 Enterprise Edition from MSDN you probably notice that you don’t need to enter a key. But after installation you are required to activate the software and this doesn’t work without entering a key. If you want to enter the key you have to go to command prompt  (remember to run with elevated administrator privileges) and type the following slmgr.vbs -ipk "YOUR_PRODUCT_KEY".

Tags van Technorati: ,,

Sunday, November 25, 2012

BIWUG session 13 december 2012– Fun with SharePoint 2013 Social, the REST API and Windows 8

Unfortunately the next BIWUG event is already fully booked but if you add yourself to the waitlist we might try to get you in when cancellations come in. Topics on the agenda are:

  • Office 2013 and SharePoint 2013 integration: There is a close integration between Office and SharePoint. In this session you will discover the integration between Office Applications (Word, Excel, PowerPoint, Access, and Outlook) and SharePoint. We will also talk about real collaboration with SharePoint. (Speaker: Patrick Sledz)
  • Fun with SharePoint Social, REST API and Windows 8: This is adaptation of a session delivered at SharePoint Conference 2012 in Las Vegas  - Windows 8 Metro Style Apps offer a rich user experience that is perfect for exposing data from SharePoint 2013. In this talk, we'll make use of the new SharePoint 2013 REST API to retrieve data from SharePoint and visualize it in a custom Windows Store app. We will built a Windows 8 App which integrates with the new social and search features in SharePoint Server 2013. Finally we will take a look at what is needed to deploy an app to the Windows store. (Speaker: Joris Poelmans)

Register for SharePoint Day Belgium – Bringing Las Vegas to Brussels

This event aims to help you get up to speed with the new and improved features in SharePoint 2013, explain what they mean to your organization and how you can benefit from these enhanced features. Register now on http://eu.avepoint.com/sharepoint-day-brussels/

I will be presenting a session on the new search features in SharePoint Server 2013. Other speakers include Jeremy Thake (AvePoint) , Mike Bueltmann (Knowledgelake, Adam Castle (K2) and Abi Onifade (AvePoint).

Tuesday, October 23, 2012

Why you should take a look at SQL Server 2012

For a full overview check out the SQL Server 2012 What’s new whitepaper

Monday, October 01, 2012

Nominated as SharePoint MVP for 2012

I just got the news that I have been renewed as SharePoint Server MVP. I became a SharePoint MVP in 2005 – so this is my 8th year in a row as SharePoint MVP – back in 2005 there were only a handful of SharePoint MVPs and I’m forever grateful to Patrick Tisseghem for introducing me into the wonderful world of SharePoint – without him there wouldn’t be such a vibrant SharePoint community here in Belgium.

There’s a lot of buzz out there with the re-launch of the Belux Information Worker User group – BIWUG – don’t forget to register on www.biwug.be to stay up to date with the latest SharePoint information – there are a lot of interesting sessions planned in the coming months.

Monday, September 24, 2012

Windows 8 App-a-thon at Microsoft Belgium on September 28th

There will be 2 coding sessions, 1 for Day Birds from 10am – 4pm and one for Night Owls from 6pm – 12am. You can join us for one or both sessions. Build an app, have fun and go home with a fantastic prize!

Don’t forget to register.

Thursday, September 20, 2012

The web template feature in SharePoint 2010

In SharePoint 2007 you had two options when you needed to create a new template for a SharePoint site:

In SharePoint 2010, there is a new replacement and improved framework for handling site templates. When you save a site as template it will create a normal SharePoint Solution Package (a wsp file – if this is new for you take a look at WSP – SharePoint Solution Files). The new webtemplate feature allows you to build a “site definition” which is scoped to a site collection – this way you can built templates of a site and still deploy them to the SharePoint solution gallery in sandbox mode.

Every webtemplate is based on an existing site definition – listed below is a code sample using the minimal set of attributes that you have to use when creating a new webtemplate.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<WebTemplate
BaseTemplateID="1"
BaseTemplateName="STS"
BaseConfigurationID="1"
Name="JOPX"
Title="JOPX WebTemplate"
>
</WebTemplate>
</Elements>


The WebTemplate has to reference the Template (BaseTemplateName) and the configuration of the site definition (BaseConfigurationId) the template is based on.



The example on MSDN How to: Create a webtemplate starts from importing an existing saved webtemplate but in some cases it is easier to start from an empty SharePoint project and manually adding a elements.xml incorporating the webtemplate feature as well as the ONET.XML from the site definition from which you want to start.



References:



Sunday, September 16, 2012

Exploring an App for SharePoint 2013 Visual Studio 2012 project – SharePoint hosted apps

After having installed Visual Studio 2012 together with the Microsoft Office Dev Tools which are distributed with the Web Platform Installer 4.0 (Just search for Office within Web PI) you can start building your first SharePoint 2013 apps. There is only one project type for building SharePoint 2013 apps.

After having selected the SharePoint 2013 app template, you will need to decide what type of app you want to build.

Let’s start with exploring what is included in the Visual Studio 2012 project after you have selected SharePoint hosted app.

Visual Studio 2012 SharePoint 2013 App structure:

  • Features folder – which contains a .feature configuration file, which is used to deploy features to the server that's running SharePoint. This file is typically edited using the VS Feature Designer
  • Package folder - which contains a Package.package file, which is used to deploy the solution to the server that's running SharePoint.
  • Content folder
            • App.css : CSS file to style your SharePoint 2013 app. For guidelines about the different styles take a look at Apps for SharePoint UX design guidelines
            • Elements.xml: provisions the CSS file into the App web
  • Images folder
          • AppIcon.png : serves the icon for the app in the home page
          • Elements.xml: provisions the icon into the App web
  • Pages folder
          • default.aspx : Main/starter page of the app which is shown in full screen mode. Every app needs a least one page likes this. Appmanifest.xml points to this app starter page
          • Elements.xml: provisions the default.aspx file into the App web
  • Scripts folder
          • App.js – Script file for adding your own Javascript logic
          • JQuery-1.6.2.js – If you are not familiar with JQuery yet – you should definitely pick up some learning material on this topic – it is quite essential for building SharePoint 2013 apps. In essence JQuery is a Javascript library which allows you to easily select and manipulate items in the DOM. See JQuery.com for more information
          • JQuery-1.6.2.min.js – Minified version of the JQuery library
          • JQuery-1.6.2.vsdoc.js – Used to provide intellisense capabilities – see How do I get intellisense for JQuery? for more info
  • Root of the project
          • Appmanifest.xml - defines the various elements of the SharePoint 2013 app itself. The appmanifest.xml tells SharePoint what it must know about the app and defines the app's most important properties such as ProductID, Version, Title, Tile and StartPage Urls
            , different AppEvent Urls: Installed, Uninstalling, Upgraded and the App Permission requests.
          • For more information, see Explore the app manifest and the package of an app for SharePoint
          • Packages.config - When creating a SharePoint 2013 app  project in Visual Studio 2012, NuGet packages are used for the JQuery libraries. This means that instead of using whatever version is installed on your machine (via the SDK), Visual Studio will pull the latest version from NuGet. You can see this by looking into the packages.config file in your project.

If you take a look at default.aspx you will notice the following javascript snippet added in to the page – this is quite important – and provides the binding with the business logic which is added into app.js

   1: <script type="text/javascript">



   2:     $(document).ready(function () {



   3:         SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { sharePointReady(); });



   4:     });



   5: </script>




The snippet above uses the jQuery document ready event handler – “ $(document).ready(function())” to call SP.SOD.ExecuteFunc(). This is an example of a common pattern in Javascript called anonymous function calls. SP.SOD.ExecuteFunc(key,functionname,fn) ensures that the specified file - sp.js - that contains the specified function – SP.ClientContext - is loaded and then runs the specified callback.



So when both the DOM and SP.js are loaded and the ClientContext object is initialized the code will call the sharePointReady() function which is located in App.js.



If you look at the code in App.js – you will notice that the general way of working with the  Javascript Client Object Model hasn’t changed a lot in SharePoint 2013.





   1: // The code creates a context object which is needed to use the SharePoint object model



   2: function sharePointReady() {



   3:     context = new SP.ClientContext.get_current();



   4:     web = context.get_web();



   5:  



   6:     getUserName();



   7: }




References: