Writing Testable Code in SharePoint
-
Upload
tim-mccarthy -
Category
Technology
-
view
536 -
download
4
description
Transcript of Writing Testable Code in SharePoint
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)