Download - Kako praviti dobre SharePoint aplikacije ?
![Page 1: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/1.jpg)
Adis Jugo PlanB. GmbH
Kako praviti dobre SharePoint aplikacije?
(Development Cycle na SharePoint način)
![Page 2: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/2.jpg)
Adis Jugo, PlanB.
Perception of SharePoint applications
![Page 3: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/3.jpg)
Adis Jugo, PlanB.
Agenda
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 4: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/4.jpg)
Adis Jugo, PlanB.
Requirements management
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 5: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/5.jpg)
Adis Jugo, PlanB.
A day in life of a SharePoint architect / dev
“We are shooting at a moving target while wearing blindfolds, without knowing what the target looks like, where it is, or what type of ammo we need to use. In fact, we don’t even know if we’re in the right shooting range.”
Bjørn Furuknap, SP consultant and blogger
![Page 6: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/6.jpg)
Adis Jugo, PlanB.
Requirements management
Holy Grail(and your life insurance)
Change management
(Agile)
Reqs document
Time/cost estimation
![Page 7: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/7.jpg)
Adis Jugo, PlanB.
Requirements document• Contains detailed explanation of all use cases (scenarios)
• Contains descriptions of all user roles (and permissions)
• Contains description of all inputs and outputs
• Contains descriptions of all processes
• Contains predicted extensity of use and concurrency situations
• Describes what can be implemented as a “no code solution”, and what has to be developed
![Page 8: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/8.jpg)
Adis Jugo, PlanB.
Requirements document
• Ensures that all the people involved in the process really understand the process
• Ideally done by a business analyst and an architect
• Contains yours and customer’s signature
![Page 9: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/9.jpg)
Adis Jugo, PlanB.
NO SPECS – NO CODE• SharePoint empowers users to do things alone ->
NO SPECS - NO CODE
• Customer’s processes are at very best loosely described -> NO SPECS - NO CODE
• Customers don’t understand the complexity of the solution they require -> NO SPECS – NO CODE
• But we have agreed that you will do that…NO SPECS – NO CODE
• If we kick off immediately, we will save time…(yes, and Elvis is still alive) -> NO SPECS – NO CODE
• Protect yourself AND your customer
![Page 10: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/10.jpg)
Adis Jugo, PlanB.
Time and Costs estimation
![Page 11: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/11.jpg)
Adis Jugo, PlanB.
Time and Costs estimation• First 80% of the project consumes 80% of the budget
• Last 20% of the project consumes another 80% of the budget
Bill Gates
![Page 12: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/12.jpg)
Adis Jugo, PlanB.
Time/Budget consumption according to Gates
10 20 30 40 50 60 70 80 90 1000
20
40
60
80
100
120
140
160
180
Budget consumption (%)
Project completion (%)
![Page 13: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/13.jpg)
Adis Jugo, PlanB.
Some questions to think about• How long do you need for the development?• Break the requirements document down to deliverables
and blocks. Do you have everything in requirements doc? How long did you write the requirements doc?
• Who did the architecture? When?• How about some testing?• You have bugs? When are you going to fix them?• Who is going to deploy the solution? To which server?
When?• Do you practice code reviews?• Who is going to the meetings? How often?
![Page 14: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/14.jpg)
Adis Jugo, PlanB.
Making a Time / Costs estimation
Iterations• Design• Development• Testing• Debugging• Review• …
Deployment
Project Mgmnt.
…
![Page 15: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/15.jpg)
Adis Jugo, PlanB.
Making a Time / Costs estimation• Event receiver? Can be done in 1h. (Best case)• Maybe in 2h (Most Likely)• Or sometimes in a day (Worst case)
64 WBMLE
![Page 16: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/16.jpg)
Adis Jugo, PlanB.
Making a Time / Costs estimation
![Page 17: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/17.jpg)
Adis Jugo, PlanB.
Change Management
![Page 18: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/18.jpg)
Adis Jugo, PlanB.
Change Management• I have deleted that field. We didn't need it anymore.
![Page 19: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/19.jpg)
Adis Jugo, PlanB.
Change Management• I have deleted that field. We didn't need it anymore.• We have changed the workflow - process description was
wrong
![Page 20: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/20.jpg)
Adis Jugo, PlanB.
Change Management• I have deleted that field. We didn't need it anymore.• We have changed the workflow - process description was
wrong• I've just changed the list name, why is the event receiver
not working?
![Page 21: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/21.jpg)
Adis Jugo, PlanB.
Change Management• I have delete that field we didn't need it anymore• We have changed the workflow - process description was
wrong• I've just changed the list name, why is the event receiver
not working?
THEY CAN DO THAT!
![Page 22: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/22.jpg)
Adis Jugo, PlanB.
Change Management
Change
Standard Change
Deal within CM
SharePoint Change
Crucial for the solution?
Yes: Deal within
Architecture
No: Deal within CM
![Page 23: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/23.jpg)
Adis Jugo, PlanB.
Architecture of SharePoint solutions
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 24: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/24.jpg)
Adis Jugo, PlanB.
Architecture of SharePoint solutions
![Page 25: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/25.jpg)
Adis Jugo, PlanB.
A SharePoint Solution
SP Solution
InPage
Event Receivers
Timer Jobs
WorkflowsSilverlight
Ajax
Managed Code
Office Clients
!NET
![Page 26: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/26.jpg)
Adis Jugo, PlanB.
What is wrong with this web part?
![Page 27: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/27.jpg)
Adis Jugo, PlanB.
Solution Architecture
DA Common Functions
Core Functions(Logging,
Exceptions)
Data Access Layer
Business Logic Layer
SP DATA
InPage Event Rcv.
Workflow Timer
Service(s) – WCF, ASMX, REST
RIA NET
Office !Net
I
![Page 28: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/28.jpg)
Adis Jugo, PlanB.
Solution Architecture
DA Common Functions
Core Functions(Logging,
Exceptions)
Data Access Layer
Business Logic Layer
SP DATA
InPage Event Rcv.
Workflow Timer
Service(s) – WCF, ASMX, REST
RIA NET
Office !Net
I
![Page 29: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/29.jpg)
Adis Jugo, PlanB.
Solution Architecture: InPage
![Page 30: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/30.jpg)
Adis Jugo, PlanB.
Solution Architecture: Client Side
![Page 31: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/31.jpg)
Adis Jugo, PlanB.
Solution Architecture: Client Side
![Page 32: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/32.jpg)
Adis Jugo, PlanB.
Solution Architecture: Client Side• People want a good looking and good performing
application• Increase performance:
– Async calls– Client Side Caching– Predictive Loading
• Reachability as an issue
Reach
Capability
HTML
AJAX
Silverlight
![Page 33: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/33.jpg)
Adis Jugo, PlanB.
Error Handling and logging
![Page 34: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/34.jpg)
Adis Jugo, PlanB.
Demo: Logging in ULS
![Page 35: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/35.jpg)
Adis Jugo, PlanB.
Configuration• No Hard-Coded configuration
• Web.Config only in life threatening situations
• Or…
![Page 36: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/36.jpg)
Adis Jugo, PlanB.
SPG Configuration Manager
![Page 37: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/37.jpg)
Adis Jugo, PlanB.
Multilingualism
![Page 38: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/38.jpg)
Adis Jugo, PlanB.
Multilingualism – OOB features
![Page 39: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/39.jpg)
Adis Jugo, PlanB.
Multilingualism – user preferences
![Page 40: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/40.jpg)
Adis Jugo, PlanB.
Multilingualism – ML configuration list
![Page 41: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/41.jpg)
Adis Jugo, PlanB.
Other architecture considerations• Architecture documentation• Standard Design Patterns• Avoid 3rd Party libraries• Solution Technical Documentation
![Page 42: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/42.jpg)
Adis Jugo, PlanB.
SharePoint development
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 43: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/43.jpg)
Adis Jugo, PlanB.
Development• Standard coding conventions (Microsoft)• Define standard core libraries (reuse standard
functionality) – own or SPG• Use standard VS 2010 SharePoint project
templates• Follow the SharePoint rules of game – field
names, required fields, descriptions, translations
• Follow architecture guidelines – logging and exception handling
• Use a very defensive approach – you never know when will somebody delete a field
![Page 44: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/44.jpg)
Adis Jugo, PlanB.
Development• Use SharePoint tools (SharePoint Manager, ULS
Viewer, SPDiag)
• Don’t use 3rd party components if you don’t really have to
• Use Linq – SPMetal is good
![Page 45: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/45.jpg)
Adis Jugo, PlanB.
Testing SharePoint Solutions
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 46: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/46.jpg)
Adis Jugo, PlanB.
Unit Testing, Integration Testing• First line of defense• Not possible OOB with Visual Studio 2010 Unit Testing• Custom Unit testing solutions• Moles Framework• Custom Console App
• Continuous Integration Testing(TFS Team Build, Cruise Control)
![Page 47: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/47.jpg)
Adis Jugo, PlanB.
UI, |Stress and Load Testing• Coded UI Tests• Load Tests• Stress Tests
![Page 48: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/48.jpg)
Adis Jugo, PlanB.
Manual tests
• Still the most important tests• Test cases document• Microsoft Test Manager -> Helps with Problem
reproducing fight
![Page 49: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/49.jpg)
Adis Jugo, PlanB.
Quality Assurance
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 50: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/50.jpg)
Adis Jugo, PlanB.
Quality Assurance
• StyleCop• DisposeChecker
![Page 51: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/51.jpg)
Adis Jugo, PlanB.
Deployment
Dev Cycle
Requirements
management
Solution Architecture
Development
Testing
Quality Assurance
Deployment
![Page 52: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/52.jpg)
Adis Jugo, PlanB.
Deployment cycle
![Page 53: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/53.jpg)
Adis Jugo, PlanB.
And finally
![Page 54: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/54.jpg)
Resources• Time and Costs estimation template
http://adis.jugo.ba/download/blogimg/2011/1sug_juli2011/TimeCostsEstimation_Example.xlsx
• SharePoint Guidance 2010http://spg.codeplex.com
• MVP pattern in SharePoint InPage elements (WebParts, ASPX)http://msdn.microsoft.com/en-us/library/ee413740.aspx
• 1SUG BiHhttp://www.1sug.com
• Adis Jugo bloghttp://adis.jugo.ba
• PlanB. GmbHhttp://www.plan-b-gmbh.com
• Coding Conventions Examplehttp://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx
• SharePoint best practiceshttp://msdn.microsoft.com/en-US/sharepoint/ff660756.aspx
• Pex and Moles Frameworkhttp://research.microsoft.com/en-us/projects/pex/downloads.aspx
• Asterix and Cleopatrahttp://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=asterix+and+cleopatra&x=0&y=0
![Page 55: Kako praviti dobre SharePoint aplikacije ?](https://reader035.vdocuments.us/reader035/viewer/2022062323/56815ee7550346895dcd9277/html5/thumbnails/55.jpg)
Adis Jugo, PlanB.
• http://www.plan-b-gmbh.com
• http://www.adisjugo.com
@adisjugo