Rovinj, 23. – 26. travnja 2012.
Are good SharePoint
solutions only a myth?
ADIS JUGO
MVP
PlanB.
Sponzori
Isključite zvuk
telefona
Are good SharePoint
solutions only a myth?
Are good SharePoint
  solutions only a myth?

... the developer community is full with statements like "there are
good developers, there are bad developers, and then there are
SharePoint developers"; or "there is solid software architecture, and
then there are SharePoint solutions"
Perception of SharePoint Applications




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Expectations…




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Time and costs estimation




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Architecting SharePoint solutions




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
What is wrong with this web part?




                                    Adis Jugo, PlanB.
Types of SharePoint solutions

             • Enterprise SharePoint Solutions

             • SharePoint SandBox Solutions

             • Solutions that use SharePoint data




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
4 questions for architects

             • How will the users be using the application?

             • How will the application be deployed into production
               and managed?

             • What are the quality attribute requirements for the
               application (security, performance, concurrency,
               localization, and configuration)

             • How can the application be designed to be flexible
               and maintainable over time?

WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Architecture Considerations
            Quality attributes
                                 –   Security
                                 –   Performance
                                 –   Concurrency
                                 –   Localization / Internationalization
                                 –   Configuration

             • Considerations
                                 –   …




             • Impersonation

             • Logging

             • Caching

             • Testing

             • Deployment

             • Flexibility / Manageability / FutureProof


WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
ENTERPRISE
SHAREPOINT
SOLUTIONS
A SharePoint Solution

                                   Managet
                                    Code /
                       Workflows   Silverlight   Ajax


                                                        Office
          Timer Jobs
                                                        Clients


                                                                  !NET /
   Event
                                                                  Mobile/
  Receivers
                                                                  Tablet




 InPage
                                      SP                            WinRT /
                                   Solution                         Metro
BL Classes not
 SPContext Aware
     SPContext
Transport/Creation?
                       SPContext Aware
                      Infrastructure Layer
                             Classes




    Dependency
     injection
WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Logging

            • Logging from the
              BL
            • ULS for SharePoint
  LOGGING
            • Different
              implementations
Caching, Persistence

                          • Caching in front-
                            end Web Server

                             – AppFabric for
   Caching, persistence        Windows Server
                             – NCache


                          • Persistence
                             – SPPersistedObject
Localization / Internationalization




                                         •   Chrome
                                         •   User Interface
WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER   •   Navigation
                                         •   Content
Architecting InPage Elements: MVP Model




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Unit Testing



                                         nUnit

                                         SharePoint DAL
                                         Infrastr. Layer
               Business Layer
                                              – Logging
                                              – Caching          SharePoint is no
                                              – Configuration   excuse for lack of
               VS Unit Testing           Presenter (MVP)           Unit Testing

WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Problems, problems…

             • Everything is SharePoint App Pool

             •                     Deep impact on SharePoint Server

             • Deployment to SharePoint Web Front Server(s)

             •                     Policies?

             • Maintenance

             • Not possible with Office 365 (or other hosted services)


WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
SharePoint Enterprise Solutions
             Architectural considerations   Quality Attributes

             Impersonation                  Security

             Logging                        Performance

             Caching                        Concurrency

             Testing                        Localization / Internationalization

             Deployment                     Configuration

             Flexibility / Future Proof



WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
UMJESTO DEMOA

blog.sharedove.com/adisjugo
sharedove.codeplex.com
SHAREPOINT
SANDBOX
SOLUTIONS
SHAREPOINT
SANDBOX
SOLUTIONS
SandBox Solutions
             Architectural considerations   Quality Attributes

             Impersonation                  Security

             Logging                        Performance

             Caching                        Concurrency

             Testing                        Localization / Internationalization

             Deployment                     Configuration

             Flexibility / Future Proof



WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
SOLUTIONS
WHICH USE
SHAREPOINT
DATA
SharePoint on Premise + Application Server




                                           Business processes
               Your Data                   Solutions
                                           …
               Collaboration
                                           All custom
               Portals                     development
               …

WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
SharePoint Online (O365) + Windows Azure




                                         Worker Processes
               Your Data
                                         Azure Services
               Collaboration
                                         Web Sites
               Portals
               …

WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
No SPContext
aware Components
SOLUTIONS WITH SHAREPOINT DATA
             Architectural considerations   Quality Attributes

             Impersonation                  Security

             Logging                        Performance

             Caching                        Concurrency

             Testing                        Localization / Internationalization

             Deployment                     Configuration

             Flexibility / Future Proof



WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Limitations

             • Limited access possibilities
             •      ASMX Services

             •      OData

             •      CSOM (Client SharePoint Object Model)

             • No advanced list-data management

             • No Event Receivers, Timer Jobs

             • Outside of SharePoint user interface

             • Suitable for integrating other solutions with SharePoint


WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
IT’S YOUR CHOICE
And Finally




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
Resources

             • Asterix and Cleopatra
               http://www.amazon.com/s/ref=nb_sb_noss?url=search-
               alias%3Daps&field-
               keywords=asterix+and+cleopatra&x=0&y=0

             • MS P&P: SharePoint Guide
               http://spg.codeplex.com

             • MVP pattern in SharePoint InPage elements (WebParts, ASPX)
               http://msdn.microsoft.com/en-us/library/ee413740.aspx




WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER




                                         http://www.planb.ba
Pitanja




          @adisjugo
Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?

Are good SharePoint solutions only a myth?

  • 1.
    Rovinj, 23. –26. travnja 2012.
  • 2.
    Are good SharePoint solutionsonly a myth? ADIS JUGO MVP PlanB.
  • 3.
  • 4.
  • 5.
  • 6.
    Are good SharePoint solutions only a myth? ... the developer community is full with statements like "there are good developers, there are bad developers, and then there are SharePoint developers"; or "there is solid software architecture, and then there are SharePoint solutions"
  • 7.
    Perception of SharePointApplications WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 8.
  • 9.
    Time and costsestimation WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 10.
    Architecting SharePoint solutions WINDAYS12TECHNOLOGY OBRAZOVNI PARTNER
  • 11.
    What is wrongwith this web part? Adis Jugo, PlanB.
  • 12.
    Types of SharePointsolutions • Enterprise SharePoint Solutions • SharePoint SandBox Solutions • Solutions that use SharePoint data WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 13.
    4 questions forarchitects • How will the users be using the application? • How will the application be deployed into production and managed? • What are the quality attribute requirements for the application (security, performance, concurrency, localization, and configuration) • How can the application be designed to be flexible and maintainable over time? WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 14.
    Architecture Considerations Quality attributes – Security – Performance – Concurrency – Localization / Internationalization – Configuration • Considerations – … • Impersonation • Logging • Caching • Testing • Deployment • Flexibility / Manageability / FutureProof WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 15.
  • 16.
    A SharePoint Solution Managet Code / Workflows Silverlight Ajax Office Timer Jobs Clients !NET / Event Mobile/ Receivers Tablet InPage SP WinRT / Solution Metro
  • 18.
    BL Classes not SPContext Aware SPContext Transport/Creation? SPContext Aware Infrastructure Layer Classes Dependency injection
  • 19.
  • 20.
    Logging • Logging from the BL • ULS for SharePoint LOGGING • Different implementations
  • 21.
    Caching, Persistence • Caching in front- end Web Server – AppFabric for Caching, persistence Windows Server – NCache • Persistence – SPPersistedObject
  • 22.
    Localization / Internationalization • Chrome • User Interface WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER • Navigation • Content
  • 23.
    Architecting InPage Elements:MVP Model WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 24.
    Unit Testing nUnit SharePoint DAL Infrastr. Layer Business Layer – Logging – Caching SharePoint is no – Configuration excuse for lack of VS Unit Testing Presenter (MVP) Unit Testing WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 25.
    Problems, problems… • Everything is SharePoint App Pool • Deep impact on SharePoint Server • Deployment to SharePoint Web Front Server(s) • Policies? • Maintenance • Not possible with Office 365 (or other hosted services) WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 26.
    SharePoint Enterprise Solutions Architectural considerations Quality Attributes Impersonation Security Logging Performance Caching Concurrency Testing Localization / Internationalization Deployment Configuration Flexibility / Future Proof WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 27.
  • 28.
  • 29.
  • 30.
    SandBox Solutions Architectural considerations Quality Attributes Impersonation Security Logging Performance Caching Concurrency Testing Localization / Internationalization Deployment Configuration Flexibility / Future Proof WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 31.
  • 32.
    SharePoint on Premise+ Application Server Business processes Your Data Solutions … Collaboration All custom Portals development … WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 33.
    SharePoint Online (O365)+ Windows Azure Worker Processes Your Data Azure Services Collaboration Web Sites Portals … WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 34.
  • 35.
    SOLUTIONS WITH SHAREPOINTDATA Architectural considerations Quality Attributes Impersonation Security Logging Performance Caching Concurrency Testing Localization / Internationalization Deployment Configuration Flexibility / Future Proof WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 36.
    Limitations • Limited access possibilities • ASMX Services • OData • CSOM (Client SharePoint Object Model) • No advanced list-data management • No Event Receivers, Timer Jobs • Outside of SharePoint user interface • Suitable for integrating other solutions with SharePoint WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER
  • 37.
  • 38.
  • 39.
    Resources • Asterix and Cleopatra http://www.amazon.com/s/ref=nb_sb_noss?url=search- alias%3Daps&field- keywords=asterix+and+cleopatra&x=0&y=0 • MS P&P: SharePoint Guide http://spg.codeplex.com • MVP pattern in SharePoint InPage elements (WebParts, ASPX) http://msdn.microsoft.com/en-us/library/ee413740.aspx WINDAYS12 TECHNOLOGY OBRAZOVNI PARTNER http://www.planb.ba
  • 40.
    Pitanja @adisjugo