36. Content Building a new solution Upgrading an existing solution Version management
37. Goals In this session you will learn about the new VS2010 extensions for WSS You will learn how to migrate your existing solutions into the new environment reducing the migration process time to minimum. This session will allow you to make better decisions on your current solutions for 2007 today that will make the transition to 2010 easy and simple.
38. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
39. Building a New Solution Before you begin… Is your team ready for 2010? Silverlight, Ajax, JSON Visual web parts! (or is it?) Prepare to be hosted! Limit customization to site collection level Prefer to support sandboxed solutions*
40.
41. Do not change base for existing web parts!!!Creating a new web part? Inherit from ASP.NET!
43. Building a New Solution Before you begin… Install all components on developer machine
44. Building a New Solution Before you begin… Install developer components on development client and use remote debugger to connect to development server (not so bad, but still…)
45. Building a New Solution Before you begin… Virtualize! (Recommended)
46. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
47. Building a New SolutionCreating a new solution Open VS2010
48. Building a New SolutionCreating a new solution Click on new project. Go to: C# -> SharePoint -> 2010 templates
49. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
50. Building a New SolutionChoose a project template There are a lot of new project templates to choose from! But fear not – You can easily add any component to any project later
60. Building a New SolutionChoose template: BCS model This project template can be sandboxed
61. Building a New SolutionChoose template: BCS model BCS editing tools
62. Building a New SolutionChoose template: BCS model Packaged and deployed as a farm level feature
63. Building a New SolutionChoose template: content type This project template can be sandboxed
64. Building a New SolutionChoose template: content type “Create content type” Wizard More work needed on the wizard though…
65. Building a New SolutionChoose template: list definition This project template cannot be sandboxed
66. Building a New SolutionChoose template: list definition “Create List Def.” Wizard
67. Building a New SolutionChoose template: content type Schema File Create Elements file for feature Optional: Create list instance XML
68. Building a New SolutionChoose template: content type Packaged and deployed as a web feature
69. Building a New SolutionChoose template: workflow This project template cannot be sandboxed
70. Building a New SolutionChoose template: workflow Sequential workflow is designed to execute a series of predefined steps to accomplish a certain task State machine workflows are designed to work in event-driven scenarios. A state machine workflow contains two or more states, with one state being the active state at any given time
71. Building a New SolutionChoose template: workflow “State machine” wizard Choose history and tasks lists.* Also choose a list if you selected a list workflow type Workflow initiation options
72. Building a New SolutionChoose template: workflow Designer has different options for site and list workflows
73. Building a New SolutionChoose template: workflow Add sequential workflow, with its own designer
74. Building a New SolutionChoose template: workflow Creates separate elements file for each workflow
75. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
77. Building a New SolutionSetup trust level Choose your destiny
78. Building a New SolutionSetup trust level To trust, or not to trust? Sandbox solutions is a way for you to deploy a set of features and components to your SharePoint site collection that will have no effect on other site collections Sandbox solutions have limited support for extensibility and not all SharePoint customizations are allowed Sandboxed solutions can be installed and deployed by site owner from site settings
79. Building a New SolutionSetup trust level What does this setting change? This setting does not get written to WSP package, but will allow VS to validate your content is supported within a sandboxes solution Solution assemblies within a sandboxed solution are not installed to GAC/Bin, and not running on W3WP process. Instead they run under SPUCWorkerProcess Sandboxed solutions can be deployed as a full-trusted solution as well
80. Building a New SolutionSetup trust level What is supported within a sandbox solution? List Definitions, List Instances, Content Types/Fields Web Parts (non visual) Event receivers: Item, List or Web Declarative workflows, Custom Actions (Ribbon) Onet.xml, WebTemplate feature element (instead of Webtemp.xml) allows for site collection level site definitions! More…
81. Building a New SolutionSetup trust level What is not supported within a sandbox solution? Mapped folders (14 hive) Some API will not work in sandboxed mode Visual Web Parts Application Pages Custom Action Group HideCustomAction element Web Application/Farm-scoped features Workflows with code
82. Building a New SolutionSetup trust level How do I deploy a sandbox solution? Upload to Solutions gallery Activate
83. Building a New SolutionSetup trust level Cannot activate solution? Go to central administration and make sure windows SharePoint user code service is started
84. Building a New SolutionSetup trust level Keep in mind: Deploying a sandbox solution automatically activates features within (unless specifically specified not to in the feature) To disable support for sandbox solutions simply stop the user code service Upgrading sandbox solutions are done manually site collection at a time
85. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
86. Building a New SolutionAdding new components It is extremely easy to add any component to any project you like This allows you to easily create more complex solutions that includes several types of customizations such as: Feature – for activation Web parts – for visual UI Lists and list definitions for storing data Field types, event handlers, workflows and much more!
87. Building a New SolutionAdding new components Add mapped folder
88. Building a New SolutionAdding new components Add other components
89. Content Building a new solution Creating a new solution Choose a project template Setup trust level Adding new components One-click deploy or package Upgrading an existing solution Version management
90. Building a New SolutionOne-click deploy or package Feature and Package editors available
91. Building a New SolutionOne-click deploy or package Project menu allows you to build, deploy to development server, and to package using a WSP Build = compile code only Package = compiles and builds the WSP package Deploy = compile, package anddeploy the package (customizable!) Retract = removes the solutionpackage from server
92. Content Building a new solution Upgrading an existing solution Upgrading a non-VSeWSS solution Upgrading a 2005/2008 VSeWSS solution Upgrading a WSP package Version management
94. Content Building a new solution Upgrading an existing solution Upgrading a non-VSeWSSsolution Upgrading a 2005/2008 VSeWSS solution Upgrading a WSP package Version management
95. Upgrading an Existing SolutionUpgrading non-VSeWSS solution Case study: Upgrading KWizCom SharePoint List Forms Extensions What we had in 2007: controltemplates ASCX files. New control templates and updating existing ones* Application settings pages List settings link Feature activated, MSI installer External references to utilities/shared resources
97. Upgrading an Existing SolutionUpgrading non-VSeWSS solution What we added in 2010: List settings ribbon buttons Add CSS file using Delegate WSP packaging
98. Live Demo SLFE Project Live demo of SLFE in Visual Studio 2010
99. Upgrading an Existing SolutionUpgrading non-VSeWSS solution 2010 New UI Ribbon (resizable) Using image store filesand CSS class
100. Live Demo SLFE Solution Live demo of SLFE in SharePoint
101. Upgrading an Existing SolutionUpgrading non-VSeWSS solution Conclusion In order to make the most of VS2010 and VS2010 extensions for WSS its best to build a new project skeleton and import existing code into it. If you already have a WSP package you can use it to build your project skeleton from it (reverse engineer) but your .NET code will not be included!
102. Upgrading an Existing SolutionUpgrading non-VSeWSS solution Steps for upgrading a project Estimated ~1 hour to 4 hours of 1 developer to have the solution ready for packaging.
103. Content Building a new solution Upgrading an existing solution Upgrading a non-VSeWSSsolution Upgrading a 2005/2008 VSeWSSsolution Upgrading a WSP package Version management
104. Upgrading an Existing SolutionUpgrading 2005/2008 VSeWSS Unfortunately, you cannot convert VS2005/2008 projects using visual studio alone Trying to do so will invoke this error:“The project type is not supported by this installation.”
105. Upgrading an Existing SolutionUpgrading 2005/2008 VSeWSS But fear not! VSeWSS2010 comes with a conversion tool (VSeWSS 2008 only). For all other projects that used WSP for deployment - This next option might be what you are looking for!
106. Content Building a new solution Upgrading an existing solution Upgrading a non-VSeWSSsolution Upgrading a 2005/2008 VSeWSSsolution Upgrading a WSP package Version management
107. Upgrading an Existing SolutionUpgrading a WSP package If you have a WSP packaged solution, you can import it into 2010!
108. Upgrading an Existing SolutionUpgrading a WSP package Import wizard Your code does not get imported!
109. Upgrading an Existing SolutionUpgrading a WSP package The import process will build your skeleton for you After the import is done, some work is needed
112. Content Building a new solution Upgrading an existing solution Version management How can I mark versions Shared resources Upgrade / downgrade solution version
113. Version ManagementVersion management Why do we need version management? Tractability of bugs or changes Perform upgrade operations on existing installations (add a field, create hidden list etc.) Monitor Dev, Staging and production deployment running code Not for ISV only! In house development team? Get used to working with versioned packages!
114. Content Building a new solution Upgrading an existing solution Version management How can I mark versions Shared resources Upgrade / downgrade solution version
115. Version ManagementHow can I mark versions Cannot change assembly version! Currently no supportfor marking package,but you can markfeatures: Mark versionnumber in yourcode:
116. Content Building a new solution Upgrading an existing solution Version management How can I mark versions Shared resources Upgrade / downgrade solution version
117. Version ManagementShared resources You may need to add shared resources to your projects DLL’s (utility classes, base classes) Sandbox – no problem GAC – no problem BIN deployment – version collisions may occur. Shared resources (Images/CSS files) Use sub folders with utilities version number.For example:/_layouts/KWizCom_Shared_2.0.01
118. Content Building a new solution Upgrading an existing solution Version management How can I mark versions Shared resources Upgrade / downgrade solution version
119. Version ManagementUp/downgrade solution version Built in support for upgrade operations! SharePoint will allow mark if feature requires upgrade Many upgrade operations supported, and custom upgrade handlers can be coded
120. Version ManagementUp/downgrade solution version Upgrading / downgrading is easy! Once you deploy several versions of same solution you will be able to upgrade instead of activate!
121. Content Building a new solution Upgrading an existing solution Version management
122. Summary You now have real-world experience in upgrading components into 2010 There is a lot more to see Come visit us at our booth for more information and for 1 on 1 talks! Overall, It’s been a pleasure!
127. Learn More about SharePoint 2010 Information forIT Prosat TechNet http://MSSharePointITPro.com Information forDevelopersat MSDN http://MSSharePointDeveloper.com Information forEveryone http://SharePoint.Microsoft.com
Upgrading Philly Office Geeks in DecemberWorld-class speakersFocus on SharePoint 2010 and 2007Jump start Philly SharePoint communityRegional focus – looking into different meeting locations/optionsInvestigating various virtual meeting options
This is my personal experience upgrading SLFE from 2007 to 2010.(what will be different in my presentation is that it is based on actual migration I did and the lessons I learned, hope it can save you some time and allow to you take the right decisions on your projects today that will prepare you for the future)
These are the topics…1st quick overview on VSeWSS2010, allow us to prepare for the next topic, which is the main one…Last – versioning, my personal goal to make all my customer work like an ISV
* Sandbox See below
2 clicks
Farm level resources:SQL, file system, 14 hive, schema filesEasy to mess up:Developer has full control and can make his environment. Unusable and cannot revert it back to original form.Hard to backup:Server, not code. For code we use VSS.New: Supported under windows 764bit for developers!!!
No worries environment:(can restore to original state with no problems so feel free to mess up the server!
1 click
You will need to decide what type of project you wish to create.(Visual web part, list/site definition, event handler, workflow, BCS and much more)If you are not sure you can start with an empty one.For advanced solutions that has many different customizations (web parts, list definitions and more…) just pick any project and add other components to it after you create the project.
Files:CS file for web partASCX and ASCX.CS file for user control*.webpart XML fileElements XML file for use in featuresNote: All web part related files are created within the same folder to help you keep resources organized.4 clicks
Note:New feature designer!The elements file from within the web part is recognized and added into your feature.
Note:New package designer!All features and elements in this projectare recognized and added into your package.1 click
When creating this type of project there is a wizard to guide you through the creation of the solution.Note: new types of event receivers.Note: New events to handle in existing event receivers!2 clicks
Elements file within the receiver’s folder to be used in features.Receiver’s handler code file.1 Click
BCS – Business connectivity Services (former BDC)1 click
1 Click
Just intelli-sense… no real wizard.2 Clicks
no real wizard. But creates all files for you (list def, feature elements, and list instance)
2 clicks
no real wizard. But creates all files for you (list def, feature elements, and list instance)
1 click
1 Click
1 Click
Deploying a sandbox solution that has any of the forbidden content will succeed but that content will not be deployed.Application pages: no pages into layouts since no mapped folders.Pages with embedded code are not supported from data base – security.
1 click
1 click
1 click
1 click
Updating existing ones done using file system priority trick still working in 2010.We used MSI installer due to some limitations in WSP
1 Click
All in XML,Added images, CSS and ASCXShow live, visual studio
Show the upgraded componentsShow the new components
Show live
Show the new Ribbon UI, and shot settings pagesShow it working in the new item popupShow next / prev item based on view in tasksShow groupingShow disabled field
2 Clicks
1 Click
1 Click
Note: code does not get imported.3 clicks
After import is done – still need to import code manually and set namespace / assembly evidence
Import SLFE WSP package,Show what is created (skeleton),Manually add code files and set namespace, assembly evidence.
Pages, web parts, event handlers – do not support assembly version changes.Version in features for upgrade operations if needed. Change only when needed.Version in code, to show in about to identify current running version easily. Change every time.
2 clicks
1 click after auto
Overall, my personal experience was very positive,The beta is in great shape and migrating customizations looks simple.