Tushar Mahapatra - Portfolio for SharePoint projects
1. SharePoin
t Projects
Portfolio
Name: Tushar Mahapatra
Email: tushar_mahapatra@yahoo.com
As of: June 2010
2.
3. Contents
1. Introduction...............................................................................................................................5
2. The SharePoint Training Track..................................................................................................6
2.1 Projects.................................................................................................................................6
3. The SharePoint Student Project...............................................................................................7
3.1 Create Solution Site Web Part............................................................................................8
3.2 Solution Management Web Part.....................................................................................11
3.3 Change Management List Definition..............................................................................12
3.4 Content Query Web Part.................................................................................................12
4. The SharePoint Team Project.................................................................................................13
4.1 The Purchase Order InfoPath Form.................................................................................14
4.2 The Invoice InfoPath Form................................................................................................14
5. Appendix 1: SharePoint Training Curriculum........................................................................20
4.
5. 1.Introduction
This portfolio discusses the projects I was involved in as a student of the SharePoint
Training Track of SetFocus’ Master’s Program. The next chapter provides an overview of
the course and its curriculum, and a brief introduction to the project work involved in the
course. The following chapters discuss details of the individual and team projects I was
involved in during the course.
5/22
6. 2.The SharePoint Training Track
Between September 2009 and March 2010, I was enrolled in the SharePoint Training track
of SetFocus’ Master’s Program. This track is an intensive SharePoint training experience
designed to prepare students for development opportunities with Microsoft’s SharePoint
2007 product. During this SharePoint training program, students dive into Windows
SharePoint Services 3.0 (WSS) and Microsoft Office SharePoint Server 2007 (MOSS) where
they learn customization of look and feel through styles, themes, and master pages,
controls and web parts, custom pages, creation and deployment of solutions, security,
debugging, workflows, custom site definitions, lists, documents libraries, and features. The
program also teaches the principles and practices of how to deploy, manage, and
maintain SharePoint. It takes the students through each phase of a deployment as they
plan, install, rollout, and support SharePoint in the real world. They learn how to assemble
and configure business solutions by designing and architecting the portal and
collaboration solutions, document and records management solutions, and web content
management solutions of MOSS, implementing search and indexing as well as other
business data-oriented concepts such as the Business Data Catalog, Excel Services, Key
Performance Indicators, Business Intelligence Dashboards and Reports. Chapter 5,
Appendix 1: SharePoint Training Curriculum lists the curriculum for the course.
2.1 Projects
As part of the training, students are expected to complete two projects simulating real-
world projects. The first project is a student project which each student completes alone.
The student project is completed in parts throughout the length of the program after
logical units of classroom instruction are completed. The next chapter 3, The SharePoint
Student Project, provides details about my experience in my student project.
The second project is a team project where all students collaborate in the completion of
the project. This is completed at the end of the course. Chapter 4, The SharePoint Team
Project, describes my involvement in my team project.
6/22
7. 3.The SharePoint Student Project
The student project was for a fictitious towing company called ‘Acme’. Students had to
design and establish a SharePoint Solution Management Portal to help manage all of the
SharePoint solutions created for the company. This portal in the company intranet was
required to be created for the company’s SharePoint developers to organize and
manage their solution projects.
The project was broken into the following milestones, and students were expected to
complete a set of milestones after related instructional material were covered in the
course.
1. Configure Farm and create a new intranet website
2. Create the Solution Portal site collection
3. Create Developer Knowledge Base
4. Create Solution Site Template
5. Create a new Solution Managers Group
6. Create Solution Content Type
7. Setup Development Environment
8. Add a Search Managed Property
9. Search Centre with Managed Property Search
10. Site Collection Search Settings and Scopes
11. Add “Saved” Searches to a page
12. Keywords and Best Bets
13. Enable access from the Extranet
14. Change the look and feel of the Portal
15. Solution List Definition
16. Content Query Web-part
17. Create Solution Site Web-part
18. Solution Management Web-Part
19. SharePoint Designer 2007 Workflow 1
20. Visual Studio 2008 Workflow
21. Change Management Request List
22. InfoPath Change Management Request Form
23. Custom Search Web Part
24. Records Center
25. Document Center
26. Publishing Page Layouts
7/22
8. The following picture is a screenshot of the portal I developed.
The picture illustrates several artifacts I developed during the student project. The
following paragraphs describe some of these artifacts in detail.
3.1 Create Solution Site Web Part
The top section titled ‘Create Solution Sites’ is an instantiation of a
‘CreateSolutionSiteWebPart’ web-part I developed for Milestone 17. The goal of
milestone 17 was to create a custom web part to create new sub-sites using an existing
site template. The web part should:
1. Create a new SharePoint site under the site the web part is deployed to
2. Allow the user to create a new site name
3. Allow the user to specify an existing site template from the Site Template Gallery, from
a dropdown list
4. Upon creation, provide user interface elements indicating whether the site creation
succeeded or failed, and an OK button to proceed
8/22
9. 5. Upon clicking OK, hide the site creation input controls, and return to the original web
part screen (allowing the user to create another solution)
6. Provide a Web Part Property that allows the administrator to specify the name of the
Solution list
On the top of the web page, there is a collection of tabs of which some have names of
the form ‘Test Site ##’. These are sites created by this web part. Selected snippets of the
code for the web-part are reproduced below.
The code for the ‘SolutionsList’ property is shown above. The code illustrates validations
done on the name of the solutions list. Due to the attributes specified for the property,
the ‘SolutionsList’ property is exposed by the web-part as a property. The value entered
by the user is validated here.
The following code from the ‘Click’ event handler for the ‘Submit’ button ensures that all
required data is available and is valid, and then proceeds to create the requested site.
Note the use of special constructs at lines 352 and 376 to bypass security.
9/22
10. At line 340 in the picture above, the ‘IsAuthorized’ function is called. The code for the
function is shown below.
10/22
11. 3.2 Solution Management Web Part
Below the ‘Create Solution Site Web Part’, in the section titled ‘Solution Management’ is
an instantiation of another web part I created for Milestone 18 named
‘SolutionManagementWebPart’. This web part used SharePoint’s SPGridView and
SPDataSource controls to display a grid-view of all solution items in the ‘Solution List’
SharePoint list. The following two pictures show snippets of the code for the web part.
11/22
12. 3.3 Change Management List Definition
Below the Solution Management web part is a SharePoint list created from a ‘Change
Management List Definition’ I developed for milestone 21.
3.4 Content Query Web Part
Below the Change Management list is an instance of the Content Query Web Part I
created for milestone 16 to find and display all Solution items in the site collection.
12/22
13. 4.The SharePoint Team Project
The team project was also for a fictitious construction company called ‘Acme’. Students
had to collaborate in the design and setup of a SharePoint application to support the
company’s towing providers. We were expected to perform the following:
• Create a SharePoint Application with internal as well as extranet visibility
• Develop an InfoPath document library
• Develop custom workflows
• Implement Content Management
The project was broken down into the following milestones which we had to meet in
order:
1. Milestone 1:
a. Create SharePoint Application
b. Extend SharePoint Application
c. Configure Extended Site for Forms based Authentication
2. Milestone 2:
a. Implement Site Branding Feature
3. Milestone 3:
a. Implement Intranet Team Site
b. Implement Shared Calendar
c. Create a Shared Contacts List
d. Implement Shared Sales Deck
e. Implement Monthly Newsletter CMS site
4. Milestone 4:
a. Implement Custom Venders List
b. Create InfoPath Purchase Order Form
c. Create Purchase Orders Custom Form Library List Definition
d. Create InfoPath Invoice Form
5. Milestone 5:
a. Implement InfoPath Invoice Form
b. Implement Vender Site Definition
6. Milestone 6:
a. Implement Purchase Order Workflow
7. Milestone 7:
a. Implement Purchase Order Approval Workflow Feature
I handled the work for all of Milestone 4, and Part a of Milestone 5.
13/22
14. 4.1 The Purchase Order InfoPath Form
For Milestone 4, part b, I developed the following InfoPath form which was meant for the
user to submit purchase order data to a form library. The Reference Number is
calculated by the form based on the date and time. The form retrieves the names of the
Vendors from the Venders list for the ‘Vender’ dropdown list. Based on the vender
selected and the Distance entered, the Rate is retrieved from the Venders list and the
Charge is calculated and shown dynamically. This form was submitted to the Purchase
Order form library which was created for Part c of the same Milestone.
4.2 The Invoice InfoPath Form
Similar to the Purchase Order form I developed the Invoice InfoPath form shown below
for Milestone 4, part d.
14/22
15. The form retrieves and displays purchase order data from the Purchase Order list. This
form is displayed on selection of the ‘New’ option in the Invoice List, and its data is
submitted to the same form library list.
I also developed an ‘Invoice’ ECB menu item for the purchase order list. The menu item is
shown open below. Selecting the ‘Invoice’ option in the Purchase Orders list led to the
display of an ASP.NET application page (shown next) which I developed. In the web
form, the user could review purchase order data retrieved from the purchase orders list,
enter invoice data, and submit it to the invoice form library.
15/22
17. The invoice list below shows invoice list items created by the process described above.
The ASP.NET page serializes the invoice data and submits it to the Invoice list. The
following screenshots show the code for this web form.
17/22
20. 5.Appendix 1: SharePoint Training
Curriculum
Below is a description of SetFocus' SharePoint Training curriculum for The Master's
Program. SetFocus utilizes the Microsoft Official Curriculum (MOC) seen below
customized with its own training materials. In addition to the outline below, SetFocus has
developed labs, projects, and exams to test appropriate knowledge transfer.
ASP.NET & XML Review
Master pages and site navigation
Web Parts
Security
Profiles
Themes, skins and localization
Basic XML
Validating XML
SharePoint for Administrators
Planning
Installing
Configuring the server
Preparing
Roll-out
Providing support
Managing the server
Configuring external access
Customized Student SP Admin Project
SharePoint for Developers
Introduction to SharePoint Development
Site Columns and Content Types
Extending Lists with Office 2007
Authentication and Authorization
Forms Based Authentication and Anonymous Access
SharePoint Architecture
20/22
21. Features
Solution Development
Categorized Document Library
Site Definitions
Programming Fundamentals
Creating User Controls and Web Parts
Advanced List Concepts
Customized Student SharePoint Development Project
Branding & Web Content Management
Introduction to MOSS Publishing
Branding
Creating a Publishing Site Definition
Content Types and Page Layouts
SharePoint Site Design
Content Management
Navigation and Search
Aggregation Information
Customized Student SharePoint Branding & Web Content Management Project
SharePoint Business Processes
Out-of-the-Box Business Process Automation
SharePoint Designer Workflows
Working with SharePoint Designer and Custom ASP.NET Forms
Using InfoPath Forms with SharePoint
Custom Workflows and the SharePoint Object Model
Visual Studio 2008 Workflow Development Basics
Workflow Tasks
Workflow Forms
Customized Student SharePoint Business Processes Project
SharePoint Portal Management
Collaboration Portals
Personalization and My Sites
21/22
22. Business Data Catalog
Office Forms Services
Excel Services
Customizing Search Center
Programming with the Search API
Document Management
Customized Student SharePoint Portal Management Project
Customized Team SharePoint Final Project
22/22