ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web parts
1. Developing SharePoint 2010
and Silverlight Web Parts –
Tips and Tricks
Ovidiu Becheș-Puia
SharePoint Developer
EBS Romania
ovidiu.beches@ebs.ro
@ itcampro # itcamp12 Premium conference on Microsoft technologies
2. ITCamp 2012 sponsors Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
3. Agenda Architecture &
Best Practices
• SharePoint Developer Tools
• ASP.NET and Silverlight Web Parts
• SPG (SharePoint Pattern&Practices Guidance)
• Unit Testing in SharePoint
• DEMOS
@ itcampro # itcamp12 Premium conference on Microsoft technologies
4. Intro Architecture &
Best Practices
What means to me developing and working with SharePoint ?
@ itcampro # itcamp12 Premium conference on Microsoft technologies
5. Intro Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
6. The SharePoint Developer Toolbox
TOOLS
@ itcampro # itcamp12 Premium conference on Microsoft technologies
7. TOOLS Architecture &
Best Practices
• SPM 2010
@ itcampro # itcamp12 Premium conference on Microsoft technologies
8. TOOLS Architecture &
Best Practices
• ULS Viewer
@ itcampro # itcamp12 Premium conference on Microsoft technologies
9. TOOLS Architecture &
Best Practices
• .NET Reflector / JustDecompile
@ itcampro # itcamp12 Premium conference on Microsoft technologies
10. TOOLS Architecture &
Best Practices
• Fiddler2 / Firebug
@ itcampro # itcamp12 Premium conference on Microsoft technologies
11. TOOLS Architecture &
Best Practices
• CKS – Community Kit for SharePoint
@ itcampro # itcamp12 Premium conference on Microsoft technologies
12. TOOLS Architecture &
Best Practices
• SPSF – SharePoint Software Factory
@ itcampro # itcamp12 Premium conference on Microsoft technologies
13. TOOLS Architecture &
Best Practices
• Linq to SharePoint DSL Extension for VS2010
@ itcampro # itcamp12 Premium conference on Microsoft technologies
14. Developing ASP.NET and Silverlight WebParts
WEB PARTS
@ itcampro # itcamp12 Premium conference on Microsoft technologies
15. Web Parts Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
16. Web Parts Architecture &
Best Practices
My GOLDEN RULE (GOAL)
It would be so much easier if we could avoid using
SharePoint server to develop Web Part / anything
The F5 Build/Deploy/Test cycle is slow….
@ itcampro # itcamp12 Premium conference on Microsoft technologies
17. Web Parts Architecture &
Best Practices
When not to use SharePoint:
-if your WebPart does not use SharePoint calls
-use a simple ASP.NET Web Application – test harness
-statically declare WebParts in aspx – so no need to
handle personalisation
The F5 Build/Deploy/Test cycle is slowww..
@ itcampro # itcamp12 Premium conference on Microsoft technologies
18. SharePoint 2010 Pattern & Practices Guidance
SPG
@ itcampro # itcamp12 Premium conference on Microsoft technologies
19. SPG Architecture &
Best Practices
(Coding) Challenges when creating enterprise
applications:
• Testability
– can you isolate your classes
• Flexibility
– Can you update or replace code without
recompiling
• Configuration
– How do you manage configuration settings?
@ itcampro # itcamp12 Premium conference on Microsoft technologies
20. SPG Architecture &
Best Practices
(Coding) Challenges when creating enterprise
applications:
• Logging and exception handling
– How do you log ? Consistent across the team
• Maintainability
- How can you maintain code that is always
evolving
• Can your code run in the Cloud (Office 365)
- Without Full trust proxy
@ itcampro # itcamp12 Premium conference on Microsoft technologies
21. SPG Architecture &
Best Practices
• Main patterns illustrated (with reference
applications in the SPG)
-Service Locator pattern
-MVP pattern (Model-View-Presenter)
-MVVM pattern (Model-View-ViewModel)
-Repository pattern
@ itcampro # itcamp12 Premium conference on Microsoft technologies
22. SPG: Service Locator pattern Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
23. SPG: Service Locator pattern Architecture &
Best Practices
Mappings add on Farm level
Can be added using only:
-farm feature / CA Web App
-console app
Mappings add on Site Coll. level
Get Service Locator
-Site Collection (if SPContext )
-Farm
@ itcampro # itcamp12 Premium conference on Microsoft technologies
24. SPG:MVP (Model-View-Presenter) Architecture &
Best Practices
-MVP originated in early 1990s
-MVP is a derivative of MVC
-Two types of implementation
– Passive View
– Supervising Controller
-Presenter assumes the functionality of the
MVC controller
-View is responsible for handling UI events
-Model becomes strictly a Domain Model
@ itcampro # itcamp12 Premium conference on Microsoft technologies
25. SPG:MVP (Model-View-Presenter) Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
26. SPG:M-V-VM Architecture &
Best Practices
• Largely based on MVC
• Specialization of the MVP pattern known as
Presentation Model
• Build specifically for the WPF and Silverlight
• ViewModel is a “Model of the View”
-it extends the Model with Behaviours the View
could use
-Data binding between View and Model
-Passes commands between the View and Model
@ itcampro # itcamp12 Premium conference on Microsoft technologies
27. SPG:M-V-VM Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
28. SPG:M-V-VM Architecture &
Best Practices
The Model - which provides a view-independent
representation of your business entities
The View - which is the user interface. It displays information
to the user and fires events in response to user interactions
The ViewModel - which is the bridge between the view and the
model.
@ itcampro # itcamp12 Premium conference on Microsoft technologies
29. SPG:M-V-VM Architecture &
Best Practices
How about JavaScript / HTML5?
@ itcampro # itcamp12 Premium conference on Microsoft technologies
30. SPG: Repository Pattern Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies
31. SPG: Repository Pattern Architecture &
Best Practices
Choosing a SharePoint Data Access Technology
@ itcampro # itcamp12 Premium conference on Microsoft technologies
32. Unit Testing in SharePoint World
UNIT TESTS
@ itcampro # itcamp12 Premium conference on Microsoft technologies
33. UNIT TEST Architecture &
Best Practices
Only Integration Tests with MSTest
- Visual Studio 2010 SP1
SPListCollection – internal ctors.
Isolation Frameworks:
-Typemock – not free
-Pex and Moles – free
@ itcampro # itcamp12 Premium conference on Microsoft technologies
34. UNIT TEST Architecture &
Best Practices
Mocking the ‘Principle of Isolation’
@ itcampro # itcamp12 Premium conference on Microsoft technologies
35. UNIT TEST Architecture &
Best Practices
TDD and SharePoint
-reducing the cost of change
-in a typical SharePoint project, the portion
where TDD is actually applicable is very small
which is the writing code part Sahil Malik
TDD + SharePoint ? Not worth it IMHO.
@ itcampro # itcamp12 Premium conference on Microsoft technologies
36. UNIT TEST Architecture &
Best Practices
TDD and SharePoint
a typical SharePoint project:
• Customer communication and prototyping
• Plenty of attention to the IT Pro side, where you
decide logical and physical layouts of your servers,
networks, and your site collections
• A significant effort in branding Sahil Malik
• Focus on scalability
• Writing some code
• Establishing roles within your team (overlap with IT
Pro guys)
• Training required
• large portions of XML
@ itcampro # itcamp12 Premium conference on Microsoft technologies
37. UNIT TEST Architecture &
Best Practices
Pex and Moles - Peli de Halleux – Microsoft Research
@ itcampro # itcamp12 Premium conference on Microsoft technologies
38. Vă mulțumesc
Q&A
@ itcampro # itcamp12 Premium conference on Microsoft technologies
39. Conclusions Architecture &
Best Practices
@ itcampro # itcamp12 Premium conference on Microsoft technologies