SharePoint Use Cases

Paul Grenier is witting an impressive series on EndUserSharePoint.com on how to use JQuery to improve SharePoint look’n'feel. Few weeks ago I emailed him with a challenge: “…create a script to resize EWA [Excel Web Access] web part automatically to match content inside.”.

Excel Web Access web parts are great, but if you are using them to display external data (e.g. PivotTable that displays data from external database) it is hard to “predict” how many rows will be returned.

The web part is using IFRAME to display its content, and it does NOT resize automatically to match content being displayed. Paul is the Master of JQuery and he managed to solve this problem. Original article with Javascript code.

Thank you Paul!

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

In previous post of the series, I blogged about classic mistakes and best practices for SharePoint development. In this post I am going to focus on the following best practice:

The best practice approach - Development lab

In last few years I managed a number of SharePoint based projects and most mistakes I mentioned in my last post I experienced working on these projects. In last few weeks, we analyzed all the mistakes and here is how you can avoid these.

The following figure (click to expand) outlines the schema of the lab we built internally.

Lab components are:

1. Developer’s Workstations LAN

Each developer has a workstation with the following characteristics: HP brand-name, 64-bit, 4GB RAM, two hard drives, Windows 2003 host operating system.

On his own workstation a developer runs virtual machine(s) pre-installed with SharePoint, Visual Studio and other tools. All the work he needs to do is being done on the virtual machine. Host machine is used to host virtual machines :), emailing with Outlook and other similar stuff.

We are using Virtual PC and Virtual Server as virtualization technology on workstations.

Usually a developer has only one VM running. For each project he is working on, there is a different SharePoint Site Collection.

You will achieve best results if you create a developer VM from scratch. I will described how to do that in next post of this series.

2. Core Services LAN

Core services allow SharePoint developers to work smoothly and reduce resource consummation on workstations. Each server on the figure above is also a Virtual Machine, but these machines are hosted on production servers. We are using Virtual Sever and Hyper-V as virtualization technology. The core services are:

  • SQL - this is central SQL database server, for all SharePoint VMs in the entire lab network. We have decided to add external SQL in order to lower resource consummation on a developer workstation and other SharePoint - Project VMs.
    Most SharePoints in our network are configured as simple farm: WFE + SQL backend
  • Mail - this is server with SMTP and Exchange installed. All SharePoints VM are using this server to rely email messages
  • DC - this Domain Controller for this lab domain.
  • VSTS - we are using Visual Studio Team System 2008 to store our code, and organize work items on each project. (in real world this server is in another domain)
  • ISA - It serves as Firewall that divides our internal network from DMZ

3. SharePoint - Project VMs (DMZ)

The servers on this LAN are SharePoint VMs. Each project we are working on has it’s own VM. Each machine is available online (web interface only), allowing customers to preview solutions we are developing for them. This is a crucial thing on a SharePoint project. Since we are using iterative development approach it is important that customers can provide feedback as early as possible.

Project VMs are basically integration machines. Each developer deploys project code to this machine. Once deployed it is being tested in a simulation of customer’s production environment. For some projects we are using continuous integration tools like CruiseControl and NUnit, but sometimes, due to complex environments, some items can only be delopyed and tested manually.

In next post of the series I am going to explain how you can build your VMs.

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

19 Dec, 2008

KPIs for Masses - Part 2 and Part 3

Posted by: Toni In: sharepoint

I have published two new articles on EndUserSharepoint.com.

KPIs for the Masses: A Dashboard based upon a date-time field

In my the first two articles of this series, Visual Indicators for the Masses and Embed KPIs as a List View, I discussed ways to create simple KPIs in WSS. This article will show how to make calculations on top of date-time fields. Read more…

KPIs for the Masses: Embed KPIs as a list view

The best way to build your KPIs is to store them on a list view. This “view approach” is much better than the original “web part page approach” because you can save the entire list as template and recreate the list, along with KPI View, on another site. More…

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

I already blogged about setting up a SharePoint team, and I am going to explain the technical side of that in this post.

Here are the classic mistakes and best practices on how to setup development environment for a SharePoint team.

Environment 101

Mistake - Installing SharePoint on a developer workstation

It is nice to have all the tools you need installed on your workstation / laptop. This is a wrong approach for SharePoint projects. SharePoint is a very complex software product and it will probably mess-up something else on your computer. So you will end up reinstalling it, every few months.

SharePoint also requires a Windows server to run, which you can install on workstation, but you will not be able to run some client applications (e.g. Adobe Creative Suite).

The best practice - SharePoint in a Virtual Machine

The best practice for setting up development environment is to use a virtual machine. VMs are easy to manage and host operating system is completely isolated. You can tear apart VM, but host machine will not be affected. The benefit: You can have a different machine for each client/project you are working on.

Here are some useful links on this topic:


Virtual Machines 101

There are various options for using Virtual Machines and here are some mistakes and best practices when it comes to SharePoint development:

Mistake - Using a Virtual Machine provided by Microsoft

You can download a preinstalled VM with SharePoint and everything you need from Microsoft web site. These machines are great because they included all the tools and services you need to do presentations and developing for SharePoint. However you will encounter the following two problems when using them:

  • VM is set to expire in few months, and sometimes it is very hard (in some cases impossible) to prolong that
  • If two or more people are using this machine on the same network this will cause you a lot of problems. Renaming a server with SharePoint and Domain Controller installed is a nightmare, and you cannot have two machines with the same name on your network.
    So, sooner or later you will abandon this approach. :)

Please note: If you only need to do a simple pilot, or a demo you should stick to this VM. It is great and rapid tool for simple scenarios.

Mistake -Single Virtual Machine approach

The next approach you will probably try is having one virtual machine per project, and use it as integration (sometimes even development) server. Each developer uses this machine for debugging, deployment and integration.

This is a mistake, reasons:

  • Deploying SharePoint stuff often requires you to restart IIS or recycle pool. If you have two or more developers working on this machine this might be a problem, because all these restarts will decrease productivity of a developer.
  • No matter how much RAM you allocate for this machines, you want be able to allocate enough.
    It is always hard to allocate enough if two or more developers are using Visual Studio debugger on the server

The best practice approach - Development lab

In next post I am going to describe how and why you should build a testing lab for your team.

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

10 Dec, 2008

Implementing Microsoft Dynamics NAV 2009

Posted by: Toni In: books

Although I do not work with NAV too much, I am happy to announce a new book about latest version of Microsoft Dynamics NAV.

The co-author of the book, my dear colleague, Vjekoslav Babić is one of the leading NAV consultants in Europe.

If you are looking for a good book about NAV this is the one.

Vjeko, I hope you are going to sell the entire first edition in a blink of an eye…

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit
Tags:

My first blog post at End User SharePoint has been published (Mark thank you for inviting me).

SharePoint comes with really cool web parts for presenting key performance indicators, but these are only available in the Enterprise edition. If you are running Windows SharePoint Services or SharePoint Server Standard, it is not available. Which SharePoint technology is right for you?

In this article I will create the same KPIs as Mark did in Part 1, but I will use only Windows SharePoint Services functionality. In order to do that you will need Microsoft Office SharePoint Designer 2007. The only limitation of this concept is that you can only build KPIs on top of data stored in SharePoint lists. Read more…

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

09 Dec, 2008

SharePoint Reviews!

Posted by: Toni In: sharepoint

As SharePoint grows in complexity there are many new tools and add-ons being released everyday. That’s why we desperately needed a community site that would allow all vendors to publish information about their products. Thanks to Inna Gordin now we have one :)

SharePointReviews.com is an independent product directory that provides SharePoint power users, developers and administrators with objective reviews and opinions on SharePoint Web parts, applications and development platforms. With searchable product listings and ratings, it will help you find the most suitable product within the shortest time. You can browse by categories, vendors, platforms and other parameters.

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

08 Dec, 2008

CRM Accounts and Competitors

Posted by: Toni In: crm

Microsoft Dynamics 4.0 presents Accounts and Competitors as different entities. In most cases this setup might be sufficient, but sometimes an account can be a (potential) customer in one segment of your business, and a competitor in another.

While working with my customer last week, this question popped up, and here is the solution to it.

The solution

The solution is to create a relationship between two entities and a workflow to synchronize competitor records. Your users will not need to create new competitor records, but only properly choose Relationship attribute of an account record.

Creating relationship

In order to connect these two entities we need to create a new relationship. Basically this is 1:1 relationship, but, since these are not allowed, we are going to use Account (N:1) Competitor relationship instead.

Create a new relationship and configure it as shown in the figure below.

You will also need to add a field on Account entity form so that you can configure a workflow to update this value.

Creating workflow

This workflow is going to create a new competitor record for each entity that is marked as competitor. If related competitor record already exists, it will be updated. The workflow is shown in the following figure:

It looks simple, but you will need to configure field mapping and other settings in order to make it work properly. If you need help with re-creating this workflow, feel free to drop me a line.

Security

Before rolling-out this solution check that your salespeople have the proper permissions to create competitor records in your CRM.

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit

06 Dec, 2008

End User SharePoint

Posted by: Toni In: sharepoint

I have been following End User SharePoint blog by Mark Miller for a while now. Mark is building a great site which is focusing on SharePoint value for end-users. It is an unique place which provides valuable information on how you can utilize out-of-the-box functionalities. You can also participate in forums, workshops, subscribe to monthly newsletter and stuff.

Check it out here.

Mark and I also exchanged some ideas in last few months and you will be able to read about some of these on his blog. Stay tuned!

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit
Tags:

As we are approaching Christmas season many corporations will be sending gifts to customers and business partners. For third year in a row we are using Microsoft CRM to organize the process.

Here is how you can do it:

  • Create a marketing list
    • If you are sending different kinds of gifts, create one list per gift
    • Member Type for this list should be Contact. You will probably want to send a personal note to each customer/partner.
  • Share this list with all eligible employees and allow them to add people on this list.
    • It is very important to include as much people from your company to do contacts to this list. The number of colleagues to include depends on your internal organization (e.g. a developer probably does not know too many customers), but with more people involved there is a better chance you will add ALL customers you intended to.
  • Make sure that all contact owners verified that contacts addresses are correct

The best approach is to open this list on January 1st and than add new customers to it all year long.

Sending gifts

When your list is completed, marketing manager should review members and remove/add some if necessary.

The final step is to eventually ship these gifts. Here you have a couple of options:

  • Use Mail Merge for List Members to create personalized letters / email / cards / labels. Print these and ship them.
  • If each employee is going to deliver gifts personally, you could create a simple workflow (see figure below). This workflow is going to assign a simple task (you could create campaign activity instead) for contact owner to deliver the gift.

Spread the word...:

Digg del.icio.us LinkedIn Technorati Google StumbleUpon Reddit


  • Mark Miller: I have to agree, Paul's series is getting more impressive by the day. I'm going to have to implement some of his solutions soon just to keep up. "M
  • Advanced scenario for SharePoint Blog site template - Sharepoint Use Cases: [...] scenario for SharePoint Blog site template This blog has moved. Click here to open the new [...]
  • Toni: @John: Yes, we did some continuous integration with SharePoint, but you are 100% correct it was a pain. I will post an additional article on how you c

About

Real-life use case and opinions about Microsoft products by Toni Frankola. More...

All postings on this blog are provided "AS IS" with no warranties, and confer no rights. All entries in this blog are my opinion and don't necessarily reflect the opinion of my employer.

Categories