Download - Extending expression blend (themed)
Extending Expression
BlendCristian Prieto
Senior Developer, Readify
http://cprieto.com, @cprieto
Why to extend?
Sometimes it doesn’t do what you use to do in other tool
Maybe there’s a market for that out there, who knows!
Sometimes you feel bored at home and need to code something different
You because you can!
What can be extended?
Microsoft Expression Web
HTML Addins
Microsoft Expression Blend
Blend behaviors
Microsoft Expression Encoder
Publish addins
What Microsoft says:
This is not officially
supported!
What do I need?
A .Net language, of course!
MEF knowledge
ICommand, Service locator pattern knowledge… maybe
Reflector/ILSpy/Cecil
A lot of patience!
Blend Extension points
Officially supported
Behaviors (Blend SDK)
design-experience for custom controls
Item and Project templates
Not officially supported
Everything else!
Blend Extension Model
There are IPackage’s
AddIn’s
Extension’s
There is a “service container/locator”
IServices : IServiceProvider
There is an “application context”
ExpressionApplication
There is a service for almost anything
Because you already using it, right?Introduction to MEF
Now what you were waiting for…Our first extension
Come on! Don’t be so shy!
Questions?
ReferenceReflector 7
http://reflector.red-gate.com/download.aspx
ILSpy
http://wiki.sharpdevelop.net/ilspy.ashx
WPF Designer extensibility
http://msdn.microsoft.com/en-us/library/bb546938.aspx
Silverlight/WPF Designer extensibility
http://archive.msdn.microsoft.com/DesignerExtensbility
Expression Blend Designer extensibility
http://blogs.msdn.com/b/terryclancy/archive/2011/01/21/microsoft-expression-blend-4-extensibility.aspx
Building extensions for Expression Blend 4 using MEF
http://www.codeproject.com/Articles/75961/Building-extensions-for-Expression-Blend-4-using-M.aspx
MEF project on Codeplex
http://mef.codeplex.com/
(bonus track) Creating an Expression Encoder publishing plugin
http://msdn.microsoft.com/en-us/magazine/cc136758.aspx