SlideShare une entreprise Scribd logo
1  sur  25
Does the world end if you stop using Visual Studio? Hint: No.
Who Am I? Garry Stewart I do tehsoftwarez Contact me	 garry.stewart@gmail.com @garry_stewart http://www.garry-stewart.com/
IDE Addicition General text editing Syntax highlighting Intellisense WYSIWYG Editors Visualisation tools Code generation Build management & compilation Code navigation File management Source control Integrated debugging Etc…
This used to be Less Complicated, Right?
So let’s All Develop In Notepad!
What’s the Alternative? + ==
Before We Start.. Current directory is king %PATH% matters Command line tools are your friend
There are these things called modes… Lots of different modes Insert Visual Normal And More! You will spend most of your time in Normal mode. You cannot enter text in this mode
Basic Editing :help operator :help scrolling Everything has a count 5dw == delete the next 5 words Rinse and repeat . Repeats the last command
Stuff to Get Into if We Have Time :help buffers Syntax highlighting Creating functions and macros Refactoring Spell checking
Ultimate Power Fully scriptable On the fly via commands Plugin architecture Built in Regex engine Reassign key commands Interact with the command line Macros No COM required to create extensions!
Navigating Code :help various-motions Currently “broken” for C# if you have a namespace It’s all just regex, so we can extend this to work with
Interacting With The Command Line :! <command> == execute a command (opens a new window) :r ! <command> == read the output of the console operation into the current buffer Have a custom function in my _vimrc to print output in a new window
QuickFix QuickFix == list of search results with file navigation :copen or :cw " Open the quickfix window :ccl   " Close it :cn    " Go to the next error in the window :cnf   " Go to the first error in the next file :colder " Look at older results :cnewer" Look at newer results Global to all windows
QuickFix Example: Find In Files :vimgrep (or :grep if you have the actual program) Fills the QuickFix list :vimgrep /[pattern]/[g][j] {file} E.g. :vimgrep /public/j ./**/*.cs [g] == Include ALL results as separate lines [j] == Don’t jump to first result Can also use :lvimgrep (or :lgrepif you have the actual program) Fills “location list” which is local to current window Use :lw or :lopen to see this :lolder and :lnewer to navigate search result history
Building a Project :make Uses makeprg to tell what to execute MSBuild in my case Uses errorformat to parse build output for errors Redirects errors to QuickFix window Equivalent of Visual Studio’s build error list
Source Control Integration Didn’t we already cover this with command line integration???? I’m using git RunShellCommand to the rescue again!
Markers Basically bookmarks Some set by Vim functions Can be set by you :help mark-motions
Tags Build them using Exuberant Tags (ctags.exe) :tag <tagName> Jumps to a tag :tags Gives a list of all tags CTRL-g == navigate g] == list Sets a mark upon navigation Allows you to return to the same spot
Code Completion Sort of works Can’t get it working like Intellisense with C# Works fine in C/C++/Java/Pretty much anything else Several types of completion Omni Completion In File completion Many more..
Extensions Huge plugin community Some samples :NERDTree Basically Solution Explorer :TlistToggle Class view using Tags
Folding Code Yes, you can do it No, I haven’t looked at it Think of this as an equivalent to #region Regions are evil Useful when building plugins NERDTree and TagList both use it
Next Steps Get “intellisense” working properly Or just learn the BCL… Generate tags from BCL source code Try to get command line debugging working via Shell calls and the Quickfix list Start creating refactoring and code generation functions E.g. extract method, create controller Take a look at http://vim.wikia.com/wiki/Vim_as_a_refactoring_tool_and_some_examples_in_C_sharp
Closing Thoughts

Contenu connexe

Tendances

A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016Gary Park
 
A Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingA Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingGary Park
 
A Piece of Cake - DDD North
A Piece of Cake - DDD NorthA Piece of Cake - DDD North
A Piece of Cake - DDD NorthGary Park
 
Having your cake, and eating it too!
Having your cake, and eating it too!Having your cake, and eating it too!
Having your cake, and eating it too!Gary Park
 
Having your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandHaving your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandGary Park
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS supersetTyrone Allen
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Develcz
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for TestersAdam Goucher
 
Building End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptBuilding End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptGil Fink
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by GoogleUttam Gandhi
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDevelcz
 
NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.Tomek Sułkowski
 
Log4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesLog4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesyosaggregator2
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Jess Chadwick
 
The new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseThe new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseJesse Houwing
 

Tendances (19)

A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016
 
A Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingA Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - Reading
 
A Piece of Cake - DDD North
A Piece of Cake - DDD NorthA Piece of Cake - DDD North
A Piece of Cake - DDD North
 
Golang
GolangGolang
Golang
 
Having your cake, and eating it too!
Having your cake, and eating it too!Having your cake, and eating it too!
Having your cake, and eating it too!
 
Having your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandHaving your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotland
 
Introduction to saucelabs
Introduction to saucelabsIntroduction to saucelabs
Introduction to saucelabs
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS superset
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
 
Building End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptBuilding End-to-End Apps Using Typescript
Building End-to-End Apps Using Typescript
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
Testing and symfony2
Testing and symfony2Testing and symfony2
Testing and symfony2
 
NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.
 
Log4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesLog4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updates
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!
 
The new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseThe new way to extend VSTS Build and Release
The new way to extend VSTS Build and Release
 

En vedette

Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...SIANI
 
Best Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey HepburnBest Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey Hepburnlabenir
 
Microsoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionMicrosoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionGarry Stewart
 
2010 share point saturday deck enterprise office applications
2010 share point saturday deck   enterprise office applications2010 share point saturday deck   enterprise office applications
2010 share point saturday deck enterprise office applicationsGarry Stewart
 
Mdia3002 week 08 tute prep
Mdia3002 week 08 tute prepMdia3002 week 08 tute prep
Mdia3002 week 08 tute prepcassiechorn
 
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up PlatformGarry Stewart
 
Perth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowPerth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowGarry Stewart
 
The State of Content Management
The State of Content ManagementThe State of Content Management
The State of Content ManagementTihomir Opačić
 
Alt dot net user group stop coding
Alt dot net user group   stop codingAlt dot net user group   stop coding
Alt dot net user group stop codingGarry Stewart
 
ренессанс уткина и муратова
ренессанс уткина и муратоваренессанс уткина и муратова
ренессанс уткина и муратоваnet174
 

En vedette (10)

Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...
 
Best Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey HepburnBest Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey Hepburn
 
Microsoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionMicrosoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in Action
 
2010 share point saturday deck enterprise office applications
2010 share point saturday deck   enterprise office applications2010 share point saturday deck   enterprise office applications
2010 share point saturday deck enterprise office applications
 
Mdia3002 week 08 tute prep
Mdia3002 week 08 tute prepMdia3002 week 08 tute prep
Mdia3002 week 08 tute prep
 
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
 
Perth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowPerth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of Workflow
 
The State of Content Management
The State of Content ManagementThe State of Content Management
The State of Content Management
 
Alt dot net user group stop coding
Alt dot net user group   stop codingAlt dot net user group   stop coding
Alt dot net user group stop coding
 
ренессанс уткина и муратова
ренессанс уткина и муратоваренессанс уткина и муратова
ренессанс уткина и муратова
 

Similaire à Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?

ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsJoe Ferguson
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZeeshan MIrza
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersRutenis Turcinas
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
 
Novice Programmers Workshop
Novice Programmers WorkshopNovice Programmers Workshop
Novice Programmers WorkshopAlec Clews
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamJoe Ferguson
 
Tips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net EffectivelyTips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net Effectivelyweili_at_slideshare
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratchTim Plummer
 
Why your build matters
Why your build mattersWhy your build matters
Why your build mattersPeter Ledbrook
 
Autotools, Design Patterns and more
Autotools, Design Patterns and moreAutotools, Design Patterns and more
Autotools, Design Patterns and moreVicente Bolea
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsMike Wilcox
 
Debugging NET Applications With WinDBG
Debugging  NET Applications With WinDBGDebugging  NET Applications With WinDBG
Debugging NET Applications With WinDBGCory Foy
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptIgalia
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroSteven Pignataro
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshopJacobAae
 

Similaire à Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio? (20)

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
Novice Programmers Workshop
Novice Programmers WorkshopNovice Programmers Workshop
Novice Programmers Workshop
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
Tips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net EffectivelyTips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net Effectively
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratch
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Autotools, Design Patterns and more
Autotools, Design Patterns and moreAutotools, Design Patterns and more
Autotools, Design Patterns and more
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatterns
 
Debugging NET Applications With WinDBG
Debugging  NET Applications With WinDBGDebugging  NET Applications With WinDBG
Debugging NET Applications With WinDBG
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 

Dernier

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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 FMESafe Software
 
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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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.pdfsudhanshuwaghmare1
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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...apidays
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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 2024The Digital Insurer
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
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 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
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 challengesrafiqahmad00786416
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Dernier (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
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...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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...
 
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)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?

  • 1. Does the world end if you stop using Visual Studio? Hint: No.
  • 2. Who Am I? Garry Stewart I do tehsoftwarez Contact me garry.stewart@gmail.com @garry_stewart http://www.garry-stewart.com/
  • 3. IDE Addicition General text editing Syntax highlighting Intellisense WYSIWYG Editors Visualisation tools Code generation Build management & compilation Code navigation File management Source control Integrated debugging Etc…
  • 4. This used to be Less Complicated, Right?
  • 5. So let’s All Develop In Notepad!
  • 7. Before We Start.. Current directory is king %PATH% matters Command line tools are your friend
  • 8. There are these things called modes… Lots of different modes Insert Visual Normal And More! You will spend most of your time in Normal mode. You cannot enter text in this mode
  • 9.
  • 10. Basic Editing :help operator :help scrolling Everything has a count 5dw == delete the next 5 words Rinse and repeat . Repeats the last command
  • 11. Stuff to Get Into if We Have Time :help buffers Syntax highlighting Creating functions and macros Refactoring Spell checking
  • 12. Ultimate Power Fully scriptable On the fly via commands Plugin architecture Built in Regex engine Reassign key commands Interact with the command line Macros No COM required to create extensions!
  • 13. Navigating Code :help various-motions Currently “broken” for C# if you have a namespace It’s all just regex, so we can extend this to work with
  • 14. Interacting With The Command Line :! <command> == execute a command (opens a new window) :r ! <command> == read the output of the console operation into the current buffer Have a custom function in my _vimrc to print output in a new window
  • 15. QuickFix QuickFix == list of search results with file navigation :copen or :cw " Open the quickfix window :ccl " Close it :cn " Go to the next error in the window :cnf " Go to the first error in the next file :colder " Look at older results :cnewer" Look at newer results Global to all windows
  • 16. QuickFix Example: Find In Files :vimgrep (or :grep if you have the actual program) Fills the QuickFix list :vimgrep /[pattern]/[g][j] {file} E.g. :vimgrep /public/j ./**/*.cs [g] == Include ALL results as separate lines [j] == Don’t jump to first result Can also use :lvimgrep (or :lgrepif you have the actual program) Fills “location list” which is local to current window Use :lw or :lopen to see this :lolder and :lnewer to navigate search result history
  • 17. Building a Project :make Uses makeprg to tell what to execute MSBuild in my case Uses errorformat to parse build output for errors Redirects errors to QuickFix window Equivalent of Visual Studio’s build error list
  • 18. Source Control Integration Didn’t we already cover this with command line integration???? I’m using git RunShellCommand to the rescue again!
  • 19. Markers Basically bookmarks Some set by Vim functions Can be set by you :help mark-motions
  • 20. Tags Build them using Exuberant Tags (ctags.exe) :tag <tagName> Jumps to a tag :tags Gives a list of all tags CTRL-g == navigate g] == list Sets a mark upon navigation Allows you to return to the same spot
  • 21. Code Completion Sort of works Can’t get it working like Intellisense with C# Works fine in C/C++/Java/Pretty much anything else Several types of completion Omni Completion In File completion Many more..
  • 22. Extensions Huge plugin community Some samples :NERDTree Basically Solution Explorer :TlistToggle Class view using Tags
  • 23. Folding Code Yes, you can do it No, I haven’t looked at it Think of this as an equivalent to #region Regions are evil Useful when building plugins NERDTree and TagList both use it
  • 24. Next Steps Get “intellisense” working properly Or just learn the BCL… Generate tags from BCL source code Try to get command line debugging working via Shell calls and the Quickfix list Start creating refactoring and code generation functions E.g. extract method, create controller Take a look at http://vim.wikia.com/wiki/Vim_as_a_refactoring_tool_and_some_examples_in_C_sharp