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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 
ренессанс уткина и муратова
ренессанс уткина и муратоваренессанс уткина и муратова
ренессанс уткина и муратова
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
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
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
[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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 

Kürzlich hochgeladen (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

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