Archive for the ‘Best Practices’ Category

Cleaning Out the SharePoint Site Recycle Bin

July 16th, 2012
Posted by: admin

By Terry Engelstad
MCP, MCSE, CCNA, MCDBA, MCTS, MCITP
AIS Network Operations Manager

Recently, a SharePoint hosting customer asked us to perform routine maintenance on his SharePoint site.  As part of that, he asked us to clean out the Recycle Bin and have the automatic deletion mechanism disabled for the Recycle Bin.  He said that his company hadn’t cleaned its SharePoint Recycle Bin in over one year.

There are some things you might find interesting about the Recycle Bin, which is the first line of defense in recovering data. As you probably know, SharePoint uses a two-tier Recycle Bin. The first tier is at the User level where an item deleted from a List or Library will drop into the User Recycle Bin. This way, the Users can recover deleted items themselves. Then after a period of time, items will be moved from the User Recycle Bin to a Site Collection Recycle Bin. The duration for which an item sits in the User Recycle Bin is determined by a parameter in SharePoint Central and is specific to an entire Web Application.  The duration for which items will sit in the Site Collection Recycle Bin is determined by the amount of space available to hold these items and is also configurable via a parameter in SharePoint Central.

Currently, our customer’s User Recycle Bin is configured to never delete items.  There are quite a few items in various User Recycle Bins. There are two ways to clean them out.  First, somebody can go to each of the User Recycle Bins and remove items manually.  Or, second, the retention configuration parameter could be changed to a very low value, and after a period of time, the items will flush out on their own.

The difference between these two techniques is that the first one requires human intervention to find all the Recycle Bins and to make decisions about which items should be deleted or not. The second option is global and will affect all items in all Recycle Bins.

Naturally, if our client wants us to clean out the User Recycle Bins individually, they would also need to define the rules for deletion of those items (i.e., delete everything older than 30 days, for example).

On the other hand, if the customer wants us to change the configuration parameters, we’d be happy to do so.  That’s easy.

More questions about your hosted SharePoint?  Leave your comments below.

TAGS:

CATEGORIES:

Slow SharePoint Server? If your SharePoint Loads Slowly, This May Be Why.

July 9th, 2012
Posted by: admin

 

By Terry Engelstad
MCP, MCSE, CCNA, MCDBA, MCTS, MCITP
AIS Network Operations Manager

Is your SharePoint Server running slow?

Recently, a client emailed to say that he was noticing large slowdowns in connecting to their SharePoint server at AISN.  It seems to be happening nightly and intermittently throughout the day, he said.  Specifically, his issues were:

  1. SharePoint content loads slowly
  2. Uploading/ downloading from SharePoint is impossible (speeds come to a crawl at less than 5KBps)
  3. Remoting in to the SharePoint server is very slow

He asked what could be causing a slow SharePoint Server and SharePoint SQL Server.  Here’s the problem in his case.

The servers, in general, are starving for memory.  The hypervisor on which they reside (XYZ1) has only 74 MB of free memory.  Microsoft recommends not dropping below 2 GB of free memory on a hypervisor.

See the image below for XYZ1 (real names changed to protect client).

Slow SharePoint

As I explained to our client, the server “SharePoint” has 0 free memory and is warning that it needs more.  It looks like the vast majority of the memory on SharePoint is being consumed by w3wp.exe – IIS Application Pools. This would certainly contribute to slow web page rendering.  And with 0 free memory, anybody who remotes into it will take more memory away from the Application Pools, thereby making it slower.

In our client’s case, the server “SharePointSQL” is grossly overtaxed.  I count 68 databases defined and live.  This is way, way too much for a SQL Server with only 8 GB of memory.  The Microsoft recommendation is 8 GB of memory for a lightly used SharePoint Foundation Farm and 16 GB for a lightly used SharePoint Server Farm.

This level of memory, combined with the number of databases, will create very small page caching (perhaps not even caching at all).  This will seriously degrade the speed of uploading documents.

As you may or may not know, SharePoint stores all documents as Binary Large Objects (BLOBs).  In order to properly convert, for example, a Word document to a BLOB, it must cache the entire uploaded document somewhere before it can go through the conversion to a BLOB. So again, small or non-existent cache, means real slow upload and download times, among other slownesses.

In this case, adding more memory is the solution to a slow SharePoint Server.   However, a SharePoint private cloud would be an ideal approach – one that allows for the flexibility and scalability this client needs to accommodate growth smoothly.

TAGS:

CATEGORIES:

SharePoint 2010 Security: Adding an SSL Certificate to Your Hosted SharePoint Site

June 11th, 2012
Posted by: admin

By Bill Peters
AIS Network Director of Sales

SSL certificates create secure (HTTPS) connectivity between your Web server and your visitors’ browsers.  If you are transmitting sensitive information via a Web site, such as Social Security numbers, credit card numbers or other personal information, you should secure it with SSL encryption to safeguard against others seeing your data.  If you do not use an SSL certificate, then you are vulnerable.

SharePoint Security

SSL certificates aid in ensuring data security for your hosted SharePoint site.

In a SharePoint environment, SSL certificates can easily be added to a hosted site in order to secure it.  There are different kinds of SSL certificates but I won’t address that in this blog.  Rather, this is about SharePoint 2010 security and the recent request by one client that we add an SSL certificate to his existing hosted SharePoint site with us.

In preparation, I asked him what domain name he wanted on the SSL certificate.   Unsure of my question, he responded, “Doesn’t the domain name have to match the domain of the (AISN) network?”

Here’s how I explained it to him.   In his case, the server hosting his SharePoint is a member server in the Active Directory domain called aisn.local.  Web sites which serve Web pages from this server (SharePoint included) can be addressed by either an IP address or a domain name.  This Web site domain is not the same type of domain as the Active Directory domain in which the server resides.  And actually, Active Directory domains such as aisn.local cannot be present on the Internet.  The ‘.local’ indicates to the Internet that it is a private, not a public, domain name.

That said, it is possible to have an SSL Certificate for either type of domain.  The real question is what are you going to use it for?  That was for my client to decide.

As I explained to him, if you intend to use the SSL Certificate for Server Identification, then we can get a certificate for you for “yournamehere.aisn.local”.  You would use this type of certificate when, for example, you remote desktop to the server.  It would guarantee that you are connecting to the right server.

If, however, you want to use the SSL Certificate for identification of your SharePoint Site, then you can pick any public name you want.  In this case, the domain must be registered publicly in order to get a public SSL Certificate.

So, for example, if you chose to address your SharePoint Site by the name “sp.yournamehere.com”, you would need to make sure that the domain name “yournamehere.com” is registered to you.  Then, you can define “sp.yournamehere.com” in IIS on your SharePoint server. You would also need to configure the public DNS for yournamehere.com such that the “host” known as “sp” points to the IP address on the server.

That explanation seemed clarify things for him.  I told him that I thought he was looking for the latter, but we do not know what his host and domain names are.  It appeared to me that he was addressing his SP site by IP address currently.  In order to assign an SSL certificate, it needs to have a full name.  We cannot register it to an IP.

Have more questions about hosted SharePoint 2010 and hosted SharePoint security?  Send me an email and I’d be happy to help.

TAGS:

CATEGORIES:

Why Use SharePoint? Microsoft’s User Adoption Resources

March 31st, 2012
Posted by: admin

By Laurie Head
AIS Network Vice President

Looking for some good use cases for SharePoint or for some user adoption resources?

Last year, Microsoft launched their “That’s Why I Use SharePoint” site with some super resources to promote SharePoint user adoption.

It’s not just our clients.  SharePoint 2010 is making life a little easier everywhere.   Just check out these stories from real people who like using SharePoint, including folks representing Del Monte, Indiana University, BlueMetal Architects and Miami-Dade County Public Schools.

Why do you use SharePoint?  Have a SharePoint story of your own?  What user adoption approaches have you taken?

TAGS:

CATEGORIES:

SharePoint and SQL Server: Give It Memory

March 15th, 2012
Posted by: admin

By Terry Engelstad
MCP, MCSE, CCNA, MCDBA, MCTS, MCITP
AIS Network Operations Manager

If you are not familiar with how SQL Server works, you should know that it does, in fact, use memory for caching of data.  If you don’t give it enough memory, then it won’t cache enough data.  If you don’t cache enough of the right data, then you must go to disk to get it.  If you have to go to disk to get it, then you are making excessive trips to the SAN to retrieve data, thereby reducing the overall efficiency to everybody on the SAN.

I’ve done a couple hundred installations of SharePoint, and I am definitely a believer in “more is better.”   When it comes to SharePoint, you absolutely must give it memory – and lots of it.  You cannot get away with shorting memory and disk space.

If you really want to tick off a customer, take a SharePoint Site that has a reasonable amount of traffic and start reducing the amount of memory SQL Server has to work with.  See how long it takes for that customer to start complaining.  It won’t take long.

 

TAGS:

CATEGORIES:

SharePoint FIS and SharePoint FIS Licensing: Usage Scenarios (Part 2 of 2)

February 19th, 2012
Posted by: admin

By Bill Peters
AIS Network Director of Sales

In my January 24 blog, I provided some responses to frequently asked questions about Microsoft SharePoint Server 2010 for Internet Sites and licensing SharePoint FIS.

In this second part, we’ll look at SharePoint FIS licensing in a little more depth and also look at some various usage scenarios.*  For the purposes of this blog, “internal users” refers to employees, affiliates’ employees, on-site contractors and/or agents.  “External users” refers to all others.

What do I need for intranet and extranet sites?

For intranet and extranet networks used to support internal content, SharePoint Server 2010 is required.  If only internal users can access the content being stored, it must be hosted on a server licensed with SharePoint Server 2010.  It’s important to remember that content is only accessible by users or devices with a Client Access License (CAL) for SharePoint Server 2010.  SharePoint Server can still be used to support external content, although each user or device requires a CAL, whether they are internal or external.

What do I need for Internet sites?

For servers used to provide external content (typically) over the Internet, SharePoint FIS is required.  If the content being stored and accessed is available to external users, it can be hosted on a server licensed with SharePoint FIS, and users accessing that content will not require a CAL.  It’s important to remember that while SharePoint FIS is restricted to external content, it is not restricted to external users.  For example, an internal user (e.g., employee) would not require a CAL to access external content on an instance of SharePoint FIS.  As you can see, the choice between SharePoint Server and SharePoint FIS for external content is a financial one, unless the external users have anonymous access—in which case, SharePoint FIS is the only feasible option.

Can you show me some usage scenarios?

The following common deployment scenarios are excerpted from a very useful and detailed document entitled, “Microsoft Volume Licensing Brief:  Microsoft SharePoint Server 2010 for Internet Sites” (October 2010), which helps in explaining the licensing requirements of SharePoint FIS.  Although covered for user-based CALs, these scenarios can also be used for device-based CALs.  For a copy of the full document, just email me at the address below.

First, have a look at the color code for the diagrams:

SharePoint 2010

Color code for diagrams. Source: Microsoft Volume Licensing

SCENARIO A:  Intranet

Description: Internal users access information through LAN or the Internet. No other users (internal or external) have access to information or applications.

Example: A professional sports team sets up an intranet site accessed by managers, the coach, and players.  It is also used for support staff such as the physiotherapist who is an on-site contractor rather than an employee.  But the therapist still qualifies as an internal user.  A news reporter trying to access the SharePoint site is denied access.

Licensing:

  • Server — 1 SPS/Running Instance (RI)
  • Internal User — 1 CAL/User

Figure 1 – Scenario:  Intranet

SharePoint 2010 Sports Team Scenario

Source: Microsoft Volume Licensing

Key Takeaway:

  • Licensing requirements for server and CAL remain the same for internal users based on the location of access (through LAN or the Internet).

 

SCENARIO B:  Intranet Plus Extranet

Description: An organization with information accessible only by internal users (i.e., internal content) chooses to extend access to a limited number of identifiable external users.  In this case, the identifiable external users have access to all information, previously accessible by internal users only.   The organization may choose to license those external users either via SPS/CAL or SPSFIS for authenticated external users.  This decision is typically made based on cost.

Example:  The Elm University publishes research papers, which are made available to specific educators from other universities (external users).  This situation is assumed to be an intranet plus extranet scenario, even though the Elm University does not have a public-facing Web site.

Licensing:

  • Server — 1 SPS/RI
  • Internal User — 1 CAL/User
  • External User — 1 CAL/User

-or-

  • Server — 1 SPS/RI (for internal use), 1 SPSFIS/RI* (for external use)
  • Internal User — 1 CAL/User
  • External User:  No additional licenses required.

SPS/CAL Only

Figure 2A – Scenario:  Intranet Plus Extranet Without SPSFIS

SharePoint 2010 Elm University Scenario A

Source: Microsoft Volume Licensing

SPS/CAL Plus SPSFIS

Figure 2B – Scenario:  Intranet Plus Extranet with FIS

SharePoint 2010 Elm University Scenario B

Source: Microsoft Volume Licensing

Key Takeaways:

  • You can choose between SPS/CAL or SPSFIS based on what is more economical to them given the number of external users.
  • The licensing requirement for internal user varies depending on the server license chosen and use (publishing or internal use of information/applications).
  • The university chooses to make external content available to selective external users.  With SPSFIS licensing, no restriction is made on how many external users access that information.

SCENARIO C:   Internet

Description: Internal users are publishing information for external users.  It is not possible to identify some or all of external users, so you must license external users via SPSFIS.  Because internal users access the same information as external users, all users can be licensed via SPSFIS, and no additional CALs are required.

In another example, a team of internal users is customizing the look and feel of the Web site and testing it before the changes go live in production; CALs are not required if the internal users have MSDN licenses.

Example: News Web site, knowledge forums, and social networking sites

Licensing:

  • Server — 1 SPSFIS/RI
  • Internal User — Need no CAL
  • External User — Need No CAL
  • Test/Dev: If users are covered via MSDN, no additional server licenses/CALs are required.

Figure 3 – Scenario:  Internet

SharePoint 2010 Newspaper Publishing Scenario

Source: Microsoft Volume Licensing

Key Takeaways:

  • SPSFIS/RI is the only license required if internal users are accessing the same sites as external users.
  • Each staging server that is posting content requires its own SPSFIS/RI (same licensing requirement as production server).  This requirement excludes test staging servers because testing technical changes are covered under MSDN.

SCENARIO D:  Intranet Plus Internet

Description: You make some content available only to internal users, while other content is made available to anonymous external users.

You need one SPS/RI for the internal content, one CAL/user for all internal users accessing that internal content, and one SPSFIS/RI for the external content accessed by anonymous external users.  SPSFIS negates the need for CALs for internal users only publishing information and all external users.

Example: Woodgrove Bank offers loan information and the option to submit a loan application on its public-facing site, on which only internal users are allowed to view/work.

Licensing

  • Server — 1 SPS/RI for servers for internal information, 1 SPSFIS/RI* for servers for external information
  • Internal User (if only publishing) — needs no CAL
  • Internal User (otherwise) — 1 CAL/User
  • External User — needs no CAL

Figure 4 – Scenario:  Intranet Plus Internet

SharePoint 2010 Bank Scenario

Source: Microsoft Volume Licensing

Key Takeaways:

  • If internal users are only publishing information and SPSFIS/RI is being used for the servers, CALs are not required for them.
  • If the contents/information/applications accessed by internal users are different from those accessed by external users, SPS/CAL licenses are required for internal users.

SCENARIO E:   Intranet Plus Internet Plus Extranet

Description: In this scenario, one subset of information is available only to internal users, another subset of information is available to both internal users and authenticated external users, and a third subset of  information is available to anonymous external users.

Example: Contoso Pharmaceutials maintains a public Web site accessible by all, offers collaboration with authenticated external users on specific research and development  projects, and hosts company’s internal intranet for its internal users.

Licensing:

  • Server — 1 SPS/RI for servers for internal information, 1 SPSFIS/RI for servers for external information*
  • Internal User (publishing) — needs no CAL
  • Internal User (otherwise) — 1 CAL/User, External User à needs no CAL
  • External User —  needs no CAL

*In the case of dedicated server for extranet, users would have a choice of SPSFIS to cover all authenticated external users or extending CALs to them, as discussed in Scenario 2.

Figure 5 – Scenario:  Intranet Plus Internet Plus Extranet

SharePoint 2010 Pharmaceutical Company Scenario

Source: Microsoft Volume Licensing

Key Takeaways:

  • This scenario shows that the Internet plus intranet plus extranet scenario is no different than the sum of the individual scenarios.
  • An organization can choose to make external information available to selective external users. However, with SPSFIS licensing, no licensing restriction is made on how many external users can access external information.

This is so confusing.  Isn’t there someone who can help me figure this out?

Yes, as I mentioned in January, if you think SharePoint FIS licensing is confusing, you are not alone.  I’m happy to walk you through it and help you assess your organization’s needs.

Call me at 1-888-401-AISN, or email me at:  bill.peters@aisn.net.  Or, simply leave a comment below.  Best of luck!

 

 

TAGS:

CATEGORIES:

SharePoint 2010: Most Popular Third-Party Apps

November 25th, 2011
Posted by: admin

By Laurie Head
AIS Network Vice President

In Anaheim, at the Microsoft SharePoint 2011 Conference, Rob Koplowitz, vice president and principal analyst at Forrester, unveiled the results of a Forrester survey on “Best Practices in SharePoint 2010 Adoption and Migration.”

The survey had been conducted in July and included responses from “510 IT decision-makers involved with evaluating, specifying, or administering SharePoint.”  Most interesting, I think, is that analysts found that 44 percent of those surveyed planned to tap third-party software for use with SharePoint.

According to Forrester, the top third-party tool used to augment SharePoint was Nintex Workflow (8% of surveyed).  Workflow tools were the most common solution, followed by administration and then social tools.  According to Forrester, the top third-party software vendors utilized for SharePoint are as follows:

  • Nintex USA for workflow
  • Bamboo Solutions for WebParts
  • AvePoint for administration
  • NewsGator Technologies for social networking
  • Axceler for administration
  • K2 for workflow
  • KWizCom for WebParts
  • Quest Software for administration
  • Metalogix Software for content management
  • Yammer for social networking

Two-thirds of the survey respondents (65 percent) were using SharePoint 2007.  SharePoint 2010 use was also high at 57 percent.

Which apps do you like best for SharePoint 2010?  Let me know by commenting below.

 

TAGS:

CATEGORIES:

SharePoint 2010 Disaster Recovery: Failover Scenarios

September 22nd, 2011
Posted by: admin

By Terry Engelstad
MCP, MCSE, CCNA, MCDBA, MCTS, MCITP
AIS Network Operations Manager

I recently published a blog post entitled, “SharePoint and Disaster Recovery Options,” but it did not specifically address SharePoint failover scenarios.

I began to give more thought to failover scenarios when a prospective customer asked us to devise a SharePoint environment that has the option for a fully redundant, geographically dispersed disaster recovery plan.  After being asked to break out the cost for a direct failover time of a few seconds, 15 minutes and 4 hours, I was asked about our options to accommodate the few seconds, 15 minutes and 4 hours with no data loss incurred.

Failover of SharePoint is implemented differently depending on which version of SharePoint and SQL Server a client is using.  There are usually two components to “recovery” – RTO (Recovery Time Objective) and RPO (Recovery Point-in-Time Objective).  RTO is how long does it take to recover.  RPO is what point-in-time do you want to recover to.

Breaking out the cost pertains only to RTO.   However, the second question, regarding options to accommodate time lapses, also needs to be considered and is probably more important in determining a solution than RTO.   If your RPO is “recovery with no loss,” then the only solution is to use SQL Server Enterprise Edition with multi-threaded Mirroring enabled.

The failover dilemma with SharePoint 2010 is that there are many more databases than in previous editions. For example, in MOSS, fully implemented, there are only four databases. In WSS 3.0, there are only three databases. In SharePoint Foundation 2010, there are 12 databases. In a SharePoint Server 2010 bare-bones installation, there are 22 databases.

The number of databases in SharePoint 2010 is directly tied to the number of features which get implemented. If, for example, Excel Service gets implemented, then that’s another database. If Access Services gets implemented, then that’s another database. That said, you could get away with doing Log Shipping in previous versions, but with SharePoint 2010, it is a royal pain in the butt.  Each database needs a separate Log Shipping configuration. However, some of the databases will not recover properly with Log Shipping, because they are tied to SharePoint’s always-running Timer activity.

That said, here are my recommendations assuming RPO is immediate (i.e., no data loss):

For recovery in a few seconds:

-          SQL Server Enterprise Edition with multi-threaded Mirroring implemented

For recovery in 15 minutes:

-          SQL Server Enterprise Edition with multi-threaded Mirroring implemented

For recovery in 4 hours:

-          SQL Server Enterprise Edition with multi-threaded Mirroring implemented

As I mentioned in my previous blog, the SharePoint 2010 Disaster Recovery Guide by John L. Ferringer and Sean P. McDonough is a good resource.  I would be interested in your thoughts on this too.  Leave a comment, please.

TAGS:

CATEGORIES:

SharePoint and Disaster Recovery Options

August 23rd, 2011
Posted by: admin

AIS Network Blog SharePoint 2010 Disaster Recovery

The SharePoint 2010 Disaster Recovery Guide.

By Terry Engelstad
MCP, MCSE, CCNA, MCDBA, MCTS, MCITP
AIS Network Operations Manager

The complexity and diversity of the Microsoft SharePoint platform also applies to its disaster recovery options.  When it comes to protecting your SharePoint farm from the effects of a catastrophic event, there are numerous tools and best practices.  But which is the best fit for you?

I recently completed reading and studying the SharePoint 2010 Disaster Recovery Guide by John L. Ferringer and Sean P. McDonough.  It’s a worthwhile read, if you have the opportunity and particularly if you are trying to determine whether your current procedure for backing up SharePoint environments provides adequate and proper recovery capabilities.

The book explains that there are three kinds of recoveries:

-          Content

-          Site Collection

-          Full Farm

If you need to do Content recovery, then the Content Database needs to be backed up. If you need to recover a Site Collection, then the Site Collection needs to be backed up. Content is backed up as part of a Site Collection, but a Site Collection is not backed up as part of Content. If you need to recover a full farm, then you need to do a Full Farm backup. Merely backing up the individual SQL Server databases does not capture enough information to recover a full farm. There are additional components that get installed on the server; these are not in a SQL Server database and therefore will not be available for a recovery.

This means that if your current procedure is to back up the SQL Server databases, then that method will not work for Full Farm recovery of SP 2010 Foundation or Server. According to Microsoft, this is an un-supported practice, which means you may get lucky and it might work, but then again, maybe not.

The only fully supported method for a full farm recovery is to do SharePoint Full Farm Backups. SharePoint Full Farm Backups are executed via:

1) SharePoint Central GUI,

2) PowerShell commands, or

3) stsadm command line.

Execution via PowerShell or stsadm can be scripted as batch jobs and scheduled. A full farm backup ends up including the SQL Server databases, but it also picks up the IIS configuration, the Hive, GAC components, and Customized Code – everything required for Full Farm Recovery.

In some circumstances, there may be a difference in the amount of space and time used to create a Full Farm Backup. FFB creates an un-compressed, directory structure, which would subsequently be backed up to storage for 14-day (or otherwise) retention. The “un-compressed” part will not be affected by those implementations using SQL Server Web Edition, since Web Edition doesn’t compress backups. For those implementations using SQL Standard or SQL Enterprise, this would result in additional disk space being consumed, because what was once compressed will no longer be compressed.

How are you approaching SharePoint 2010 disaster recovery?  I encourage your comments.

TAGS:

CATEGORIES:

SharePoint Saturday in DC a Big Success

August 16th, 2011
Posted by: admin

AIS Network booth, SharePoint Saturday

AISN CEO Jay Atkinson in the AISN booth at SharePoint Saturday.

By Laurie Head
AIS Network Vice President, Marketing Communications

Last week’s SharePoint Saturday The Conference in DC (August 11-13) was a terrific success.  This community-organized event attracted about 2,000 registered attendees and 60 sponsors. Over 190 speakers presented 250 sessions.  150 volunteers coordinated it.  Kudos to Dux Raymond Sy, managing partner at Innovative-e, and his team of volunteers who made it all happen.

AISN used this opportunity to:

  • reconnect with old colleagues and welcome new colleagues;
  • present a session (led by AISN Chair Kurt Baumann) for those who are choosing between on-premise hosting and outsourced hosting;
  • communicate the value of outsourced SharePoint hosting through our exhibit in the Exhibitor Hall; and
  • release our    white paper, “To Cloud or Not to Cloud: SharePoint 2010 Hosting Options…and Which One Is Right for You.”

If you didn’t make it to the event, we encourage you to participate next time.  For less than a $40 registration fee, it’s a great value to the SharePoint Community.  Check the SharePoint groups on LinkedIn for feedback.  Also, Dux’s blog may be found on his site.

What did you think of SharePoint Saturday?  We would love to hear from you.

Jay Atkinson, Mike Herrity at SharePoint Saturday DC

Jay Atkinson and Mike Herrity get their ducks in a row.

SharePoint Saturday DC

SharePoint Saturday crowds throng the booths.

TAGS:

CATEGORIES: