tushar mahapatra - portfolio for sharepoint projects
DESCRIPTION
Tushar Mahapatra - portfolio for SharePoint projectsTRANSCRIPT
Contents1. 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
3.5 The Purchase Order InfoPath Form...............................................................14
3.6 The Invoice InfoPath Form............................................................................14
5. Appendix 1: SharePoint Training Curriculum.......................................................20
1. IntroductionThis 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/23
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.
1.1 ProjectsAs 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, TheSharePoint Team Project, describes my involvement in my team project.
6/23
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/23
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.
1.2 Create Solution Site Web PartThe 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/23
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/23
At line 340 in the picture above, the ‘IsAuthorized’ function is called. The code for the function is shown below.
10/23
1.3 Solution Management Web PartBelow 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/23
1.4 Change Management List DefinitionBelow the Solution Management web part is a SharePoint list created from a ‘Change Management List Definition’ I developed for milestone 21.
1.5 Content Query Web PartBelow 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/23
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/23
1.6 The Purchase Order InfoPath FormFor 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.
1.7 The Invoice InfoPath FormSimilar to the Purchase Order form I developed the Invoice InfoPath form shown below for Milestone 4, part d.
14/23
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/23
16/23
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/23
18/23
19/23
20/23
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
Features
21/23
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
Business Data Catalog
Office Forms Services
22/23
Excel Services
Customizing Search Center
Programming with the Search API
Document Management
Customized Student SharePoint Portal Management Project
Customized Team SharePoint Final Project
23/23