SlideShare a Scribd company logo
1 of 11
Extending Expression Blend Cristian 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?
Reference Reflector 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

More Related Content

Viewers also liked

Students need to be part of the community
Students need to be part of the communityStudents need to be part of the community
Students need to be part of the communityJesse Rodgers
 
Simple Project Management
Simple Project ManagementSimple Project Management
Simple Project ManagementJesse Rodgers
 
Node.js for .net developers
Node.js for .net developersNode.js for .net developers
Node.js for .net developerskementeus
 
Web Project Management
Web Project ManagementWeb Project Management
Web Project ManagementJesse Rodgers
 
Web Project Management Todcon2008
Web Project Management Todcon2008Web Project Management Todcon2008
Web Project Management Todcon2008Jesse Rodgers
 
Cross-platform targetálás
Cross-platform targetálásCross-platform targetálás
Cross-platform targetálásNandor Kovacs
 

Viewers also liked (7)

Students need to be part of the community
Students need to be part of the communityStudents need to be part of the community
Students need to be part of the community
 
Simple Project Management
Simple Project ManagementSimple Project Management
Simple Project Management
 
Node.js for .net developers
Node.js for .net developersNode.js for .net developers
Node.js for .net developers
 
Web Project Management
Web Project ManagementWeb Project Management
Web Project Management
 
Web Project Management Todcon2008
Web Project Management Todcon2008Web Project Management Todcon2008
Web Project Management Todcon2008
 
Pipas in Rio
Pipas in Rio Pipas in Rio
Pipas in Rio
 
Cross-platform targetálás
Cross-platform targetálásCross-platform targetálás
Cross-platform targetálás
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Extending expression blend (themed)

  • 1. Extending Expression Blend Cristian Prieto Senior Developer, Readify http://cprieto.com, @cprieto
  • 2. 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!
  • 3. What can be extended? Microsoft Expression Web HTML Addins Microsoft Expression Blend Blend behaviors Microsoft Expression Encoder Publish addins
  • 4. What Microsoft says: This is not officially supported!
  • 5. What do I need? A .Net language, of course! MEF knowledge ICommand, Service locator pattern knowledge… maybe Reflector/ILSpy/Cecil A lot of patience!
  • 6. Blend Extension points Officially supported Behaviors (Blend SDK) design-experience for custom controls Item and Project templates Not officially supported Everything else!
  • 7. 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
  • 8. Because you already using it, right? Introduction to MEF
  • 9. Now what you were waiting for… Our first extension
  • 10. Come on! Don’t be so shy! Questions?
  • 11. Reference Reflector 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