39
| Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

| Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Embed Size (px)

Citation preview

Page 1: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

| Lausanne

Real Internet Sites with SharePointManuel Conti, Victor RatiuSogeti Switzerland

Page 2: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Agenda

Agenda

Overview & project execution tips10’

Victor Ratiu – [email protected]

SharePoint 2013 in action: how to approach the dev phase 50’Manuel Conti – [email protected] @manuelconti

Page 3: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

| Lausanne

Overview & project execution tips

Chapter 1/2

Page 4: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

First, a bit about SharePoint

What a great tool, it just does so much. Your company may alread have SharePoint, for a number of reasons.

The problem with power... Is that you can do whatever good… or bad… you want A simple “Let’s integrate SharePoint” without a plan will mean that each part of the

organization will… Make infrastructure choices Develop information architecture Create their own taxonomies Build their own workflows Create individual governance and maintenance policies

Page 5: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Do what you want with a tool…

Page 6: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Understand your web site’s goals

Informative

• Company image• Blog

Brand / Campaign

• Brand image• Help increase

awareness• Increase market

share

eCommerce

• Directly tied into revenue

Page 7: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Just a Web Site: Looks easy, right?

Page 8: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Execute StrategyAgile – SCRUM methodology

Iterative developments will allow us to focus on delivering the highest business value in the shortest time

Every sprint, client can see real working software

Page 9: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Agile SCRUM Tips for an Internet Project First sprint is usually different. Following a small waterfall

model & different timing helps put things in place. POC / demo. Manage expectations.

Good example: Home page with full visual and one working element.

2 weeks local, 3 weeks distributed Client must respect the feedback timing Sprints don’t replace milestones

Define milestones (POC, content entry phase, finalized design, …)

It’s not a way to apply pressure, it’s a way to work closely

Page 10: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Content entry & migration

Design phase: min, normal, max contentStart content entry as early as possible: It’s always underestimated. Train your authorsContent entry is a form of UAT. Create a content entry planning based on deliveries of sectionsPut a process in place for real content for the development team: stop bugs before they startCreate/suggest a content bibleExpectation Reality

Page 11: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Governance Plan Suggestions

1. Objective / Mission Statement: What are we doing?2. Hardware: Equipment, storage, network. Where, how, renewal,

upgrades, rules…3. Location and system access: Physical & logical4. Operational support rules: backup, updates, change management,

content cycle for developers5. Definition of groups, actors, roles, and their responsibilities: Who does

what6. Application use: What does the solution propose for each person7. Content & Branding Rules, Visual charter, guidelines8. Navigation: UI, menu rules, Information Architecture9. Training Plan: IT, Business, End User, Knowledge Transfers10. Support: Who is in charge, what is the support model

Page 12: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

These are flexible, organic, people-oriented projectsThe project must adapt to the people and work culturePeople‘s minds will change, especially in large scale projects: keep buffer for thisDrive the project with your business-oriented vision, don‘t go in many directionsAt the development level, code must be written flexibly because it is bound to change

Page 13: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

| Lausanne

Let’s go deeper in the code

Chapter 2/2

Page 14: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

What do you need?

Pure SharePoint Developer• High skilled with WSP solutions and web parts• Mr(s). Powershell• The SharePoint Object Model has not secret

anymore• Eats SPContext every morning• Most known as “In my machine it works just

fine”

Pure Web Developer• JQuery, JQuery and…a bit of JQuery!• HTML5 and its cousins• Yeah, don’t worry…I can handle C#

Page 15: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Let’s be honestWhat you really need…

Page 16: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

is Chuck!Your SharePoint developers are more than this…they also know very well the .NET framework, the life cycle of a page; they don’t follow the wizards but they want to be pioneers in what they are doing.

Of course they know very well JQuery as well as the html and CSS. It is mandatory that they can handle the IIS configuration, its strengths and weakness, in order to optimize the perfect software architecture.

And, last but not least: they love the internet!

Page 17: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility

The facts

The internet is a world completely apart and the html produced by SharePoint is not compliant enough with the W3C standards.

For an internet web site it is mandatory to be W3C compliant and to support all the browsers.

Never forget: you don’t know your endusers but they will remember if their experience was horrible.

Page 18: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility

Browsers SupportBig improvements have been done with the browsers and actually every day we use different browsers with our SharePoint, but - again - the Internet is something different.

Page 19: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility, but...

SharePoint 2010Validation of a simple publishing page without web parts: 113 errors, 7 warning(s)

SharePoint 2013Validation of a simple publishing page without web parts: 78 Errors, 1 warning(s)

Page 20: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility

FlexibilityThis is the main keyword you have to keep in mind. Help your developers to improve their productivity and try to split as much as you can your business logic from your design and integration

Avoid this…

Page 21: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility

One solutionKeep in mind that SharePoint is based on .NET framework. Use it! Differently view engines are available on the market.We have used Spark view engine with SharePoint 2010, but with SharePoint 2013 Razor it is a valid alternative

Avoid the ViewState when you can! You are in a internet web site. Each byte saved is important

Page 22: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

HTML Compatibility

Spark inplementationThe goal is to split completely the code from the design and optimize the time spent by a designer to consume objects and data. Using spark, which is compiled at runtime, if you want to change something you have to deploy just the file and not the whole WSP, which implies a server downtime.

Incoming Request

View Factory

Spark Loader

Model BinderSPContext.Current.Item

Server Response

SharePoint

When you create your model use standard DTO and serialize them. JSON will be the easiest way to communicate via ajax

Page 23: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Time for a demo?

Page 24: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

DemoIntegration of Spark View Engine and SharePoint 2013

Page 25: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

SharePoint 2010The navigation (global or current) was driven by the pages and the structure.You can have sites, you have pages or links, but the navigation will be based only on this structure.

No friendly URL at all: in order to have a friendly url you had to write custom code

SharePoint 2013The navigation is business driven and it is not anymore a matter of “structure” but a matter of people: their product, their business, their choice.

Pros• The user can define their own structure directly in the metadata structure• You have friendly URL and not anymore /pages/mypage.aspx• You can assign more URL to the same physical page

Cons• You cannot reuse the same navigation through different site collections (but take a look to http://www.mavention.nl)• Your authors have to learn something new: don’t forget that they will judge your work (even if it is not yours!)

Organize the Navigation

To have friendly url in SharePoint 2010 write a Custom Url Rewrite Provider (http://iis.net)

Page 26: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Organize the Navigation (SP2013)Use the TermStore to create your navigationIn the term store management you have a specific item dedicated to the Site Navigation. You can deeply customize every page. Few keywords to remember:

Term-Driven pages Custom Properties Product Catalog

Page 27: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Organize the Navigation (SP2013)An example of spark syntax and SharePoint 2013With few lines of code you can draw your navigation and obtain the friendly url of a page. Pay attention to the classes you use. The navigation is something that SharePoint put in cache and you can use the specific class for this (TaxonomyNavigation). Often people create an instances of the Taxonomy and the associated termsets. That’s useless!

From msdn: The TaxonomyNavigation static class provides common operations related to the TaxonomySiteMapProvider and NavigationTermSet/NavigationTerm classes, and basic management/querying of the Taxonomy Navigation Cache.

Page 28: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

DemoConsume the Metadata navigation with Spark and SharePoint 2013

Page 29: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Anonymous Access

In order to achieve a functional internet web site you need to have a backend and frontend clearly independent, avoiding content deployement and scheduled operation at the same time

Page 30: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Anonymous Access – First ApproachNo many changes in SharePoint 2013 to give anonymous access to a web application. Keep in mind few points:• Extend your web application: you will

have 2 different IIS web application.

• Play with Alternate Access Mapping to handle the access

• You will be sharing the same content database: no content deployement required!

Main Web Application

Extended Application (anonymous access)

Default Zone(Claims in SP2013)

Internet Zone

Authentication Zone

Shared Content

Database

When you play with Anonymous Access don’t forget the TaxonomyHiddenList: direct anonymous access is required

Page 31: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Anonymous Access – Second ApproachProduct Catalog and Cross-Site Publishing (SharePoint 2013)• Create an authoring site

collection • Associate your items with

specific managed metadata• Publish wherever you want

on other site collections

Your strength is the Search. You can use it either via the Content Search Web Part (INTRANET) or the SearchExecutor class via code

Page 32: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

DemoProduct Catalog and Search

Page 33: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

SEO (Sub Entity Obscure?)

• No site map available: do it on your own

• No MetaTag by default• No Friendly URL

If you use SPARK as View Engine use the binding feature to define all your tags within an XML document (bindings.xml) http://blog.robertgreyling.com/2010/08/spark-bindings-are-you-tired-of-eating.html

SharePoint 2010• SiteMap activable through the site

collection feature Search Engine Site Map. It will create a daily timer job that takes are of the robots.txt and the sitemap.xml. Configure your site map with the url _layouts/15/XmlSiteMapSettings.aspx

• Handle standard MetaTag OOB (Title, Description, Keywords)

• Friendly URL by default

SharePoint 2013

Page 34: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

SEO The PageNotFound generated page from SharePoint 2013 still returns a 200 CODE, which is not correct for a SEO engine. Write a simple HTTPModule to change the returned code

MetaTags

SiteMap

Page 35: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Deployement

• WSP, Content Type and Layouts • GAC or BIN?• WEB.CONFIG?• Taxonomy Import/Export• Minimization and CDN• Cache

Think your deployement strategy

Page 36: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Deployement

SharePoint 2013 offers OOB AppFabric Cache Cluster, where you can easily craete dedicated Regions in order to cache what you need. As far as your objects can be serialized, they can be put in the cache. The main advantages of AppFabric is that it is distributed and immediately updated in all the servers of the cluster. For high traffic web sites you even configured dedicated servers for the cache.

In terms of cache keep in mind also the SharePoint Object Cache (that is not the Output Cache): the default value is normally 100MB but for very large sites (i.e. 3000+ pages) it should be increased

Cache

Pay attention to the throttling of AppFabric, it is based on the physical memory of the machine. If it reaches 75% of the memory you will have unexpected behaviors.Use the Get-CacheClusterHealth Windows PowerShell Command to check it!

Page 37: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Conclusion & Checklist

1. Understand the business goals2. Manage stakeholders3. Agile-SCRUM execution4. Carefully manage content entry5. Collaborate for a good governance plan6. Flexibility: MVC approach7. Metadata navigation: powerful & scalable8. Product catalog or web application extension9. Deployment strategy10. Optimization: minify JS and CSS, CDN, cache

Page 38: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

Thank you!Questions? Suggestions?

Page 39: | Lausanne Real Internet Sites with SharePoint Manuel Conti, Victor Ratiu Sogeti Switzerland

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a

commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a

commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.