SlideShare ist ein Scribd-Unternehmen logo
1 von 12
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

Weitere ähnliche Inhalte

Was ist angesagt?

.Net overview
.Net overview.Net overview
.Net overview
madydud
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
Faisal Aziz
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 

Was ist angesagt? (19)

Translating software with SDL Passolo
Translating software with SDL PassoloTranslating software with SDL Passolo
Translating software with SDL Passolo
 
dot net final year project in jalandhar
dot net final year project in jalandhardot net final year project in jalandhar
dot net final year project in jalandhar
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?Translating software with SDL Passolo?
Translating software with SDL Passolo?
 
Linq presentation by vaidhesh
Linq presentation by vaidheshLinq presentation by vaidhesh
Linq presentation by vaidhesh
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overview
 
.Net framework
.Net framework.Net framework
.Net framework
 
.Net overview
.Net overview.Net overview
.Net overview
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
 
.Net framework
.Net framework.Net framework
.Net framework
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?What is dotnet (.NET) ?
What is dotnet (.NET) ?
 
Microsoft for developers open source and cross platform
Microsoft for developers  open source and cross platformMicrosoft for developers  open source and cross platform
Microsoft for developers open source and cross platform
 
Translate word press to your language
Translate word press to your languageTranslate word press to your language
Translate word press to your language
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос....NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
 
.Net overview
.Net overview.Net overview
.Net overview
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
What's DSL and what isn't
What's DSL and what isn'tWhat's DSL and what isn't
What's DSL and what isn't
 

Andere mochten auch

恬淡淳樸的黔婁
恬淡淳樸的黔婁恬淡淳樸的黔婁
恬淡淳樸的黔婁
chen
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014APICS_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_10Trignano  communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
Linda Trignano
 
Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5
guest6e03e4
 

Andere mochten auch (14)

Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013
 
恬淡淳樸的黔婁
恬淡淳樸的黔婁恬淡淳樸的黔婁
恬淡淳樸的黔婁
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014
 
Trignano communicate with impact for pmp 3 24_10
Trignano  communicate with impact for pmp 3 24_10Trignano  communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
 
Christina Brian Chloe Global08
Christina  Brian  Chloe Global08Christina  Brian  Chloe Global08
Christina Brian Chloe Global08
 
Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5
 
Trignano communicate with impact for pmp 3 24_10
Trignano  communicate with impact for pmp 3 24_10Trignano  communicate with impact for pmp 3 24_10
Trignano communicate with impact for pmp 3 24_10
 
API Design - developing for developers
API Design - developing for developersAPI Design - developing for developers
API Design - developing for developers
 
Enterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet PortalsEnterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet Portals
 
Programming for daily life - introduction
Programming for daily life - introductionProgramming for daily life - introduction
Programming for daily life - introduction
 
Kh Web2 Pres
Kh Web2 PresKh Web2 Pres
Kh Web2 Pres
 
Union Web2.0 adoption in insurance
Union Web2.0 adoption in insuranceUnion Web2.0 adoption in insurance
Union Web2.0 adoption in insurance
 
Pf Salesv5
Pf Salesv5Pf Salesv5
Pf Salesv5
 
Business opportunities in social media
Business opportunities in social mediaBusiness opportunities in social media
Business opportunities in social media
 

Ähnlich wie Using PowerShell as DSL in .Net applications

.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
Rajnish Kalla
 

Ähnlich wie Using PowerShell as DSL in .Net applications (20)

Computer programming concepts
Computer programming conceptsComputer programming concepts
Computer programming concepts
 
Programming language
Programming languageProgramming language
Programming language
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With Xtext
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
Manas
ManasManas
Manas
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 
Overview of Coding Languages
Overview of Coding LanguagesOverview of Coding Languages
Overview of Coding Languages
 
X-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdfX-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdf
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven development
 
chapt_01.pdf
chapt_01.pdfchapt_01.pdf
chapt_01.pdf
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

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 , joymon@gmail.com
  • 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 joymon@gmail.com