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 Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

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