frontend life with Visual Studio
This post is part of series "the road to Visual Studio free frontend development":
- Frontend life with Visual Studio
You can browse code of this post on github.
Every good project starts with identifing some requirements and my new website also follows this simple rule. My list of requirements is the following:
- simple
- fast
- mobile friendly
- server side technology free
- ready as soon as possible
The latter is the most important (like for all other projects). So, I decided to reach my goal by using the tool I deal with every day: Visual Studio.
First choise, first issue: how can I use Visual Studio detached from ASP.NET?
I'm a lucky man because purehtml template suites this purpose.
Now we can go further: how I can minify my css and javascript files?
The Visual Studio plugin Web Essential helps me. This little devil provides a lot of useful features to manage the life cycle of both the client code and style scripts (exactly what I need). In addition it can transform either sass or less scripts to css and either typescript or coffescript to javascript (out of scope for this project).
Last but not least: how can I use minified files only for production and use the original - not minified - during the development?
I decided to write a little script powershell in order to copy the website content to a publishing directory and replace both css and js files with its minified pairs.
The mission is finally accomplished: my new website is up and running. Now it's time to have a retrospective about the frontend development experience with Visual Studio.
The good parts:
- The discussed solution satisfies all the requirements
- The used tools are familiar to a microsoft stack developer
The bad parts:
- My machine is based on OSX so using Windows under the virtual machine drains too much battery
- I wasted time waiting to boot virtual machine
- I wasted time waiting to open Visual Studio
- Every time I open the powershell script I need time to realize what the code means
- I have to open Visual Studio for every minimal change (so Web Essential can update minified files) either JavaScript or CSS
- It's not a usual development experience for a non-Microsoft developer
- My project folder is overloaded due to useless files from the Visual Studio project (*.sln, *.config, *.csproj, Properties folder)
- Visual studio template referencing useless (for my scope) client libraries
- Client libraries versioning and management is a pain
- My project is editor/ide dependent so I cannot share it with other frontend developers used to its tools
- I need to manually set up my dev environment before opening the project
hmmm... It seems I have too many technical debts to make up...