Tuesday, December 23, 2008

Creating Data Forms in SharePoint Designer, Part 3: Building the Data Form Web Part

In the last post I showed you how to create a site with a blank Web Part page and two SharePoint lists for keeping storing FAQ categories and questions. In this post I will show you how to create a form against those two lists and insert it onto the page.

On your desktop, open up SharePoint designer. If it does not automatically open to your site, then click on File -> Open Site and open your site. Your designer panes should look something like this:

Double-click on the default.aspx page to open it. Next, click in the open area of the left “Web Part Zone” so that it becomes highlighted with a bold blue border like this:

From the menu, select Task Panes ->Data Source Library to make the Data Source Library pane come to the front (mine is displayed on the right side of the screen).

If you followed along in the last blog post, you will see two SharePoint Lists in the pane: FAQ Categories and Frequently Asked Questions. Hover over Frequently Asked Questions so the drop-down arrow appears, then click Show Data.

Click on “Question” so that it is the only field in the row that is highlighted. Then, holding in your Ctrl key, click on “Answer” so that it is highlighted also.

With your Web Part Zone still highlighted, click the Insert Selected Fields as… button and choose Multiple Item View. With that, your DataFormWebPart will be added to the Web Part Zone and is ready for you to customize.

Save your work by hitting Ctrl+S or File -> Save. Answer Yes to the dialog that appears.

In the next post, I will walk through the sorting and grouping options.

Tuesday, December 16, 2008

Creating Data Forms in SharePoint Designer, Part 2: Custom Lists with Lookup Column

First, from my top-level site I created a new SharePoint site called FAQ. I made it a “Blank Site” which means that a new site will be created for me with a single page called “default.aspx.” The page will be essentially empty, but we will put our Frequently Asked Questions on it shortly.

Next I created two custom lists in my FAQ site. The first list is called FAQ Categories and only has one field in it – the default field called Title. The second is called Frequently Asked Questions. In addition to Title, it has three required fields in it: Question, Answer and Category. Category is a “Lookup Column” that is populated from the FAQ Categories list.

I then added a couple of records to the Categories list: “Miscellaneous” and “Contact.” Now if I add a record to my Frequently Asked Questions list, it looks like this:

Go ahead and create these two lists on your FAQ site. In the next post I will walk through creating the Frequently Asked Questions page grouped by Category. Be sure to post your comments, questions or requests. Happy holidays!

Tuesday, November 25, 2008

Create Data Forms in SharePoint Designer, Part 1

I am often asked about options for gathering and displaying form data on SharePoint sites. As most SharePoint pros do, I often immediately mention InfoPath. Many times the inquirer will balk because of the licensing fees associated with InfoPath or Forms Server. So I introduce the out-of-the-box forms that SharePoint gives you when you create a list in SharePoint: a form for listing the data, a form for displaying a particular row of data, a form for editing the data and a form for adding a row. I then explain some of the limitations of using those default forms and how it is possible to get around some of those limitations using SharePoint Designer. For example, what if the source of the data is SQL Server or some other Relational Database Management System? Using SharePoint Designer, you can create a Data Form Web Part to view data from a variety of sources besides just SharePoint Lists. In the example below, I am displaying data from a SQL Server database grouped by a “Category” field.

It gets even better than that! You do not even have to be a programmer to develop a form like this…seriously. Over the next several weeks I will demonstrate numerous ways to gather and display form data on Windows SharePoint Services 3.0 using the features included in SharePoint Designer. I will point out limitations that you should consider for each scenario. The first post in the series will be displaying Frequently Asked Questions from a SQL Server database. Until then, Happy Thanksgiving!

Thursday, November 6, 2008

"Read and Acknowledge" Functionality in SharePoint

A great feature of SharePoint is the option to receive email notifications when something is updated - be it a list, document, calendar entry or so forth. A business requirement that often surfaces is to track who has read certain documents such as policies or work instructions. Microsoft Office SharePoint Server 2007 includes an auditing feature to accomplish this. You may enable auditing for an entire site, for a particular list or document library, or for a particular item/document in a list/library. Reports may then be developed to list who has opened and read these items. Windows SharePoint Services 3.0 includes the core functionality to do auditing as well, but it is not accessible by default. Ted Pattison has written an insightful article and provided a free tool to enable this feature on SharePoint Services. Note that enabling auditing may impact your server's performance and could also impact your disk utilization if precautions are not taken.

Another notable attempt at recording which users have read which items may be found at CodePlex but is has limitations that you may or may not be able to deal with. The biggest limitation is that while this solution will work with most SharePoint lists it will not work with a document library. Another limitation is that once a list item has been revised the history is lost, whereas with the auditing approach supports multiple versions of a document.

Neither of the above solutions, however, require a user to deliberately press a button or check a box to acknowledge that he/she has read a particular document. If acknowledgement is a requirement then there are other options to consider. One such option would be to customize a document's action menu to open a custom form. The form would require the user to check a checkbox to acknowledge reading a document. When submitted, the form would update a database or SharePoint list to record the username and which document was read. Reports could then be written to list the users who have read a certain document, list all the documents a certain user has read or even list all of the documents that a user has not yet read.

These are just some of the solutions available for "Read and Acknowledge" functionality in SharePoint. Have you used another? I invite you to comment on this post and share your solution.

Wednesday, October 22, 2008

Tips for Shared Hosting Plans for SharePoint Services

Sometimes a shared hosting account is a good solution for a cost-effective collaboration portal or public web site. The monthly fees incurred are substantially lower than the dedicated server plans. There are always things to consider when hosting in a shared environment, such as: security, performance, up-time guarantee, backup and restore capabilities, degree of customization allowed, traffic reporting capabilities, etc. While these same considerations apply to hosting SharePoint Services in a shared environment, there are additional things to consider as well. There are many more SharePoint hosts today than a year ago, so consider these points when selecting the host that is right for you.

  • Which version of SharePoint Services is installed? WSS 3 Service Pack 1 is the latest version.
  • Does the account allow for unlimited users or enough users to cover your anticipated growth?
  • What customizations are allowed? Can you change the look and feel? Can you access the site with SharePoint Designer?
  • Since this is a shared account you will probably not be allowed to install your own server-side web parts or SharePoint features, so what third party web parts are already included with the account?
    Note: If server-side customizations are not allowed, putting client-side scripts in a Content Editor Web Part may do the trick. Joel Oleson recently published a great blog post on the topic.
  • What is the backup/restore process for this account? Since multiple sites are hosted on the same server, oftentimes only a SQL Server backup is performed over the entire content database. If you want a backup of only your site using the STSADM command, for example, additional fees may apply as the provider will likely have to run it for you.
  • For public-facing sites you may want to purchase a nice template from a company such as PixelMill. They have a new series of templates designed to make content management more user-friendly.
  • Use the webmaster tools in SharePoint Designer for updating your design, checking for errors or broken links, traffic analysis and backup/restore. Note that there is a bug related to the amount of data that can be backed up through SharePoint Designer. This MSDN forum post should help.
  • If you need more detailed traffic analysis than what SharePoint Services will provide, it is often beneficial to run reports against the web server access log files. Some hosts may not allow access to the raw log files if it is a shared account. A workaround for this is to use Google Analytics for traffic analysis. Once you set up an Analytics account, you will be given some script to put in the bottom of your web pages. The script can be added to your master page using SharePoint Designer. Another advantage to using this approach is that if you decide to change SharePoint hosts, your traffic history will all stay intact on your Analytics dashboard so long as the script is included on the new pages.

Thursday, October 9, 2008

Top 10 Take-Aways from the SharePoint Best Practices Conference 2008

I recently had the opportunity to attend the first ever Best Practices Conference for SharePoint. Microsoft’s own Tom Rizzo was the keynote speaker. His talk provided insight into the role that SharePoint plays within the Microsoft organization and some possible directions for SharePoint in the future. SharePoint MVPs, Microsoft product team members, and industry experts provided thought-provoking ideas and valuable insights to help the audience take their own SharePoint environments to the next level. The audience was a good mix of large and small organizations, demonstrating that SharePoint really does fit into all sizes and types of environments.

There was so much information that it really is hard to choose my top 10 points, but the common theme running throughout many of the sessions was to focus on end user experience for a successful implementation, so here are 10 key points to help you do that:
1. If you have My Sites available, seriously consider looking into this feature. My Sites is an often overlooked and underutilized feature, but it can do a lot to speed end user adoption within your SharePoint environment. In particular, look into using Personalization Site Links to help make My Sites a user’s one stop shop for doing their job.
2. When implementing document libraries, remember that SharePoint is a collaboration tool. Plan document libraries around groups who need to share and collaborate on documents.
3. Capacity planning is not a suggestion. Go BIG on your SQL Server box to avoid poor response times for your users.
4. Life Cycle Management isn’t a suggestion either. Visit sites like http://www.microsoft.com/ and http://www.codeplex.com/ to check out tools that you can use to manage the growth and direction of your SharePoint environment.
5. SharePoint is a “disruptive” technology. Many SharePoint implementations fail due to people problems, so plan for the changes that need to occur in your processes, and make sure the end users have plenty of training. Train early and train often.
6. Above all, SharePoint is an end user product. Business areas must be involved in governance and taxonomy discussions in order to insure that the SharePoint environment will work for everyone.
7. Know what’s available out of the box before you write code. Nuff said!
8. Know when it’s time to write code. Remember – this is all about user experience. Out of the box functionality that doesn’t really meet the user’s needs makes for a poor user experience, and poor user adoption.
9. Long term success is a series of quick wins that solve problems. Use SharePoint to transform the way your end users do business, and give your end users a voice in what matters to them.
10. Attend the next Best Practices Conference! Sign up to receive emails with details on the next conference at http://www.sharepointbestpractices.com/ and plan to attend.

Monday, October 6, 2008

IndyTechFest Presentation

Last Saturday I was honored to speak at the IndyTechFest event in Indianapolis. I kicked off the well-attended SharePoint track with "SharePoint: When to Develop on a Platform." The premise of the presentation was to give guidance for when to consider SharePoint as a development platform versus developing applications from scratch or even starting with a MVC framework. The slide decks for all of the presentations will be available soon on the IndyTechFest site. I want to thank the organizers (Brad Jones, Dave Leininger, John Magnabosco and Mark McClellan) for putting on a superb event two years running and for allowing me to be a part. This event is a "must attend" for any Microsoft developer in the area.

This Wednesday (October 8) Keller Schroeder will host the Evansville SharePoint Users Group at our office at 4 pm. Presenters will summarize our top takeways from the SharePoint Best Practices Conference last month in Washington, DC, followed by our top findings from the SharePoint sessions at the IndyTechFest conference.

Wednesday, September 17, 2008

Some Great Planning Resources

Last night we sat in on the first ever virtual user group meeting by SharePoint Nation! It was a great experience. Thanks to Shane for putting it on. Our friend Rob Bogue from the Indianapolis SharePoint Users Group gave an outstanding presentation on "SharePoint Governance." He pointed us to a couple of resources he co-authored with Microsoft for planning SharePoint deployments and governance. If you are considering implementing SharePoint, this is a great place to start:


Wednesday, September 10, 2008

Creating a Multi-Person Scheduling View in SharePoint

We were recently challenged with a unique opportunity to customize a SharePoint calendar. The requirement from this medical office was to use SharePoint calendaring for maintaining physicians' schedules from a single page, but by default there is no view to show all timeslots for multiple physicians at once. Using SharePoint’s customization features were able to achieve this using Visual Studio and SharePoint Designer.

The end result was a custom view of the calendar which made it easier for the schedulers to see all the appointments at once without sacrificing SharePoint's built-in features, such as appointment recurrence, version history, and user security. The design allows for the calendar to be used for other applications as well, such as: hair salons, insurance claim agents, shelter house reservations, etc.

Technical Details

  • Color preferences for the calendar entries and doctors names are externalized into separate SharePoint lists Custom properties were added to the web part for setting the start/stop times, appointment duration and other settings
  • The object model was used to query all of the appointments from a calendar list for a given date
  • The required information for each calendar entry was inserted in to a data grid which was formatted and displayed in the web part
  • After creating the web part we modified the default view using SharePoint Designer to include the custom web part

Tuesday, August 26, 2008

What's the Big Deal about SharePoint?

Over the last couple of years, I have become known around these parts as "That SharePoint Guy." That is a particularly strong title for someone who takes pride in being platform agnostic and whose background is steeped in mid-range computing and open source. How could I be typecast like this? I believe the answer is because of my enthusiasm for SharePoint!

Please understand - I do not lead with a product. I listen to my clients' challenges and opportunities, then offer what I believe to be the best solution based on their requirements. More often than not in recent engagements, the solution has been SharePoint. I like to say that every organization needs SharePoint - some just do not yet know why.

So what's the big deal? For me it is because with over 15 years of systems consulting (and I have enjoyed nearly every minute of it), I can draw a distinct separator on the timeline for the first time. Dozens of past projects, languages and frameworks have culminated into what has become known as "my life before SharePoint."

So why such strong regard for this platform? My future posts will fill you in a little at a time, but I will sum it up in a few points now: ease of use, out-of-the-box features and flexibile integration architecture. A much anticipated paradigm shift has occurred and the focus is now able to be centered where it should be - on the business requirements.

I will expand on this topic in person at IndyTechFest on October 4. Hope to see you there.

Friday, August 1, 2008

About Keller Schroeder

Whether you need a Windows, web, or mobile solution, Keller Schroeder has a track record of successful engagements demonstrating our abilities to design and deliver solutions to meet or exceed your needs. As a Microsoft Gold Certified Partner, we have achieved Microsoft’s Custom Development, Information Worker, and Data Management Competencies, which consist of certifications and proven experience via confirmed customer references.

Located in Evansville, Indiana, we specialize in Microsoft SharePoint and .NET solutions with deep experience in C#, ASP.NET, and VB.NET. Our cross-industry experience with these solutions includes capacity planning, installation and configuration, taxonomy, governance, workflows, custom development and legacy system integration.

We also have years of experience with Microsoft tools such as Access (including migrating to SQL Server databases while retaining the Access user interface), Visual Basic (VB), VBA, and Active Server Pages (ASP). Our Certified Office Specialist can help you integrate and customize Microsoft Office to better meet your needs.

Our experience includes Crystal Reports and Active Reports. Our Microsoft SQL Server experience ranges from the desktop engine/SQL Server Express to the Enterprise Edition including stored procedure development, data transformation services, and database design. Our Microsoft Certified DBA’s (Database Administrators) can address the most complex of database challenges.
We support and participate in Evansville's:
.NET Users Group evansvillednug.org
SharePoint Users Group espug.org
And we hope to see you at a meeting soon.