SlideShare a Scribd company logo
1 of 58
Download to read offline
TMF meets GMF
Combining Graphical & Textual Modeling
Alexander Nyßen
itemis AG
Donnerstag, 3. November 2011
Simultaneous/Parallel Editing
• http://www.eclipse.org/Xtext/documentation/2_0_0/210-
emf-integration.php
• A. Mülder, A. Nyßen: TMF meets GMF. Eclipse Magazin
03/2011 (German)
Donnerstag, 3. November 2011
Simultaneous/Parallel Editing
• http://www.eclipse.org/Xtext/documentation/2_0_0/210-
emf-integration.php
• A. Mülder, A. Nyßen: TMF meets GMF. Eclipse Magazin
03/2011 (German)
Out of Scope here!
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Enable editing of Xtext-strings
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Enable editing of Xtext-strings, providing all the nice
Xtext-features like syntax coloring, content assist, and
validation
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Enable editing of Xtext-strings, providing all the nice
Xtext-features like syntax coloring, content assist, and
validation, outside an Xtext-editor within the following
contexts:
• SWT/JFace: enable editing of Xtext-strings e.g. within
WizardPages or PropertySheets.
• GEF/GMF (and potentially Graphiti): enable „direct-
editing“ of Xtext-strings from within graphical editors.
Donnerstag, 3. November 2011
So, let‘s start with looking at
SWT/JFace!
Donnerstag, 3. November 2011
Xtext-JFace-Integration
• StyledTextXtextAdapter to adapt Xtext-editing
functionality to any StyledText (SWT control)
• XtextStyledTextCellEditor to enable Xtext-editing
within arbitrary JFaceViewers (using StyledText and XtextAdapter)
Donnerstag, 3. November 2011
Adapter & CellEditor Usage
• StyledTextXtextAdapter can easily be „hooked“ to
any StyledText
• XtextStyledTextCellEditor can be used
transparently as any JFace CellEditor (it adapts internally)
StyledText styledText = new StyledText(parent, style);
xtextAdapter = new StyledTextXtextAdapter(getInjector());
xtextAdapter.adapt(styledText);
xtextCellEditor = new XtextStyledTextCellEditor(style,
getInjector());	 	 	 	
xtextCellEditor.create((Composite)viewer.getControl());
Donnerstag, 3. November 2011
Xtext-JFace-Integration
• Syntax Highlighting:
• Auto Completion:
• Validation:
✓
✓
✓
Donnerstag, 3. November 2011
And how to integrate Xtext with
GEF/GMF?
Donnerstag, 3. November 2011
Direct-Editing Embedded-Xtext
• GEF-integration:
• XtextDirectEditManager,
internally making use of the Xtext-
StyledTextCellEditor
• GMF-integration:
• XtextLabelEditPart (CompartmentEditPart)
• ExternalXtextLabelEditPart (LabelEditPart)
Donnerstag, 3. November 2011
DirectEditManager Usage
protected void performDirectEditRequest(final Request request) {
final XtextDirectEditManager manager =
new XtextDirectEditManager(this, getInjector(), getEditorStyles());
try {
getEditingDomain().runExclusive(new Runnable() {
public void run() {
...
manager.show();
...
}
});
} catch (final InterruptedException e) {...}
}
• XtextDirectEditManager can be transparently used as
any GEF DirectEditManager:
Donnerstag, 3. November 2011
Editing Embedded-Xtext
Donnerstag, 3. November 2011
And how does it work?
Donnerstag, 3. November 2011
PropertySection
Donnerstag, 3. November 2011
PropertySection
Donnerstag, 3. November 2011
PropertySection
PropertySection
Donnerstag, 3. November 2011
PropertySection
PropertySection
Input Object
Property
Donnerstag, 3. November 2011
PropertySection
PropertySection
PropertyPage
Text (SWT)
Input Object
Property
Donnerstag, 3. November 2011
PropertySection
PropertySection
PropertyPage
Text (SWT)
Input Object
Property
Donnerstag, 3. November 2011
Xtext-Editor
Donnerstag, 3. November 2011
Xtext-Editor
Donnerstag, 3. November 2011
Xtext-Editor
XtextEditor
Donnerstag, 3. November 2011
Xtext-Editor
XtextEditor
XtextDocument
XtextResource
Donnerstag, 3. November 2011
Xtext-Editor
XtextEditor
XtextDocument
XtextSourceViewer
StyledText (SWT)
XtextResource
Donnerstag, 3. November 2011
Xtext-Editor
XtextEditor
XtextDocument
XtextSourceViewer
StyledText (SWT)
XtextResource
Donnerstag, 3. November 2011
Xtext-JFace-Integration -The Principle
Donnerstag, 3. November 2011
Xtext-JFace-Integration -The Principle
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)
Xtext-JFace-Integration -The Principle
Input Object
Property
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
Xtext-JFace-Integration -The Principle
Input Object
Property
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
Xtext-JFace-Integration -The Principle
Input Object
PropertyXtext-String
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
Xtext-JFace-Integration -The Principle
Input Object
PropertyXtext-String
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
XtextEditor
XtextDocument
XtextSourceViewer
StyledText (SWT)
Xtext-JFace-Integration -The Principle
XtextResource
Input Object
PropertyXtext-String
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
XtextDocument
XtextSourceViewer
StyledText (SWT)
Xtext-JFace-Integration -The Principle
XtextResource
Input Object
PropertyXtext-String
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
StyledTextXtextAdapter
XtextDocument
XtextSourceViewer
StyledText (SWT)
Xtext-JFace-Integration -The Principle
XtextResource
Input Object
PropertyXtext-String
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
StyledTextXtextAdapter
XtextDocument
XtextSourceViewer
Xtext-JFace-Integration -The Principle
XtextResource
Input Object
PropertyXtext-String
StyledText (SWT)
Donnerstag, 3. November 2011
PropertySection
PropertyPage
Text (SWT)StyledText (SWT)
StyledTextXtextAdapter
XtextDocument
XtextSourceViewer
Xtext-JFace-Integration -The Principle
Input Object
(Fake-)XtextResourcePropertyXtext-String
StyledText (SWT)
Donnerstag, 3. November 2011
And what about scoping?
Donnerstag, 3. November 2011
Scoping in Xtext
• When resolving cross-references scoping decides which
elements (of potentially different resources) are referable
Donnerstag, 3. November 2011
Scoping in Xtext
• When resolving cross-references scoping decides which
elements (of potentially different resources) are referable
Donnerstag, 3. November 2011
Scoping in Xtext (continued)
• Xtext distincs two notions of scope:
• Local Scope (internal to the context resource)
• Global Scope (external to the context resource)
• Global Scope is based on ResourceDescriptions which are
provided by an indexing mechanism (Xtext builder)
• XtextEditors are dirty-aware, i.e. their current editing state is
proclamated to the ResourceDescriptions
Donnerstag, 3. November 2011
Scoping in Embedded Xtext?
Donnerstag, 3. November 2011
Scoping in Embedded Xtext?
Donnerstag, 3. November 2011
Fake-XtextResource
The Fake-XtextResource used by the XtextAdapter does
only contain the currently edited Xtext-String, not any other
contents of the context resource
Local scope will allow us to refer to elements in the
edited Xtext-String, but not outside
Global scope will allow to reference external
elements, but by default context resource contents
is not proclamated to the global scope
Donnerstag, 3. November 2011
Scoping based on Fake Resources
• Sophisticated Solution:
• Expose all Xtext-Strings contained within context resource
to ResourceDescriptions „dirty-state aware“
• Simple Solution:
• Populate the Fake-Xtext-Resource‘s ResourceSet with other
Fake-Context-Resources (e.g. one for each Xtext-String)
Donnerstag, 3. November 2011
StyledTextXtextAdapter
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-XtextResource
Donnerstag, 3. November 2011
StyledTextXtextAdapter
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-ResourceSet Fake-XtextResource
Donnerstag, 3. November 2011
StyledTextXtextAdapterIXtextFakeContext
ResourcesProvider
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-ResourceSet Fake-XtextResource
Donnerstag, 3. November 2011
StyledTextXtextAdapterIXtextFakeContext
ResourcesProvider
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-ResourceSet Fake-XtextResource
Context-Fake
Resource (1)
Donnerstag, 3. November 2011
StyledTextXtextAdapterIXtextFakeContext
ResourcesProvider
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-ResourceSet Fake-XtextResource
Context-Fake
Resource (2)
Context-Fake
Resource (1)
Donnerstag, 3. November 2011
StyledTextXtextAdapterIXtextFakeContext
ResourcesProvider
IFakeContextResourcesProvider
XtextDocument
XtextSourceViewer
StyledText (SWT)
Fake-ResourceSet Fake-XtextResource
Context-Fake
Resource(n)
Context-Fake
Resource (2)
Context-Fake
Resource (1)
...
Donnerstag, 3. November 2011
Populating Fake Resource Set
• IXtextContextFakeResourcesProvider allows to
populate the fake ResourceSet:
IXtextFakeContextResourcesProvider provider =
new IXtextFakeContextResourcesProvider(){
public void populateFakeResourceSet(
ResourceSet fakeResourceSet,	
XtextResource fakeResource){
// create context fake resources via given resource set
...
	 }
};
xtextAdapter = new StyledTextXtextAdapter(getInjector(), provider);
xtextAdapter.adapt(styledText);
Donnerstag, 3. November 2011
And where can I get it?
Donnerstag, 3. November 2011
Xtext-Integration @Yakindu
• Xtext-JFace-Integration and Xtext-GMF-Integration is made
available by theYAKINDU project
• Open Source / EPL
• Project Site: http://yakindu.org
• Eclipse Labs Site: http://code.google.com/a/eclipselabs.org/p/yakindu/
• Update Site: http://updates.yakindu.com/indigo/milestones/
• Source Code: http://svn.codespot.com/a/eclipselabs.org/yakindu/BASE/trunk/
de.itemis.xtext.utils
Donnerstag, 3. November 2011
ThankYou! Questions?
Donnerstag, 3. November 2011

More Related Content

Similar to TMF meets GMF

Migrating from Ext GWT 2.x to 3.0
Migrating from Ext GWT 2.x to 3.0Migrating from Ext GWT 2.x to 3.0
Migrating from Ext GWT 2.x to 3.0Sencha
 
Introducing Ext GWT 3.0
Introducing Ext GWT 3.0Introducing Ext GWT 3.0
Introducing Ext GWT 3.0Sencha
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: XeroSencha
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingCloudxLab
 
RESTo - restful semantic search tool for geospatial
RESTo - restful semantic search tool for geospatialRESTo - restful semantic search tool for geospatial
RESTo - restful semantic search tool for geospatialGasperi Jerome
 
Xml holland - XQuery novelties - Geert Josten
Xml holland - XQuery novelties - Geert JostenXml holland - XQuery novelties - Geert Josten
Xml holland - XQuery novelties - Geert JostenDaidalos
 
Government Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxGovernment Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxShivamDenge
 
XML Prague 2005 EXSLT
XML Prague 2005 EXSLTXML Prague 2005 EXSLT
XML Prague 2005 EXSLTjimfuller2009
 
Elasticsearch Basics
Elasticsearch BasicsElasticsearch Basics
Elasticsearch BasicsShifa Khan
 
Introduction to libre « fulltext » technology
Introduction to libre « fulltext » technologyIntroduction to libre « fulltext » technology
Introduction to libre « fulltext » technologyRobert Viseur
 
DBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database SuiteDBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database SuiteMariano Martínez Peck
 
DITA and Translation Best Praticices
DITA and Translation Best PraticicesDITA and Translation Best Praticices
DITA and Translation Best PraticicesAndrzej Zydroń MBCS
 
SkinMuseum: a museum collection management software
SkinMuseum: a museum collection management softwareSkinMuseum: a museum collection management software
SkinMuseum: a museum collection management softwareNuxeo
 
SANS Windows Artifact Analysis 2012
SANS Windows Artifact Analysis 2012SANS Windows Artifact Analysis 2012
SANS Windows Artifact Analysis 2012Rian Yulian
 
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...DroidConTLV
 

Similar to TMF meets GMF (20)

Migrating from Ext GWT 2.x to 3.0
Migrating from Ext GWT 2.x to 3.0Migrating from Ext GWT 2.x to 3.0
Migrating from Ext GWT 2.x to 3.0
 
Introducing Ext GWT 3.0
Introducing Ext GWT 3.0Introducing Ext GWT 3.0
Introducing Ext GWT 3.0
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: Xero
 
IR with lucene
IR with luceneIR with lucene
IR with lucene
 
RunDeck
RunDeckRunDeck
RunDeck
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
RESTo - restful semantic search tool for geospatial
RESTo - restful semantic search tool for geospatialRESTo - restful semantic search tool for geospatial
RESTo - restful semantic search tool for geospatial
 
Text Mining with R
Text Mining with RText Mining with R
Text Mining with R
 
Xml holland - XQuery novelties - Geert Josten
Xml holland - XQuery novelties - Geert JostenXml holland - XQuery novelties - Geert Josten
Xml holland - XQuery novelties - Geert Josten
 
Government Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxGovernment Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptx
 
XML Prague 2005 EXSLT
XML Prague 2005 EXSLTXML Prague 2005 EXSLT
XML Prague 2005 EXSLT
 
Elasticsearch Basics
Elasticsearch BasicsElasticsearch Basics
Elasticsearch Basics
 
Introduction to libre « fulltext » technology
Introduction to libre « fulltext » technologyIntroduction to libre « fulltext » technology
Introduction to libre « fulltext » technology
 
DBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database SuiteDBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database Suite
 
DITA and Translation Best Praticices
DITA and Translation Best PraticicesDITA and Translation Best Praticices
DITA and Translation Best Praticices
 
SkinMuseum: a museum collection management software
SkinMuseum: a museum collection management softwareSkinMuseum: a museum collection management software
SkinMuseum: a museum collection management software
 
SANS Windows Artifact Analysis 2012
SANS Windows Artifact Analysis 2012SANS Windows Artifact Analysis 2012
SANS Windows Artifact Analysis 2012
 
Shivam PPT.pptx
Shivam PPT.pptxShivam PPT.pptx
Shivam PPT.pptx
 
Lucene indexing
Lucene indexingLucene indexing
Lucene indexing
 
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
 

More from Alexander Nyßen

GEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveGEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveAlexander Nyßen
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkAlexander Nyßen
 
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...Alexander Nyßen
 
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...Alexander Nyßen
 
GEF4 - There's really something going on!
GEF4 - There's really something going on!GEF4 - There's really something going on!
GEF4 - There's really something going on!Alexander Nyßen
 
GEF4 - Continue to Share and Enjoy!
GEF4 - Continue to Share and Enjoy!GEF4 - Continue to Share and Enjoy!
GEF4 - Continue to Share and Enjoy!Alexander Nyßen
 
GEF - Past, Present, and Future
GEF - Past, Present, and FutureGEF - Past, Present, and Future
GEF - Past, Present, and FutureAlexander Nyßen
 
GEF4 - Our Mission to Mars
GEF4 - Our Mission to MarsGEF4 - Our Mission to Mars
GEF4 - Our Mission to MarsAlexander Nyßen
 
YAKINDU SCT - Domain-Specific Statecharts
YAKINDU SCT - Domain-Specific StatechartsYAKINDU SCT - Domain-Specific Statecharts
YAKINDU SCT - Domain-Specific StatechartsAlexander Nyßen
 

More from Alexander Nyßen (12)

GEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveGEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's Perspective
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing Framework
 
GEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot OhGEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot Oh
 
GEF4 - Sightseeing Mars
GEF4 - Sightseeing MarsGEF4 - Sightseeing Mars
GEF4 - Sightseeing Mars
 
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...
Erweiterung der Entwurfsmethodik CONSENS um absichernde Maßnahmen zur Risikom...
 
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...
Model-based Automotive Software Development using Autosar, UML, and Domain-Sp...
 
GEF4 - There's really something going on!
GEF4 - There's really something going on!GEF4 - There's really something going on!
GEF4 - There's really something going on!
 
GEF4 - Continue to Share and Enjoy!
GEF4 - Continue to Share and Enjoy!GEF4 - Continue to Share and Enjoy!
GEF4 - Continue to Share and Enjoy!
 
GEF - Past, Present, and Future
GEF - Past, Present, and FutureGEF - Past, Present, and Future
GEF - Past, Present, and Future
 
GEF4 - Our Mission to Mars
GEF4 - Our Mission to MarsGEF4 - Our Mission to Mars
GEF4 - Our Mission to Mars
 
YAKINDU SCT - Domain-Specific Statecharts
YAKINDU SCT - Domain-Specific StatechartsYAKINDU SCT - Domain-Specific Statecharts
YAKINDU SCT - Domain-Specific Statecharts
 
GEF4 - Share and Enjoy!
GEF4 - Share and Enjoy!GEF4 - Share and Enjoy!
GEF4 - Share and Enjoy!
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

TMF meets GMF