SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Translating software with SDL Passolo
Translating software with SDL PassoloTranslating software with SDL Passolo
Translating software with SDL PassoloSDL Trados
 
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 jalandhardeepikakaler1
 
Translating software with SDL Passolo?
Translating software with SDL Passolo?Translating software with SDL Passolo?
Translating software with SDL Passolo?Loctimize GmbH
 
Linq presentation by vaidhesh
Linq presentation by vaidheshLinq presentation by vaidhesh
Linq presentation by vaidheshVaidheswaran CS
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overviewMohitKumar1985
 
.Net framework
.Net framework.Net framework
.Net frameworksanya6900
 
.Net overview
.Net overview.Net overview
.Net overviewmadydud
 
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 2Dr. Jan Köhnlein
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)lennartkats
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overviewFaisal Aziz
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?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 platformMicrosoft for developers  open source and cross platform
Microsoft for developers open source and cross platformJulie Lerman
 
Translate word press to your language
Translate word press to your languageTranslate word press to your language
Translate word press to your languagembigul
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос....NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...NETFest
 
.Net overview
.Net overview.Net overview
.Net overviewteach4uin
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 

La actualidad más candente (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
 

Destacado

Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013Trignano, linda 2013 apics 093013
Trignano, linda 2013 apics 093013Linda Trignano
 
恬淡淳樸的黔婁
恬淡淳樸的黔婁恬淡淳樸的黔婁
恬淡淳樸的黔婁chen
 
APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014APICS_FullMag Trignano 02 2014
APICS_FullMag Trignano 02 2014Linda 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_10Linda Trignano
 
Christina Brian Chloe Global08
Christina  Brian  Chloe Global08Christina  Brian  Chloe Global08
Christina Brian Chloe Global08guest6e03e4
 
Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5Christina-Chloe-Brian-period5
Christina-Chloe-Brian-period5guest6e03e4
 
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_10Linda Trignano
 
API Design - developing for developers
API Design - developing for developersAPI Design - developing for developers
API Design - developing for developersJoy George
 
Enterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet PortalsEnterprise2.0 and Collaborative Intranet Portals
Enterprise2.0 and Collaborative Intranet PortalsJoseph A. Bayer
 
Programming for daily life - introduction
Programming for daily life - introductionProgramming for daily life - introduction
Programming for daily life - introductionJoy George
 
Union Web2.0 adoption in insurance
Union Web2.0 adoption in insuranceUnion Web2.0 adoption in insurance
Union Web2.0 adoption in insuranceJoseph A. Bayer
 
Business opportunities in social media
Business opportunities in social mediaBusiness opportunities in social media
Business opportunities in social mediaJoseph A. Bayer
 

Destacado (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
 

Similar a Using PowerShell as DSL in .Net applications

.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4Joubin Najmaie
 
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...AshutoshSharma874829
 
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 ConstructionEelco Visser
 
Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With XtextSven Efftinge
 
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 SecuritySam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development SecuritySam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development SecuritySam Bowne
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languagesAman Kumar
 
Overview of Coding Languages
Overview of Coding LanguagesOverview of Coding Languages
Overview of Coding LanguagesGlowTouch
 
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.pdfAlefya1
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptxssuser51ead3
 
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 developmentDmitry Geyzersky
 

Similar a 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
 

Último

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 educationjfdjdjcjdnsjd
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[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
 

Último (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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[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
 

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