I'm looking for some ideas on a direction to take on a project. I have a software package that I want to develop. When I discussed the software with a potential customer, the first question I got was does it run on a mac? The second question was does it run on an iPad? The third question was how about the web? So, here is where I am looking for ideas. I'm thinking I need to write this as a client server package so the server side handles all the data and validation and the client is "dumb" and only handles the input and output and will be easier to write. I'm looking for suggestions on the data trasnfer mechanism. I'm thinking about using JSON but not sure that is the right direction. I'm also not sure how to do the connection between the client and server because I've not done anything with client / server. Does anyone have any good ideas and maybe knoow of a good website or book that I could use to learn how to write the connection parts?
Your headed in the right direction thinking client/server. In order to give you a realistic answer we really need a little more information about what the application is supposed to do. Not so much specifics about your actual application as much as a "big picture" view of what you are wanting the application to do. (i.e. I am developing an application that will need to run on various platforms and will collect information from office workers about their daily customer interactions.)
Will it be used by the same people on the same systems every day? Will they need to collect data away from the server and then return and upload the data? Does the application need logins and different levels of security? What results do you need or expect the application to produce and how often will the data need to be evaluated?
Once you have the outline of what your applications requirements are then you will be know what your requirements and limitations are.
From what you have said so far it sounds like you should be able to use a web page based interface. By using a web page you remove the restrictions concerning PC vs MAC vs IPad vs Phone etc. The majority of your code would be on the server and the clients would use what ever browser they have to either display data or allow people to add information to the database. If that is the case then either Linux server with PHP and MySQL or Windows Server running IIS and ASP or .Net based applications. The final limitations come from what systems are your clients using in the office where the application will be running (I.e. Do your customers already have an in house server for data/document storage that you would use to host your application or do you need a separate system?
Hope that helps.
The quick and 50K ft overview is the app is it is a complicated "family/people tracking system"...names, addresses, phones, emails, etc. A while back, I wrote a version using VB.NET with SqlCe (non-client/server) but now I need a multi-user database because althought we installed the database on a server for sharing, someone forgot to close the program and had everyone else locked out.
I have no intention of allowing "offline" maintenance.
I would like to do the server side with VB.net because that is what I know. Otherwise, I have a learning curve to get to PHP. I know this will limit me to windows servers but anything else adds another learning curve.
I am hesitant to use a web based interface because it seems like there are always issues with which browser and which version of the browser someone is using. I am also very weak with html and css so another learning curve. I was hoping to start with a VB.NET client since most places have at least some windows PCs.
Security will be controlled within the app. Not everyone will have access to everything in the app.