Upload
tim-mccarthy
View
549
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Many developers forget about good object-oriented design techniques when developing in SharePoint, most of the time because they get overwhelmed by the framework. Unit testing often gets thrown out of the window, and most of the time the application becomes very tightly coupled to the SharePoint object model. This talk will demonstrate how to overcome these obstacles and build solid SharePoint application code that is much more testable and is easier to maintain.
Citation preview
Writing Testable Code in SharePoint
Tim McCarthySenior Technical Architect
Perficient
Agenda
• Introduction• Repository Pattern• IoC and Dependency Injection Patterns• Model View Presenter Pattern• Unit Testing strategies• Summary
Introduction
• Tightly-coupled SharePoint Code• Difficult to test Web Parts and Pages• Need a better way to organize the code• The answer: Design Patterns!
What is the Repository Pattern?
• Isolates the domain model from data access• Encapsulates the domain object persistence• Persistence Ignorance is bliss!• Works well when used with interfaces…
DemoRepository Pattern
What is IoC?
• Inversion of Control• Depend upon abstract types, not concrete
types
Benefits of Inversion of Control
• Can swap out implementations later (such as different repositories)
• Allows parts of the application to be built independently with no complicated dependencies
• Can work in ASP.NET and switch over to SharePoint later
What is DI?
• DI = Dependency Injection• One solution to the problem instantiating
abstract types• Available DI frameworks– Castle– Unity– MEF– Etc.
Benefits of Dependency Injection
• Can write more granular unit tests• Don’t need to hit the database for testing UI
logic• Allows parts of an application to be easily
swapped out without re-compiling• Using a DI framework makes it almost
seamless!
DemoIoC and Dependency Injection
Model View Presenter Pattern
• Gets the logic out of your UI so it can be tested!
• Forced separation of concerns• Can enable UI logic to be shared• Side Point: Why not use MVC in SharePoint?
DemoModel View Presenter
Unit Testing Strategies
• Test the presenters separately• Use mock views and mock repositories when
testing the presenters• Test the concrete repositories separately
DemoUnit Tests
Summary
• Design Patterns are the key to better SharePoint code!
• Repository, IoC and DI patterns make testing way easier
• MVP pattern gets the logic out of your UI code
Contact Info
We want your feedback!Use this QR code or visit:http://sps.la/feedback
Silver Sponsors:
Victory Lap- social event "SharePoint Victory Lap" Social Event for
SPSLA will be at: 5:30pm to 8pm at Di Piazzas (5205 E. Pacific Coast Hwy, 90804)