itcamp 2012 - ovidiu beches - developing sharepoint 2010 and silverlight web parts
TRANSCRIPT
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Developing SharePoint 2010 and Silverlight Web Parts –
Tips and Tricks
Ovidiu Becheș-Puia
SharePoint Developer
EBS Romania
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices ITCamp 2012 sponsors
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• SharePoint Developer Tools
• ASP.NET and Silverlight Web Parts
• SPG (SharePoint Pattern&Practices Guidance)
• Unit Testing in SharePoint
• DEMOS
Agenda
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices Intro
What means to me developing and working with SharePoint ?
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices Intro
itcampro @ itcamp12 # Premium conference on Microsoft technologies
TOOLS
The SharePoint Developer Toolbox
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• SPM 2010
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• ULS Viewer
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• .NET Reflector / JustDecompile
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• Fiddler2 / Firebug
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• CKS – Community Kit for SharePoint
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• SPSF – SharePoint Software Factory
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices
• Linq to SharePoint DSL Extension for VS2010
TOOLS
itcampro @ itcamp12 # Premium conference on Microsoft technologies
WEB PARTS
Developing ASP.NET and Silverlight WebParts
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices Web Parts
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices Web Parts
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
Architecture &
Best Practices Web Parts
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
SPG
SharePoint 2010 Pattern & Practices Guidance
itcampro @ itcamp12 # Premium conference on Microsoft technologies
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?
SPG
itcampro @ itcamp12 # Premium conference on Microsoft technologies
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
SPG
itcampro @ itcamp12 # Premium conference on Microsoft technologies
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
SPG
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG: Service Locator pattern
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG: Service Locator pattern
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
Architecture &
Best Practices SPG:MVP (Model-View-Presenter)
-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
Architecture &
Best Practices SPG:MVP (Model-View-Presenter)
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG:M-V-VM
• 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
Architecture &
Best Practices SPG:M-V-VM
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG:M-V-VM
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
Architecture &
Best Practices SPG:M-V-VM
How about JavaScript / HTML5?
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG: Repository Pattern
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices SPG: Repository Pattern
Choosing a SharePoint Data Access Technology
itcampro @ itcamp12 # Premium conference on Microsoft technologies
UNIT TESTS
Unit Testing in SharePoint World
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices UNIT TEST
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
Architecture &
Best Practices UNIT TEST
Mocking the ‘Principle of Isolation’
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices UNIT TEST
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
TDD + SharePoint ? Not worth it IMHO.
Sahil Malik
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices UNIT TEST
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 • Focus on scalability • Writing some code • Establishing roles within your team (overlap with IT
Pro guys) • Training required • large portions of XML
Sahil Malik
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices UNIT TEST
Pex and Moles - Peli de Halleux – Microsoft Research
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Q & A
Vă mulțumesc
itcampro @ itcamp12 # Premium conference on Microsoft technologies
Architecture &
Best Practices Conclusions