Nsc 2013 06-17 - random rants on 2013
-
Upload
mikael-svenson -
Category
Technology
-
view
2.119 -
download
1
description
Transcript of Nsc 2013 06-17 - random rants on 2013
![Page 1: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/1.jpg)
Highs, lows & random rants on SharePoint 2013
IMPLEMENTING A GOVERNANCE AND QUALITY MANAGEMENT IN SHAREPOINT 2013
NORWEGIAN SHAREPOINT COMMUNITY – 2013-06-17
![Page 2: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/2.jpg)
Brought to you by
![Page 3: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/3.jpg)
Mikael@MIKAELSVENSON
TECHMIKAEL.BLOGSPOT.COM
![Page 4: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/4.jpg)
Harald@CMDRTCHORT
WWW.FIANBAKKEN.COM
![Page 5: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/5.jpg)
Processes and DiagramsAKA THE IMPORT
![Page 6: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/6.jpg)
File share, I loveth thee!• Data stored in external system
• Exported as static HTML files to remote server, along with Diagrams (images)• Exposing metadata as <META>
• Clickable <img> tags (image maps).
• Synced (RoboCopy) to server from static html files on a file share
• Imported to SharePoint and transformed • Custom import job
• Publishing pages
![Page 7: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/7.jpg)
Publishing Page Library
Document Library
SPSite
GIMS Frontend
Pages GIMS Docs
Integration Architecture Legend
Timer Job
SharePoint 2013
Taxonomy(Managed Metadata)
QLM Generated HTML PagesQLM
Qualiware Importer Timer Job
Taxonomy(Managed Metadata)
DiagramLibrary
Flow, or pull as we call it
![Page 8: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/8.jpg)
Scrape, scrape, baby• Processes and parses a set of files
• Generic processing and parsing• Reading <META> template
• Determines what SPContentType the type and constructs typed objects. • Specific parsing for certain objects
• E.g. Selecting a WorkflowDiagramProcessor
• Uses reflection
• Parses meta data values• Maps META headers to properties by convention
• Specific mapping
• Cleans HTML• Remove javascript
• Remove onclicks, table headers++
![Page 9: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/9.jpg)
Object model cat walk
• POCO’s
• Puzzle Framework
• SharePointations• Annotations
• Auto-generate stuff
![Page 10: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/10.jpg)
Workflows & Workflow Manager
AKA THE DONKEY
![Page 11: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/11.jpg)
Where is it?Sites based on a blank template does not work out of the box – Won’t let you create 2013 based workflows.
Enable-SPFeature -Identity WorkflowServiceStore –Url $yourUrl
![Page 12: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/12.jpg)
Why don’t you love me?At random times, workflows are getting cancelled
Details: System.ApplicationException: HTTP 401…
• User Profile Synchronization has to be started
• User Profile must exist for the user kicking of the workflow
![Page 13: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/13.jpg)
You can’t handle the truth!Workflow is suspended
Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.ArgumentNullException: Value cannot be null
• Typically sending an e-mail fails as the user does not have e-mail address
• User is not synched to SiteUserInfoList with e-mail address
![Page 14: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/14.jpg)
I don’t want to be approved!• You want custom task outcomes
• No matter what the user picks as a result, the default outcome is returned in the workflow, meaning option one - Approve.
![Page 15: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/15.jpg)
You want an upgrade? – We’re all about SPD• Remember to hit Publish before exporting
• Add a comment at the top for versioning
• Each export gives a new solution id, so no real version upgrade
• Deactivate the old feature, activate the new feature
![Page 16: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/16.jpg)
2013 Workflow’s – Yes, we do love you!• Overall, much better design experience compared to 2010
• It is v1, we know it will be killer in v3, just don’t tell the customer
• Nintex anyone?
![Page 17: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/17.jpg)
Office Web AppsAKA THE COMPANION (WAC)
![Page 18: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/18.jpg)
• Customer: We want CHARTS!
• Mikael: I’m NOT coding charts in ASP.NET!
• Mikael: How about the Excel Viewer Web Part?
• Customer: No, we only have Standard License.
• Mikael: CRAP!
• WAC: Hey, I can help
• Mikael: Of course! Because WAC in read-only mode is FREE, and http://<ServerName>/_vti_bin/ExcelRest.aspx works just fine for any SharePoint version (nothing needs to be enabled but WAC)
• Mikael: I’ll just whip up a custom web part for it!
![Page 19: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/19.jpg)
Coming to a Codeplex site near you!
![Page 20: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/20.jpg)
Click jacking anyone?• SharePoint 2013 by default prevents pages from being click-jacked/
iframed
• SharePoint 2013 by default does not encourage you to use different domains for parts of your solution• http://intranet.contoso.com
• http://collaboration.contoso.com
• http://my.contoso.com
• http://qms.contoso.com
• http://search.contoso.com
![Page 21: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/21.jpg)
Who iframedRoger Rabbit?Search previews did!
<webpartpages:allowframing runat="server" />
![Page 22: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/22.jpg)
SocialAKA THE FORGETFUL
![Page 23: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/23.jpg)
Users want to bookmark• Feeds forgets when server runs out of memory – Veolocity Cache
hooray!• ..or when Velocity cache is reset
• Let’s follow the pages!
• Works just fine.. except…
• Our pages are on the format of E99829BB-70F3-4D72-980A-E06D01FC1C83.aspx
• Feeds does not store the Title, but the Name field!• JSOM to the rescue
• No default good grouping of what you have followed except sites/documents/people/tags
![Page 24: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/24.jpg)
JSOM is da shiznit!• Rapid development and fun!
• At least three SP .js API’s who implement following• Official API (sp.userprofiles.js)
• Page/list wrapper (followingcommon.js)
• Search wrapper (searchUI.js)
• OOB SharePoint does not check follow status on item load
![Page 25: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/25.jpg)
SearchAKA MR KNOW IT ALL
![Page 26: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/26.jpg)
Users want to see the world...• A «360» view
• Automatically imported items (Processes)
• Documents• Managed metadata
• Improvements (Relates to a process)
• Filter on «common» domain specific terms• Business area or Region
![Page 27: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/27.jpg)
The three leveled monster - Managed properties• Site level, Site Collection level, SSA level
• Auto-generated properties• Crawled
• Comes in «2»• E.g. ows_q_DATE_ReportedDate, ows_ReportedDate
• Managed• Always text!
• Don’t map to non-text columns
• Avoid auto-generation/mapping
• Script search setup• Neat cmdlets
• *-SPEnterpriseSearchMetadataCrawledProperty , *-SPEnterpriseSearchServiceApplication
![Page 28: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/28.jpg)
Result sources• Limit search to specific content
• Subset
• Content types +
• Easy administration from GUI
• Query transforms
• Preview
![Page 29: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/29.jpg)
Result types and display templates• Powerful feature
• Easy to get started
• Remember to press the button
![Page 30: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/30.jpg)
Search result: Separatedifferent «artifacts»
![Page 31: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/31.jpg)
Query rules and more• The fun begins…
• Many ways to reach the goal
• Many errors in search along the way..
• 1 query rule to «rule them all»• Promoted result blocks for each rs
• No good
• Global result source• Distinct query rules
• One promoted block in each
![Page 32: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/32.jpg)
Some quirks... • Refiner on ContentType
• Application/xhtml [some newlines] MyContentType• Not user friendly
• Use the builtin magic Managed property• SPContentType
• Displaying a «User» field • Shows the Claims identifier
• |Harald Fianbakken|8238229110120ACCE19192911;i0#;fianbakken\harald.fianbakken|[email protected]|
• Fix by Javascript
• Check mapping order • ows_Created_0x0020_by, Internal:105, Internal:3
![Page 33: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/33.jpg)
…and we have more quirks…• Managed properties not fetched
• Even when specified
• SPContentType is not returned in display template• !retrievable
• Query rules not triggered• But triggered when using the «preview».
• Result sources throwing exception, when used• But working in preview
![Page 34: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/34.jpg)
Lessons learnt... • Avoid «complex» query rules
• 1 query rule per «result type»
• Create search schema on SSA• If possible
• RAM• Strange behaviors
• Crashes/query processing
• When in doubt; Reboot
![Page 35: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/35.jpg)
Managed metadataAKA THE ORACLE
![Page 36: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/36.jpg)
More than just tagging documents..Term based navigation
![Page 37: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/37.jpg)
Custom properties on terms
![Page 38: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/38.jpg)
Endless possibilities• Requirement:
• «Our users need different forms for the Business area when submitting an item. The BA’s have different fields required (and option) for when submitting an item, and different requirements when editing the item».
• Solution:• Use term store
• Add some custom coding
• Custom coding • Dynamic populated dropdown lists and checkbox lists for the same SPField
• Add configurable options (properties) for each field• Allowing a site collection admin (or term storeadmin) to customize the form
• Enforce «required» or hide fields in the different display modes.
• Automatically fill out values in form based on choices• E.g. Selecting a «Improvement area» from a dropdown, sets another field by looking up the selected
value custom property
• Possible to port parts of code to delegate control.
![Page 39: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/39.jpg)
Example – Dynamic term driven form
![Page 40: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/40.jpg)
Annie - The orphaned site-collection group• Removing a site collection yields a orphaned group
• Not visible from GUI
• Interfers
• Accessable through Powershell• Remove the old termstore
![Page 41: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/41.jpg)
HTML, CSS, BOOTSTRAP, Script
AKA MR PERFECT
![Page 42: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/42.jpg)
Get the right markup, get the markup right• Twitter Bootstrap for SharePoint -
http://bootstrapsharepoint.codeplex.com/
• Designers want to do HTML5/CSS3
• Customers want IE8
• Do NOT under-estimate the time needed to make your design fit in IE8 with SharePoint overrides.
![Page 43: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/43.jpg)
Mega menu script– out with the oldSP.SOD.executeFunc('sp.core.js', 'SP.UI.AspMenu', function() { // Mega Menu // Kill off SP's default menu hover script SP.UI.AspMenu.prototype.showSubMenu = function () { };});
![Page 44: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/44.jpg)
Mega menu CSS$(".pageNav").affix({ offset: { top: "270px" } });
$(".pageNav ul li").click(function () { $(".pageNav li.active").removeClass("active"); $(this).addClass("active"); });
$(".root li.static.dynamic-children").hover(function () { var browserWidth = $("#s4-bodyContainer").width(); var menuoffset = parseInt((browserWidth - 1200) / 2); browserWidth -= menuoffset * 2; $(this).find('>a').addClass('hover'); $(this).find('>ul.dynamic').css({ zindex: "200", width: browserWidth + "px", paddingRight: menuoffset + "px", paddingLeft: menuoffset + "px", left: "-" + menuoffset + "px" }).show();
}, function () { $(this).find('>ul.dynamic').css("zindex", "100").hide(); $(this).find('>a').removeClass('hover'); });
$(".root.ms-core-listMenu-root .static ul.dynamic li.dynamic ul.dynamic li.dynamic-children").hover(function () { $(this).find(">ul.dynamic").show(); }, function () { $(this).find(">ul.dynamic").hide(); });
![Page 45: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/45.jpg)
Wrap-up• Import data from file share to publishing pages
• Workflows 2013 style
• Office Web Apps (WAC) for charts
• Social following
• Search
• Managed meta data
• UI customizations
![Page 46: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/46.jpg)
Resources• http://www.fianbakken.com/
• http://nuget.org/packages/Fianbakken.SharePointations/
• http://techmikael.blogspot.com/
• http://anujabhojani.blogspot.in/
![Page 47: Nsc 2013 06-17 - random rants on 2013](https://reader036.fdocuments.net/reader036/viewer/2022062404/554ddb9cb4c905cc0e8b5066/html5/thumbnails/47.jpg)
Questions?