Click here to Skip to main content
15,886,518 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Good morning,
I have the following scenario to develop.

Let's start from the assert I have low experience in web development, I am more focused towards desktop programming, but this could be an advantage, because I have no prejudices towards any solution.

The scenario to model is this. We need to create a web-based application which should be compatible with every mobile os and device (or at least with the most of them).
This app should mainly give to the user the possibility to ckeck the billboards he bought during a match of bingo game.

This bingo game is real, played in a bingo hall, not on the web, but the customers of the hall will be able, through their devices (tablet, smartphones) to connect to a dedicated wireless network in order to enter the billboards they bought in a window and to see during the bingo game match, how many numbers of their billboards had been checked and if they did cinquina (a line, five in a row) or a bingo (the full billboard, 15 numbers).

In order to give a little modeling layout, I imagined that the best solution should be this.
- server role: the server sends to the clients some information about the matches, for example, the range of billboards that could be played, the extracted numbers in realtime, and so on; it gets from each client the range of billboards they bought; it "plays" the billboards, I mean during the balls extraction, it marks the corresponding numbers on the billboards received by clients for that match and it sends this information to the corresponding clients; finally, it signals to the corresponding clients if they scored cinquina or bingo.
- client role: the client is the web-based application which receives from the server the information about the bingo matches, it sends to server the billboards the customer bought, it shows to the customer the extracting balls, the marked numbers in the billboards and the event if the customer won cinquina or bingo.

I thought to give the weight of billboards checking only to server rather than distributing to the clients because in this phase I don't really know how the diversity of devices that work as clients could give delays in the case that the billboards checking should be moved from server to client. The most important requirement is that, in every case, every action should happen in real-time, or at least with minimum delay, not more than 1.5-2 seconds.

Now my question is as simple, as difficult to answer: Which is the best programming language to model this scenario?
I know that there are many programming languages, even if I know that the main languages for this particular situation would be ASP.NET, php, Java (and maybe HTML5).

I include HTML5 in this list because it is very well oriented to cross-platform development and to mobile world, even if it uses (if I understood correctly) javascript in order to do the "dirty job".

I leave this question opened to all your considerations. You should feel free to suggest everything, even changes in my little modeling I talked to you, but the most important question is always the one related to the programming language.
Thanks for your great support.
Nino
Posted

1 solution

Hi Nino,

Just in short, there is no right answer to question „Which is the best programming language to model this scenario“. Some may say Node.js, Ruby, Python ... or any other language, but my recommendation is to stick with the programming language you know best – .NET or Java (as you wrote you are familiar with the desktop apps).

Use HTML5 for client web app plus one of the many JavaScript frameworks for building dynamic web apps. I dn’t know how the Bingo game works, but you should be OK with basic styled tables. Maybe use some Canvas or SVG for advanced graphics, but it all depends on your needs.

Because your web app will need to communicate in real time, I would suggest you to use WebSockets. See the caniuse.com for support in mobile browsers. There is also many JS wrappers, that will try to use other technologies as a fallback if WebSockets are not supported by client browser.
Use existing libraries and don’t try to reinvent the weel!

Also be aware of real environment – your office with small amount of clients on one Wifi access point is not the same as 50 people on one sh@#!y Wifi.

I do not mean to offend you, but from your question it looks that it will be very challenging for you to successfully complete this project.

Hope this helps and good luck.
 
Share this answer
 
Comments
ninodago 27-Feb-15 6:42am    
First of all, thanks Matej for your answer.
I try to take the good things I clearly see in it.
When you say to use HTML5 for client-side app, you say so because the use of HTML5+JS is useless for server-side app?
Moreover, I would like to use something I yet know, it would be cool, but I have to face the more difficult request of the customer, the need to make an app (obviously client-side) which has to be cross-platform compatible. For this I thought to HTML5, even if I don't know it well.
Moreover I would prefer to avoid mixing languages and frameworks. I still use websockets for other projects, but in .NET world, for example WCF, so the idea to make a server side in .NET/WCF and a client side in JS/HTML5 it seems to be a little mess.
Excuse me for this "flow of consciousness", but sometimes brainstorming helps!
Thanks and regards
Nino
Matej Hlatky 28-Feb-15 5:25am    
Hi Nino,
HTML is NOT the programming language (like C# or Java); it is markup language for describing, how the webpage (on client side) should look like.
By making server side in ASP.NET (+ SignalR for instance) and client in HTML with some JS framework (AngularJS for instance) is completely natural approach.

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900