Published 15/03/2016
Web development on Windows?

Web development on Windows

Windows

As an web developer, I need to work with many modern technologies. Someone would possibly say, it's not impossible to be good developer on Windows platform when everything is running mostly on Linux servers.

And of course, that part about servers is true. MS servers quite sucks - it's all about stability, performance and maintenance.

Topics to cover:

  • Virtualization with Vagrant
  • Virtualization made even faster
  • Advantages & disadvantages of mentioned approaches
  • Windows BASH (New)
  • and more..

Vagrant

Vagrant is tool for managing virtual machines. With it's help is really easy to create, destroy and update virtual machines eg. in virtualbox.

It's also used by very popular php framework called Laravel - it's vagrant box is called Homestead.

Basic vagrant commands:

vagrant up
vagrant halt

Just do "vagrant up" and you have working local web server (eg. homestead box for PHP and MySQL). It's possible to setup local domains (also configure hosts file) and share folders from windows to virtual machine.

Note: Use SMB technology (Samba) - for ultra speed vagrant shared folders experience.

Docker

In Windows there should be soon native Docker application, but for now it's not best to use this technology for development env. On production linux servers it's perfect.

It's technology similar to Vagrant, but it's not the same. When building apps you need to think of docker containers - php can be one container, database can be another, memcached can be next etc. Container is not virtual machine, but still every container is isolated from OS and another containers.

Main advantage is that these containers are lightweight, they are using system's "Docker" resources. We can link and compose more containers to required application infrastructure.

Windows Bash

Announced on Microsoft's Build2016.

It should be full Ubuntu BASH in Windows. So you will be able to install Ubuntu's apps with Apt-get and also access computer hardware.

Example: So when you create server in Ubuntu on port 80, you will not be able to create another server on Windows - they share hardware and also these kind of services.

Bash resources:

So good luck MS with this. Wanna to see it in next Windows build.