According to technology trends and different articles, the amount of data is going to explode in future (for example, see: Data Science: The Numbers of Our Lives and Cloud Infographic: IT Cloud Skills Gap).
More devices will be connected to internet (see Mobile internet devices 'will outnumber humans this year'). More data will be moved to and stored in cloud.
By entering this contest, I hope to gain experience in Windows Azure and get to know components of Azure cloud platform. Learning to use Windows Azure I will broaden my IT skills and I will be able to use the cloud technology if a need arises.
I have been in software development for about 8 years now. During last year I got a chance to work on some small software projects using .Net. Although, my development experience is rather broad, this will be a tough challenge for me, as I have no experience in ASP.NET, nor Windows Azure, nor mobile application development. I plan to develop major parts of the software in C# on ASP.NET.
I will document my experience in learning ASP.NET, Windows Azure, mobile application development in this article during the contest.
Book Library Management
This solution allows individuals, interest groups, and small organizations to manage personal book collections in a collaborative way in online, book libraries.
Things I have currently planned for this software:
- To catalog books in possession into one or more libraries;
- Invite friends to join your library and give them edit or read-only rights;
- Make your library profile public, if you want to share selected book titles in your library with others;
Second Challenge: Build a website.
The website is up and can be visited here abeces.azurewebsites.net.
To be short, I tried, but I could not do all things I have intended in these 2 weeks of contest.
As I explained earlier, I am new to ASP.NET, so there is a lot to learn. Starting with Entiry Framework - Code First;
Website user authorization, Routing, Views, Style and Script bundling, etc.
Currently the website is basically just a collection of some static webpages.
The real application which I have intended to develop, is not even started.
My aim was not to quickly put up a solution and then forget it. So I need to consider how to build the website in order
for it to be testable, maintainable.
These are major issues. Unless you don't mind to to be in position when you must say: "Ohh... Someone should clean this!"
(the code). And then, with real fear say: "I am not touching this!" (this is from Bob Martin, a
great video here.)
My next step I want to do is to Create a development environment, which allows me to test locally, and then deploy to Windows Azure.
is a great article about that.
I also want to implement a Repository Pattern for accessing entities.
There is an article
explaining how to do that.
Few words about my experience with Windows Azure this far. I think it is a great tool. The speed in which you can create a
website (by building it yourself, or using one of several existing templates - like WordPress), is just amazing.
For WordPress you do not need a separate database for this, so you can have it for free (unless you decide to use a custom domain name).
There were some difficulties I experienced, though. But this is more a Visual Studio problem, I guess.
The way you can transfer an existing project to another website, is not very clear.
I changed my site domain name, and used the same project to commit to Team Foundation Server (TFS), and then linked it up to the
website. But the build was failing. The message was something like "An error was encountered when processing operation 'Delete Directory' on 'plugins'.
The problem turned out to be the old Source Control information bound to the Visual studio project.
I could solve that using Unbind Source Control.
There is a short list of what technologies were used to build the website:
- I have used Twitter Bootstrap template for website design. There are other interesting alternative frameworks.
But with this one I have some experience.
- I spent some time thinking about URL routing. For public profiles I wanted to have urls like "domain.com/user-name" vs "domain.com/users/user-name".
There seems not to be a clean solution for this.
But in the end, I decided to use some pre-defined reserved names for controllers, and more than 900 are still available as I have decided to enforce user names being at least 3 characters long.
- I will be using SimpleMembership. It seems to be easy to use;
it can be linked up to your custom table of users; it provides OAuth, for integration with third party authentication (Twitter, Facebook, etc.).
I have not intended to use the other 9 free websites for now. But I can think of using one of the websites for a blog about the website.
First Version | April 28, 2013
Second Version | May 12, 2013