A Side of Microsoft with your Turkey

I figured this week was not a week to miss, as we all need something new to listen to or read during the holidays. It gives you reason to not have to wash the dishes, or keep control of the stereo as you drive to family and friends to celebrate.

Today, is a mixture of links from the Microsoft Broadcaster as well as a few blog articles I have stumbled upon and found useful.

Web Designers vs. Web Developers

This is a hilarious info graphic showing the differences between a web designer and a web developer. Which side do you identify with?

October CU for SharePoint 2010 Rereleased

You may have heard that the October Cumulative Update for SharePoint Server 2010 was pulled because it would not always complete the update process. As of Thursday, November 18, an updated version has been posted. The following blog post from Stefan Gossner (Senior Escalation Engineer for SharePoint and MCMS) has posted about the release. http://blogs.technet.com/b/stefan_gossner/archive/2010/11/18/october-cu-for-sharepoint-2010-has-been-rereleased.aspx

Bridging the Architectural Chasm When Modernizing Legacy Code to .NET

Older technologies and impending shortages of legacy programming skills are driving many organizations to modernize legacy IT applications into newer development environments like Microsoft .NET. A key challenge is to restructure applications to be…

County Government Cuts Costs 91 Percent with Mainframe-to-.NET Migration

The mainframe for the property tax system in Marin County, California, was outdated, expensive to maintain, and tough to integrate with other systems. So, the county migrated its existing COBOL code to an environment running Windows Server…

Early to Plan and Early to Test Makes an Upgrade

…Intuitive, Effective, and Calm.

On Wednesday, November 17th I had the opportunity to speak to the Fort Wayne SharePoint User Group. This was the first time I have spoken to a use group, and feel over all it was a successful presentation. The title of the presentation was “Early to Plan and Early to Test, Makes an Upgrade Intuitive, Effective, and Calm.” During the presentation I spoke about the different approaches and steps to upgrading a SharePoint 2007 farm to SharePoint 2010, as a number of those in attendance are looking to begin upgrade projects during the first quarter next year.

I told those attending that I would be posting my notes and slides. I tried to format everything to include in the body of this post, but I couldn’t find a nice way to do it without hand editing a lot of HTML. (Any suggestions for a good blog editor for Word Press, I’m currently using Windows Live Writer.) Here is a link to download everything as a docx file:


Creative Commons License
Early to Plan and early to Test makes an Upgrade intuitive, effective, and calm by Scott Gillis is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Based on a work at thecodeattic.wordpress.com.
Permissions beyond the scope of this license may be available at https://thecodeattic.wordpress.com/about/.

The Mid Week Microsoft Fix

It is a Wednesday, though late morning I felt it was important to get out the latest collection of links for your reading and listening pleasure. It is always nice to have something new to review during that sluggish Wednesday afternoon. The Microsoft Broadcaster was lacking this week in anything exciting so here are a few links to some articles and blogs which I have found insightful.

Application Lifesycle Management in Microsoft SharePoint 2010

This is a link to a super intense, but very helpful article posted to the Microsoft SharePoint Developer Documentation Team Blog explaining the different approaches and steps to developing for SharePoint 2010. In this article, they explain the different setup options for development, QA/Testing, and deployment. They even explain how SharePoint Designer fits into the application lifecycle and code tracking. The second half of the article gives a detailed explanation of how feature version and solution version can allow for different upgrade and deployment management in a farm. This is a must read for any shop looking to get involved with performing SharePoint customizations. If you read only one thing this week this should be it!

SharePoint in Pictures

I like diagrams and pictures a lot, hence why my How-Tos contain a lot of them. I find it is the fastest way to understand a new complex concept or understand what needs to happen during a step. For this reason I have found the newest Microsoft SharePoint blog, SharePoint in Pictures, fascinating. Every couple of weeks the post a series of diagrams explaining some aspect of SharePoint 2010. These diagrams have been very helpful to me in explaining different SharePoint concept to users.

Tech Ed Europe 2010 SharePoint Videos

I wasn’t at Tech Ed Europe this year, but no fear, a number of the talks have been video d and posted for viewing. This is a link to all of the videos that were associated with Office and SharePoint.

ULS (The Ugly Log Stream) Is No More

Any SharePoint administrator or developer has been faced with ugly task of digging through the ULS (officially known as Unified Logging Service, to me as the Ugly Log Stream) looking for clues as to why "Unexpected Error.." is being thrown. Most often this involves opening the ULS in some sort of text editor, and trying to maneuver around as best you can to pinpoint the cause of the issue.

Because this is such a daunting task, I’ve been on the lookout for a magical solution to turn the ULS from the Ugly Log to the Unbelievable Log. The first place I looked was on CodePlex, where I found a few, but nothing that made me say, "Wow!"

I then stumbled across the ULS Viewer in the MSDN Code Gallery and knew my life had just become infinitely easier. As I said, this gem of an application can be found in the MSDN Code Gallery under ULS Viewer. It hasn’t been updated since October 2009, but I have had no problems using it with Server 2008 R2 and SharePoint 2010, instances of MOSS 2007 on 32-bit hardware, or Windows 7 and XP. The biggest issue people have reported is date formatting issues with non English culture settings. I am going to pull out a few of the features that I have found to be most helpful, but in no way is this going to be a complete list of the different options that are available to you.

To start with, the ULS Viewer is a small executable 500MB in size, that doesn’t require any installation. Just double click and your up and running in ULS heaven. With this size it won’t be hard to added it to your USB stick and have it with you always. (I think we can all spare 500MB on our 8 or 16 GB sticks we all have…or can afford to skip the coffee for a week to get ourselves one.) In addition, to not having to install anything, as long as you have access via the network to the log location of your SharePoint server, there is no need to even log onto the SharePoint Application server. (Another point for this little baby.)

To view your logs you have two options. The first is to open a log file via File -> Open From -> File, which allows you to open any defined file in a the given browsed to location. This is excellent if you are wanting to view a PSConfig log file or historical ULS log files. The second option is to open File -> Open From -> ULS is were this really shines. You provide the path to your SharePoint log files and it will automatically refresh the screen as new lines are logged. No longer must you close and reopen, or refresh the screen. In addition, when using viewing via the ULS option, you can pause the live stream and start it back up as you want.

The next feature I find great is the ability to view only certain message types. By default all the message types are shown, which are VerboseEx, Verbose, Medium, and High. Sadly, there is not a single button to filter out Warning type messages, but this can be easily achieved via the filtering system provided.

Which leads into the next super sweet feature…the ability to filter messages so you only have to look at those that apply to the current issue your investigating. You have the ability to filter all of the columns with standard contains, begins, not equals…and even regex expression matching. To make it even cooler you can save different filter sets off, to use again or to share amongst teammates investigating the same issue.

SharePoint provides the Correlation ID for error messages as a way for us to easily identify what message(s) in the log are related to the error, but often it is hard to locate all the related messages as they are rarely all clumped in a group. Well, ULS Viewer makes this easier for us to, by providing the Correlation Tree. This beauty l will list all of the correlation ids currently in the log file or that have already been shown if live streaming the ULS, you then can select the ID you want…poof…all logged messages related are shown, no more hunting with the Find to make sure you have seen all the messages.

BUT wait there’s more!!!!!
Also, provided to make finding related or specific messages is the ability to format the display. This includes the basics of which columns to show and the default size of said columns, but it gets better. You can establish filter rules which will then highlight that line in your chosen color, and just like the filter options you can save these off to use later or share. If you don’t want the entire line, you can even designate certain column to be highlights. By default it even highlights any critical level messages for you.
If the bells and whistles I’ve pulled out haven’t at least peaked your interest, maybe the simple yet great features will sell you on the ULS Viewer. When ever a line is selected the top frame of the window will display the entire message column in clean wrapped text. Now we don’t have to scroll forever left and right or try to determine what is wrapped text or a new line in the log. Of course, it even goes a step further, and if you double click a line in the ULS, you get a nice dialog box which breaks all of the columns down for you to easily view or even share.
Everyone knows you have to view the ULS Log at least once for any given SharePoint project, but it shouldn’t be something to hate. With the ULS Viewer the ULS Log is no longer a last phase in issue resolution, but becomes an excellent first stop in an investigation. The ULS Viewer can be downloaded from the MSDN Code Gallery at http://code.msdn.microsoft.com/ULSViewer.

Mid Week Microsoft Fix

Wednesday is here already, which only means one thing can be true. You are reading through the Mid-Week Microsoft fix.

With that mini intro, I’ll let you get to the goods.

Communities in SharePoint Server 2010: How Do I: Using Social Capabilities in SharePoint 2010 (Part 1)

This module concentrates on communities in SharePoint 2010. There are numerous great improvements and enhancements available to utilize in deployments. Understand the new social feedback, social network, user participation, and people and expertise…

Collection 10276: Microsoft SharePoint 2010, Application Development

The courses in this collection teach existing ASP.NET developers how to develop solutions on the SharePoint 2010 development platform.

Deep Dive – Microsoft Virtualization Best Practices for SharePoint 2010

Virtualizing business-critical applications can deliver significant customer benefits, including cost savings, enhanced business continuity, and an agile and efficient management solution. In this webcast, we discuss virtualizing Microsoft SharePoint 2010.

Time to Populate

This is part 3 of 4 in generating a script to populate users and groups in Active Directory. Part 3 is all about populating the groups generated with users. The first two parts are:
Part 1 Adding Users to AD Via PowerShell
Part 2 Making the Perfect Group

Step 0 – Import the Active Directory Modules:
Before we can even begin to try out commands we must make sure the Active Directory Modules have been imported. You can skip actually importing by running the predefined PowerShell prompt with Active Directory, which can be found amongst your Administrator Tools on the server. Or the old fashion way and enter the commands.
PS C:\> Import-Modules active*

Step 1 – Find out about the Command
The command which will be used is Add-ADGroupMember. The TechNet details can be found at http://TechNetMicrosoftt.com/en-us/library/ee617210.aspx.
This command allows for either groups, users, service accounts or computers to be added as members to the specified AD group. This cmdlet requires a ADGroup object, which can be returned via the -PassThru parameter when creating a new group(see part 2 for details on creating a new group) or retrieved from AD with the Get-ADGroup cmdlet.

Details on Get-ADGroup can be found on TechNet (http:TechNetMicrosoftoft.com/en-us/library/ee617196.aspx) but just like all the commands we will be needing in part 4, I am going to highlight a few of the key parameters.

Get-ADGroup returns either a single group or can return multiple groups from AD. To get more than one group returned you will have to use the Filter parameter, while to retrieve a single group you will need to provide the Distinguished Name (DN), GUID, security identifier (SID), security accounts manager (SAM) name, or the canonical name.

  • Identity
    • This parameter defines which group or groups will be returned.
    • This value can be a distinguished name, object GUID, Security Identifier (objectSID), or Security Accounts Manager Account Name (sAMAccountName)
    • This is a required parameter.
  • Properties
    • If you want additional properties outside the default set returned, these can be defined with this property.
    • This will be a comma separated list of the attributes.
    • Or you can specifyasteriskrick (*) to get all set attributes returned
    • This is an optional parameter.
    • Example: -Properties OfficePhone,Organization
  • Server
    • This defines the AD DS server which the group should be returned from.
    • Value can be Fully Qualified Domain Name, NetBIOS,Fully Qualified directory server name and port
    • If no server is given the following rules are applied to identify the server:
      1. Server value is taken from any passed in values
      2. Server from the associated with the Active Directory PowerShell provider drive
      3. The domain of the computer running PowerShell
    • This is an optional parameter

Once you hretrievedeved the AD Group object of the desired group (either via Get-ADGroup or using tPassThruThry parameter when creating a new group) it is time to begin adding members to the group. The command used to add members to a group is Add-ADGroupMember. Members that can be added are users, groups, computers, or service accounts.

New members can be identified via distinguished name (DN), GUID, security identifier (SID), SAM account name, or an AD object variable. If multiple members are to be added to the group use a coseparatedated list as the value of the Members parameter. Values parameterseres can not be submitted to Add-ADGroupMember via the pipeline,to do this use Add-ADPrincipalGroupMembership cmdlet.

The details for Add-ADGroupMember can be found on TechNet at httTechNetMicrosoftosoft.com/en-us/library/ee617210.aspx. As with the other commands, I have pulled out some of the key parameters needed for basic usage of the command.

  • Identity
    • Specifies the AD group that members will be added to.
    • This value can be a distinguished name, object GUID, Security Identifier (objectSID), or Security Accounts Manager Account Name (sAMAccountName)
    • In addition to the the above options, this value can be an AD Group object or be passed in via the pipeline.
    • This is a required parameter.
  • Members
    • A separatederated list of the members to be added to the group.
    • Members can be users, computers, groups, and security accounts.
    • This value can be a distinguished name, object GUID, Security Identifier (objectSID), Security Accounts Manager Account Name (sAMAccountName), or AD object variable.
    • This is a required parameter.
  • PassThru
    • Returns an object of the group that has just been modified.
    • By default the command returns nothing, unless this parameter is listed.
    • This is an optional parameter.
  • Server
    • This defines the AD DS server to connect to.
    • Value can be Fully Qualified Domain Name, NetBIOS,Fully Qualified directory server name and port
    • If no server is given the following rules are applied to identify the server:
      1. Server value is taken from any passed in values
      2. Server from the associated with the Active Directory PowerShell provider drive
      3. The domain of the computer running PowerShell
    • This is an optional parameter
  • Credential
    • The actions performed by the cmdlet by default use the credentials ocurrentlyrrenly logged in account running it.
    • This parameter allows for a specredentialsntials to be used to run the command. It accepts only PSCredential object
    • This is optional parameter.

Step 2 – Get and Populate a Group

Now that we have an understanding of the commands needed, lets try them out. First this to do is get the group we want to add members to.
PS C:\>$myGroup = Get-ADGroup -Identity theCoolKids
Check that you got the group
PS C:\>$myGroup = Get-ADGroup -Identity theCoolKids

With the group to add members to, it is time to add those members to the group.
PS C:\>Add-ADGroupMember -Identity $myGroup -Members myTest2Name,SQLUser,SQLAdminGroup

There we have it, how to get a preexisting group out of AD and then add new members to it. The final part of the series will be combining all of these commands into a single script to read an xml file to load Active Directory.

Your Mid-Week Microsoft Fix

Welcome to the first mid-week of November. That’s right it is November, before we know it the new year will be upon us. If your company is anything like some of my clients, things really begin to slow down as people are in and out using up their vacation time or sick. Which means project work might not move as quickly as the rest of the year, and provides an excellent period of time to learn about some of the latest technologies as well as to polish our knowledge on already familiar technologies.

With this in mind readers, I would like to make a deal with you, to take some time to learn something new or extend our knowledge between now and January 1, 2011. (Life coaches say the best way to achieve goals is when someone is holding you accountable.)

My goal is to pass Exam 70-667 – Microsoft SharePoint 2010, Configuring (http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-667&locale=en-us). Leave in the comments what your goal is. Maybe it is to read that book on design patterns, pass a certification exam, attend/view some training, or something else.

To give you some thoughts as to what to learn here is this weeks broadcaster links.

Course 10517: Introduction to the Microsoft SharePoint 2010 Development Platform

This course introduces existing ASP.NET developers to the SharePoint 2010 development platform.

The course covers the following topics.
– SharePoint 2010 as a Development Platform
– Introducing SharePoint 2010 Object Hierarchy
– Developing SharePoint Solutions by Using Visual Studio 2010
– Packaging and Deploying SharePoint 2010 Solutions

This course prepares you for the exam 70-573: TS: Microsoft SharePoint 2010, Application Development.

Course 10518: Developing Web Parts for Accessing Microsoft SharePoint 2010 Data

This course teaches developer how to develop Web Parts that access SharePoint data by using the server-side object model.

The course covers the following topics.
– Creating Standard Web Parts
– Creating Connected Web Parts
– Creating Visual Web Parts
– Working with SharePoint Sites Programmatically

This course prepares you for the exam 70-573: TS: Microsoft SharePoint 2010, Application Development.

How Do I: Create Visual Web Parts for SharePoint 2010 in Visual Studio 2010?

Visual Web Parts allow developers to build Microsoft SharePoint 2010 Web Parts using a design surface in Microsoft Visual Studio 2010. This allows for drag and drop of user controls from the Toolbox to build the visual web part’s user interface.

Core Architecture of SharePoint 2010: How Do I: Understanding SharePoint 2010 Topology (Part 1)

This module concentrates on the key architectural changes in SharePoint 2010. We’ll cover the different topology options available and also the changes in the service application architecture. There are also new capabilities available for business…