SlideShare uma empresa Scribd logo
1 de 33
LECTURE




Building SharePoint Online Web Parts
                Toni Frankola
              SharePoint MVP
              Acceleratio d.o.o.
Contents
•   Office365 / SharePoint Online
•   Developing for SharePoint Online
•   Demos and tips
•   Some advanced stuff
office365
SharePoint
•   Sharing documents
•   Corporate social networks
•   Managing projects and documents
•   Search
•   News
•   Permissions
•   Offline sync
•   IM
•   …
Challange
• Case study:
  – Customer wants to use SharePoint in the
    cloud
     • …but with special forms, custom permissions and
       custom web parts
The solution
SandBoxed Solutions
• Isolated SP process
  (User Code Service)

• Subset
  Microsoft.SharePoint namespace

• Managed via browser (Solutions gallery)
Hello World!

SharePoint Sandboxed solution
           DEMO
SANDBOXED SOLUTIONS
   - for developers
Request Flow

      FRONT END                   BACK END
Execution Manager              Host Services
 (Inside Application Pool)    (SPUCHostService.exe)



           IIS                Worker Service
      (WPW3.EXE)             (SPUCWorkerProcess.exe)




       Subset-Model
          Full-Model
         Request
            Request
Supported in Sandboxed
               Solutions
•   Web Parts (no Visual WPs)
•   Lists
•   List Templates
•   Custom Actions
•   Workflows
•   Event Receivers
•   Content Types
•   Site Columns
•   …
Source: http://msdn.microsoft.com/en-us/library/ff872402.aspx
Supported API
•      All of the Microsoft.SharePoint namespace, except:
         –   SPSite constructor
         –   SPSecurity object
         –   SPWorkItem and SPWorkItemCollection objects
         –   SPAlertCollection.Add method
         –   SPAlertTemplateCollection.Add method
         –   SPUserSolution and SPUserSolutionCollection objects
         –   SPTransformUtilities object
         –   Microsoft.SharePoint.Navigation namespace

•      All of the Microsoft.SharePoint.Utilities namespace, except
         –   SPUtility.SendEmail method
         –   SPUtility.GetNTFullNameandEmailFromLogin method
         –   Microsoft.SharePoint.Workflow namespace

•      All of the Microsoft.SharePoint.WebPartPages namespace, except
         –   SPWebPartManager object
         –   SPWebPartConnection object
         –   WebPartZone object
         –   WebPartPage object
         –   ToolPane object
         –   ToolPart object

    Source: http://msdn.microsoft.com/en-us/library/ff872402.aspx
SharePoint Features / Solutions

               Solution (.wsp)

     Feature 2                   Feature 1

      Event           Web                 Web
 …              CSS          …       JS
     Handler          Part                Part
Developer Tools
• Visual Studio 2010 SharePoint Power Tools
   – adds Visual Web Part
   – SandBoxed solution validation (must have!)

• Office365 Sandbox FxCop rules


• CKSDEV add-on
   – Trusted proxy
   – Deployment options

• Other stuff:
   – Visual Studio 2010 Productivity Pack
   – SP Dispose Checker (how to integrate with VS)
SharePoint UX
• Users want different UX
UX: What do we need?
• ASP.NET
  – .master page
  – CSS
  – javascript
SharePoint Metro UI

       Demo
SharePoint UX (2)
Link buttons
• jQuery link buttons

• SharePoint lista za linkove
  – Security
  – UI
  –…
• SharePoint Feature
SharePoint Link Buttons

         Demo
Monitoring Sandbox
Very bad WebPart
• Infinite loop example:



• Farm solution = problem
• Sandboxed solution:
Monitoring 101
• Site Collection Admin




• Farm admin
Monitored Resources
                                                                                                   Resources   Hard
Metric Name                       Description                        Units
                                                                                                   Per Point   Limit
AbnormalProcessTerminationCount   Process gets abnormally terminated Count                         1           1
CPUExecutionTime                  CPU exception time                 Seconds                       3,600       60
CriticalExceptionCount            Critical exception fired           Number                        10          3
                                  Number of times solution
InvocationCount                                                      Count                         N/A         N/A
                                  has been invoked
                                                                     Percentage Units of Overall
PercentProcessorTime              Note: # of cores not factored in                                 85          100
                                                                     Processor Consumed
ProcessCPUCycles                                                     CPU Cycles                    1E+11       1E+11
ProcessHandleCount                                                   Windows Handles               10,000      1,000
                                  (Hard Limit Only) Bytes written
ProcessIOBytes                                                       Bytes                         0           1E+08
                                  to IO
                                  Number of Threads
ProcessThreadCount                                                   Threads                       10,000      200
                                  in Overall Process
                                  (Hard Limit Only)
ProcessVirtualBytes                                                  Bytes                         0           1E+09
                                  Memory consumed
SharePointDatabaseQueryCount      SharePoint DB Queries Invoked      Number                        20          100
                                  Amount of time spent waiting
SharePointDatabaseQueryTime                                          Seconds                       120         60
                                  for a query to be performed
UnhandledExceptionCount           Unhanded Exceptions                                              50          3
                                  We have to kill the process because
UnresponsiveprocessCount                                              Number                       2           1
                                  it has become unresponsive
Extending Sandbox
Not supported!
• Off-box connections, http, web services,
  etc
• ADO.net
• Enterprise features (Search, BCS, etc.)
• Threading
• P-Invoke
• IO
• Other sites (site collections)
Beyond Limits
• No 3rd party .NET components 
  – Revert back to JQuery
     • JQuery charts (licensing!)
  – Silverlight!
Extending Sandbox
• Trusted proxies:

      SPUCWorkerProcess.exe
SharePoint Client object model
• Supported technologies
  – .NET
  – Silverlight
  – ECMAScript
    (JavaScript, JScript)
„Search as you type” demo
PITANJA
HVALA!

Mais conteúdo relacionado

Mais de Toni Frankola

Understanding and Tracking Office 365 Usage and Adoption
Understanding and Tracking Office 365 Usage and AdoptionUnderstanding and Tracking Office 365 Usage and Adoption
Understanding and Tracking Office 365 Usage and AdoptionToni Frankola
 
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...Toni Frankola
 
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...Toni Frankola
 
SharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeSharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeToni Frankola
 
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2Toni Frankola
 
Automating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShellAutomating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShellToni Frankola
 
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...Toni Frankola
 
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...Toni Frankola
 
Best practices with SharePoint 2010 sandboxed solutions
Best practices with SharePoint 2010 sandboxed solutionsBest practices with SharePoint 2010 sandboxed solutions
Best practices with SharePoint 2010 sandboxed solutionsToni Frankola
 
The wonderful world of SharePoint 2010 service apps
The wonderful world of SharePoint 2010 service appsThe wonderful world of SharePoint 2010 service apps
The wonderful world of SharePoint 2010 service appsToni Frankola
 
Playing in the SharePoint SandBox
Playing in the SharePoint SandBoxPlaying in the SharePoint SandBox
Playing in the SharePoint SandBoxToni Frankola
 
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...Toni Frankola
 
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjeha
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjehaWinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjeha
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjehaToni Frankola
 
WinDays 2009 - SharePoint For End Users - Shortcuts To Success
WinDays 2009 - SharePoint For End Users - Shortcuts To SuccessWinDays 2009 - SharePoint For End Users - Shortcuts To Success
WinDays 2009 - SharePoint For End Users - Shortcuts To SuccessToni Frankola
 
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...Toni Frankola
 

Mais de Toni Frankola (15)

Understanding and Tracking Office 365 Usage and Adoption
Understanding and Tracking Office 365 Usage and AdoptionUnderstanding and Tracking Office 365 Usage and Adoption
Understanding and Tracking Office 365 Usage and Adoption
 
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...
Governance in the Modern Workplace: SharePoint, OneDrive, Groups, Teams, Flow...
 
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...
Prepare for SharePoint 2016 - IT Pro best practices for managing your SharePo...
 
SharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeSharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real life
 
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2
Building business forms with InfoPath 2010 and SharePoint 2010 – Part 2
 
Automating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShellAutomating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShell
 
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...
Windays 2011 - SharePoint no-code solutions with InfoPath 2010 and SharePoint...
 
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...
Building SharePoint 2010 applications with InfoPath 2010 and SharePoint Desig...
 
Best practices with SharePoint 2010 sandboxed solutions
Best practices with SharePoint 2010 sandboxed solutionsBest practices with SharePoint 2010 sandboxed solutions
Best practices with SharePoint 2010 sandboxed solutions
 
The wonderful world of SharePoint 2010 service apps
The wonderful world of SharePoint 2010 service appsThe wonderful world of SharePoint 2010 service apps
The wonderful world of SharePoint 2010 service apps
 
Playing in the SharePoint SandBox
Playing in the SharePoint SandBoxPlaying in the SharePoint SandBox
Playing in the SharePoint SandBox
 
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...
Slovenian SharePoint Conference 2009 - Best Practices To Boost Your Share Poi...
 
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjeha
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjehaWinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjeha
WinDays 2009 - SharePoint za krajnje korisnike - Prečacima do uspjeha
 
WinDays 2009 - SharePoint For End Users - Shortcuts To Success
WinDays 2009 - SharePoint For End Users - Shortcuts To SuccessWinDays 2009 - SharePoint For End Users - Shortcuts To Success
WinDays 2009 - SharePoint For End Users - Shortcuts To Success
 
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...
Introduction To Microsoft Office Share Point 2007 – Planning Installation Con...
 

Último

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Intro to SharePoint Sandboxed Solutions

  • 1.
  • 2. LECTURE Building SharePoint Online Web Parts Toni Frankola SharePoint MVP Acceleratio d.o.o.
  • 3. Contents • Office365 / SharePoint Online • Developing for SharePoint Online • Demos and tips • Some advanced stuff
  • 5. SharePoint • Sharing documents • Corporate social networks • Managing projects and documents • Search • News • Permissions • Offline sync • IM • …
  • 6. Challange • Case study: – Customer wants to use SharePoint in the cloud • …but with special forms, custom permissions and custom web parts
  • 8. SandBoxed Solutions • Isolated SP process (User Code Service) • Subset Microsoft.SharePoint namespace • Managed via browser (Solutions gallery)
  • 10. SANDBOXED SOLUTIONS - for developers
  • 11. Request Flow FRONT END BACK END Execution Manager Host Services (Inside Application Pool) (SPUCHostService.exe) IIS Worker Service (WPW3.EXE) (SPUCWorkerProcess.exe) Subset-Model Full-Model Request Request
  • 12. Supported in Sandboxed Solutions • Web Parts (no Visual WPs) • Lists • List Templates • Custom Actions • Workflows • Event Receivers • Content Types • Site Columns • … Source: http://msdn.microsoft.com/en-us/library/ff872402.aspx
  • 13. Supported API • All of the Microsoft.SharePoint namespace, except: – SPSite constructor – SPSecurity object – SPWorkItem and SPWorkItemCollection objects – SPAlertCollection.Add method – SPAlertTemplateCollection.Add method – SPUserSolution and SPUserSolutionCollection objects – SPTransformUtilities object – Microsoft.SharePoint.Navigation namespace • All of the Microsoft.SharePoint.Utilities namespace, except – SPUtility.SendEmail method – SPUtility.GetNTFullNameandEmailFromLogin method – Microsoft.SharePoint.Workflow namespace • All of the Microsoft.SharePoint.WebPartPages namespace, except – SPWebPartManager object – SPWebPartConnection object – WebPartZone object – WebPartPage object – ToolPane object – ToolPart object Source: http://msdn.microsoft.com/en-us/library/ff872402.aspx
  • 14. SharePoint Features / Solutions Solution (.wsp) Feature 2 Feature 1 Event Web Web … CSS … JS Handler Part Part
  • 15. Developer Tools • Visual Studio 2010 SharePoint Power Tools – adds Visual Web Part – SandBoxed solution validation (must have!) • Office365 Sandbox FxCop rules • CKSDEV add-on – Trusted proxy – Deployment options • Other stuff: – Visual Studio 2010 Productivity Pack – SP Dispose Checker (how to integrate with VS)
  • 16. SharePoint UX • Users want different UX
  • 17. UX: What do we need? • ASP.NET – .master page – CSS – javascript
  • 20. Link buttons • jQuery link buttons • SharePoint lista za linkove – Security – UI –… • SharePoint Feature
  • 23. Very bad WebPart • Infinite loop example: • Farm solution = problem • Sandboxed solution:
  • 24. Monitoring 101 • Site Collection Admin • Farm admin
  • 25. Monitored Resources Resources Hard Metric Name Description Units Per Point Limit AbnormalProcessTerminationCount Process gets abnormally terminated Count 1 1 CPUExecutionTime CPU exception time Seconds 3,600 60 CriticalExceptionCount Critical exception fired Number 10 3 Number of times solution InvocationCount Count N/A N/A has been invoked Percentage Units of Overall PercentProcessorTime Note: # of cores not factored in 85 100 Processor Consumed ProcessCPUCycles CPU Cycles 1E+11 1E+11 ProcessHandleCount Windows Handles 10,000 1,000 (Hard Limit Only) Bytes written ProcessIOBytes Bytes 0 1E+08 to IO Number of Threads ProcessThreadCount Threads 10,000 200 in Overall Process (Hard Limit Only) ProcessVirtualBytes Bytes 0 1E+09 Memory consumed SharePointDatabaseQueryCount SharePoint DB Queries Invoked Number 20 100 Amount of time spent waiting SharePointDatabaseQueryTime Seconds 120 60 for a query to be performed UnhandledExceptionCount Unhanded Exceptions 50 3 We have to kill the process because UnresponsiveprocessCount Number 2 1 it has become unresponsive
  • 27. Not supported! • Off-box connections, http, web services, etc • ADO.net • Enterprise features (Search, BCS, etc.) • Threading • P-Invoke • IO • Other sites (site collections)
  • 28. Beyond Limits • No 3rd party .NET components  – Revert back to JQuery • JQuery charts (licensing!) – Silverlight!
  • 29. Extending Sandbox • Trusted proxies: SPUCWorkerProcess.exe
  • 30. SharePoint Client object model • Supported technologies – .NET – Silverlight – ECMAScript (JavaScript, JScript)
  • 31. „Search as you type” demo

Notas do Editor

  1. Resource Per Point is how much this contributes to the point limit per day for the site collectionHard Limit is how much of this resource a solution can use in a single invocation before it is terminated – a maximum use of quota in a single invocationInvocation count is used to measure the per-instance cost of a solution for purposes of reporting and assigning to run-time “tiers” for farms that want to separate solutions into multiple different sandbox processes – there is only one by default.
  2. Source: http://blah.winsmarts.com/2009-12-SharePoint_2010_Sandboxed_Solutions__Full_Trust__Proxies.aspx