10232 Designing and Developing Microsoft SharePoint
Server 2010 Applications
About this Course
This five-day instructor-led course is intended for Microsoft
SharePoint Development professionals who are responsible for
leading projects, designing solutions, and identifying problems. In
this course, students learn the skills and best practices that are
required to help organizations design and develop effective
SharePoint applications.
WE CAN CUSTOMIZE THIS COURSE FOR YOU, LEARN MORE.
Audience
This course is intended for IT professionals who will be
responsible for designing custom code for projects that are
deployed to SharePoint 2010 servers. To be successful in this
course, the student will have at least two years of SharePoint
development experience and should have experience with ASP.NET and
Microsoft Visual Studio 2010.
Prerequisites
This course requires students to meet the following
prerequisites:
- Understanding of the problem-solving techniques that apply to
the Software Development Life Cycle (SDLC), including the
versioning of software and the management of configuration and
content in a software system
- Basic knowledge of Web application architecture
- Experience in developing in a team environment
- Working knowledge of ASP.NET and Visual Studio
- Experience in SharePoint infrastructure including servers and
services
- Experience in SharePoint development including the APIs and XML
schemas necessary to create web parts, perform data access, and
provision fields, lists, content types, etc.
At Course Completion
After completing this course, students will be able to:
- Develop strategies for caching, session state, as well as
design for high performance sites by limiting page size and
iteration.
- Determine the most suitable presentation method, visual
elements, programmatic objects and multilingual strategy which
meets the design objectives.
- Evaluate available data access and storage methods and
determine the appropriate implementation for the application
requirements.
- Identify the pros and cons of various data capture options and
specify the most effective method or combination of methods for
capturing user input.
- Evaluate the use and implementation of SharePoint artifacts and
determine which artifacts best meet the needs of the application
requirements.
- Design processing systems to get work done in the
solution.
- Create an effective strategy for implementation and deployment
of custom solutions in both development and production
environments.
- Create a development strategy to allow multiple developers and
administrators to work together.
- Devise a strategy for developing and deploying upgrades over
time as the solution evolves.
- Develop an information architecture strategy that will support
flexibility and growth and a navigation strategy that fits on top
of this information architecture.
- Plan a comprehensive branding strategy and determine the
necessary application elements required to support that
strategy.
- Design and implement a security approach which supports both
code access and end-user functionality.
- Design an effective strategy for optimizing page render times
and data access methods within SharePoint 2010.
- Determine the appropriate use of unit and integration tests
within SharePoint and design an effective strategy for ensuring
maximum code reliability.
Course Outline
Module 1: ASP.NET Advanced Concepts for
SharePoint
This module helps you to review the essential information
regarding ASP.NET including how to improve performance for
high-scale sites like SharePoint. This module covers concepts
around ViewState, caching, and session state and provides an
opportunity to learn to make appropriate choices.
Lessons
- Server Memory
- Server CPU
- Transfer and Client
Lab : Page Size and ViewState
- Using Fiddler to Observe Page Loading
- Using Fiddler to Examine Page Size
- Reducing Page Size
Lab : Memory and Performance
- Starting a Performance Capture
- Reviewing the Report
- Resolving Memory Issues and Retest
After completing this module, students will be able to:
- Review the fundamentals of memory management.
- Identify the key things to drive high CPU utilization.
- Identify factors impacting client performance.
Module 2: Designing for User Experience
This module provides the key criteria and structure necessary to
make appropriate decisions about what kind of user interface
component to use based on the needs of the solution.
Lessons
- SharePoint Background
- Page Parts
- Pages
- Globalization and Localization
- Designing for Accessibility
Lab : Selecting Page Parts
- Line Dashboard
- Manager's Dashboard
- Alert Notification
Lab : Selecting Page Types
- Plant Summary Page
- Plant Configuration Page
- Employee List
- Line Status
After completing this module, students will be able to:
- Review the fundamentals of SharePoint architecture and how it
impacts the page design experience.
- Determine the appropriate page part in SharePoint for a given
situation.
- Determine the appropriate page in SharePoint for a given
situation.
- Identify the considerations for globalizing and localizing your
applications.
- Determine the design impact of WCAG standards for projects
requiring accessibility compliance.
Module 3: Designing for Data
This module explains defining what storage will look like. This
module discusses the information about data design critical to the
performance and accessibility of the solution. The module also
covers scalability issues related to data as well as the structural
components such as the use of lists, list definitions, content
types, and fields.
Lessons
- List and Library Fundamentals
- Large Data Strategies
- SharePoint Data Management
Lab : Time Tracking
- Creating List Views
- Adding Indexes
Lab : Invoice Management
- Creating an Invoice Content Type
- Enabling Content Organization
- Testing Content Organization
After completing this module, students will be able to:
- Review the fundamentals of foundation for operating with data
in SharePoint.
- Evaluate data size to arrive at potential solutions for large
data storage needs.
- Manage data to arrive at an appropriate data access
strategy.
Module 4: Designing Data Capture and
Integration
This module discusses strategies on how to get the data into the
system. This module covers the techniques for capturing data -
including office integration and integrating to other systems with
BCS.
Lessons
- Key Considerations for Data Capture
- Designing for Data Capture
- Designing for Integration
Lab : Creating External Lists
- Connecting to the Data Source
- Defining the External Content Types
- Defining the External Lists
- Setting Security for the Content Types
- Defining an Association
Lab : Creating an InfoPath Form
- Creating the Calculations
- Publishing the Form to a SharePoint Library
After completing this module, students will be able to:
- Identify the key considerations for data capture in
SharePoint.
- Apply the appropriate approach to data capture in
SharePoint.
- Identify the integration options and technologies that are
built into the SharePoint platform including the Business Data
Catalog (BDC) and Business Connectivity Services (BCS).
Module 5: Designing Artifacts
This module discusses items that will need to be implemented in
SharePoint to tie the user interface and the data structure
together. The module covers information about artifacts to begin
the transformation of the abstract design into a specific set of
deliverables that need to be created through SharePoint.
Lessons
- Customer Requirements
- Creating Sites
Lab : Incident Response Site
- Evaluating the Requirements
- Designing the Solution
Lab : Expense Reports
- Evaluating the Requirements
- Designing the Solution
After completing this module, students will be able to:
- Implement the techniques for evaluating and refining customer
requirements.
- Determine an approach for matching customer requirements to
SharePoint artifacts.
Module 6: Designing Processing Solutions
This module covers the details of options for developing
solutions. The module provides decision criteria for the
determination of sandbox versus full trust (or a hybrid of the two)
deployments. The module also provides details for making decisions
about processing including how to address long running operations
and how to decide the appropriate processing solutions.
Lessons
- Multiserver Configurations
- In and Out of the Sandbox
- Getting Work Done
- Working with Workflows
Lab : Designing an Engineering System
- Evaluating Client Capabilities and Requirements
- Evaluating Sandbox Capabilities and Requirements
- Evaluating Farm Deployment Capabilities and Requirements
Lab : Creating a Sensor Report
- Designing Data Access for Sensor Data
- Designing a Processing Solution for the Report
- Designing a Processing Solution for the Approval
After completing this module, students will be able to:
- Explain the processing solutions and approaches that must be
created when working in a multiserver environment.
- Identify the benefits and limitations of the SharePoint Sandbox
features.
- Determine the choices available for in-page, client, event
receiver, workflow, and timer execution models.
- Evaluate how SharePoint workflows are executed and the factors
impacting design.
Module 7: Designing Packaging
This module addresses the first order problem of factoring the
solution into features and packages so that it can be upgraded.
This module covers the baseline skills of determining the number,
scope, and dependency of features and determining the right number
of packages.
Lessons
- Understanding Packaging Life Cycle
- Establishing Design Principles
Lab : Building a Business Document Solution
- Designing a Solution
- Create the Final Solution
Lab : Working with Dependencies
- Creating a Common Assembly
- Creating a Dependent Solution
After completing this module, students will be able to:
- Explain how packages are created and delivered.
- Determine the size of features to be able to effectively
maintain the given solution.
Module 8: Designing a Development Strategy
This module focuses on two key items necessary to deploy larger
solutions, configuration and logging. This module provides the
students a platform to expand the scope of the solution and focus
on issues related to dozens of projects on a server, each with its
own approach to configuration and logging.
Lessons
- Developing for the Enterprise
- The Role of Logging
- The Benefits of Application Configuration
Lab : Team-Based Logging and Configuration
- Appraising the List-Based Configuration
- Using a SharePoint List-Based Configuration
- Using SharePoint List-Based Logging
- Configuring the Logging Level
Lab : Operational Logging
- Adding Logging to SharePoint ULS
After completing this module, students will be able to:
- Identify the team development needs for SharePoint.
- Explain operational and diagnostic logging including the
differences and the options for recording.
- Determine the options for storing configuration in a SharePoint
environment.
Module 9: Developing Version and Deployment
This module delves into the challenges of versioning in a
SharePoint environment. The module also addresses deployment issues
because most deployment issues are related to the versioning
process.
Lessons
- Application Life Cycle Management
- Source Control and Build
- Versioning Strategy
- Upgrading
- Deployment
Lab : Versioning Assemblies
- Defining Base Version
- Upgrading the Assembly
Lab : Feature Upgrade
- Creating Upgrade Manage Page
- Adding Feature to Upgrade
- Upgrading Feature
After completing this module, students will be able to:
- Review the fundamentals of the software development life cycle
and its relation to configuration management.
- Design a Source Control and build strategy.
- Determine the approach for versioning a given application.
- Address specific concerns for upgrading a given application
that has been deployed to production.
- Assess the effectiveness of deployment strategy.
Module 10: Designing Information Architecture and
Navigation
This module helps to draw the distinction between information
architecture and branding topics. The module helps to separate
taxonomy (organization) from navigation (user interface).
Lessons
- Understanding Information Architecture
- Planning for Software Boundaries
- Navigation
Lab : Developing a Site Structure
- Using Card Sort
- Designing Content Types and Site Columns
Lab : Implementing Farm-wide Navigation
- Deploying a Custom SiteMap
- Adding an ASPmenu to a Custom Master Page
After completing this module, students will be able to:
- Determine the technique necessary to develop an information
architecture based on SharePoint.
- Explain the scalability concerns for individual items in
SharePoint in the context of information architecture.
- Determine the appropriate navigation solution for a given
application.
Module 11: Designing Branding and Customization
Support
This module covers branding options, including what tools can be
used to customize the appearance. The module moves us to including
the users and power users of the ultimate solution.
Lessons
- Introduction to Branding
- Branding Options
- Branding Decisions
- Managing User Experience
- Planning for Customization
Lab : Packaging Branding
- Importing .wsp Files Into Microsoft Visual Studio
- Extracting the File Resources
- Writing the Feature Receiver to Apply Changes
- Testing the Changes
Lab : Improving Brand Performance
- Observing Current Performance
- Turning on BLOB Caching
- Observing BLOB Cached Performance
- Observing _layouts Performance
After completing this module, students will be able to:
- Identify the need for branding and how it impacts the overall
project.
- Enumerate the branding options and their various strengths and
weaknesses.
- Identify the decisions to arrive at the best approach to
branding.
- Design a user experience that includes branding.
- Create a strategy for managing customizations.
Module 12: Designing Security
This module describes how to design security for performance and
provide a holistic view so to evaluate security implications and
tradeoffs. This module also outlines the new Claims-Based
authentication in SharePoint 2010 and how Forms-Based
Authentication fits into this model.
Lessons
- Security Within SharePoint
- Using an Alternate Identity Store
- Forms-Based Authentication
- Deeper Look at SharePoint Claims
Lab : Setting Up a Customer Service Site
- Setting Up the Authentication Provider
- Creating an FBA-Claims Site
- Optional Exercise: Viewing Claims for an FBA User
Lab : Solving a Security Issue
- Understanding the Scope and Relating it to Configuration
- Designing a Security Strategy
After completing this module, students will be able to:
- Explain the role of security in SharePoint.
- Evaluate the impact of alternate identity stores on a given
security approach.
- Discuss the challenges and impact of Forms-Based authentication
toward solving security concerns.
- Dissect SharePoint Claims implementations.
Module 13: Designing for Page and Data Access
Performance
This module discusses page and data access performance and how
to plan for a high performance site.
Lessons
- Optimizing SharePoint Page Performance
- Analyzing Performance with the SharePoint Developer
Dashboard
- Optimizing SharePoint Data Access Performance
Lab : Designing for Page and Data Access
Performance
- Using the SharePoint Server 2010 Developer Dashboard to Capture
Performance Metrics
- Leveraging the SharePoint Server 2010 Search API for Large Data
Queries
After completing this module, students will be able to:
- Explain how SharePoint pages are built for optimized
performance.
- Evaluate pages with performance issues in terms of elapsed time
as well as database impact by using the SharePoint Developer
Dashboard.
- Determine an appropriate SharePoint data access technique to
deliver SharePoint data quickly and efficiently for a given
scenario.
Module 14: Designing a Testing Strategy
This module discusses what we do at the end of the development
process, testing. The module also covers functional testing and
scale/performance testing.
Lessons
- Testing Concepts
- Unit Testing
- Integration Testing
- Performance Testing
Lab : Designing a Testing Strategy
- Conducting Unit Testing
- Conducting Performance Testing
- Conducting Load Testing
After completing this module, students will be able to:
- Evaluate the core testing concepts and their impact on
quality.
- Evaluate the core concepts of unit testing.
- Evaluate the core concepts of integration testing.
- Test the performance of a given solution.