SlideShare a Scribd company logo
Using PowerShell as DSL
in .Net applications
Joy George K
Jr.Architect, Orion India Systems
www.joymononline.in , joymon@gmail.com
PowerShell as DSL in .Net– What is
DSL?
A computer language that's targeted to A
particular kind of problem, rather than A general
purpose language that's aimed at any kind of
software problem. Domain specific languages
have been talked about, and used for almost as
long as computing has been done.
Martin fowler
DSL
• Excel macros
• SQL
• CSS
• RegEx
• .Bat files
needed?
• Make the users as programmers.
• Tackle ever changing requirements
• Easy maintainability
• Extensibility ?
• …
External
• Internal
• Uses existing special language constructs to achieve
• Fluid API
• eg : Linq (entries.Where(e => e.Approved)
.OrderBy(e => e.Rating)
.FirstOrDefault())
• External
• Uses different language
• Special parsers
Arch
DSL EngineCore app
Files
Objects and DSL script
Return objects
Alter objects,
prepare result
DSL
my DSL
• Internal v/s external
• If External
• Creating custom parser, compilers
• Leverage existing scripting languages
Demo
• External DSL
• PowerShell as DSL scripting language
• Inbuilt in Windows vista onwards
• Pipeling support which helps to write less
Cons
• Pros
• Easy customization / extensibility.
• Relief from frequent requirement changes.
• Cons
• Performance
• Maintenance overhead, if its external own DSL
• No auto completion
PowerShell as DSL in .Net – References
http://martinfowler.com/books/dsl.html
http://joymonscode.blogspot.in/2013/01/what-is-
domain-specific-language-dsl-in.html
http://joymonscode.blogspot.in/2013/01/dsl-demo-
first-c-application-which-uses.html
DSLs in Action by Debasish Ghosh
Are you ready to try DSL in your
project ?
& A
Thank You
Joy George K
Jr.Architect, Orion India Systems
www.joymononline.in
joymon@gmail.com
Ad

Recommended

DSL explained _
DSL explained _
Dmitry Kandalov
 
.Net language support
.Net language support
Then Murugeshwari
 
.Net overview by cetpa
.Net overview by cetpa
sharmamohan13989
 
Overview of microsoft dot net platforms
Overview of microsoft dot net platforms
Abhijit B.
 
Challenges In Dsl Design
Challenges In Dsl Design
Sven Efftinge
 
Net overview
Net overview
Shivalik college of engineering
 
Net overview
Net overview
Paarthi Kannadasan
 
Introduction to SDL Passolo
Introduction to SDL Passolo
Annie Markova
 
Translating software with SDL Passolo
Translating software with SDL Passolo
SDL Trados
 
dot net final year project in jalandhar
dot net final year project in jalandhar
deepikakaler1
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?
Loctimize GmbH
 
Linq presentation by vaidhesh
Linq presentation by vaidhesh
Vaidheswaran CS
 
Net Framework overview
Net Framework overview
MohitKumar1985
 
.Net framework
.Net framework
sanya6900
 
.Net overview
.Net overview
madydud
 
Evalution about programming language part 1
Evalution about programming language part 1
Synapseindiappsdevelopment
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Dr. Jan Köhnlein
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
lennartkats
 
.Net framework
.Net framework
baabtra.com - No. 1 supplier of quality freshers
 
Modified.net overview
Modified.net overview
Faisal Aziz
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?
Talha Shahzad
 
Microsoft for developers open source and cross platform
Microsoft for developers open source and cross platform
Julie Lerman
 
Translate word press to your language
Translate word press to your language
mbigul
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
NETFest
 
.Net overview
.Net overview
teach4uin
 
Language Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 
What's DSL and what isn't
What's DSL and what isn't
Leandro Parazito
 
Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013
Linda Trignano
 
恬淡淳樸的黔婁
恬淡淳樸的黔婁
chen
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014
Linda Trignano
 

More Related Content

What's hot (19)

Translating software with SDL Passolo
Translating software with SDL Passolo
SDL Trados
 
dot net final year project in jalandhar
dot net final year project in jalandhar
deepikakaler1
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?
Loctimize GmbH
 
Linq presentation by vaidhesh
Linq presentation by vaidhesh
Vaidheswaran CS
 
Net Framework overview
Net Framework overview
MohitKumar1985
 
.Net framework
.Net framework
sanya6900
 
.Net overview
.Net overview
madydud
 
Evalution about programming language part 1
Evalution about programming language part 1
Synapseindiappsdevelopment
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Dr. Jan Köhnlein
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
lennartkats
 
.Net framework
.Net framework
baabtra.com - No. 1 supplier of quality freshers
 
Modified.net overview
Modified.net overview
Faisal Aziz
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?
Talha Shahzad
 
Microsoft for developers open source and cross platform
Microsoft for developers open source and cross platform
Julie Lerman
 
Translate word press to your language
Translate word press to your language
mbigul
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
NETFest
 
.Net overview
.Net overview
teach4uin
 
Language Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 
What's DSL and what isn't
What's DSL and what isn't
Leandro Parazito
 
Translating software with SDL Passolo
Translating software with SDL Passolo
SDL Trados
 
dot net final year project in jalandhar
dot net final year project in jalandhar
deepikakaler1
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?
Loctimize GmbH
 
Linq presentation by vaidhesh
Linq presentation by vaidhesh
Vaidheswaran CS
 
Net Framework overview
Net Framework overview
MohitKumar1985
 
.Net framework
.Net framework
sanya6900
 
.Net overview
.Net overview
madydud
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Dr. Jan Köhnlein
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
lennartkats
 
Modified.net overview
Modified.net overview
Faisal Aziz
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?
Talha Shahzad
 
Microsoft for developers open source and cross platform
Microsoft for developers open source and cross platform
Julie Lerman
 
Translate word press to your language
Translate word press to your language
mbigul
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
NETFest
 
.Net overview
.Net overview
teach4uin
 
Language Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 

Viewers also liked (14)

Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013
Linda Trignano
 
恬淡淳樸的黔婁
恬淡淳樸的黔婁
chen
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014
Linda Trignano
 
Trignano communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
Linda Trignano
 
Christina Brian Chloe Global08
Christina Brian Chloe Global08
guest6e03e4
 
Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5
guest6e03e4
 
Trignano communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
Linda Trignano
 
API Design - developing for developers
API Design - developing for developers
Joy George
 
Enterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet Portals
Joseph A. Bayer
 
Programming for daily life - introduction
Programming for daily life - introduction
Joy George
 
Union Web2.0 adoption in insurance
Union Web2.0 adoption in insurance
Joseph A. Bayer
 
Pf Salesv5
Pf Salesv5
Joseph A. Bayer
 
Business opportunities in social media
Business opportunities in social media
Joseph A. Bayer
 
Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013
Linda Trignano
 
恬淡淳樸的黔婁
恬淡淳樸的黔婁
chen
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014
Linda Trignano
 
Trignano communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
Linda Trignano
 
Christina Brian Chloe Global08
Christina Brian Chloe Global08
guest6e03e4
 
Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5
guest6e03e4
 
Trignano communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
Linda Trignano
 
API Design - developing for developers
API Design - developing for developers
Joy George
 
Enterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet Portals
Joseph A. Bayer
 
Programming for daily life - introduction
Programming for daily life - introduction
Joy George
 
Union Web2.0 adoption in insurance
Union Web2.0 adoption in insurance
Joseph A. Bayer
 
Business opportunities in social media
Business opportunities in social media
Joseph A. Bayer
 
Ad

Recently uploaded (20)

Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Ad

Using PowerShell as DSL in .Net applications

  • 1. Using PowerShell as DSL in .Net applications Joy George K Jr.Architect, Orion India Systems www.joymononline.in , [email protected]
  • 2. PowerShell as DSL in .Net– What is DSL? A computer language that's targeted to A particular kind of problem, rather than A general purpose language that's aimed at any kind of software problem. Domain specific languages have been talked about, and used for almost as long as computing has been done. Martin fowler
  • 3. DSL • Excel macros • SQL • CSS • RegEx • .Bat files
  • 4. needed? • Make the users as programmers. • Tackle ever changing requirements • Easy maintainability • Extensibility ? • …
  • 5. External • Internal • Uses existing special language constructs to achieve • Fluid API • eg : Linq (entries.Where(e => e.Approved) .OrderBy(e => e.Rating) .FirstOrDefault()) • External • Uses different language • Special parsers
  • 6. Arch DSL EngineCore app Files Objects and DSL script Return objects Alter objects, prepare result DSL
  • 7. my DSL • Internal v/s external • If External • Creating custom parser, compilers • Leverage existing scripting languages
  • 8. Demo • External DSL • PowerShell as DSL scripting language • Inbuilt in Windows vista onwards • Pipeling support which helps to write less
  • 9. Cons • Pros • Easy customization / extensibility. • Relief from frequent requirement changes. • Cons • Performance • Maintenance overhead, if its external own DSL • No auto completion
  • 10. PowerShell as DSL in .Net – References http://martinfowler.com/books/dsl.html http://joymonscode.blogspot.in/2013/01/what-is- domain-specific-language-dsl-in.html http://joymonscode.blogspot.in/2013/01/dsl-demo- first-c-application-which-uses.html DSLs in Action by Debasish Ghosh
  • 11. Are you ready to try DSL in your project ? & A
  • 12. Thank You Joy George K Jr.Architect, Orion India Systems www.joymononline.in [email protected]