We have an enterprise application written in asp.net c# (3.5) and SQL server that we want to bundle and release for customers.
However, several have expressed concerns that it requires a Microsoft server due to the costs. Yes, I know… Therefore, we are considering porting it to a LAMP stack, with the ‘P’ referring to php.
What challenges can we expect to face developing on a LAMP stack coming from a Visual Studio asp.net environment?
The issues I am sure of are:
- Debugging: Visual Studio is awesome for both client and server side debugging.
- Framework: The code behind model works great, and the MVC framework is nice.
- Maintenance: We would like the feature set to be common on both platforms.
- Database layer: Code is loosely coupled to the mssql data types.
If you’ve been through this exciting process, I’d love to know what it was like with some recommendations/tips.
As a side to this, is there any way for us to run this code as is? Mono? Others?
I have more experience with .NET than the *AMP stacks, but based on my experience with XAMPP, I would offer the following observations
Debugging: Visual Studio is awesome for both client and server side debugging.
Eclipse PDT works great for design, development, and debugging. I’ve heard good things about Zend Studio but haven’t worked with it.
Framework: The code behind model works great, and the MVC framework is nice.
There are frameworks to allow you to separate presentation from logic (e.g. Smarty ) and at least one MVC framework is available (e.g. CakePHP)
Maintenance: We would like the feature set to be common on both platforms.
If you exclude Windows specific functionality (Windows Integrated Security, etc) there shouldn’t be much you can’t do in both stacks, but if you have to reproduce controls like the gridview it will be labor intensive.
Database layer: Code is loosely coupled to the mssql data types.
I am not aware of any data types that cannot be mapped between mysql and sql server and there is good documentation for handling migrations
Mono might decrease the amount of time required to port your solution, but I am unaware of any way you could re-use all of your code ‘as is’.