Objective of This Article
In 1990’s, when I was a budding software professional, I had a lot of confusion about which stream or technology, I had to choose to build my career. In those days, I had lot of confusion like whether to choose System software or Application Development, Microsoft or Oracle, Visual Basic or D2K, MS-SQL or Oracle, etc. So for survival, I have learnt both Microsoft and Oracle Technologies. Similarly, now also, I feel budding professionals may have the tendency to get highly impressed by one and may get inclined to that.
Over the last three decades, many technologies played magnificent roles in IT industry during their own period, in their own specific areas. In fact, the technologies do not determine this, the situations do, and hence the business requirements are the decision factors which influence the trends of development, growth and demand of various technologies.
In 2010’s, as part of Seniour Management Team, I expect my team professionals with versatile skillsets, having exposure to most of the current powerful technologies. According to me, the major effective aspect is how fast a professional adapts himself to current demands and emerging technologies. So here, I have taken example of two web popular technologies, and if a professional is competent in one, can easily learn other and adapt to use it. Due to shortage of time, and other limitations I am not able to compare Java Technologies here. I request if any Java Professionals in Expert-Exchange can post their valuable positive comments to help me out here to compare with Java/J2EE etc.
Diversified Web Business Technologies
Operating Systems: Windows 2003/2008, Linux, UNIX, Solaris, Windows CE
Web Languages: Java, VB. Net, C#, C, C++, Perl, PHP, Python, and ColdFusion etc.
Web Servers: Weblogic, MS IIS, IBM Websphere, Apache/Tomcat etc.
RDBMS: Oracle, Microsoft SQL Server, MySQL, DB2, Ingress etc.
Application Domains: SCM, CRM, EAI, e-Commerce, Automation, Financial
Specialized Techniques: SEO, Wireless, Mobile Applications, Business Intelligence etc.
Environments: ASP.Net, Java/JSP/J2EE, PHP, Java Script, XML, XSLT, HTML5 etc.
Background of both Technologies under consideration
ASP.NET: has got evolutionary background with convenience of RAD tool with strength of OOP style.ASP.NET is subset of Microsoft’s Dot NET framework version 1.0 released around 2002. Microsoft.NET is Object Oriented Programming with clear cut code separation into various categories like aspx for GUI, server side for code behind etc.
PHP: has got strong historical back ground, coders familiar with C, C++ may like PHP. PHP in 1995 released as Personal Home Page and later became popular as Hypertext Preprocessor. PHP is originated as server-side scripting language for creating dynamic Web pages.
Common with Both Technologies - ASP.NET and PHP
Both Frameworks well suited for web applications development.
Both script will run on the server and render only HTML output to the browser’s window.
Both need to pay to get hosting space from a hosting provider.
Both parties release fixes for bugs and security issues.
Both technologies have got a lot of fans, forums, news groups, etc.
Both support most of the databases.
Both ASP.NET, PHP servers are secured; But Developers need to make their apps more secure with their coding and additional security measure.
Try to Similarise with Comparison
(Note: Here almost recent stable versions like Microsoft.NET and PHP are considered for reference).
Both cannot be comparable one to one. PHP is a language. ASP.NET is not a programming language.
PHP is server-side, cross platform, HTML scripting language. The syntax of PHP is almost similar to C and Java. The goal of PHP was to allow web developers to write dynamically generated pages quickly
ASP.NET is short name for Active Server Pages for DotNet. ASP.NET is a Subset of Microsoft.NET Framework which uses generally C# or VB.NET etc. ASP.NET generally runs on Internet Information Services IIS which is a component of Windows.
Most of the times, PHP and C# may comparable, where as ASP.NET and PHP are comparable. Some features of ASP.NET can be compared with PHP-Nuke, PHP/PDO, and symfony 2, PHP Library. Some features of ASP.NET MVC can be compared with PHP-Nuke, symfony 2, PHP Library.
(Note: Both support multiple databases using their own way.)
ASP.NET: IIS with Windows Operating System with MSSQL
PHP: Apache on Linux with mySQL
IDE - Integrated Development Environment
ASP.NET: Visual Studio.NET is exhaustive IDE, allows interactive debugging and tracing.
PHP: No such native IDE. Third party IDEs are available such Zend Studio.
Some PHP supporting IDEs require some additional add-ons to work similar to Visual Studio.NET. No inbuilt exhaustive debugging facilities. PHP5 with Eclipse is a good Match.
Cross Platform -Operating System
PHP: Cross flat form
PHP code written on Linux/Apache will work on Windows or any OS/Web Server. PHP code can be hosted on many web servers, on multiple operating systems.
The analogous feature in .NET is DotNet Mono which is in budding stage. Dot.NET is yet to be well-established as 100% cross-platform.
Easy to learn for whom
ASP.NET: Easy for the one who knows OOPs concept with web page fundamentals. It will be easy for event driven programmers. But It offers language flexibility to choose between C#, VB.NET etc.
PHP: Easy for those, who are familiar with C, C++, or some scripting languages.
Compilation - Interpretation
ASP.NET is compiled.
PHP is interpreted (line by line compilation and execution.
ASP.NET: Microsoft’s team supports.
PHP: PHP community support.
Cookie with Session State
ASP.NET - Supports both Cookie-based and cookie less session state with a small configuration change.
PHP: Cookie-based session state and does not supports cookie less.
ASP.NET - Built-in complete OOPs support...
PHP - recently become OOPs.
Control Reusability - User Controls
ASP.NET: Explicit user controls with extension .ascx files are available.
PHP: Till know the User Control such as ascx in PHP is not in use.
May be achieved by encapsulating using include ().
ORM Object Role Modeling
ADO.NET- Entity Framework
Microsoft ASP.NET MVC
ASP.NET: Built-in Ajax Support
PHP: Requires add-ons.
ASP.NET- is not yet established 100% track record of open source, but may be going to be.
PHP -Established proven track record of Free, Open source.
Content Management Systems
ASP.NET: DotNetNuke, SharePoint, N2CMS
PHP: Typo3, Joomla, Magento
Deployment - Multiple methods
ASP.NET: FTP, Publish, XCopy, MSI
PHP: FTP or copy to destination
Multiple language support
ASP.NET: Choice of multiple languages like VB.Net, C#, J#, C++ etc.
PHP: Single language.
Clear-cut Code Separation
ASP.NET: Clear cut separation of design and logic using of code-behind pages, aspx and user-controls.
PHP: No such clear-cut separation.
ASP.NET: C# string concatenation is done with plus sign (+).
PHP- string concatenation is done with period (.).
ASP.NET: Page_Load -Page.IsPostBack)
Display simple output
ASP.NET: Response.Write or aspx page use <%="output string"%>
Referencing methods or properties of class
In C# period symbol "." instead is used and in PHP “->" symbol is used.
PHP: $member = $vehicleClass-> member;
$ vehicleClass ->doMethod();
ASP.NET:string var = objVehicleClass.var;
PHP: Many keywords such as if, else, while, echo are NOT case sensitive.
Similarly classes, functions, and user-defined functions are NOT case-sensitive.
Example:. ECHO ,echo, EcHo all are the same.
ASP.NET: Dotnet’s C# is mostly case sensitive.
PHP : include 'filename'; or require 'filename';
ASP.NET :Using or Imports
This comparison or similarities list will be always incomplete, since this is limited to only few points with only two technologies. But all experts, if they wish they can post their valuable positive comments, to aid up and expand this to multiple technologies with more view points...