Showing posts with label SharePoint Development. Show all posts
Showing posts with label SharePoint Development. Show all posts

1/02/2014

SharePoint Classes at MAX Technical Training

 

As you probably know, I'm a senior instructor at MAX Technical Training. As I'm starting my ninth year at MAX this week I thought I should plug a few of my upcoming classes!

You can attend these classes at our Cincinnati area training facility in Mason Ohio or attend remotely from anywhere in the world.

SharePoint 2010 Development

MS-10175 Developing and Customizing Applications for MS SharePoint 2010 (aligns with exam 70-573)
January 6-10

 

Do you have a governance plan? A real governance plan?
MA-1040 SharePoint Governance, Planning and Oversight (one of my favorite topics and one I often present on at SharePoint events.)
January 16-17

 

Are you ready for SharePoint 2013 development?

MS-20488 Developing Microsoft SharePoint Server 2013 Core Solutions (aligns with exam 70-488)
February 10-14

MS-20489 Developing Microsoft SharePoint Server 2013 Advanced Solutions (aligns with exam 70-489)
January 27-31

If you are interested in SharePoint 2013 Developer Certification then you will also need exams 70-480 and 70-486…

MS-20480 Programming in HTML5 with JavaScript and CSS3 (aligns with exam 70-480)
January 20-24

MS-20486 Developing ASP.NET MVC 4 Web Applications (aligns with exam 70-486)
February 17-21

When you register… tell'm that Mike sent you and you might get an extra donut or something Smile

12/29/2013

Is VB.Net dead?

 

Just a random thought at the start of a new year… Is VB.Net dead? Deprecated? Just not interesting to Microsoft Learning?

It seems the newer 204** series Microsoft MOC classes only cover C# (and JS / HTML5). I've also been reading that C# is the only language option in most of the newer certification exams.

On the other hand, it looks like Visual Studio is still treating VB as an equal to C#. There are no new VB and C# language features in VS 2013, but VB is still there. The VB team blog says "We are actively working on the next versions of Visual Basic and C#" (*).

What about VBScript? As of Internet Explorer 11, VBScript is considered deprecated. (MSDN article)

This will be entertaining to watch as many of my web and SharePoint class attendees are still working in VB shops!

Mike

6/02/2013

SharePoint Versioning Trivia, or maybe a start on a versioning FAQ

 

The number of versions retained is one more than the limit you set. Entering 10 as the version limit will keep up to 11 versions of the item. I guess the current "version" is not counted as a "version".

image

Then maximum number of versions per item is 5000. (at least in SP 2010)

image

We you exceed the version limit the oldest item is immediately discarded. It is not moved to the recycle bin.

Only libraries support Minor or Draft versioning. Lists only support major versions.

The maximum number of draft versions is 511, and you can't change that number. Attempting to create a 512th draft version generates this error:

image

"Keep drafts for the following number of major versions" will automatically discard minor versions of published major versions over the entered limit. Actually… it will keep one less than you probably expect.

image

For example, if the limit is 3 and you have some unpublished drafts, then you will see drafts from the previous 2 published versions plus the current drafts:

image   (click image to enlarge)

Notice that you see 13.1, 14.1, 15.1 and 15.2, but not 12.1. Three sets of drafts as expected. Now let's publish 15.2 into 16.0:

image(click image to enlarge)

Now we only have two sets of drafts, 14.1 and 15.1.

 

Clicking "Delete All Versions" actually deletes all but one version. The latest version is retained.

Reducing the version limit will not automatically delete excess old versions. The excess old versions will be deleted the next time the item is deleted. (You can create a PowerShell script to clean out the excess versions.)

Visitors to the site can see all of the old versions by default. You may want to edit the Read and View Only permissions levels to remove the "View Versions" permission.

Major version numbers are assigned internally using “version number” times 512. You can see this when display a version of a list item. Example of a direct URL: http://intranet /Lists/Announcements/DispForm.aspx?ID=1&VersionNo=1024
No that’s not version 1,024! Version numbers are assigned using “version number” times 512. Version 1 is 512, version 2 is 1024, version 3 is 1536 (i.e. 3 * 512), version 4 is 2048 (i.e. 4 * 512) …

 

Notes for developers and PowerShell scripters:

Versioning related properties of SPListI:

  • .MajorVersionLimit – the "Keep the following number of major versions" field in Versioning Settings
  • .MajorWithMinorVersionsLimit - the "Keep drafts for the following number of major versions" field in Versioning Settings

Versioning related properties of SPListItem:

  • .Versions – a collection of retained versions
  • .Versions.Count
  • .Version[0]  gets the most recent version of the item
  • .Verions[x] where x is .Versions.Count, is the oldest version of the item (i.e. versions are stored in reverse order)
  • .HasPublishedVersion   -  boolean

 

Here's a little PowerShell script that will take the first document (ID=1) in the Shared Documents library and create 10 major versions, each with two minor versions.

# before running this, enable major and minor versioning on the library

# get the web site
$web = Get-SPWeb http://intranet.contoso.com

# publish the first document 10 times
for ($versionsToCreate=0; $versionsToCreate -lt 10; $versionsToCreate++)
{
  # get the document
  $doc = $web.lists["Shared Documents"].getitembyid(1)

  # create two minor versions
  for ($x=0; $x -lt 2; $x++) { $doc.update() }

  # publist the last minor as a major version
  $doc.File.publish("")
}

5/06/2013

So you want to be a SharePoint Developer…

 

In a recent class we started putting together a list of what you need to know to be a well rounded SharePoint developer. The list very quickly got out of hand… but everything in it is required to for some aspect of SharePoint development. You don't need to know all of this if you are focusing on just a part of SharePoint, but not knowing these technologies may result in reinventing the wheel or the creation of things in SharePoint that don't feel like they belong there.

Some of the technologies you will need to know:

  • General web technologies
    • HTML
    • HTML5 (starting with SP 2013)
    • Cascading Style Sheets (CSS)
    • DHTML and working with the DOM
    • XML and XSLT (added by JR!)
    • JavaScript and jQuery
    • Browsers and browser limitations (and how to code around them)
    • web security
  • Microsoft web and development technologies
    • ASP.Net (pretty much everything!)
    • C# and / or Visual Basic .Net
    • AJAX
    • Silverlight (for SP 2010)
    • LINQ
    • ASP.Net 2.0 web parts
    • ASP User Controls
    • Visual Studio
  • General development skills
    • Object oriented development
    • Event driven development
    • Project management
  • SQL Server and SQL querying
  • Web Services in their various flavors
    • .Net 2.0 style SOAP web services
    • Microsoft WCF
    • RESTful services
  • Workflow
    • .NET 3.5 workflow and for 2013, .NET 4.0 workflow
    • Visual Studio workflow development
    • SharePoint Designer declarative workflow development
  • SharePoint
    • End user and site owner skills
    • SharePoint site security
    • SharePoint code related security
    • Event receivers
    • CAML XML and everything it is used with
      • site templates
      • list templates
      • features
      • content types
      • views
      • and much more
    • SharePoint editions and licensing
    • The SharePoint object model and API
    • The SharePoint Client Side Object Model (CSOM)
    • The SharePoint web services
    • The SharePoint architecture
    • SharePoint code deployment options
    • SharePoint web parts
      • connected web parts
      • web part properties panels
    • SharePoint services (knowing what's there and creating new services)
    • Metadata and the metadata API
    • External data connectivity (BCS)
    • Search
      • The Search API
      • iFilter development
  • And for SharePoint 2013
    • SharePoint "app" development
    • writing Azure hosted applications
  • InfoPath
    • General forms development
    • Customizing SharePoint list forms
    • Creating and integrating workflow forms
  • Best practices
    • Web
    • SharePoint
    • JavaScript
    • SQL
    • Web services
    • Documentation
    • Project management
    • Performance testing
    • Testing and deployment
    • Your organization's best practices and SharePoint Governance Plans
  • Tools and resources
  • Also very useful…
    • Microsoft Office development skills
    • PowerShell
    • Visio
    • Mobile Web App Design

Did I miss anything? Post a comment and I will add it to the list.

 

SharePoint Training

As I am a Microsoft Certified Trainer (MCT)I would be remiss if I did not list some of the training resources available through MAX Technical Training! If it's about SharePoint and SharePoint development, MAX has it!

 

SharePoint Certification

These classes are aligned with the Microsoft certifications for SharePoint development:

2/28/2013

SharePoint 2013 First Looks for ITPros and Developers–Classroom and Webinar

 

I will be presenting two FREE SharePoint 2013 First Look clinics this March 8th at MAX Technical Training. You can attend these sessions in person at MAX's Cincinnati area Mason, Ohio training center or remotely using any PC.

Just for fun, when registering add a note that "Mike sent me!" (Or maybe… "Attending in spite of Mike")

 

MS-40027 First Look: What's New for Developers in Microsoft SharePoint 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=43826

This 1/2 day instructor-led developer first-look course provides an overview of the new features, functional areas, product enhancements, and application models in SharePoint 13.

At Course Completion

  • Provide an overview of the new features, functional areas, and product enhancements in SharePoint 2013.
  • Summarize the key features of the SharePoint 2013 application development platform and describe the key features of Marketplaces.
  • Explain what a SharePoint-Hosted app is, and describe how to build a SharePoint-Hosted app.
  • Explain what a Cloud-Hosted app is, and describe how to build a Cloud-Hosted app.
  • Describe how developers extend Office Application user interfaces by creating Apps for Office and publishing them in different catalogs.
  • Describe how to create and code a simple App for Office that interacts with document content.
  • Describe improvements in Manage Metadata Services, Enterprise Content Management and Web Content Management in SharePoint 2013.
  • Describe the new social networking functionality available to SharePoint 2013 App developers.
  • Describe how the new capabilities of the SharePoint Search engine can be used in SharePoint Apps.
  • Describe how to query the index from a SharePoint-Hosted app using CSOM.

 

MS-40028 First Look Clinic: What’s New for IT Professionals in Microsoft SharePoint Server 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=44107

This 1/2 day instructor-led first-look clinic explains the new and improved product features as applicable to IT Professionals and how to install, deploy, manage, and administer SharePoint Server 2013. It also provides information on how to integrate SharePoint Server 2013 with key applications and how to maintain and troubleshoot SharePoint Server 2013.

At course completion:

  • Identify the major new features in SharePoint 2013 for IT Pros
  • Discuss the major architectural changes in SharePoint 2013
  • Describe the major changes to the BCS and the search service
  • Describe the new BI and composites features in SharePoint 2013
  • Describe the new content management and compliance features
  • Identify the new features for social computing and mobile users

.

And if you can't get enough of SharePoint 2013…

Tony Maddin will present the night before, March 7th, at the Cincinnati SharePoint User Group on:

SharePoint 2013 Real Estate – Do you buy, rent, or both?

Tony Maddin will be presenting on the SharePoint 2013 hosting models for on-premise, Office365, and the Hybrid (both on-premise and Office365 tied together) to share insight on features should be reviewed in order to help an organization to choose the right model that fits.

12/31/2012

SharePoint 2013 First Looks for ITPros and Developers

 

I will be presenting two FREE First Look clinics this Thursday and Friday at MAX Technical Training. You can attend these sessions in person at MAX's Mason, Ohio training center or remotely using any PC.

Just for fun, when registering add a note that "Mike sent me!" (Or maybe… "Attending in spite of Mike")

 

MS-40027 First Look: What's New for Developers in Microsoft SharePoint 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=43826

This 1/2 day instructor-led developer first-look course provides an overview of the new features, functional areas, product enhancements, and application models in SharePoint 13.

At Course Completion

  • Provide an overview of the new features, functional areas, and product enhancements in SharePoint 2013.
  • Summarize the key features of the SharePoint 2013 application development platform and describe the key features of Marketplaces.
  • Explain what a SharePoint-Hosted app is, and describe how to build a SharePoint-Hosted app.
  • Explain what a Cloud-Hosted app is, and describe how to build a Cloud-Hosted app.
  • Describe how developers extend Office Application user interfaces by creating Apps for Office and publishing them in different catalogs.
  • Describe how to create and code a simple App for Office that interacts with document content.
  • Describe improvements in Manage Metadata Services, Enterprise Content Management and Web Content Management in SharePoint 2013.
  • Describe the new social networking functionality available to SharePoint 2013 App developers.
  • Describe how the new capabilities of the SharePoint Search engine can be used in SharePoint Apps.
  • Describe how to query the index from a SharePoint-Hosted app using CSOM.

MS-40028 First Look Clinic: What’s New for IT Professionals in Microsoft SharePoint Server 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=44107

This 1/2 day instructor-led first-look clinic explains the new and improved product features as applicable to IT Professionals and how to install, deploy, manage, and administer SharePoint Server 2013. It also provides information on how to integrate SharePoint Server 2013 with key applications and how to maintain and troubleshoot SharePoint Server 2013.

At course completion:

  • Identify the major new features in SharePoint 2013 for IT Pros
  • Discuss the major architectural changes in SharePoint 2013
  • Describe the major changes to the BCS and the search service
  • Describe the new BI and composites features in SharePoint 2013
  • Describe the new content management and compliance features
  • Identify the new features for social computing and mobile users

 

.

12/08/2012

SharePoint 2010–Hiding "Sign in as Different User"

 

The "Sign in as Different User" is a bad idea for a lot of reasons, but the two biggest are:

  • Security on the computer where "User B" wants to access SharePoint. While at this computer they could perform any number of actions as "User A".
  • Mixed experiences when using software other than a browser. As an example, "User B" can "Sign in as Different User" on the "User A" computer. Everything done from the browser, such as adding list items, is logged as "User B", but many actions performed from Word, Outlook and other tools will be logged as "User A"

"Sign in as Different User" is available from the Welcome menu and from the Access Denied page:

           clip_image002[6]           clip_image002[8]

 

How a Site Owner can hide "Sign in as Different User"

You can hide the "Sign in as Different User" option by adding a small block of JavaScript code to your site's master page just before the </body> tag.

<script type="text/javascript"> 
var doc = document.getElementsByTagName('ie:menuitem');  
for (var i = 0; i < doc.length; i++)  
{
    itm = doc[i];
    if (itm.id.match('LoginAsDifferentUser') != null)
      { itm.hidden=true; }
 } 
</script> 

Note: You can still "Sign in as Different User" by navigating directly to the Access Denied page:
  http://yourserver/sites/yoursite/_layouts/AccessDenied.aspx

 

How a developer or server administrator can hide "Sign in as Different User"

As there are two ways a user can get to the "Sign in as Different User" option you will need to make two different changes, one to the Welcome menu and one to the Access Denied page.

Warning:

  • Changes to ControlTemplates and Layouts folder impact all users on all sites in the farm!
  • Changes to the pages in the ControlTemplates and Layouts folder need to be documented as farm rebuilds or service pack updates could overwrite your changes.
  • You should make a backup copy of any files you edit.
  • All changes must be made identically on all web front end servers.
Updating the Welcome menu

The Welcome menu is implemented as an ASPX user control (.ascx) and is stored in the …\14\TEMPLATE\CONTROLTEMPLATES folder. Editing this file impact all users on all sites in the farm. You may want to use the "Site Owner" solution listed earlier in this article. Another option is to create a copy of the Welcome.ascx file and modify selected master pages to point to the custom version of the file.

  1. Open the Welcome.ascx file (or your custom copy) using Notepad or Visual Studio from
        …\14\TEMPLATE\CONTROLTEMPLATES 
  2. Find the MenuItemTemplate with the ID of ID_LoginAsDifferentUser
  3. Then do one of the following
    • Delete the MenuItemTemplate control
    • Add these two options to the MenuItemTemplate control to limit the display of the menu item to only Site Owners
         PermissionsString="ManageWeb"
         PermissionMode="Any"
Updating the Access Denied page (AccessDenied.aspx)
  1. Open the AccessDenied.aspx page using Notepad or Visual Studio:
       …\14\TEMPLATE\AccessDenied.aspx
  2. Find the following code:
      <asp:HyperLink id="HLinkLoginAsAnother"
      Text="<%  $SPHtmlEncodedResources:wss,accessDenied_logInAsAnotherOne%>"
      CssClass="ms-descriptiontext" runat="server"/>
  3. Then do one of the following:
    • Delete the code
    • Wrap the code in a comment block
    • Wrap the code in a SPSecurityTrimmedControl with a permission level such as ManageWeb (see this article) so Site Owner can still see the option.

<Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="ManageWeb">

  <asp:HyperLink id="HLinkLoginAsAnother"
  Text="<%$SPHtmlEncodedResources:wss,accessDenied_logInAsAnotherOne%>"
  CssClass="ms-descriptiontext" runat="server"/>
</SharePoint:SPSecurityTrimmedControl>

 

.

11/27/2012

SharePoint 2013 First Looks for ITPros and Developers

 

I will be presenting two FREE First Look clinics this Friday at MAX Technical Training. You can attend these sessions in person at MAX's Mason, Ohio training center or remotely using your PC.

Just for fun, when registering… add a note that "Mike sent me!"  (Or maybe… "Attending in spite of Mike")

 

MS-40027 First Look: What's New for Developers in Microsoft SharePoint 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=43826

This 1/2 day instructor-led developer first-look course provides an overview of the new features, functional areas, product enhancements, and application models in SharePoint 13.

At Course Completion

  • Provide an overview of the new features, functional areas, and product enhancements in SharePoint 2013.
  • Summarize the key features of the SharePoint 2013 application development platform and describe the key features of Marketplaces.
  • Explain what a SharePoint-Hosted app is, and describe how to build a SharePoint-Hosted app.
  • Explain what a Cloud-Hosted app is, and describe how to build a Cloud-Hosted app.
  • Describe how developers extend Office Application user interfaces by creating Apps for Office and publishing them in different catalogs.
  • Describe how to create and code a simple App for Office that interacts with document content.
  • Describe improvements in Manage Metadata Services, Enterprise Content Management and Web Content Management in SharePoint 2013.
  • Describe the new social networking functionality available to SharePoint 2013 App developers.
  • Describe how the new capabilities of the SharePoint Search engine can be used in SharePoint Apps.
  • Describe how to query the index from a SharePoint-Hosted app using CSOM.

 

MS-40028 First Look Clinic: What’s New for IT Professionals in Microsoft SharePoint Server 2013

More info here: http://www.maxtrain.com/Classes/ClassInfo.aspx?Id=44107

This 1/2 day instructor-led first-look clinic explains the new and improved product features as applicable to IT Professionals and how to install, deploy, manage, and administer SharePoint Server 2013. It also provides information on how to integrate SharePoint Server 2013 with key applications and how to maintain and troubleshoot SharePoint Server 2013.

At course completion:

  • Identify the major new features in SharePoint 2013 for IT Pros
  • Discuss the major architectural changes in SharePoint 2013
  • Describe the major changes to the BCS and the search service
  • Describe the new BI and composites features in SharePoint 2013
  • Describe the new content management and compliance features
  • Identify the new features for social computing and mobile users

 

See ya Friday!

 

.

10/10/2012

SharePoint–Finding Column Display and Internal Names

 

Many customizer and developer projects require knowing the "internal names" for list and library fields. For example the task list field "% Complete" is internally named "PercentComplete".

Here are a few ways to find the internal name:

  • From the browser
  • From SharePoint Designer
  • Using PowerShell
  • Using a C# Console Application
  • Using the Client Side Object Model
  • Using JavaScript Client Side Object Model and a Content Editor Web Part

    Pretty much something for everyone!

 

From the browser

Permissions needed: Must have Site Owner (Full Control) or Design permissions

This could be a bit tedious if you wanted to check all of the fields, but for just one it's quick.

  1. Display the list or library and click the List or Library Ribbon
  2. Click List or Library Settings
  3. Scroll down to the list of columns and click the column name
  4. Note the URL for the page… the internal name is listed at the end: 
        http://………&Field=Author

 

From SharePoint Designer

Permissions needed: Must have Site Owner (Full Control) or Design permissions (may only need edit permissions in the library holding the web part page… To Do for Mike: need to test this!)

  1. In SharePoint Designer 2010 open your site and edit a web part page
  2. Click in a web part zone, click the Insert ribbon tab, click Data View and Empty Data View
  3. Click "Click here to select a data source" and pick your list
  4. In the Data Source Details pane mouse over the sample data (or the blank area below the field name) and the XSLT path the field will be displayed. The value after the "@" is the internal name.
    image

 

Using PowerShell

Permissions needed: Administrator access to the server and permissions to the site (PowerShell is an administrator's tool)

$web = Get-SPWeb http://sharepoint/sites/training/salestraining
$list = $web.Lists["Announcements"]
$list.fields | select Title, InternalName, Hidden, CanBeDeleted | sort title | ft -AutoSize

As you will most often be interested in the non-hidden fields, you can add a Where to filter them:

$list.fields | select Title, InternalName, Hidden, Sealed, CanBeDeleted | where {$_.Hidden -eq $false} | sort title | ft –AutoSize
 

Using a C# Console Application

Permissions needed: Administrator access to the server and permissions to the site (the code must run on the server)

using System;
using Microsoft.SharePoint;  // add a reference to Microsoft.SharePoint

// remember to change the Build Platform Target to x64!
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://sharepoint/sites/Training/");
            SPWeb web = site.AllWebs["salestraining"];
            SPList list = web.Lists["Announcements"];

            Console.WriteLine("Title - Internal Name - Hidden - CanBeDeleted");
            foreach (SPField f in list.Fields)
            {
                Console.WriteLine("{0} - {1} - {2} - {3}", f.Title, f.InternalName, f.Hidden, f.CanBeDeleted);
            }
            site.Dispose();
            Console.ReadLine();
        }
    }
}

 

Using the Client Side Object Model

Permissions needed: May only need view permissions in the library holding the web part page… (To Do for Mike: need to test this!)

You can write and run Client Side Object Model (CSOM) code from your local PC and not need access to the SharePoint Servers. The following is a little console application with references added for Microsoft.SharePoint.Client and Microsoft.SharePoint.Client.Runtime.

using System;

using Microsoft.SharePoint.Client;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://sharepoint/sites/training";
            ClientContext context = new ClientContext(url);
            Web web = context.Web;
            var list = web.Lists.GetByTitle("Announcements");

            context.Load(list.Fields);
            context.ExecuteQuery();

            Console.WriteLine(list.Fields.Count);
            foreach (Field f in list.Fields)
            {
                Console.WriteLine("{0} - {1} - {2} - {3}", f.Title, f.InternalName, f.Hidden, f.CanBeDeleted);
            }
            Console.ReadLine();
        }
    }
}

 

Using JavaScript Client Side Object Model and a Content Editor Web Part

Permissions needed: May only need view permissions to view the page… (To Do for Mike: need to test this!)

image

Steps:

  1. Open Notepad and copy and paste the code below
  2. Save the file as GetFieldName.htm
  3. Upload the file to a library (SiteAssets, Shared Documents, etc.)
  4. Right-click the uploaded file and copy the shortcut (the URL)
  5. Go to a web part page or the home page and add a Content Editor Web Part
  6. Edit the web part and set the Content Link to the URL of the file you just uploaded
  7. Save your changes and test!

                  image

<input type="text" id="ListName" value="Tasks"></input>
<button onclick='GetFieldList()'>Get Field List</button>

<script type="text/javascript">

function GetFieldList()
{
  var listname = document.getElementById("ListName").value;
  var ctx = SP.ClientContext.get_current();
  this.web = ctx.get_web();
  ctx.load(this.web);
  this.list = web.get_lists().getByTitle(listname);
  ctx.load(this.list);
  this.fields = this.list.get_fields();
  ctx.load(this.fields); 

  ctx.executeQueryAsync(Function.createDelegate(this, this.getListInfoSuccess), Function.createDelegate(this, this.getListInfoFail));
}

function getListInfoSuccess(sender, args) 
{
        var fieldEnumerator = this.fields.getEnumerator(); 
        var results="";
        while (fieldEnumerator.moveNext()) { 
            var oField = fieldEnumerator.get_current(); 
            if (!oField.get_hidden())
            results+= oField.get_title()
                + " - " + oField.get_internalName()
                + " - " + oField.get_hidden()
                + "\n";
        }
        alert(results);
}    
function getListInfoFail(sender, args) 
{
 alert('Something failed. Error:'+args.get_message());    
}

</script>

6/22/2012

SharePoint Saturday Dayton 2012 in One Week!

 

It's less than a week to the very first SharePoint Saturday Dayton event. Twenty sessions and twenty speakers means that there's something for everyone… admins, devs, site owners, business owners, and end users. Oh, and don't forget SharePoint Saturday Louisville and SharePoint Saturday Cincinnati coming up in July and October.

It's almost full! Register now or be sorry!

Reasons to attend SharePoint Saturday Dayton:

  • It's free
  • It's educational
  • You can visit with (and thank) the sponsors
  • It's free
  • There's sessions for everyone
  • You can hobnob with the experts (and maybe get some free consulting)
  • There's door prizes
  • It's air-conditioned
  • It's near by
  • I'm speaking there! (ok, there are better reasons to attend…)
  • Did I mention it's free?

Sessions, speakers, directions and registration can be found here:
http://www.sharepointsaturday.org/dayton/default.aspx

Stay up with SPS Dayton news by following: @spsdayton

Speakers and Sessions:

Visit the site for full session descriptions

.

6/19/2012

SharePoint: Group By on more than 2 columns in a view (SP 2010)


An expanded version of this article, along with many other customization examples and how-tos can be found in my book, SharePoint 2007 and 2010 Customization for the Site Owner.




This is an update of an article written for SharePoint 2007. Many of the steps are the same in both 2007 and 2010, but both the SharePoint Designer steps and the default web part used for views have changed.

Group By on more than 2 columns in a view

In my SharePoint classes I have often been of asked how to group on more than two levels in a view. I have always given the quick answer of "use SharePoint Designer"!
But, some of you have asked "How?". You may be sorry you asked… but here goes…

Goals:
  • Create a view with nested groups deeper than just 2 levels
  • Put the counts and totals at the bottom of each section.
  • Do the above with no custom web parts, custom XSLT or anything that has to be deployed to the server.
Sample:
   image

Secrets and Tricks needed:
  • It can't be done "out of the box" in the browser
  • SharePoint Designer is needed to make the edits
  • You need to convert the view web part to a SharePoint Designer Data Form Web Part
  • You need a Sort and Group secret
  • You need to fix the footer rows
  • You need to manually add your totals, averages, counts etc.
Warning!
SharePoint 2010 does not consider a page with a Data From Web Part to be a “view”. It only believes that a page is a “view” when it has an “Xslt List View Web Part”.  In 2007 we could create a new view, edit it in SharePoint Designer as much as we wanted, and it was still a view. In 2010, SharePoint will not recognize a page without a XsltListViewWebPart as a view.
So before you start…
  • If you just need a page with your list nicely grouped, it may be best just to create a web part page and store it in a library.  Then add the Data Form Web Part using the steps below.
     
  • If you want the page to be treated as a view, leave the XsltListViewWebPart on the page, but make it hidden. Then add the Data Form Web Part below the existing web using the steps below.
    • In SP 2010, a view page with an added web part introduces a bug or two. The ribbon will not be displayed. The view dropdown in the page title area will be missing the dropdown to select another view.
 
My Example:
  • I have a simple list (actually imported from Excel) with these columns: ID1, Bike, BikeType, BikeSize, BikeColor and Retail (price).
  • I want to group this on BikeType, BikeSize, BikeColor and count the items and sum or average the price in each group.

Create a new Standard View from the list's view menu.  
                Don't bother with any options as we are just going to delete the default list web part. 

               Or just create an empty web part page. (see “Warning” above)


The “before” – just a standard view with selected columns:
     image
If using an existing view page:
  • Open your site with SharePoint Designer and click the Lists and Libraries node in the Site Objects pane
  • Click your list (“Bikes” in my example)
  • Click your view you created earlier (“Grouped” in my example)
Otherwise create a new web part page in a library

  • Notes (background only, you can skip this):
    • The view is now being displayed using a XsltListViewWebPart  (It was a ListViewWebPart in SP 2007) and can only be customized with the same options as found using a browser ("Modify View")
       
    • The XsltListViewWebPart  has the same grouping limitations and the ListViewWebPart (2 levels of grouping)
       
    • For more info on what has changed from the 2007 ListViewWebPart and the XsltListViewWebPart see http://msdn.microsoft.com/en-us/library/ff806162.aspx and http://msdn.microsoft.com/en-us/library/ff604021.aspx
       
    • SharePoint Designer 2010 has two web parts for lists:
      • XsltListViewWebPart  - this is the web part used when you create a new View
      • DataFormWebPart – created from SharePoint Designer using Insert, Empty Data View
    • SPD 2010 adds a bit of confusion when trying to add a “Data View”
      • When you click Insert, (pick an existing list) SPD inserts an XsltListViewWebPart
      • When you click Insert, Empty Data View SPD inserts a DataFormWebPart
         
         
         
  • If starting with an existing view, delete or hide the existing web part.
    • Delete: In the Design window click in the web part, click the WebPartPages:XsltListViewWebPart tab, press the Delete key
      or
      in the Code window select the entire <WebPartPages:XsltListViewWebPart tag (including the start and end tags) and delete the code
       
    • Hide: In the Design window click in the web part. In the Ribbon in the List View Tools section click the Web Part tab and then click Properties. In the Layouts section of properties click Hidden

  • Insert an Empty Data View Web part
    • Click the Insert Ribbon tab and click the Data View button
    • Click Empty Data View
    • In the new web part click “Click here to select a data source”
    • Click your list and click OK (this will open the Data Source Details Pane)
    • Select the columns you want in your list (click a field, then Shift-click each additional field)
    • Click the “Insert Selected Fields as” button and click “Multiple Item View”

Note: If you followed the earlier article for SharePoint 2007, the rest of the steps are pretty much the same.

Note: the view is now being displayed using a DataFormWebPart and:
  • is no longer a “View” and can not longer be modified from the browser
  • can be customized from SharePoint Designer,
  • from the browser you can only rename the view,
  • from the browser you can also use Site Actions, Edit Page, Modify Shared Web Part to hand edit the XSLT,   ;-) 
  • going forward, columns added to the list will not be automatically added to the DataFormWebPart. You will need to use SharePoint Designer to manually add the columns to the “view’. 
Save! At this point you may want to click Save and review the results so far in a browser. Review the formatting and note the things you need to change. 
  • Edit the Data View Web Part
  • Click the web part and note that you now have Data View Tools section in the SharePoint Designer ribbon.
    image
     
  • Click “Sort and Group”
    image
  • Remove any sort fields that may already be in the Sort Order column

Add your top most group:  
    • Click the field (BikeType) and
    • Click Add
    • Click “Show group header”
    • Click “Collapse group by default” (optional)
    • Click “Show group footer” (if you want counts and totals)

      image

Add your second group by clicking the field (Example: Size) and clicking Add.

  • If you stop here you will have groups, but all of your counts and totals will be wrong! We need to create both the text to display for the group and a hierarchy for the grouping. At the second level of our grouping we need to group on the combination of both columns, “Bike Type” plus “Size” 
  • Click “Edit Sort Expression”
    • At a minimum you will need to concatenate the current grouping column with the previous grouping columns, and while you are at it you can add some “pretty” formatting:
    • Enter: concat(@Bike_x0020_Type, " - ", @Size)  (Watch the capitalization!  Use the exact name the Intelisense offers – spaces are “coded” so “Bike Type” is “Bike_x0020_Type”.)
    • Note the preview at the bottom of the dialog box…
      image
       
    • Click OK
    • Click Show group header
    • Click Collapse group (optional)
    • Click Show group footer (if you want counts and totals)

  • For the third and following groups - repeat the step above with Sort Expressions similar to:
    • concat(@Bike_x0020_Type, " - ", @Size, " - ", @Bike_x0020_Color)
    • More columns?  In each new group include all of the fields from the previous groups along with any separators you like:
      concat(@group1field, @group2field, @group3field, @group4field, @group5field, etc)
      or concat(@group1field, " - ", @group2field, " - ", @group3field, " - ", @group4field, " - ", @group5field, etc)
    • If you could see the full width of these you would see:
      image 
  • Before clicking OK to leave this dialog box, check the order of the groups. They have probably gotten changed.  (bug?)
    • Make sure they are in order something like:
      @BikeType
      concat(@Bike_x0020_Type, " - ", @Size)
      concat(@Bike_x0020_Type, " - ", @Size, " - ", @Bike_x0020_Color)
    • Recheck each of the sort levels to see if these are still checked:
      • Click Show group header
      • Click Collapse group (optional)
      • Click Show group footer (if you want counts and totals)
  • Optionally add one more column just to sort the data within the last group. Do not turn on the group header or group footer options for this sort-only field.
  • Click OK to close the Sort and Group dialog box.
     
  • You will probably want to change the Paging options as they default to 10 items.  Click the Paging button in the Ribbon (Data View Tools group, Option tab)
     
  • Tip: If you have a lot of data in the list SharePoint Designer can get really slow. There are two things you could do here, set paging to a small number (not so good for testing multi-level grouping) or from the Common Control Tasks select Show With Sample Data.
    image
  • If you want grand totals you will also need to click Data View Properties and check Show View Footer.
  • Save! At this point you may want to click Save and review the results so far in a browser. You should now have all of your groups. 
                             
                Click the + to expand a section.
  • Now is a good time to clean up the formatting such as the gray background and odd row height in the group header and footer rows. (Right-click in the row in Design view and select Cell Properties.

                      (click for bigger view) 
                      image
  • Your grouping work is now done. The following steps are only needed if you want to add totals, counts, averages, etc.
  • Now for totals!
    • These steps describe adding totals to the footer rows, but also apply to modifying header (top of each group) rows.
    • The Data View sets up the header and footer rows as a single cell with a column span of 99! To display totals in the same columns and the data you will need to fix these rows.
    • You will need to fix each of the group footer rows plus the view footer row.
  • In the Code View do a search for "colspan="99"". In my example there will be seven of these, one for each grouping footer, one for each grouping header and one for the view footer.
  • Now you need to do a little planning. In my example I'd like to put the "Count=" in a two column spanned cell under the ID and Bike columns. Then I would like to have one cell under each additional column. So something like: <td colspan='2'>count stuff</td><td></td><td></td><td></td><td>total goes here</td>

    Total boxes

    Steps:
    • Find "colspan="99"" for the first group footer row. (Tip: Did you find a header or footer row? Look up two lines and you should see "<xsl:if test="$showheader"" or "<xsl:if test="$showfooter""!)
    • Change the 99 to 2
    • Find the end tag for the cell (</td>) (down about 16 lines of html)
    • After the end tag add the other cells (TD tag pairs), one for each additional column (I need four more)
      <td></td> <td></td><td></td><td></td>
  • Now to add the total…

    • Switch to Design view and you should see the new cells in one of the footer rows.
    • Click in the cell where you want the total
    • Right-click and select Insert Formula
    • Build your formula. For a total double click "sum" in the function list then select your field from the dropdown list. My example needed: sum(@Retail)
    • The formula editor does not know one extra piece of information needed here. The @Retail field needs to come from the current group only. To get this, update the formula like this: sum($nodeset/@Retail) ("nodeset" is all lower case)
      Tip: How would you have discovered this? Go look at how they calculated the Count: count($nodeset).
    • Notice that the formatting is wrong. The total is left aligned and the wrong size. To match the font and size find the style used for the data in the row above. In my example it looked like this: <TD Class="{$IDADW3HE}">
    • Copy the class info (Class="{$IDADW3HE}") into your total cell (the TD tag). The result will look something like this:
      <td Class="{$IDADW3HE}"><xsl:value-of select="sum(@Retail)" /></td>
    • The last step is to right align the cell (you can use the toolbar button) and to format the total. To format the number, click in the cell with the total, right-click and select Format Item As… and pick your formatting options.
    • Note: SharePoint Designer may get creative and merge your formatting in new styles with great names like style1, style2, style3 etc.. If you are curious, do a search for .style1 (dot style1) and you will find they have placed the style class definition in the PlaceHolderBodyAreaClass master page placeholder.
  • Fix up each footer row, including the View Footer, the same way. Add the extra TDs, add the totals, counts, etc, and format the results.

    Now about the View Footer… and some things to make your head hurt…

                 image

    • The View Footer is built in its own HTML table, so the column widths are not going to line up with the rest of the list. (I'll have to come back with another article to make these line up correctly).
    • The grand totals need a special calculation to sum all of the rows. The @Retail field (or @yourfield) needs to come from the entire set of rows. To get this, update the formula like this: sum(/dsQueryResponse/Rows/Row/@yourfield) (make sure the capitalization is correct!)
      Tip: How would you have discovered this? Go look at how they calculated the Count for the View Footer: count(/dsQueryResponse/Rows/Row) .

       Finally all done!

      A lot of steps, but it's a fairly routine and mechanical process. Do it a few times and you to will be able to amaze your fellow site owners!
      Hopefully the next version of SharePoint (2014?) will support more than two levels of grouping. Then we can all brag: "Back in the old days I had to … "   

      BUG!!!

      There is a grouping bug in the Data Form Web Part… read the comments at the end of the original article for details. I hope to revisit that issue for 2010 shortly. If you want to go exploring in the mean time, here’s the fix for 2007.


      .
    • 4/04/2012

      SharePoint Saturday Call for Speakers and Sponsors is Open!

       

      Our very first SharePoint Saturday Dayton is in the works! 

      Join SharePoint architects, developers, and other professionals that work with Microsoft SharePoint for the very first "SharePoint Saturday Dayton" event on June 30th.  SharePoint Saturday is an educational, informative & lively day filled with sessions from respected SharePoint professionals & MVPs, covering a wide variety of SharePoint-orientated topics. 

      SharePoint Saturday is FREE, open to the public and is your local chance to immerse yourself in SharePoint!

      Follow the event on twitter @spsdayton.

      Save the date! June 30th, 2012

      Sponsors

      Looking to support the Dayton area SharePoint community and reach out to SharePoint architects, developers, and other professionals that work with Microsoft SharePoint? A SharePoint Saturday is one of the most effective way of reaching local SharePoint community!

      Click here for sponsor information: http://www.sharepointsaturday.org/dayton/Pages/sponsors.aspx

       

      Speakers

      SPS Dayton is an opportunity to share your knowledge and experiences with the SharePoint community. We are seeking sessions that are educational, informative, and practical in nature. Abstracts that are submitted should fall into one of four general categories.

      • Development. Sessions that address the SharePoint object model, custom code, interactions with SharePoint via its services, etc.
      • IT Pro. Sessions that cover SharePoint administration, configuration, scalability, infrastructure implementation, and related topics
      • Information Worker. Sessions that pertain to end-user SharePoint concerns such as site design, information organization, SharePoint Designer topics, user adoption, etc.
      • Special Topic. Sessions such as case-studies, cross-disciplinary subjects, and any session that doesn’t fit well in one of the other three categories.

      Go here to submit your proposals: http://www.sharepointsaturday.org/dayton/Pages/speakers.aspx

       

      .

      3/15/2012

      Last Chance to Sign Up for SharePoint Cincy 2012!

       

       

      SharePoint Cincy – March 16th, 2012

      Northern Kentucky University’s Center for Applied Informatics and MAX Technical Training are bringing a major SharePoint event to the Cincinnati area! SharePoint Cincy will be held at the METS Center located in Erlanger, KY. The METS center is near the Cincinnati airport (CVG) and has lots of free parking.

      You’ve got to be registered to attend and it’s filling up fast. Last year was a sell out and this year is a bigger and better event!

      See the site for the agenda, speakers and registration: http://www.sharepointcincy.com

       

      SharePoint_Cincy_2012_blog_graphic3[3]

      3/12/2012

      SharePoint Cincy – This Friday - March 16th, 2012

       

       

      SharePoint Cincy – March 16th, 2012

      Northern Kentucky University’s Center for Applied Informatics and MAX Technical Training are bringing a major SharePoint event to the Cincinnati area! SharePoint Cincy will be held at the METS Center located in Erlanger, KY. The METS center is near the Cincinnati airport (CVG) and has lots of free parking.

      Only a few days left!

      You’ve got to be registered to attend and it’s filling up fast. Last year was a sell out and this year is a bigger and better event!

      See the site for the agenda, speakers and registration: http://www.sharepointcincy.com

       

       

      SharePoint_Cincy_2012_blog_graphic3

      Lots of great speakers will be there! (And I will be speaking there too :-) )

      • Robert Bogue, Thor Projects LLC.
      • Mike Buob, Sogeti, USA
      • Steve Caravajal, Ph.D, Microsoft Corporation
      • Bill Crider, Ascendum
      • Jorge Guerreiro, K2
      • Brian T. Jackett, Microsoft
      • Tavis Lovell, Ascendum
      • Tony Maddin, Ascendum
      • Jennifer Mason, SharePoint 911
      • Sean P. McDonough, Idera
      • Chris Murphy, Ascendum
      • Nitin Nagar, Ascendum
      • Ted Perrotte, Aspect Software
      • Mark Rackley, Juniper Strategy, LLC
      • Raveen Rajavarma, Ascendum
      • Clint Richardson, Ascendum
      • Larry J. Riemann, CBTS/Indigo Integrations
      • Jeffrey Segebarth, NewsGator Technologies
      • Peter Serzo, High Monkey Consulting
      • Mike Smith, MAX Technical Training
      • Adam Solzsmon, Ascendum
      • Matthew Tallman, Ascendum
      • Eric Weissmann, Ascendum
      • Shane Young, SharePoint 911

      .

      3/05/2012

      SharePoint: Search, Filter or Sort Lists from a Query String

       

      The following works in SP 2007, SP 2010 and Office 365/SharePoint Online

       

      Microsoft has generally done a good job of keeping new versions of SharePoint compatible with the older versions. While over time some features have dropped out of the documentation, most still work. An example is the Query String option to sort and filter a list. This was a feature from “SharePoint Team Services”, which is what they called SharePoint “back when”! The Query String feature we will look at here is still documented in an officially “archived” document on TechNet named “Using the URL to sort or filter a list” that can be found here: http://technet.microsoft.com/library/cc751316.aspx  As is often the case, I ran across the article by accident while searching for something else.

       

      What’s a Query String?

      A query string is a collection of more or more parameters added to the end of a URL. You see these throughout SharePoint and at most interactive web sites. As an example do a search using Bing.com for “techtrainingnotes”. After you click the search button your search text is appended to the URL and will look something like this: http://www.bing.com/search?q=techtrainingnotes.  The first parameter in a query string is identified with a question mark and each additional parameter is identified with and ampersand. Here the parameter name is “q” and the value is “techtrainingnotes”.

      For the filter and sort tricks we will create a URL that looks something list this:

        http://intranet/sites/training/Lists/Tasks/AllItems.aspx?FilterName=Title&FilterMultiValue=Task 2

      The first part, “http://intranet/sites/training/Lists/Tasks/AllItems.aspx” is the path to a view of a list and everything from the question mark to the end is the query string.

       

      Filtering One or More Columns

      To filter a task list to show just “In Progress” tasks you would first visit a view that included the Status column. The URL to this list would look something like this:

        intranet/sites/training/Lists/Tasks/AllItems.aspx

      To filter this view you would add two query string parameters to the URL that specify the column to filter on and the value to filter for. This URL might look like this:

        intranet/sites/training/Lists/Tasks/AllItems.aspx?FilterField1=Title&FilterValue1=In Progress

       

      You filter on more than column by adding additional FilterFieldX and FilterValueX parameters to the URL. To find all of Luis Bonifaz’s In Progress tasks you might use this query string:

        ?FilterField1=AssignedTo&FilterValue1=Luis Bonifaz&FilterField2=Status&FilterValue2=Not Started

       

      Why “AssignedTo” and not “Assigned To”? List columns can have an internal name and a display name. You will always need to use the internal name in these queries. See “Finding the Real Column Name” at the end of this article to see how to find these internal names.

       

      Notes:

      • There can be multiple filters per query named FilterField1, FilterField2, FilterField3, …, FilterFieldxxx
         
      • FilterNameX is the column we are searching in – this column must be displayed in the page… i.e. it must be in the current view.
         
      • FilterNameX is case sensitive!  A misspelled or miscapitalized FilterNameX column name causes the filter to be ignored and returns all rows from the list… So “Title” works and “title” does not.
         
      • FitlerNameX must be the internal name, which is not always the display name (details on how to find this name is at the end of this article)
         
      • FilterValueX is not case sensitive – searches for “in progress” and “In Progress” return the same results
         
      • FilterValueX does not support wild cards
         
      • All of the filters are AND’d together – i.e. the row in the list must match all of the filters to be displayed

       

      Filtering a Single Column with Multiple Values and Wild Cards

      The FilterField/FilterValue parameters can only find exact matches and only on a single value per column. You can also use “FilterName=” and “FilterMultiValue=” parameters to filter a column on more than one item or with wild cards. If you want to display all “In Progress” and all “Completed” tasks you could use this query string:

        ?FilterName=Status&FilterMultiValue=In Progress;Completed

      You can also use wildcards in FilterMultiValue parameter:

        ?FilterName=Title&FilterMultiValue=*meeting*

       

      You can combine FilterField/FilterValue with FilterName/FilterMultiValue when needed. Here’s an example to find all of Luis’s tasks with “meeting” in the task title:

        ?FilterField1=AssignedTo&FilterValue1=Luis Bonifaz&FilterName=Title&FilterMultiValue=*meeting*

       

      Notes:

      • FilterName is the column we are searching in – this column must be displayed in the page… i.e. it must be in the current view.
         
      • FilterName is case sensitive!  A misspelled or miscapitalized FilterName causes the filter to be ignored and returns all rows from the list… So “Title” works and “title” does not
         
      • FitlerName must be the internal name, which is not always the display name (details on how to find this name is at the end of this article)
         
      • FilterMultiValue is not case sensitive – search for “in progress” and “In Progress” return the same results
         
      • FilterMultiValue supports wild cards! – Searching for “task*” finds “Task 1”, “Task 2” etc
         
      • As FilterMultValue contains the word “Multi” then you would expect to be able to filter on multiple terms… and you can – separate each term with a semicolon (;) like this:  &FilterMultiValue=In Progress;Not Started
        Be careful not to add any extra spaces. The following will not find “Not Started” because of the extra space after the semicolon:  &FilterMultiValue=In Progress; Not Started

      You can sort too!

      You can use the SortField/SortDir to sort on any column in the view:

          ?SortField=Title&SortDir=Desc

       

      Sort can also be used with the other filters:

        ?FilterField1=AssignedTo&FilterValue1=Luis Bonifaz
           &FilterName=Title&FilterMultiValue=*meeting*
           &SortField=Title&SortDir=Desc

       

      Filtering from Quick Launch and other Links

      So how do you use this little tidbit of information? You can generally do what these filters do with a view. Views do have one have annoying limitation… you can only display the first 50 views created. Technically you can create more than 50, but only the first 50 get displayed. Besides, it’s kind of tedious creating all of those views.

      Let’s say you have a list with your 350 retail stores and you wanted to be able to quickly display a view of the stores filtered by any one state. You could create the 50+ views (50 states plus the other postal codes), or you could:

      • Add links in Quick Launch to selected states:
            intranet/sites/training/Lists/Tasks/AllItems.aspx?FilterField1=State&FilterValue1=Ohio
         
      • Create a links list with all of the state codes and display it as a web part
         
      • Create a links list with all of the state codes, but display it as a dropdown list (http://techtrainingnotes.blogspot.com/2010/12/sharepoint-convert-links-list-to.html)
         
      • Create an HTML dropdown list with the state code and add a little JavaScript to create the filtered URL and redirect to it

       

      Finding the Real Column Name!

      The column name used as the FilterName parameter must be the internal name used by SharePoint, not the displayed name. As an example, in a task list there is a column named “% Complete”. The internal name of this column is “PercentComplete”. To find this name:

      1. Display the list
      2. Click the List (or Library) tab in the ribbon and click List (or Library) Settings
      3. Scroll to the bottom or the page and click the column name
      4. Explore the URL to find the internal name

      image

      intranet/sites/training/_layouts/FldEdit.aspx?List=%7B64C528B3%2D224B%2D4613%2D9D60%2D216300B5BCE0%7D&Field=PercentComplete

       

       

      .

      3/02/2012

      SharePoint Cincy – Two weeks from Today!

       

      SharePoint Cincy – March 16th, 2012

      Northern Kentucky University’s Center for Applied Informatics and MAX Technical Training are bringing a major SharePoint event to the Cincinnati area! SharePoint Cincy will be held at the METS Center located in Erlanger, KY. The METS center is near the Cincinnati airport (CVG) and has lots of free parking.

      Only two weeks left!

      You’ve got to be registered to attend and it’s filling up. Last year was a sell out and this year is a bigger and better event!

      See the site for the agenda, speakers and registration: http://www.sharepointcincy.com

      Lots of great speakers will be there! (And I will be speaking there too :-) )

       

      SharePoint_Cincy_2012_blog_graphic

       

      .

      1/30/2012

      Cincinnati SharePoint User Group Lightning Round this Thursday Evening!

       

      Below is my post from last week about the “Lightning Rounds” presentations for this Thursday’s Cincinnati SharePoint User Group meeting.  (and yes… I did mistype it as “Lighting Rounds”… oh well…)

      So far we have presentations lined up for these topics: (exact titles TBD)

      • Do you need a File Upload Web Part to allow uploading of files without giving access to the Document Library?
      • Tricks for personalizing content to users
      • Enable consistent deployment from the development environment to the production environment using PowerShell to create easily maintained code that SharePoint admins can trust
      • SharePoint & SQL Reporting Services
      • How to Give Back to the SharePoint Community with a Blog and the MSDN Forums

      We still have room for one or two more presentations!  Send us a one paragraph topic proposal and your estimate of presentation length. Send it to point2share@gmail.com or just post a reply to this article with your email address and I’ll get back to you. Don’t worry about your email address as I will keep your reply unpublished and private.

       

      Mike

       

       

       

      =========================================================

       

      The Cincinnati SharePoint User Group meets the first Thursday of every month at 6:00 PM at MAX Technical Training in Mason, Ohio (directions). The next meeting is 2/2/2012.

       

      Lighting Round!

      February  is our "Lighting Round" meeting where everyone is welcome to submit a proposal to speak for anywhere from 5 to 15 minutes. These have been a lot of fun in the past and no matter your interest in SharePoint, there will be something interesting!  (Think “SharePoint Saturday in 90 minutes”)

      If you have never spoken at a SharePoint user group meeting before, this is just about the easiest way to get started. Pick your favorite aspect of SharePoint, or the latest cool SharePoint related thing you have done, and tell us about it. You don't even need slides, and if you do create slides, you probably won't need more than five or so. Keep it short, keep it interesting and have fun! (And when you are done, you can put "User group speaker" on your resume and be well on your way to SharePoint Saturday fame!)

      We are looking for topics like these:

      • administrator
      • developer
      • best practices
      • worst practices / war stories / don’t try this at home
      • end user
      • site owner
      • customization tricks
      • SharePoint Online / Office 365
      • SharePoint for small groups and / or non-profits
      • or anything interesting about SharePoint!

      But… no sales pitches!

       

      To get the ball rolling I will start us out with this little presentation...

      How to Give Back to the SharePoint Community with a Blog and the MSDN Forums
      In 10 minutes we will create a blog site, do a little customization, setup an automatic Twitter feed and configure Google Analytics so you will know if anyone is reading your blog.
      In the next 5 minutes we will setup an MSDN Forums account and start answering questions!

       

      Now it’s your turn!

       

      Send us a one paragraph topic proposal and your estimate of presentation length. If you don’t know how to reach me or someone in the user group then just post a reply to this article with your email address and I’ll get back to you. Don’t worry about your email address as I will keep your reply unpublished and private.

       

      Mike

       

      p.s. If there’s anyone reading this from “vendor land” and you would like to make a door prize donation to the Cincinnati SharePoint User Group, or even sponsor a meeting, please contact me.

       

      .

      Note to spammers!

      Spammers, don't waste your time... all posts are moderated. If your comment includes unrelated links, is advertising, or just pure spam, it will never be seen.