Click here to Skip to main content
Click here to Skip to main content

Book Libraries Database

, 12 May 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
This is a book libraries database.

Please note

This article is an entry in our Windows Azure Developer Challenge. Articles in this sub-section are not required to be full articles so care should be taken when voting. Create your free Azure Trial Account to Enter the Challenge.

Introduction

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.

Background

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. Here 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.

History

First Version | April 28, 2013

Second Version | May 12, 2013

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

GatisA

Unknown
No Biography provided

Comments and Discussions

 
GeneralMy vote of 5 PinmemberSimon Jackson30-Apr-13 2:20 
GeneralRe: My vote of 5 PinmemberGatisA30-Apr-13 3:05 
SuggestionRe: My vote of 5 PinmemberSimon Jackson30-Apr-13 22:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.141015.1 | Last Updated 12 May 2013
Article Copyright 2013 by GatisA
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid