views:

202

answers:

4

Hi all,

It seems like there are an inordinate number of really intelligent people here, so I thought it was the best place to ask a couple involved questions (shameless flattery). Your feedback on any item would be so appreciated.

I am about to develop a very large web based operations, inventory, sales management system. I had intended on C#/MsSql/Reporting, but am now leaning towards Php/MySql.

  1. Multiple facility support. I would love to have it all run from a single place, but I need for each facility to be able to run autonomously from each other in case of internet connectivity loss. Servers could reside in each facility and replicate to a central one. MS Replication will hang the DB for large databases. MS recommendation to restructure the database into smaller segments…thanks. MySql seems to have very solid replicability features. Thoughts on this issue?
  2. Distribution: Eventually this could be marketable to other companies in the industry. Using the method above I would have to distribute the system to my server in the customer’s facility. With C# I can distribute compiled code. With PHP any intellectual property is vulnerable.
  3. Reporting. Will I be able to print labels and really specifically configured reports with PHP? Pdf export is a must. MsSql has the reporting service, but it has issues with PDF font embedment, the flexibility is very time consuming and I am thinking that building it all by hand might be faster. MS print control also seems problematic.
  4. Cost. Load would probably not ever exceed 100 simultaneous hits. Full Ms server licensing is cost prohibitive. Would sql express support this load? MySql cost structure is very appealing.

Thanks in advance for your insight. Sorry for the book.

+3  A: 

As with most software, the biggest cost factor is almost certain to be developer time.

That in mind, you should go with whatever your team can get up and running in the fastest. Both of the stacks you are suggesting can get the job done.

(although I'm sure someone will be along in a minute to slate PHP and suggest you use C#/the MS Stack)

To answer the other points from a PHP perspective, which is what I know best:

  1. Replication in mysql will do what you want, but make sure you set up something to let you know if there are problems.

  2. You can use Zend_Guard to compile PHP, it costs though. PHP 5.3 is due for release soon and includes Phar archives - a shameless copy of java's jar archives so that you can distribute an app as a single file.

  3. PHP can do PDF via fPDF. Never used the MS options, so not sure how it compares here.

  4. I think sql server express could do that load, and mysql could too.

benlumley
My team, like the economy, is fading so its just me. I write equally in both these languages. MS is my comfort zone, and I am a little afraid I'll find out that PHP/mysql won't live up to my standards when I really start to demand a lot from the app. PHP has better scalability for the $ I think.
Praesagus
+2  A: 
  • Adding point 2 with point 4 if you're intending to sell, you should think that, although in your company it won't exceed 100 simultaneous hits, in the companies your going to sell to it can exceed 10000 hits. So you should think about scalability now

  • As it is an application with massive size for what you say, you should expect in the future to have someone wanting to communicate with it, excluding php, for jsp or c# so you can make web services if needed.

  • PHP won't also allow so much distribution as C# or JSP.

  • 3 - Reporting You can do that with any of those languages.

I think in the end is pretty much up to what you know to handle better. I would go for a language i already know instead of hitting a new one. That way you'll minimize deployment time, which is probably very important also.

For database i think you can get mysql or posgresql as they are both free, and will lower your costs.

Hope it helps :)

fmsf
You are right scalability is a huge concern of mine. If its for sale, it had better be able to handle any volume thrown at it. Thanks for the input
Praesagus
+1  A: 

It sounds like you prefer C# and MySQL. MySQL has several articles on using .NET with MySQL and the Connector/NET driver.

Unfortunately, I know very little about reporting with MySQL.

R. Bemrose
Why vote this down? Sounds like a good answer to me, PHP/MySql, C#/MsSql aren't joined at the hip.
jfar
Someone has a vendetta against me and downvoted a bunch of my answers.
R. Bemrose
I actuall prefer MSSQL. If I am using mysql I might as well build in php.
Praesagus
+2  A: 

"I am about to develop a very large web based operations, inventory, sales management system." - this is a very ambitious undertaking. Are you doing this for fun, education, or profit? Do you intend to sell or open source this?

You realize, of course, that there are a lot of alternatives already in the marketplace. What advantage will yours have over the others?

Sounds like a classic buy versus build choice. Have you considered the buy before building?

duffymo
That is a good suggestion - one that I think a lot of us developers miss because we like to build things. :) I will have to do research on this, but I think the application is specific enough that even one off the shelf would force me to use the api to the point it would not be worth it.
Praesagus
I like to build things as well, so I know where you're coming from. The point is remember is that when you compare costs you have to include maintenance and development costs. Nobody in their right mind would write an accounting system from scratch. Make sure you're not falling into that trap.
duffymo