Slide1 l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 54

MOSS Sovelluskehitysalustana - Miksi web-sovellukset kannattaa tehdä MOSS:n päälle Aku Heikkerö, Vesa Juvonen Microsoft Consulting Services (MCS) PowerPoint PPT Presentation


  • 178 Views
  • Uploaded on
  • Presentation posted in: General

MOSS Sovelluskehitysalustana - Miksi web-sovellukset kannattaa tehdä MOSS:n päälle Aku Heikkerö, Vesa Juvonen Microsoft Consulting Services (MCS). Agenda. Tekninen alusta ja MOSS:n rakenteet Mitä MOSS tarjoaa sovelluskehittäjille Kehityksessä käytettävät muut työkalut ja mallit

Download Presentation

MOSS Sovelluskehitysalustana - Miksi web-sovellukset kannattaa tehdä MOSS:n päälle Aku Heikkerö, Vesa Juvonen Microsoft Consulting Services (MCS)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Slide1 l.jpg

MOSS Sovelluskehitysalustana - Miksi web-sovellukset kannattaa tehdä MOSS:n päälle

Aku Heikkerö, Vesa Juvonen

Microsoft Consulting Services (MCS)


Agenda l.jpg

Agenda

  • Tekninen alusta ja MOSS:n rakenteet

  • Mitä MOSS tarjoaa sovelluskehittäjille

  • Kehityksessä käytettävät muut työkalut ja mallit

    • WSS3.0 extensions for VS2005

    • Reflector

    • Fiddler

  • Rakenteiden lokalisointi

  • Ajax & Silverlight - Kuinka niitä hyödynnetään MOSS:ssa


Who are we l.jpg

Who are we?

  • Aku Heikkerö

    • Senior Consultant, Team leader, BPIO Service Line, Enterprise Services, Microsoft Finland

    • Member of a worldwide SharePoint Ranger team

    • In Microsoft since 2003. Companies before Microsoft – ICL, Fujitsu

    • Email: [email protected]

  • Vesa ”vesku” Juvonen

    • Software Development Consultant, BPIO Service Line, Enterprise Services, Microsoft Finland

    • In Microsoft since 2006, started IT studies 1996 (graduation took a while). Companies before Microsoft – ICL, Fujitsu, BasWare working as Software Architect, Lead Software Development Engineer etc.

    • Email: [email protected]

    • Blog: http://blogs.msdn.com/vesku


Moss as a software development platform l.jpg

MOSS as a Software DevelopmentPlatform


Sharepoint technology stack l.jpg

Microsoft Office SharePoint Server 2007

Collaboration

Documentand RecordsManagement

WebContentManagement

My Sites

Business Intelligence

Business Application Integration

Search

Windows SharePoint Service 3.0

APIs

Storage

Security

Management

Topology

Site Model

Operating System Services

ASP.NET

ADO.NET / SQL Server

Windows Workflow Foundation

IIS

SharePoint Technology Stack


Anatomy of a page request the typical asp net way l.jpg

Anatomy of a Page RequestThe typical ASP.NET way

Browser:HTTP GEThttp://server/appname

IIS

C:\inetpub\wwwroot\appnameweb.configdefault.aspxmyapp.cssmycontrol.dllmyothercontrol.ascx...

Database


Anatomy of a page request the windows sharepoint services way l.jpg

Anatomy of a Page RequestThe Windows SharePoint Services way

Browser:HTTP GEThttp://server/appname

IIS

all work and no playmakes Jack a dull boyall work and no playmakes Jack a dull boy

WSS

Page

Web Part Instances

List data

List view

Web Part Assemblies

Database

/bin or GACWebPart1.dll

WebPart2.dll

Site DefinitionDefault.aspx

schema.xmlallitems.aspx


Many sites on a single farm the typical asp net way l.jpg

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Default.aspxweb.configotherpage.aspxmystyles.css

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Database

Many Sites on a Single FarmThe typical ASP.NET way

Browser:HTTP GEThttp://server/appname

IIS

Aaaaaaarrrrrggggh!!!!!


Many sites on a single farm the windows sharepoint services way l.jpg

Many Sites on a Single FarmThe Windows SharePoint Services way

Browser:HTTP GEThttp://server/appname

IIS

all work and no playmakes Jack a dull boyall work and no playmakes Jack a dull boy

WSS

page

list data

Web Part Instances

list view

Web Part Assemblies

Database

/bin or GACWebPart1.dll

WebPart2.dll

Site DefinitionDefault.aspx

schema.xmlallitems.aspx


Development with sharepoint l.jpg

DevelopmentwithSharePoint

  • Little bit different then in normal ASP.net projects due the environmental issues

  • Planning of individual tasks has to be done in more detailed level during technical specification

  • Since platform is providing the base services, developers can concentrate more on the business objectives

  • Note. UI configuration options are for end users, not for developers


What you develop for sharepoint technology l.jpg

What You Develop For SharePoint Technology

Services:

Search, Profiling, Audiences

Calculation, Rendering,

Data Access, Migration, etc…

Browser:HTTP GEThttp://server/appname

Schema:Site Definitions

Feature Definitions

List Definitions

Content Types/Fields

Document Templates

Assemblies:Web Parts

Web Controls

Event Receivers

Policies

Workflow Activities

Workflow AssembliesTimer Jobs

Data Manipulation:

(via Object Model)

IIS / ASP.NET

ASP.NET resources:Site Pages

Application Pages

Images

Style Sheets

User ControlsMaster Pages

Navigation Controls

all work and no playmakes Jack a dull boyall work and no playmakes Jack a dull boy

WSS

Database

/bin or GACWebPart1.dll

WebPart2.dll

Site Definitiononet.xmlDefault.aspx

List Definitionschema.xmlallitems.aspx

Web Services

(which call the Object Model)

Remote Clients

(which call the Web services)


Tools for any skill level l.jpg

Tools For Any Skill Level

Designers and Analysts

Professional Developers

Power Users


Development tools l.jpg

Development Tools

  • Microsoft SharePoint Designer does not really fall in the category of development tools but provides a design experience for SharePoint that can be leveraged by developers

  • Visual Studio 2005

    • Extended with WSS 3.0 Extensions for VS2005 v1.1

    • Extended with Windows Workflow Foundation Extensions

    • Extended with Workflow Starter Kit

  • Visual Studio 2008

    • New Visual Studio Tools for Office version

    • Upcoming WSS 3.0 Extensions for Visual Studio v1.2 will support VS2008 – Expect by June 2008


Development environment l.jpg

Development Environment

  • Tools

    • Visual Studio 2005 / Visual Studio 2008

    • Microsoft Office SharePoint Designer 2007

  • Platform

    • Windows Server 2003

    • Windows Server 2008 with SharePoint SP1


Use sharepoint designer to l.jpg

Use SharePoint Designer to…

  • Do design work on one site at a time

  • Examples

    • Write No-code workflows

    • Modify CSS files

    • Edit .aspx pages

    • Add script to pages

    • Customise look & feel of Web Parts

    • Write XSLT to customise data rendering


Use visual studio to l.jpg

Use Visual Studio to…

  • Create code components

    • Web Parts

    • Event receivers

    • Document converters

    • Workflow activities, templates

  • Create provisioning assets

    • Site definitions

    • Feature definitions

    • XSDs provided for validating XML

  • Create solution packages


Windows server 2003 l.jpg

Windows Server 2003

  • Windows SharePoint Services only runs on Windows Server 2003 or later

    • Windows server 2008 installation requires SP1 for the MOSS / WSS

  • You can develop without it, but…

  • You need a copy to deploy/debug

  • Options

    • Make it your development OS

    • Run it in a Virtual PC

    • Have a standalone server at your disposal


Development environment18 l.jpg

3

2

4

1

Development environment

  • Developer with dedicated MOSS

    • Run it in a Virtual PC

  • Another developer with separate module responsibilities

  • Other project members

    • Observe project progress

  • Development Server

    • Ideally automated process to build daily versions based on labelled artefacts in the source control


Profile of a sharepoint developer l.jpg

Profile of a SharePoint Developer

  • WSS 3.0 + MOSS 2007 Power User/Administration

  • Understand WSS 3.0 architecture

  • Skilled in .NET 2.0 development languages

  • Skilled in .NET 3.0 (WF + AJAX/Silverlight)

  • Skilled in ASP.NET 2.0

    • Master pages, Web Parts, Provider Model, Security, …

  • Love CAML

  • Understand how to approach a project architecting it using Features and Solutions


Types of solutions to build l.jpg

Types of Solutions to Build

  • Code-based solutions

    • .NET assemblies extending the SharePoint platform

    • Custom site and application pages

  • Schema-based solutions

    • New definitions of templates (site, list, field, ...)

    • Custom actions in the user interface

  • Combination of both(Most of the Time!)


Deploying sharepoint solutions l.jpg

Deploying SharePoint Solutions

  • Add .WSP to the solution store

    • Via command line using STSADM

    • Via object model

  • Deploy to all or individual Web Applications

    • Via Central Administration (solution mgmt)

    • Via Command-line

    • Via Object Model

Stsadm –o addsolution –filenamemypackage.wsp

Solution Store

stsadm -o deploysolution -namemypackage.wsp –local -url IISWebApp

Front-End Web Servers


The wss system directories l.jpg

The WSS System Directories

  • Developers must learn WSS system directories

    • \12\TEMPLATE

    • \12\TEMPLATE\FEATURES \12\TEMPLATE\IMAGES

    • \12\TEMPLATE\LAYOUTS


Iis web sites l.jpg

IIS Web Sites

  • WSS depends on IIS Web sites for…

    • HTTP listener mechanism

    • Process management through Application Pools

    • Security and user authentication


The wss extended web application l.jpg

The WSS-extended Web Application

  • Web Applications extend IIS and ASP.NET

    • IIS wildcard application map sends all requests to ASP.NET

    • ASP.NET extended using common objects inside HTTP pipeline

    • Web Application configured with WSS system virtual directories

      • _layouts

      • _controltemplates

      • _vti_bin

      • _wpresources


The wss extended web config file l.jpg

The WSS-extended web.config file

  • WSS replaces HttpApplication object

  • WSS configures pipeline with its own HttpHandler and HttpModule

<!-- global.asax file at root of WSS Web Application -->

<@Application Inherits=”Microsoft.SharePoint.ApplicationRuntime.SPHttpApplication” >

<!-- web.config file at root of WSS Web Application -->

<configuration>

<system.web>

<httpHandlers>

<removeverb="GET,HEAD,POST"path="*" />

<addverb="GET,HEAD,POST"path="*"

type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler,..." />

</httpHandlers>

<httpModules>

<clear />

<addname="SPRequest"

type="Microsoft.SharePoint.ApplicationRuntime.SPRequestModule,..." />

<!-- other standard ASP.NET httpModules added back in -->

</httpModules>

</system.web>

</configuration>


Wss extensions to the web config file l.jpg

WSS Extensions to the web.config file

<configuration>

<configSections>

<sectionGroupname="SharePoint">

<sectionname="SafeControls"type="..." />

<sectionname="RuntimeFilter"type="..." />

<sectionname="WebPartLimits"type="..." />

<sectionname="WebPartCache"type="..." />

<sectionname="WebPartWorkItem"type="..." />

<sectionname="WebPartControls"type="..." />

<sectionname="SafeMode"type="..." />

<sectionname="MergedActions"type="..." />

<sectionname="PeoplePickerWildcards"type="..." />

</sectionGroup>

</configSections>

<SharePoint>

<SafeMode />

<WebPartLimits />

<WebPartCache />

<WebPartControls />

<SafeControls />

<PeoplePickerWildcards />

</SharePoint>

</configuration>


Important debugging settings l.jpg

Important Debugging Settings

set to true

set to Off


The virtual file system of a site l.jpg

The Virtual File System of a Site

  • Site is a virtual file system

    • made up of folders and files

    • Pages are files

    • Documents are files

    • Stored in content database

  • How can you look at it?

    • SharePoint Designer

    • Windows Explorer (WebDav)


Processing pages within a site l.jpg

Processing Pages within a Site

  • WSS stores.aspx files in content database

    • Retrieved using SPVirtualPathProvider object

    • Page based on page templates on Web server

    • Non-customized pages can be ghosted

    • Customized pages cannot be ghosted


The layouts virtual directory l.jpg

The _layouts Virtual Directory

  • Files in _layouts directory accessible to all sites

    • _layouts provides access to common resources

    • _layouts contains files for images, CSS and JavaScript

    • _layouts contains Application Pages

  • All these URLS resolve to the same page

    • http://Litwareinc.com/_layouts/settings.aspx

    • http://Litwareinc.com/sites/Vendors/_layouts/settings.aspx

    • http://Litwareinc.com:1001/sites/Accounting/_layouts/settings.aspx


Lokalisointi l.jpg

Lokalisointi


Localization techniques l.jpg

Localizationtechniques

  • Different techniques for different functionalities

    • XML file localization

    • Aspx & master page localization

    • WebPart / WebControl localization

    • Portal structure localization

  • SharePoint localization is based on standard .NET localization techniques

    • Resources + Thread culture


Xml localization l.jpg

XML Localization

  • XML files are localized in provisioning time

    • Site definitions for example translated during site creation process


Aspx master pages l.jpg

Aspx & Masterpages

  • Translations are done in runtime based on resource file and key

  • Files are from app_GlobalResources


Webpart webcontrols l.jpg

WebPart & WebControls

  • Resource files (RESX) have to be present in the App_GlobalResources

  • Translations available from HttpContext


Portal structure l.jpg

Portalstructure

  • Lists

  • Libraries

  • Variations


How to deploy resx files to app globalresources l.jpg

How to deploy RESX files to App_globalResources

  • Deploy RESX files to 12 hive\resources

  • Create a custom job definitions, which copies the files to app_GlobalResources folder


Useful tools l.jpg

Usefultools


Fiddler l.jpg

Fiddler

  • Logs all HTTP traffic between your computer and the Internet


Reflector l.jpg

Reflector

  • View, navigate, search, decompile and analyze .NET assemblies


Ajax silverlight l.jpg

Ajax & Silverlight


Asp net ajax l.jpg

ASP.NET AJAX

  • Create next-generation interfaces with reusable AJAX components.

  • Enhance existing pages using powerful AJAX controls with support for all modern browsers.

  • Access remote services and data from the browser without tons of complicated script.

  • Take advantage of the improved efficiency and ease of use in Visual Studio 2008, with its built-in support for ASP.NET AJAX, improved JavaScript support, and a new Web page designer interface.


Integrating asp net ajax with sharepoint l.jpg

Integrating ASP.NET AJAX with SharePoint

  • Extensions to JavaScript

    • Robust JavaScript libraries and frameworks which are commonly needed by rich internet applications

  • ASP.NET Control Extenders

    • Additional ASP.NET controls which can extend the functionality of existing controls with additional Ajax capabilities

  • UpdatePanels

    • No-postback updates of Ajax-based applications


Common scenarios l.jpg

Common scenarios

  • Re-usable JavaScript libraries you can use in your web controls and parts

  • Enabling your web services to render via JSON, resulting in easier usage in JavaScript/Ajax Applications

  • Building a web part that takes advantage of Extender technology to provide richer interaction styles, such as autocomplete on a textbox.

  • Using an UpdatePanel in a web part or control for more fluid, no postback interaction.


Install and configure ajax l.jpg

Install and Configure AJAX

  • Get ASP.NET AJAX 1.0

    • http://www.asp.net/ajax/

  • Install on each WFE

  • Modify the web.config on each WFE

    • Follow the steps at: “Using a Web Application Feature to Modify web.config(Ted Pattison BLOG entry)”

  • .NET 3.5 – SharePoint SP1, .NET 2.0 SP1


Microsoft silverlight l.jpg

Microsoft Silverlight

Cross Browser

Cross Platform

Plug-In

.NET

Media Experiences

RIA


Current state of silverlight l.jpg

Current State of Silverlight

  • Silverlight 1.0

    • 100% JavaScript-driven applications

  • Silverlight 1.1 / 2

    • Managed applications -> DLLs

    • Small .NET Framework footprint

    • Applications are packaged -> XAP


Silverlight and sharepoint l.jpg

Silverlight and SharePoint

  • WSS 3.0 Service Pack 1 adds support

  • Prep work still needs to be done in config

  • Why Silverlight and SharePoint?

    • WSS = Dev Platform for IW Solutions

    • IW experience can be enriched with Silverlight

      • Dynamic interaction with data

      • Better visualization of complex data

      • Multi-media experience

      • More client-driven work with SharePoint

      • Look and feel of external SharePoint sites


Silverlight blueprint for sharepoint l.jpg

Silverlight BluePrint for SharePoint

  • Project started September 2007

  • Goals

    • Jumpstart for SharePoint developers

    • Focus is on how to integrate both worlds

    • Showcase of different techniques

    • Show possible usage scenarios of Silverlight in the world of SharePoint

  • http://www.ssblueprints.net/sharepoint


Use silverlight in sharepoint l.jpg

Silverlight BluePrint for SharePoint

Following needs to be in place in order to get it working:

Silverlight 2 plug-in

service pack 1 installed for WSS 3.0 and service pack 1 for MOSS 2007

System.Web.Extensions.dll (make it sure that it can be found from GAC)

Microsoft Silverlight 2 SDK Beta 1

.NET 3.5 (AJAX) + Silverlight configurations in the web.config

MIME type (application/x-silverlight-2-b1)

Use Silverlight In SharePoint


More information l.jpg

Moreinformation

  • SharePoint community

    • http://sharepoint.microsoft.com/sharepoint/

  • SharePoint product team blog

    • http://blogs.msdn.com/sharepoint/

  • Visual Studio structure used in demos and more guidelines (in future)

    • http://blogs.msdn.com/vesku


  • Login