410 likes | 615 Views
Alex Holcombe Applied Information Sciences. Tips and Tricks for Developing MOSS Applications. Overview. SharePoint to a Developer Development environment Debugging Configuration Management Basic Do’s and Don’ts. WSS 3.0 Developer Map. ASP.NET Integration.
E N D
Alex Holcombe Applied Information Sciences Tips and Tricks for Developing MOSS Applications
Overview • SharePoint to a Developer • Development environment • Debugging • Configuration Management • Basic Do’s and Don’ts
ASP.NET Integration • Tighter integration with ASP.NET 2.0 • “Shines Through”: • Master Pages • Web Parts • Custom Provider Model • Conceptual Differences: • Template Model • Users can edit pages ASP.NET 2.0 Windows SharePoint Services “v3”
Extending SharePoint • WebParts • Event Handlers • Custom ASPX Pages • Web Services • Site Administration functionality • Searching • Timer Jobs • STSADM • Workflows • Site Columns • Field Types • Content Types • List Definitions • Master Pages • Site Definitions
Things to Keep in Mind • SharePoint IS: • An Application • Full of OOTB functionality • Deceptively complex • Extensible using .NET • Written by someone else (not you) • SharePoint IS NOT: • A relational database • A replacement for all web-based applications
Demo • Show example functionality
Development Software • Microsoft Software • Windows Server 2003 • Visual Studio 2005 • SQL (Express) and SQL Management Tools • .NET 3.0 Framework • ECM Starter Kit • Visual Studio extensions for WF • Visual Studio extensions for WSS • Other • Reflector • Text searching tool
Environment Considerations • Several basic requirements for devs • Source Control Access • Baseline to clean environment • Backup and restore process • Consistent baseline across all developers • Software upgrade management • External Access (web, email)
Supported Environment • “The supported approach for setting up your Web Part development environment is to develop locally on an Office SharePoint Server 2007 server.” • Getting Started with Custom Enterprise Search Web Parts (http://msdn2.microsoft.com/en-us/library/ms564508.aspx)
Sample EnvironmentWindows 2003 Workstations Dev 2 192.168.1.12 Dev 3 192.168.1.13 Dev 1 192.168.1.11 Dev Machines: Win 2k3 MOSS SQL Express Dev tools DC, Source Control, etc 192.168.1.1…n
Sample EnvironmentXP Workstations running VPC Dev 2 192.168.1.12 (host) 192.168.1.102 (vpc) Dev 3 192.168.1.13 (host) 192.168.1.103 (vpc) Dev 1 192.168.1.11 (host) 192.168.1.101 (vpc) VPC: Win 2k3 MOSS SQL Express Dev tools Dev Host: Win XP DC, Source Control, etc 192.168.1.1…n
Networking VPC’s • No network connectivity • Makes network admin’s happy • Difficult to connect to source control • Attach VPC to host network adapter • Use NAT • Assign a secondary IP address to the VPC • Attach VPC to host loopback adapter • Install loopback adapter on host • Allow VPC to access internet through ICS
Working with Virtual PC’s • Install only what you need • Keep the .vhd as small as possible • Run from an external disk or separate partition • Allocate as much RAM as possible • Shut down unnecessary apps on the host • Access the VPC through RDC • Regularly defrag host and VPC • Use Compact utility
Demo • Show how networking is set up on host and vpc
Debugging Code • Compile code • Stop IIS • Deploy assembly • Start IIS • Set breakpoint in code • Initialize a SharePoint page • Attach to all w3wp.exe processes
Debugging Code • HELP - It didn’t work!!! • Code is different or didn’t compile • New Assembly didn’t get picked up • Didn’t get GAC’d • IIS not reset • Feature not properly installed or activated • Code isn’t being executed
Debugging JavaScript • Enable Script Debugging in IE • Attach to IE.exe process • Open Running Documents window in VS • (Ctrl-Alt-N) • Set breakpoint • Open page/click to execute
SharePoint Logs • Located in: 12\LOGS • Turn up logging in SharePoint • From Central Administration: • Operations \ Diagnostic Logging \ Event Throttling • Select a Category: “All” • Least Critical…event log: “Information” • Least Critical…trace log: “Verbose” • Use a good text editor to search through the logs
IIS Error Messages • Turn on logging in IIS • Open web.config in the web app root • Modify the following: • <configuration> • <SharePoint> • <SafeMode> • set Callstack = "true" • <configuration> • <system.web> • <customErrors> • set mode="Off". • <compilation> • set debug="true".
Demo • Attach to w3wp process • Attach to IE process • Increase logging level in SharePoint
Working With The 12 Hive • Usual location: • C:\program files\common files\microsoft shared\web server extensions\12 • NEVER modify any OOTB files • Create a script which copies/updates your files in the 12 hive • Understand the consequences of modifying the files you created
Commonly Used Folders • List of folders in the 12 hive that are commonly used by developers (not comprehensive) • 12 • CONFIG – stsadm commands, security trust files • LOGS– SharePoint log files • Resources - .resx files • TEMPLATE • CONTROLTEMPLATES – .ascx files • FEATURES – Feature files • LAYOUTS – .aspx files • SiteTemplates – Site Definition files • XML – Field Type definitions
Finding Examples • Search the web • MSDN • Google Groups • Blogs • Is this being done OOTB? • Search the 12 hive • Search using Reflector
Valuable 12 Hive Information • The 12 Hive is a valuable resource for information • Use it to see how things are being done OOTB • SharePoint functionality is deployed as Features
Example Locations of Interest • CONTROLTEMPLATES • DefaultTemplates.ascx – Rendering field templates • Features • Ctypes – OOTB Content type definitions • CustomList – Custom List definition • Fields – OOTB field definitions • SiteTemplates • Sts – OOTB Teamsite site definition • This is a small subset of what is there
Demo • Find information in 12 hive • Search for examples of OOTB functionality
Configuration Management • Multiple ways to create “things”: • UI • XML • Code • Can be problematic for a developer • Each has it’s own pro’s and con’s • They are NOT equal • Must understand the impact of each: • How do you manage changes / source control • How is it deployed • How is it maintained
Site Definitions and Templates • Site templates • CAB package of differences from site definition • Stored in content database • End-user created • Site definitions • Core description of what a site is • Installed to web front ends • Developer created • Done through xml files • Can be extended with code
The Feature Framework • Modular provisioning: Features! • Less XML to create site templates • Less duplication • Reusable pieces of customization • Group logical elements intoscenario-driven “features” • Easier to add functionality to existing sites • Easier to change site functions over time • Admins can turn features on/off
Solution Deployment • Developer packages a custom Web application into a solution • Admin deploys: • Files go to all Web front-end servers • Can deploy to application servers • Solutions can contain: • Feature definitions • Site definitions • Template pages and resources • Resources • Global, bin assemblies
Configuration Management • Basic rules for CM: • Source control everything • Stage deployable files • Automate deployment for staged files • Use what works best for you, but automate it • Batch files • Nant / MSBuild • MSI file
Deploying to the bin vs. GAC • Don’t assume you will be able to deploy to the GAC on the production servers
Deployment Steps • Stop IIS • Deactivate existing feature • Uninstall existing feature • Delete existing files • Remove existing assembly • Register new assembly • Copy new files • Install new feature • Activate new feature • Start IIS
Deployment Options • Using STSADM • Easy to script out with batch files • Initializes on each call • Can be time consuming • Using OM • Initializes once • Very fast • Useful when deploying large number of features
Demo • Show sample batch file • Show sample Nant script • Show code to install with OM
Basic Don'ts • Don’t modify any existing files • Don’t assume your assembly will go in the GAC • Don’t run everything as an administrator • Don’t manually copy any files • Don’t modify or directly access the Database • Don’t assume the server is “localhost”
Basic Do’s • Try to use as much OOTB functionality as possible • Put everything under source control • Automate the deployment process • KISS when trying something new • Don’t assume you’ve done anything correctly • Check the basic things first • Try it through the UI (if possible)
Things to Keep in Mind • SharePoint IS: • An Application • Full of OOTB functionality • Deceptively complex • Written by someone else • Extensible using .NET • SharePoint IS NOT: • A relational database • A replacement for all web-based applications
Contact Information • Alex Holcombe • Applied Information Sciences • Alex.holcombe@appliedis.com