SlideShare a Scribd company logo
1 of 12
Sitefinity
Telerik
Developer
Webinar
June 27, 2013
Chris Eargle
Technology Evangelist
chris.eargle@telerik.co
m
Hidden Gems of the Sitefinity API
Email: chris.eargle@telerik.com
Blog: www.sitefinity.com/blogs/chriseargle
Chris Eargle
Technology Evangelist
I am kodefuguru
C# MVP, MCPD,
etc.
Hidden Gems of the Sitefinity API
Introductions
Hidden Gems of the Sitefinity API
Special Guest
Svetla Yankova
Sitefinity Solutions Consultant
Email: svetla.yankova@telerik.com
Blog: www.sitefinity.com/blogs/svetla-yankovas-
blog
Twitter: @svetla_yankova
Process
 Tools for Code
Mining
 Risks
Demos
Closing
 Q&A
Hidden Gems of the Sitefinity API
Agenda
Process
Hidden Gems of the Sitefinity API
Tools for Code Mining
JustDecompile
telerik.com/justdecompile
Hidden Gems of the Sitefinity API
Risks
Legality
Hidden Gems of the Sitefinity API
Risks
Assets are Liquid
Demos
Hidden Gems of the Sitefinity API
Attributions
Mining out of Silverton
Images licensed under Creative Commons Attribution 2.0 Generic
flic.kr/p/cpNZRj
Slide 3
by Adam Barhan
Q&A
Thank You
Contact Us With Any Questions
Sitefinity
Telerik
Developer
Webinar
June 27, 2013
Chris Eargle
Technology Evangelist
chris.eargle@telerik.co
m

More Related Content

Similar to Hidden Gems of the Sitefinity API Webinar

TWOHD_K+ API
TWOHD_K+ APITWOHD_K+ API
TWOHD_K+ API
JH Lee
 

Similar to Hidden Gems of the Sitefinity API Webinar (20)

Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
OWASPAPISecurity
OWASPAPISecurityOWASPAPISecurity
OWASPAPISecurity
 
Swagger & OpenAPI Spec #openapi
Swagger & OpenAPI Spec #openapiSwagger & OpenAPI Spec #openapi
Swagger & OpenAPI Spec #openapi
 
Streetcred: Improving the Developer Experience in SSI – Michael Boyd
Streetcred: Improving the Developer Experience in SSI – Michael BoydStreetcred: Improving the Developer Experience in SSI – Michael Boyd
Streetcred: Improving the Developer Experience in SSI – Michael Boyd
 
TWOHD_K+ API
TWOHD_K+ APITWOHD_K+ API
TWOHD_K+ API
 
Rethinking Application Security for cloud-native era
Rethinking Application Security for cloud-native eraRethinking Application Security for cloud-native era
Rethinking Application Security for cloud-native era
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
 
Cyberlands Sales Deck
Cyberlands Sales DeckCyberlands Sales Deck
Cyberlands Sales Deck
 
APIsecure 2023 - The Present and Future of OWASP API Security Top 10, Inon Sh...
APIsecure 2023 - The Present and Future of OWASP API Security Top 10, Inon Sh...APIsecure 2023 - The Present and Future of OWASP API Security Top 10, Inon Sh...
APIsecure 2023 - The Present and Future of OWASP API Security Top 10, Inon Sh...
 
Speedbit 5 Sep07-Travel Tips for your Internet Ride-Ariel Yarnitsky
Speedbit 5 Sep07-Travel Tips for your Internet Ride-Ariel YarnitskySpeedbit 5 Sep07-Travel Tips for your Internet Ride-Ariel Yarnitsky
Speedbit 5 Sep07-Travel Tips for your Internet Ride-Ariel Yarnitsky
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
Kids Cyber Safety Pilot @APS, Colaba, Mumbai
Kids Cyber Safety Pilot @APS, Colaba, MumbaiKids Cyber Safety Pilot @APS, Colaba, Mumbai
Kids Cyber Safety Pilot @APS, Colaba, Mumbai
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
 
HowYourAPIBeMyAPI
HowYourAPIBeMyAPIHowYourAPIBeMyAPI
HowYourAPIBeMyAPI
 
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
 
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...How Spotify reaches the 80%+ of satisfaction of the techies making developers...
How Spotify reaches the 80%+ of satisfaction of the techies making developers...
 
Evolving big microservice architectures
Evolving big microservice architecturesEvolving big microservice architectures
Evolving big microservice architectures
 
The end of the beginning of (your) APIs
The end of the beginning of (your) APIsThe end of the beginning of (your) APIs
The end of the beginning of (your) APIs
 
Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google
 

More from Chris Eargle

Bring your existing .net skills to a cms
Bring your existing .net skills to a cmsBring your existing .net skills to a cms
Bring your existing .net skills to a cms
Chris Eargle
 
Esoteric LINQ and Structural Madness
Esoteric LINQ and Structural MadnessEsoteric LINQ and Structural Madness
Esoteric LINQ and Structural Madness
Chris Eargle
 
Building a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale systemBuilding a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale system
Chris Eargle
 

More from Chris Eargle (11)

Bring your existing .net skills to a cms
Bring your existing .net skills to a cmsBring your existing .net skills to a cms
Bring your existing .net skills to a cms
 
Amp Up Your Visual Studio Productivity
Amp Up Your Visual Studio ProductivityAmp Up Your Visual Studio Productivity
Amp Up Your Visual Studio Productivity
 
Esoteric LINQ and Structural Madness
Esoteric LINQ and Structural MadnessEsoteric LINQ and Structural Madness
Esoteric LINQ and Structural Madness
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity tools
 
One Engine Two Tools
One Engine Two ToolsOne Engine Two Tools
One Engine Two Tools
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
2012 Q1 Tools for Better Code
2012 Q1 Tools for Better Code2012 Q1 Tools for Better Code
2012 Q1 Tools for Better Code
 
Deep Dive: MVC Controller Architecture
Deep Dive: MVC Controller ArchitectureDeep Dive: MVC Controller Architecture
Deep Dive: MVC Controller Architecture
 
Building a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale systemBuilding a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale system
 
Monadic Comprehensions and Functional Composition with Query Expressions
Monadic Comprehensions and Functional Composition with Query ExpressionsMonadic Comprehensions and Functional Composition with Query Expressions
Monadic Comprehensions and Functional Composition with Query Expressions
 
C# Ninjitsu
C# NinjitsuC# Ninjitsu
C# Ninjitsu
 

Recently uploaded

Recently uploaded (20)

TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 

Hidden Gems of the Sitefinity API Webinar

Editor's Notes

  1. Hello, I don’t believe we’ve met. My name is Chris Eargle, and I am a technology evangelist for Sitefinity. My first month with Sitefinity was in May. Before that, I was a technology evangelist for the Just line of products at Telerik. You an email me at chris.eargle@telerik.com, and look for my posts on the Sitefinity blogs. Finding me in social media is easy. I am kodefuguru.
  2. Our special guest today is Svetla Yankova, a Sitefinity Solutions Consultant who recently wrote about Single Sign On between Sitefinity and third party applications. You can email her at Svetla.Yankova@telerik.com, and she’s a regular contributor to Sitefinity blogs. Send her a shout out on twitter, @svetla_yankova.Svetla will answer questions while I’m presenting, and she may have a tip or two to throw in during the demo portion of this webinar.
  3. My process for exploring an undocumented API is quite simple. I use a decompiler to search for interesting classes, and once I find something I want to use, I write a test application to make sure it works. Depending on whether I need it, or if I’m just goofing off, I’ll create unit tests to ensure it always works or I simply try it out in the smallest application possible.
  4. I use JustDecompile to explore assemblies. Like Sitefinity, it is a Telerik product, but JustDecompile happens to be free. An alternative to using JustDecompile is to use the provisions provided by Visual Studio such as the Object Browser and IntelliSense. I prefer JustDecompile because it’s easier to navigate the maze of classes commonly found in huge APIs. I’ll use the features in the demo, and the difference is striking.Besides that, JustDecompile is a decompiler. .NET decompilers create a representation of source based on the object code, which is essentially the binary form of Common Intermediate Language, the true language of .NET, and the reason why I can load a VB.NET assembly in my C# project. A decompiler generates a representation because some information is lost during conversion. For example, your comments are not included in an assembly, and some language constructs do not have a true representation in intermediate language.Since JustDecompile provides me a representation of the code, I can more quickly determine if the class is useful to me.
  5. I am sometimes asked if it’s legal to use JustDecompile on third party assemblies. And I understand this concern; no one wants to be sued for programming? I will share what I know, but I am not a lawyer, and this is not legal advice. There are issues with trade secrets and software patents, but every piece of software that is not in the public domain is copyrighted. This includes open source software whose licenses extends certain rights and obligations to the user. Copyright wouldn’t mean much if it didn’t prevent other people from copying your work. But as many of you are aware, software can be copied many times by a system. For example, copies are made in memory when you run a program, and backup software will often make backup copies of software as well. Therefore, most software is covered under a license to grant rights to perform these actions.Because of the manner in which software is used, many countries have made laws to the effect that copies necessary for running or backing up software do not violate their respective copyright laws. Many countries have also found that decompilation is allowed or necessary, particularly for the purposes of interoperability with other software.In the United States, Sega versus Accolade established that decompilation can be necessary and a right. My personal interpretation is that you can decompile a program if you have legitimate need to figure something out and you’ve found no other way to obtain the information.Europe, on the other hand, has established more restrictive regulations concerning decompilation. The program must be licensed to you and you must be decompiling specifically for the purposes of interoperability. You are not allowed to poke around other parts of the system out of curiosity, and you cannot share this information with the world.If you read technical blogs, you may have noticed that many people, including those in Europe, are decompiling and sharing useful information. Companies may have legal actions at their disposal, but they’re not going to use it if it affects their bottom line.Personally, I think it’s great when someone shows an awesome way to use Sitefinity, and I’m going to share your blogs and videos so others can make Sitefinity shine too. But you should be aware that the process I show you may violate your Sitefinity license depending on where you live and what you do with it. If you’re simply looking inside the assemblies to find useful API calls, there won’t be a problem. If you use a method signature in a blog post, there won’t be a problem. If you publicly release a representation of the implementation details, well, that *is* a problem. Don’t do it.
  6. The biggest risk of using undocumented features in any program is that the company has no obligation to supporting it, and it could be removed or significantly changed at any time.The risk may be worth it. Even if the undocumented portions of the API you’re using are removed, there will likely be a newer, better way of accomplishing the same task. If you need an actual safeguard, create adapters or façade to use in your code base. If a future update breaks your solution, you will only need to fix the adapters and facades.