The internet and IT is an integrated part of our daily life these days. No business or company can survive without a website or an ERP (Enterprise Resource Management) system. The cost of administration and human interaction without an IT solution can easily put the company out of business, being unable to compete with other companies who employ IT solutions ufa.
Here we are going to point at some very important topics regarding website design in PHP, how it should evolve and how to keep ERP connectivity in mind during projects development cycle (important to know for businesses).
2. PHP vs. ASP.NET?
Having worked with both technologies for more than a decade, I must say that both are competitive. Whether we should choose ASP.NET or PHP is debate among engineers. Coders chose the language that they are most familiar with. However, PHP has certain advantages over ASP.NET.
1) PHP runs faster than ASP.NET. (It can even run twice faster if held in cache in compiled state) ASP.NET uses the COM and ActiveX model, making it slower to perform.
2) Many OpenSource solutions available, free of Charge
3) PHP engineers usually come cheaper
4) Already in use in great businesses (Facebook is a good example)
5) Easier to learn/understand (No.NET background required)
6) Many OpenSource CRMs are available in PHP (WordPress being a very good Example)
7) PHP is the only solution when targeting Embedded systems market. PHP uses Apache and Linux To run, and Linux is virtually available for every family of Microprocessor/Microcontroller that exist (x86, ARM, PPC, MIPS, AVR, etc).
However, it comes with some disadvantages as well
1) By nature, it lacks already-made components which facilitates website design (You can find vast number of OpenSource components on the internet, so we can omit this problem)
2) Lacks a dedicated IDE (However, NetBEANS 6.9.+ Supports PHP with code-completion, Free of charge.) Unless you are a big business with your own IT department using.NET for ERP and your systems, PHP would be the better option. If not (already using.NET in your ERP), then ASP.NET is the way to go.
3. What database to use? MySQL, PostgreSQL or Microsoft SQL Server?
This is an important decision to make. Microsoft SQL Server is a professional database solution for most businesses (Large and medium sized). It is extremely simple to write Stored-Procedures and Scripts.
MySQL is very popular as well, but it is not as easy to work with MySQL than it is with MSSQL. MySQL doesn’t support Script writing, has some restrictions regarding Multi-Core query execution and of course, support. However, if you are not intending to make complex database (Which is very possible with MySQL, just not as easy as MSSQL), then MySQL is a wise choice. It runs on Linux, it is free and finding a coder familiar with MySQL is a very easy task.
Microsoft SQL, being more featureful, however cannot run on Linux. This means that if you are targeting MSSQL, either you must run your PHP website on IIS server (A windows server, not linux), and install the SQL Server on the same machine, or you can have two servers, one which runs linux and your website, and the other runs windows server and has MSSQL installed in it. Both ASP.NET and PHP easily connect to Microsoft SQL server and MySQL database.
4. Connectivity with corporates ERP
ERP can be the center of the universe for a big or medium sized business. ERP can be home-made in the company, or can be SAP or other large systems designed by corporations.
If you are not using an ERP, and looking for a full internet/intranet solution, you can skip this part. However, if you are using an ERP (Purchased or designed by your engineers), then keeping ERP in mind during the website design is essential.
First thing to consider is the database of your ERP. You must have the answer to the following questions:
1) Do you have your ERPs documentation?
2) Are table structures and connections known and clear for you?
3) Do you know how your database system works?
4) How are you planning to use your ERPs data on your website?
5) Can your clients modify data on ERPs database via your website?
Most of the time, companies decide to build their website just to be visible on the internet. My experience has taught me that 90% of the time, they go beyond this idea, and soon after, they decide to open a web interface for their clients. This is a huge plus for stable business, as clients can track orders, services or any other business they may having with your company.
It is worthy to say that this vision may later extend to a system known as EDI which stands for Electronic Data Interchange. EDI helps synchronizing data with your clients database without human intervention, in an automated manner. EDI Can be custom made (XML, Plain-text) or standards such as VAN or EDIFACT.
In the end, if your website needs access to your companies internal database, then you must be planning for it right from the beginning, as it may be too difficult to change the code later to support this feature.
5. Database design tips and tactics
Database can be the center of your business. All the information regarding your clients, their orders or products and their feedbacks will reside there. A poorly designed database can take drive to business to complete failure. Common problems you may encounter with a poorly designed database:
1) You may loose important and vital data related to your business
2) Database responsiveness can reduce greatly after it goes under heavy load
3) Mis-calculations (especially in invoicing) can affect clients trust
4) Gathering statistical information can become very difficult
The first step is to make sure that your database is being designed by a professional. It’s best to have only one person for your database. This is because once a team is involved in database design, they may have different ideas regarding a professional and optimized database. This can have an inverse effect and make things more difficult instead of making them easy.
The key to successful database design, is using Foreign Keys, Views, Stored procedures, Functions as much as possible. Never in the code should an INSERT or DELETE or UPDATE be used, as it can affect the quality of the system, and can cause half-completed transactions, reducing data integrity even further.
The sole method of communication between database and PHP or.NET code must be STORED PROCEDURES. It is easier to control the flow of information, and should an error arise, you can easily trace the error in the procedures, rather than the code.
To present data, VIEWs must be used. First of all, this helps reducing design effort, as a view can be used in many different instances, and the team will slowly recognize the view, and use it even further in their modules and classes. Secondly, to change how data is presented, one can simply change the VIEW in the database editor, instead of modifying the code and running a second compile before everything can take effect.
And finally, to optimize the database and make it as fast as possible, INDEXes must be used on all Primary Keys of all tables. Please be advised that every once in a while, you must RE-INDEX your database. Otherwise, your database will become slow in time, cancelling all positive effects of indexing. This is a fact many engineers are not aware of.