SlideShare a Scribd company logo
1 of 9
Using Visual Studio 2019 with code
automation to auto-generate customized
service layers in a Contract-Driven
Architecture
John Hannah MCP
VP of Delivery
LifeCycle Delivery Services, Inc
Agenda
• Introduction
• What we did, and why
• Reasons to build Automation: Legacy Code Issues
• Reasons to build Automation: Greenfield Issues
• A bit about Service Layer Design
• A bit about how CodeFactory works
• Demo
• Question and Answers
What we did, and why
• Frequent skillset gaps on the teams we were provided
with to deliver a given project scope.
• No other automation utilities on the market did enough of
what we needed
• ReSharper, Visual Studio Templating, etc. are all options –
but do not lend themselves to refactor/reuse scenarios
• Did not want a runtime addition to our code base
• No reflection!!!
Reasons to build automation: Legacy Code
Issues
• There are generally a wide range of problems found in a code base
that has been inherited, most of them can be traced back to a
project timeline constraint.
• Requirements not well documented causing ‘on-the-fly’
refactoring which destroys the original design intent.
• Not having a design/architecture planned out
• New technology base has deprecated functionality (tied to
Windows 7 OS for example..)
• Skill set of original ‘designers’ or developers was… not ideal…
for the tasks at hand
• Business enforced unrealistic demands on IT resulting in a ‘just
get it done..’ mentality
• Single point of failure (ie. The ‘beer truck problem’)
• There are more..
Reasons to build automation: Greenfield
Issues
• This category of issues usually boil down to scope which, if not
handled by Project Management, causes a ‘space-time-continuum’
problem…
• Target every platform ever, that their 13-year old nephew likes..
• Just add this ‘one little thing..’
• Long running project that outlives a technology platform - thus
building technical debt before ever launching to production
• Failure of the Enterprise to properly articulate a roadmap that
your solution must live in…
• Inability of the Technical Lead to say ‘no’ in a way that doesn’t
get them fired..
• Changing the Architect/Architecture mid-way through a
development effort
• There are more..
A bit about Service Layer Design…
There are nearly as many different service layer designs as there are active teams making use of them in their
work. Building a pattern can be impacted by Micro Service Design, n-Tier Architecture, CQRS implementations,
platform constraints, etc etc.
For today we will be working through a demo with the following basic design outline.
Service.Logic.Abstraction
Data.SQL/NoSQL
Service Endpoint
(could be public,
doesn t have to be)
Global.Data
(your entitiy
definitions)
Service.Logic
A bit about how CodeFactory works..
CodeFactory was internally developed by our team over the last 8 years. It has gotten to the point that we are
looking to potentially turn it into a full-fledged product.
What is it?
• CodeFactory is a Visual Studio extension that allows for design-time code automation. This means no
additional libraries or code needed to have an automation framework active.
How Does it work?
• CodeFactory allows for two basic operations; Authoring and a Runtime.
• Authoring allows you to build a series of commands that natively work with Visual Studio. This authoring is
done against your own codebase via an object model (currently C# and plain old .NET)
• The runtime allows any team member with a copy of Visual Studio that has CodeFactory installed can run your
Authored template. Just drop the CodeFactory template file (*.cfx) into the root of the solution that you want
to have automation enabled on. That’s it. The Runtime takes care of the rest.
How does CodeFactory get customized
actions to your solution?
Create Custom
Action
Build CodeFactory
CFX
Include CFX in the
root of your target
solution
Every CF-enabled
VS will now have
the Custom actions
enabled
A bit about how CodeFactory works (con’t)..
What does it do?
• The CodeFactory runtime loads your automation template into Visual Studio and makes it available to the
developer(s) via the Solution Explorer (we are working on more options).
• The developer can then pick from any of the automation commands that have been defined to do their job(s).
Output?
• Output can be handled many different ways, but our out of the box tool is a combination of the CodeFactory
Code Model and T4.

More Related Content

What's hot

Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!BizTalk360
 
[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls⚡ Danish Naglekar
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Phil Leggetter
 
The Dark arts of building your own framework (Andrey Glashenko)
The Dark arts of building your own framework (Andrey Glashenko)The Dark arts of building your own framework (Andrey Glashenko)
The Dark arts of building your own framework (Andrey Glashenko)Юрий Артамонов
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile TechnologiesTalentica Software
 
IBM Bluemix Continuous Delivery
IBM Bluemix Continuous DeliveryIBM Bluemix Continuous Delivery
IBM Bluemix Continuous DeliveryNiklas Heidloff
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkNitin Sharma
 
Tests supporting multiple mobile platforms
Tests supporting multiple mobile platformsTests supporting multiple mobile platforms
Tests supporting multiple mobile platformsvodqancr
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devopsVincent Biret
 
Build MSTeams Customizations with SPFx
Build MSTeams Customizations with SPFxBuild MSTeams Customizations with SPFx
Build MSTeams Customizations with SPFxKirti Prajapati
 
Continuous Deployment of your Application - SpringOne Tour - Boston
Continuous Deployment of your Application - SpringOne Tour - BostonContinuous Deployment of your Application - SpringOne Tour - Boston
Continuous Deployment of your Application - SpringOne Tour - BostonVMware Tanzu
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?Vincent Biret
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – DeploymentsBizTalk360
 
From Continuous integration to Continuous Delivery with TeamCity
From Continuous integration to Continuous Delivery with TeamCityFrom Continuous integration to Continuous Delivery with TeamCity
From Continuous integration to Continuous Delivery with TeamCitySergey Pak
 
Building Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhiskBuilding Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhiskNiklas Heidloff
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkKirti Prajapati
 
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012Wael Hamze
 

What's hot (20)

Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!
 
[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls[Portland 365Sat] PCF Custom Controls
[Portland 365Sat] PCF Custom Controls
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
The Dark arts of building your own framework (Andrey Glashenko)
The Dark arts of building your own framework (Andrey Glashenko)The Dark arts of building your own framework (Andrey Glashenko)
The Dark arts of building your own framework (Andrey Glashenko)
 
ContinuousIntegration
ContinuousIntegrationContinuousIntegration
ContinuousIntegration
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
IBM Bluemix Continuous Delivery
IBM Bluemix Continuous DeliveryIBM Bluemix Continuous Delivery
IBM Bluemix Continuous Delivery
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
 
Tests supporting multiple mobile platforms
Tests supporting multiple mobile platformsTests supporting multiple mobile platforms
Tests supporting multiple mobile platforms
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
Build MSTeams Customizations with SPFx
Build MSTeams Customizations with SPFxBuild MSTeams Customizations with SPFx
Build MSTeams Customizations with SPFx
 
Continuous Deployment of your Application - SpringOne Tour - Boston
Continuous Deployment of your Application - SpringOne Tour - BostonContinuous Deployment of your Application - SpringOne Tour - Boston
Continuous Deployment of your Application - SpringOne Tour - Boston
 
Git code reviews
Git code reviewsGit code reviews
Git code reviews
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
 
DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
From Continuous integration to Continuous Delivery with TeamCity
From Continuous integration to Continuous Delivery with TeamCityFrom Continuous integration to Continuous Delivery with TeamCity
From Continuous integration to Continuous Delivery with TeamCity
 
Building Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhiskBuilding Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhisk
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012
Silverlight & Microsoft CRM Development - extremeCRM Berlin 2012
 

Similar to Desert Code Camp Presentation

Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixPeter Nazarov
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015DotNetCampus
 
Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)Elizabeth Steiner
 
#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learnedVincent Biret
 
Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Vadym Kazulkin
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware ProgrammingPostSharp Technologies
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30Roger Snook
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiVadym Kazulkin
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
Wintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class LibraryWintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class LibraryJeremy Likness
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Why is Infrastructure-as-Code essential in the Cloud Age?
Why is Infrastructure-as-Code essential in the Cloud Age?Why is Infrastructure-as-Code essential in the Cloud Age?
Why is Infrastructure-as-Code essential in the Cloud Age?Andrew Ferrier
 
Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010ESUG
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2Jim Brisson
 
Employee Info Starter Kit
Employee Info Starter KitEmployee Info Starter Kit
Employee Info Starter Kitjoycsc
 

Similar to Desert Code Camp Presentation (20)

Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)
 
#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned
 
Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021Writing less code with Serverless on AWS at FrOSCon 2021
Writing less code with Serverless on AWS at FrOSCon 2021
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Writing less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group NairobiWriting less code with Serverless on AWS at AWS User Group Nairobi
Writing less code with Serverless on AWS at AWS User Group Nairobi
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Wintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class LibraryWintellect - Devscovery - Portable Class Library
Wintellect - Devscovery - Portable Class Library
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Why is Infrastructure-as-Code essential in the Cloud Age?
Why is Infrastructure-as-Code essential in the Cloud Age?Why is Infrastructure-as-Code essential in the Cloud Age?
Why is Infrastructure-as-Code essential in the Cloud Age?
 
Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010Cincom Smalltalk Roadmap 2010
Cincom Smalltalk Roadmap 2010
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
 
Employee Info Starter Kit
Employee Info Starter KitEmployee Info Starter Kit
Employee Info Starter Kit
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Desert Code Camp Presentation

  • 1. Using Visual Studio 2019 with code automation to auto-generate customized service layers in a Contract-Driven Architecture John Hannah MCP VP of Delivery LifeCycle Delivery Services, Inc
  • 2. Agenda • Introduction • What we did, and why • Reasons to build Automation: Legacy Code Issues • Reasons to build Automation: Greenfield Issues • A bit about Service Layer Design • A bit about how CodeFactory works • Demo • Question and Answers
  • 3. What we did, and why • Frequent skillset gaps on the teams we were provided with to deliver a given project scope. • No other automation utilities on the market did enough of what we needed • ReSharper, Visual Studio Templating, etc. are all options – but do not lend themselves to refactor/reuse scenarios • Did not want a runtime addition to our code base • No reflection!!!
  • 4. Reasons to build automation: Legacy Code Issues • There are generally a wide range of problems found in a code base that has been inherited, most of them can be traced back to a project timeline constraint. • Requirements not well documented causing ‘on-the-fly’ refactoring which destroys the original design intent. • Not having a design/architecture planned out • New technology base has deprecated functionality (tied to Windows 7 OS for example..) • Skill set of original ‘designers’ or developers was… not ideal… for the tasks at hand • Business enforced unrealistic demands on IT resulting in a ‘just get it done..’ mentality • Single point of failure (ie. The ‘beer truck problem’) • There are more..
  • 5. Reasons to build automation: Greenfield Issues • This category of issues usually boil down to scope which, if not handled by Project Management, causes a ‘space-time-continuum’ problem… • Target every platform ever, that their 13-year old nephew likes.. • Just add this ‘one little thing..’ • Long running project that outlives a technology platform - thus building technical debt before ever launching to production • Failure of the Enterprise to properly articulate a roadmap that your solution must live in… • Inability of the Technical Lead to say ‘no’ in a way that doesn’t get them fired.. • Changing the Architect/Architecture mid-way through a development effort • There are more..
  • 6. A bit about Service Layer Design… There are nearly as many different service layer designs as there are active teams making use of them in their work. Building a pattern can be impacted by Micro Service Design, n-Tier Architecture, CQRS implementations, platform constraints, etc etc. For today we will be working through a demo with the following basic design outline. Service.Logic.Abstraction Data.SQL/NoSQL Service Endpoint (could be public, doesn t have to be) Global.Data (your entitiy definitions) Service.Logic
  • 7. A bit about how CodeFactory works.. CodeFactory was internally developed by our team over the last 8 years. It has gotten to the point that we are looking to potentially turn it into a full-fledged product. What is it? • CodeFactory is a Visual Studio extension that allows for design-time code automation. This means no additional libraries or code needed to have an automation framework active. How Does it work? • CodeFactory allows for two basic operations; Authoring and a Runtime. • Authoring allows you to build a series of commands that natively work with Visual Studio. This authoring is done against your own codebase via an object model (currently C# and plain old .NET) • The runtime allows any team member with a copy of Visual Studio that has CodeFactory installed can run your Authored template. Just drop the CodeFactory template file (*.cfx) into the root of the solution that you want to have automation enabled on. That’s it. The Runtime takes care of the rest.
  • 8. How does CodeFactory get customized actions to your solution? Create Custom Action Build CodeFactory CFX Include CFX in the root of your target solution Every CF-enabled VS will now have the Custom actions enabled
  • 9. A bit about how CodeFactory works (con’t).. What does it do? • The CodeFactory runtime loads your automation template into Visual Studio and makes it available to the developer(s) via the Solution Explorer (we are working on more options). • The developer can then pick from any of the automation commands that have been defined to do their job(s). Output? • Output can be handled many different ways, but our out of the box tool is a combination of the CodeFactory Code Model and T4.