So you’ve decided you want to get into software development for the first time or, maybe, you currently develop software for non-Microsoft/Windows platforms (e.g. Java/Android, Objective-C/iOS, etc.) but you are concerned the cost of development tools might be insurmountable. Well, I have some great news for you… you can actually get started developing using Microsoft development tools for NO cost – i.e. totally FREE!
Let me show you how…
Get an IDE!
The first tool you need to acquire is an Integrated Development Environment or, IDE. There is no better IDE on the planet than Microsoft’s very own Visual Studio. Visual Studio comes in various editions along with various features (in general, the higher the cost for the edition, the more features you get). As of yesterday, Microsoft announced a brand new edition for Visual Studio – Visual Studio Community 2013. The great thing about this edition is that it is completely FREE!
You can use the Community edition for FREE in the following scenarios:
- Any individual developer can use Visual Studio Community to create their own free or paid apps.
- An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
- For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1MM in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.
When you look at the above restrictions, it’s actually very generous for the average developer out there creating applications outside the enterprise.
As far as features go, there’s no shortage. Essentially, the Community edition contains the same features as Visual Studio Professional 2013. Nice! With Visual Studio Community 2013, you can create the following types of applications:
- Web Services and Apps
- Windows Store apps
- Desktop (e.g. WPF) apps
- Console apps
- Windows Phone apps
- Cross-platform Mobile Apps for Android, iOS, and Windows Phone apps using Apache Cordova which is provided out of the box with Visual Studio
You can read more about Visual Studio Community 2013 here.
Protect, Plan and Collaborate!
You might be creating your apps by yourself or you might be collaborating with other developers. Regardless, you will want to protect your source code (and related artifacts) in a version control system. Visual Studio Online (VSO) provides you with a first-class version control system, and much more! As with the Visual Studio IDE, there is also a FREE plan for VSO.
The FREE offering of VSO provides the following features:
- 5 FREE Basic user licenses
- View and customize dashboards
- Create and edit work items
- Code repos (using Git or Team Foundation Version Control repos)
- Manage backlogs
- Sprint planning
- Task and Kanban boards
- Code comments on changesets/commits
- Build automation (CI)
- View portfolio backlogs
- Unlimited Stakeholder licenses
- View dashboards
- Create and edit work items
- Task and Kanban boards (read only)
- Unlimited team projects and private code repos
- 60 minutes/month of build
- 15K virtual user minutes/month of load testing
- PREVIEW for application monitoring and analytics
VSO provides you with a great place to store and version your source code, track user stories, tasks and bugs, automate your builds, etc. There is a ton of features made available by VSO for no cost!
You can read more about the cost and benefits of VSO here.
To the Cloud!
It’s all well and good to build apps but, if you’re providing web services (or web sites) that need to be accessed by other apps (or users) then you’ll need a place to host these services and sites – preferably at no cost (since we want to get started for FREE!) Well, once again, Microsoft does not disappoint with Microsoft Azure!
As with the above services, Microsoft offers a subset of features within Azure for FREE (some limitations apply). These include:
- Web Sites – you can create and publish up to 10 web sites for FREE within Azure.
- Mobile Services – you can run up to 10 Mobiles Services with a 20 MB SQL database for FREE.
- Notification Hubs – you can send up to 1,000,000 Pushes per month for FREE.
With the FREE services provided in Azure, you can be up and running in the cloud in no time. The Azure integration in Visual Studio is also excellent.
You can read more about Azure and get started by creating a FREE account here.
If you happen to have an MSDN subscription (not free but, if you have one, then…) you have access to more Azure features because you get a certain amount of money to spend toward Azure services each month. For example, based on your MSDN subscription level, you get the following “allowance” (USD) per month:
Extension, Extensions, and More Extensions!
One of the great features of Visual Studio is its extensibility. This allows other developers to create reusable tools, controls and templates that can be uploaded to the Visual Studio Gallery where they can be searched and downloaded by other developers. Some of these extensions are offered for a premium but the vast majority of them are offered for FREE!
As of this writing, there are 5,115 extensions in the Gallery. If you have a need for a particular tool or component in Visual Studio, before you set out to write it yourself, check the Gallery first. You just might find what you’re after.
You can also access the gallery directly from within Visual Studio by clicking on Tools->Extensions and Updates:
Free Components and Libraries!
Along with the need to extend Visual Studio, sometimes (lots of times) you will have the need for a custom library or framework to simplify, or speed up, the task of writing code. Fortunately, there is a strong community around .NET that can be leveraged from within Visual Studio.
This community provides a plethora of components via NuGet packages. The default location for obtaining NuGet packages is nuget.org. As of this writing, there are just over 29,000 unique NuGet packages available!
There are multiple ways to pull NuGet packages into your Visual Studio projects directly from within Visual Studio. One of the ways of doing this is to simply click on Tools->NuGet Package Manager->Manage NuGet Packages for Solution. This will display a window similar to this:
From here, you can select alternate NuGet sources or search for specific packages. For example, searching for the term “AngularJS” will return multiple packages for working with AngularJS in your web applications.
FREE Training, Please!
You now have access to a great set of tools, libraries, and example source code… but what if you want to jump into some training on a specific subject? Is there anywhere you can go for FREE training? Well, there are a few options…
- Microsoft Virtual Academy – Microsoft Virtual Academy (MVA) offers free training on many topics, including development, for FREE! You can create custom training plans and track your progress, all from within the MVA website. Be sure and check this resource out, it’s outstanding!
- Code School – if you prefer a more hands-on approach, then check out Code School’s offerings. Although they do have a premium (i.e. not free) program, they do offer many courses for FREE. This is a great resource for trying things out directly in your browser as you learn about them.
- Pluralsight – Pluralsight provides great self-paced, on-line training for a premium. However, they do offer on occasion, some FREE courses.
There are many other training resources on line but these will get your started on the road toward mastering software development.
As you can see, there is a LOT you can do with Microsoft’s development tools for FREE! Although we covered a lot in this post, there are a lot more FREE components and other resources available on the web. Check out popular open source sites such as GitHub and CodePlex to find example projects, libraries, and frameworks.