Developing on Windows 10 in 2019

How goes the learnin’?

Did that link help with explaining PSDrives?

1 Like

taking a break since it’s the weekend. They started making a bit more sense didn’t finish the chapter yet

2 Likes

Hmm, so yeah… got the cravings and I reinstalled windows 10 to game (yesterday), since sekiro with my hardware wouldn’t fare well with wine or proton, being such a recent title.

Installed all my stack (which is only node and vscode, was going to start a practice project but things have turned around way too soon).

Today shit has gone fucky and either my VGA or my (grand)motherboard is bad, and I don’t have the resources to get it fixed right now (money and time, basically). So I removed the graphics card and am left with an unregistered copy of windows 10 home (won’t crack it, am more prone to buyng a license it it’s the case).

I don’t want to make a post only about it so if you guys could help me it would be neat.

I won’t be gaming, at least not on PC. Will use this machine only for coding and stuff. I’m learning web development, with a main focus on node and all the standard stack for front-end. Do I lose something staying with windows or just slapping some other less MSesque distro?

Been around with Debs, Buntu, Pop and Manjaro, and I love them all, except for Manjaro which hates my wireless adapter and only has node on snap (don’t even know if it makes any difference)…

I’ll probably have to get new hardware soon enough, either a laptop or even a desktop… should I bother with all the linuxisms? Should I put up with MS crap?

But am I missing something? (I just posted it here cause my main goal is developing, learning to get a job)

1 Like

I’ve done development work with NodeJS on Windows. Outside of environment variables for some NPM packages (like pico logging), I’ve had no issues with PowerShell. For those weird instances where a Bash shell was needed, I had WSL. Or, I just figured out how to make environment variables with PowerShell lol.

Redirection works a bit differently in PowerShell, but you won’t notice unless you’re doing something with binary files. For that I would use cmd or WSL.

I think it helps to keep a clear picture of what a developer environment is. Note, this isn’t to be confused with a development environment. A developer environment is something that you (a developer) use to produce software. You have tools, modules, hacks, passwords, etc. that are available to you. The underlying system doesn’t matter that much, especially in web dev.

If you want to emulate a production environment, then your development environment needs to be a little more constrained and restricted. Regardless, installing Linux bare metal (unless that’s how your job roles) isn’t going to be modeling a production environment. You’d still have virtual machines as your development environment, probably with four servers and a load balancer.

  Load Balancer 
  /             \
Web 01        Web 02
  |              |
  |              |
   \            /
     \        /
         |
       App 01
         |
       DB 01

This is a rudimentary example, but this would be a proper development environment modeling a production environment for a web stack. With your developer environment, you can do all of this locally with containers or services (dev’s choice). When the time comes to get that juicy app into production, you can move toward a virtualized stack, automated tests, delivery pipelines, and all that.

For now, in my experience, writing some NodeJS on Windows is going to suit you just fine.

2 Likes

So basically, production and testing are absolutely separated from developing itself?

Guess I should be fine then. I’m tired of hopping anyways. Too lazy to reinstall everything. Too lazy to be dealing with hardware compatibility also.

This was fairly important to know, thank you <3

I’ll probably focus on virtualization and stuff, so I keep it separated from my main development environment.

1 Like

Yeah, you can integrate them with CI/CD tools such as GitLab, Jenkins, Team City, things like that. But overall the environments are separate entities. With containers it gets a bit more interesting, and technically you can “ship” the same container through dev -> QA -> staging -> production (a lot of companies are doing this).

If you’re just learning the development part right now, it’s best to stay on the single workstation with your workflow, get it working, then move to understanding how continuous delivery, automated deployments, A/B or Blue/Green deployments work.

For sure, it takes practice to get familiar with it all.

VMware Workstation is great, as is Hyper-V and VirutalBox. Docker is awesome, too, but functions differently than a traditional virtual machine.

2 Likes

sir this is the worst ascii vagina I’ve ever seen. Please work on your ascii skills.

7 Likes

Not the worst thing I’ve faped to

3 Likes

Squints real hard

Oh, damn… How embarrassing.

3 Likes

So PSdrives make… enough sense. Still feel vague about what it actually means but i was able to complete the exercises in the book.

Just moved on to pipeline functionality and OMG this is amazing. No more jabberwonky collecting values for variables to print out etc in cmd it just works

3 Likes

Found the next book I am going to buy

1 Like

It’s great, i’m 1/3 through it… excited to get to Powershell Scripting book after this because that’s what i actually need to learn for developing testing solutions.

1 Like

All of this is right on the money. :clap:

Moved from doing Java on a Mac to a C# / .NET / Vue.js stack on Windows and I use most of this stuff.

I’ve gotten to know Powershell Core quite well over the past few months and begun writing my own modules and helper scripts to automate out some day-to-day stuff.

My daily drivers are now:

Hyper (set to run a custom PS Profile, but can switch between different terminals)

CMDer was already posted but +1 for that!

posh-git (https://github.com/dahlbyk/posh-git) <-- Necessity for doing git commands in Powershell environments.

Visual Studio Code and Visual Studio (2017/2019)

If you have a free version or access to ReSharper, I highly recommend it for VS… its incredibly helpful. Coming from JavaLand, IntelliJ was my daily driver so this does a ton of the same things and I was able to immediately feel at home in my IDE.

Depending on your stack, it might be useful to have Postman

3 Likes

Yeah, ReSharper is great. I really like Rider, too, the JetBrains C# IDE.

There is a ReSharper C++ edition for C++ devs on VS as well.


For those of you curious, ReSharper is a plugin for Visual Studio Community, Professional, or Enterprise written by JetBrains. It’s a code standard/syntax/logic advisor, to put it simply. It will do incredible optimizations to your source code, including removing as many as 10 lines (that I’ve witnessed) of code at a time. It can also recommend lambdas in certain scenarios and anonymous functions.

1 Like

Just want to add that all the jetbrains IDEs also work on Windows.

And they have their “Toolbox” to manage projects and IDEs.
It also really helps setting things up.
For example, if you install Clion from within the Toolbox, clion will be preconfigured and ready to go.

If you just install Clion, have fun setting up where your compiler and debugger are and everything else.
I was to dumb to get it working, but i’m and I will stay on Linux. That probably borked me.

1 Like

The Windows Terminal has also gotten pretty useable by now. When it came around at first it was a bit annoying to use. It´s still in preview, but it seems fine now as far as I´m concerned.

Does anybody know a way to set it up so it launches when you click strg+t or windows+t (whatever works). Or in the explorer you can launch powershell when typing powershell into the path box and be in the path you where. Is that achievable with Windows terminal?

1 Like

Oh man, that’s a great idea. So, I’ve not found a way to do this without opening two windows, so that might get old/annoying real quick.

But you can create a .ps1 file with wt in it. Then create a shortcut and set the target to powershell.exe -noexit -ExecutionPolicy Bypass -File pathToPS1File. Name the shortcut whatever you want.

Right click shortcut > Properties > Shortcut > Shortcut Key

Enter the letter you want (I did ‘W’ which created a shortcut for Control + Alt + W)

Now when I press Control + Alt + W PowerShell opens, runs wt, which opens Windows Terminal.

Lol :wink: Works for me, but your mileage tolerance may vary.

2 Likes

@maximal

wt is stored under: (at least I hope so. lol. I installed it from the MS Store)

C:\Users\username\AppData\Local\Microsoft\WindowsApps

If you use an app called WinHotKey, you can go and set up a shortcut by creating one and using the path

C:\Users\username\AppData\Local\Microsoft\WindowsApps\wt.exe

Just tried it. It works.

I dont know if you would like to use an external application like I did tho. For the wt.exe, I could not find a shortcut tab under properties, to avoid the whole external app thing.

2 Likes

The powershell shortcut might be a good idea (didnt know it was wt before :sweat_smile:). I can put that to where all the other shortcuts are too (so that launchy can find it… currently it cant).

Typing wt into explorer works, but does not cd into the path, so its not really all that useful (tried with wsl and powershell as default tab).


-ExecutionPolicy Bypass <= that right is the soul reason it took me forever to figure out how to launch “helloworld.ps” :joy:

3 Likes

Thanks for the tips @Goalkeeper and @AnotherDev
Now Launchy sees Windows Terminal!

Just make sure to check “Include executable” for the path :slight_smile:
obraz

4 Likes