Developing GIS WebParts in SharePoint Presented by: Marianne Cardwell, Woolpert, Inc. Cheryl Spencer, City of Indianapolis February 17, 2009
Overview Introduction to WebParts WebParts in SharePoint SharePoint development environment ESRI options Microsoft Virtual Earth
Introduction to WebParts
What is a Web Part? According to Microsoft, ASP.NET Web Parts controls are an integrated set of controls for creating Web sites that enable end users to modify the content, appearance, and behavior of Web pages directly in a browser. Why use a Web Part? Consistent look and feel Ease of use and reuse
From a Developer’s Perspective: What is a Web Part? Server-side control running inside context of Web Part pages within ASP.NET application or Windows SharePoint Services site. 2 types of Web Parts: ASP.NET 2.0: Built on top of the ASP.NET Web Part infrastructure Have a dependency on System.Web.dll Can be used in SharePoint and other types of web sites, making them much more flexible SharePoint: Older and have a dependency on Microsoft.SharePoint.dll Can only be used in SharePoint web sites
Web Part Attributes A Web Part-based page allows users to: Add/remove Web Parts from page. Move Web Parts on page. Personalization requires database. Default is SQL Server Express 2005, but a different database can be specified in configuration file.
Web Part Demos Web Parts in ASP.NET web site Web Parts in SharePoint Use C:\Projects\Indy\WebPartsResearch\DevCast.WebParts.Sample1\WebApplication1 Show each project. Start with ClassLibrary1 as it’s the simplest one: just has 4 lines of code. Point out the “using” statements and the CreateChildControls override. Point out that we’re adding everything at run-time. ClassLibrary2 has more code. Spend a bit of time on default.aspx & default.aspx.cs in WebApplication1 project. Leave one part up. Stop & restart. Point out that it saves that information in the database. SharePoint Web Site: On VM, use C:\Projects\WebParts\IGIC09.
Web Parts in SharePoint
SharePoint WebParts In WSS3.0, Web Parts based on ASP.NET 2.0 Web Part infrastructure. In most cases, should develop Web Parts inheriting from System.Web.UI.WebControls.WebParts.WebPart. Microsoft.SharePoint.WebPartPages.WebPart provides the following features: Cross page connections Connections between Web Parts outside of a zone. Client-side connections (Web Part Page Services Component) Data caching infrastructure, including ability to cache database
SharePoint Development Environment
Operating System No easy way to develop on Windows XP. Free Virtual Hard Drive downloadable from Microsoft at http://tinyurl.com/8dpwm4. Includes WSS 3.0 SP1 and VS 2008. Expires Sept 20, 2009. About 1.8GB.
WSS 3.0 Tools – VS 2008 Extensions Contains VS project templates for Web Parts, site definitions, and SP solution. Available for download from http://tinyurl.com/5tj6er. F5 builds and deploys solution, then opens IE. Provides ability to debug code.
SharePoint Project Templates
SharePoint Item Templates
ESRI Options
WebADF Possible to create WebADF Web Parts. ArcGIS Server blog provides samples for both 9.2 (http://tinyurl.com/baaajs) and 9.3 (http://tinyurl.com/djj3oa). Limitations: 64-bit MOSS 2007 requires IIS application pools to run in pure 64-bit mode, which means that 32-bit applications, including the WebADF, will not work. (Rex Hansen, ESRI, http://tinyurl.com/bfcnwf) Potential for additional ArcGIS Server license depending on network set-up.
ESRI 9.3 sample from http://tinyurl.com/djj3oa WebAdf Web Part ESRI 9.3 sample from http://tinyurl.com/djj3oa
ArcGIS Server JS API Surprisingly powerful and relatively easy to use in SharePoint. Keep in mind: Potential for multiple web parts, including identical web parts, on a single web page. Affects element names. Use the _spBodyOnLoadFunctionNames array to add JS functions to the window.onload event. _spBodyOnLoadFunctionNames.push('Indy.WebControls.JSAPI.init()');"; JS & CSS can be added in different ways. Make sure you test to see if files already exist.
Web Part Demos JS API SharePoint Web Part ASP.NET Web Site: Use C:\Projects\WebParts\IGIC09.WebParts.JSAPI\IGIC09.WebParts.JSAPI.sln Look at the public properties and their tags. Show this off in demo. Look at m_ID property. Go over CreateChildControls, Render, & CreateJS functions. Show how JS & CSS were added. Show source in IE.
Virtual Earth
Virtual Earth API Similar logic to using the ArcGIS Server JS API. Can use the ArcGIS JavaScript™ Extension for Microsoft Virtual Earth™.
Web Part Demos Virtual Earth SharePoint Web Part Shows the use of a Web Control within a Web Part ASP.NET Web Site: Use C:\Projects\WebParts\Indy.WebParts.VirtualEarth Look at the public properties and their tags. Look at CreateChildControls and see how added a web control. Time permitting, show web control, specifically how it’s loading the JS.
Questions?