170 likes | 303 Views
Optimising MOSS 2007 for the Internet. Perth SharePoint User Group June 2008 Sezai Komur Senior Developer Vivid Group. Developing Websites for the Internet. Different to developing Intranets! Performance – page weight and page load time is important .
E N D
Optimising MOSS 2007 for the Internet Perth SharePoint User Group June 2008 Sezai Komur Senior Developer Vivid Group
Developing Websites for the Internet • Different to developing Intranets! • Performance – page weight and page load time is important. • Nobody likes a slow website – even if it’s “cool”.
How do you make an ASP.NET Website Faster? • Reduce Page Weight Reduce the time it takes to download and a page. • Optimise what is in the page – don’t download unnecessary files. • Reduce the time it takes for a server to process and serve up a page and its resources.
Analysing Page Weight and Load Times • Pingdom Tools – Full Page Test • http://tools.pingdom.com/fpt/ • Firebug add-on for Firefox has a Net Analysis tool
Master Page Overview • Contains Top Navigation, Search Box, Header, Footer – Common page elements • Also contains the HTML head as well as Body tag • HTML head contains SharePoint Controls that link to SharePoint JavaScript (core.js), CSS and other Resources. • Anonymous Internet users DO NOT require these files so it’s a waste of their bandwidth to download. Authenticated users editing content DO still need these files.
Developing a custom Master • Minimal.Master – a clean canvas • Implement a custom HTML/CSS/JS design • Custom CSS • Custom navigation controls
What is Form Mode? • Other CMS provide content editing in a “back-end” application. • MOSS 2007 provides editing in context • “Switch to edit mode” on a page you are viewing. • Excellent authoring experience • Complex development experience • By detecting Form mode you can target code and rendering to Edit Mode or Display Mode. • SPContext.Current.FormContext.FormMode • Microsoft.SharePoint.WebControls.SPControlMode Enumeration • EditModePanel uses this.
Demo! • Minimal.Master • Nothing.Master • Form Mode • Anonymous User Optimisation • Top Navigation Optimisation
Page Layout Overview • Page Layouts are based on content types • Field Controls on Page Layouts bind to Site Columns / Fields of the Page Layout Content Type • Custom ASP.NET Server Controls or User Controls • Data from Site Lists • Data from Anywhere • Web Parts
Optimising Custom Page Layouts • What is the page doing? How many controls/web parts on the page and what custom code is being run? • What DATA is being retrieved by the custom code? Where? How? • Optimise your server code and implement caching • Memory Leaks! Exceptions! Dodgy Code!!!
Caching • Implement ASP.NET level caching in custom code. • Cache Navigation menus / SiteMapProvider • Enable Blob cache and output cache • Files live in the Database • So caches files on the web server to reduce Database access
More Caching • Store “Chrome” files directly on the file system of the web server – “Always Cached” • Can only be modified/updated by a developer • IIS Static Compression • Core.js is 265kb, some sites have it at only 55kb due to IIS static compression
Rendering Tricks • ASP.NET AJAX • Reduces the need to download an entire page resulting in FAST load times and an excellent user experience. • BlendTransMetatags - Fajax • Simple to implement • great result. • White space removal to reduce page size and increase browser rendering speed.
Demo • BlueBandBlendTrans.Master • Cache settings • Storing files /_layouts/images and /_layouts/inc Vs /Style Library