Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have to develop a real estate marketing CRM software for my client - where the application is installed on desktop but can also be accessed from web.

2 reasons why they want the application to run from desktop :

  1. So that it can work with/without internet connection
  2. They don't want their complete data to be online

They want to access few of the data like property listing & inquiries (managed from desktop application) from their website through secure login & password.

The data that is entered in desktop application should be automatically synchronized with the website application. I was wondering if there is a way to develop this kind of software using PHP & MySQL. If yes, it will be great if anyone can provide me the referral link.Else please suggest, which language should I use.

share|improve this question
there is nothing to talk about, you can just develop a web application based on the same database.. – Jaiwo99 Nov 23 '12 at 21:06
I've been working on PHP Desktop that embeds IE browser control and php webserver so you can create desktop application using the same php code, but this project is incomplete. I only know of one other solution, but it is a commercial application called Exe Output, allows you to embed IE or Chrome browser and a php server. – Czarek Tomczak Nov 23 '12 at 21:19
4  
The data that is entered in desktop application should be automatically synchronized with the website application. If it's offline then the "automatic synchronization" needs to have some window or times that it can occur, also if it's a 100% offline desktop application, how do you plan to handle the scenario where someone has no internet access ever? Also how do you plan to deal with the merging of changes from web and desktop which conflict during that synchronization? This is a complex problem and it sounds like you need to do a lot more study. Also there's no clear question here. – Jimmy Hoffa Nov 23 '12 at 21:22
@JimmyHoffa if someone has no internet access ever they are effectively not using the same program as everyone else. – Brad Apr 30 at 20:28

4 Answers

There is a way, yes, using something like PHP/Gtk. But I really dont advise that.

Use something like C#, VB.Net, or Delphi to create the desktop app. That is what they are designed for. The results will be far better, and you'll have a lot fewer headaches. Don't try to force the square PHP peg into the round desktop hole. There are even a few solutions that let you create desktop apps in html/js (Adobe Air, for ex), if you really want to resist using one of the more desktop specific solutions.

share|improve this answer
is PHP/GTK even still maintained / binary distributed? Also there is PHP/QT, but AFAIR it's quite unstable. – ZJR Nov 24 '12 at 2:40

A possibility could be to develop the application as a web application and run your web server on your desktop. In this way you do not need a different technology.

share|improve this answer
This was my first thought, also. – Carson63000 Nov 23 '12 at 22:46
Security issues in this setup will have to be considered, though probably this is an intranet and a limited scope application, so I bless the attempt, just take care. If targeting windows you may have also give a look to this obscure MS technology: .hta – ZJR Nov 24 '12 at 1:47

When all you have is a hammer...

In theory, yes. In practice I wouldn't.

There is a PHP-GTK extension that allows you to build GUI applications on top of PHP (though I've never used it).

However, PHP is not intended for building GUI apps and its architecture isn't conducive to such projects. PHP is built to handle short-lived request/response application models and that's what it does best.

You should pick tools appropriate to the job you're doing rather than trying to force a given tool you're familiar with into a role it's not made for. The result will never be anywhere near optimal if you do.

There are plenty of other languages that provide the functionality you need to build a CRM application, java, C#, C++ and a whole slew of other tools. They're also better suited to building GUI applications than PHP is. I'd seriously consider looking at one of those instead.

share|improve this answer

Here are two possible approaches I would take:

  1. You could try Appcelerator Titanium for Desktop development with PHP.

  2. Alternatively, you could install a local web server, develop the application logic, create a web-service and develop the view logic in something like Java to interface with the web-service.

If you take the second approach, I'd recommend you to use REST as the type of web-service.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.