I have always wanted to create/design/build my own streaming media server. With this project, I proved that it can be done. The goal of this project were to learn about Big Data databases, Cloud computing and the differences between .NET and .NET Core.
This simple MP3 player has just two functions: Return a song list and play a selected song. The flow is simple, too:
There are two apps and one database. The Web App (top layer) is the "pretty face" of the application. It lists the songs and then, using JavaScript in the browser, allows you to play the songs.
The middle layer is the REST Web API. Here's the cool part: This is the layer that controls access to the song database. It has no user interface. Instead, it contains a series of API methods that the web layer uses. In this way, the apps are loosely-coupled, which means that the API has no dependencies on the web app. Practically speaking, it means that API can be used in a completely different program (for example, a smartphone app or another server-side microservice).
Finally, there's the Azure BLOB database (the base layer), which is a departure from traditional relational databases. These "NoSQL" databases are focused on high performance with very large data sets. This capability makes Azure BLOB perfect for serving up MP3 files.
I have been a developer for over twenty years - starting with Excel Macros and progressing through Visual Basic 3-6 then into the .NET world. I've written entire Windows solutions from the form down to the database tables and worked as a team member on large enterprise applications.
For the last seven years, I have been a web developer on the Java/Tomcat stack. As one of the first people hired in a startup, I worked with the leadership teams to craft the front-end of a SaaS application. I helped create standards and libraries to be used by the team then documented it on the team's Wiki.
Meanwhile, Cloud computing took off and with it, brought a sea of change into the programming world. Since I've been laid off, I have been using this time to learn Cloud, microservice/REST and .NET Core technologies. This demo showcases the skills I learned and and demonstrates my ability to self-start and develop end-user solutions.
Thank you for visiting and be sure to check out my LinkedIn profile.