作者 |
海归网开设招聘国内全职网站开发技术人员,请大家推荐或自荐! |
|
所跟贴 |
海归网开设招聘国内全职网站开发技术人员,请大家推荐或自荐! -- 狼协 - (1300 Byte) 2004-8-25 周三, 23:53 (3998 reads) |
mmpower [博客] [个人文集]
头衔: 海归少将 声望: 专家 性别: 加入时间: 2004/02/24 文章: 3697 来自: 3333 海归分: 244825
|
|
作者:mmpower 在 海归商务 发贴, 来自【海归网】 http://www.haiguinet.com
(1) wan yan is probably right that php is scalable. But we can say almost every current popular web development is scalable, since the most important deciding factor is the application architecture -- When we talk about scalable PHP, we're talking about an combintion of Apache/PHP or IIS/FastCGI/PHP and a lot of other tools. Neither Java, ASP.NET nor PHP forces you to build your application a particular way. If you build something that won't scale, blame it on the design not the language.
This also leads to Hoobastank's point: The technical platform selection first is determined by what kinds of resources/expertise the developemnt team have.
(2) from a pure technical view on the technologies:
-- Language by itself: PHP is a scripting language, like VB script used in ASP. whileas Jsp and asp.net is pre-compiled when serving the request. Java and ASP.NET(whether C# , VB.net or J#) are full-fledged object-oriented language; until version 5 PHP is still not. tradional ASP uses VB/VBscript, which sucks.
-- Enterprise level Services: J2EE and .NET and the traditional ASP (with microsoft DNA architecture built around COM/DCOM and MTS/COM+) provides enterprise level services such as component services, security, transaction management, object pooling, O/R amapping, clustering etc so that the application developer can focus on the application logic, and they are proven technologies in large-scale applications of various industries. PHP is weak at this area: You probably need to build the frameworks by yourself in a large scale/complex distributed system.
-- About Software Design: Java/C# etc are good OOP languages and suitable of applying OO design patterns. Among the two, Java community is more design-sensitive, with J2EE spec requesting developers having design patterns in mind when deisgning applications. Microsoft's development tools, especially ASP.NET emphersise on the usability and simplicity for the developer and don't require advanced design knowledge. There are pros and cons of both approaches. J2EE's approach makes it difficult for beginners, also the lacking of good IDE support (hopefully new IDEs with good JSF support will catch up) makes even very simple application development a complicated process. ASP.NET approach makes it easy for simple apps and beginners, but has more retrictions when you want to go more advanced steps.
There are lots of open source frameworks in J2EE to improve productivity and enforce design patterns, such as MVC frameworks like struts, webwork or web-event handler framework such as echo. ASP.NET basically is a page-level MVC framework. The use of framework can enforce the design pattern but on the other hand the developer is restricted by the framework's own limitations.
AOP (Aspect-oriented programming) is one of the most hyped software methdologies. There are lots of projects provides AOP in Java now, either through a language enhancement (aspectJ) or through framwork(Spring, AspectWerkz, JBossAop etc). MS .Net currently does not have any of this, but probably will eventaully have similar features.
-- tradional COM based ASP (asp 3.0) is currently widely used, but there are lots of issues with the technology and that's why MS is discarding it and come up with .net.
-- Lots of J2EE features are now being added into .NET-- for example in the up-coming asp.net 2.0, things like JDO or Hibernate type of O/R mapping is being added; The new "MS build" concept is stolen from the Apache Ant project; And because of the similarity between Java and C# languages, actually there are lots of open source Java frameworks are being ported to .NET: ant, junit, hibernate ...; It's similar vice versa: The Sun JSF specification is about the same concept as the ASP.NET web forms.
-- When it comes to a web application, it is much faster to prototype it in PHP than in Java without WYSIWYG IDE support.
-- About backend Database systems: Although APache+PHP+MySQL is popular in building web apps, MySQL is not yet matured for complex systems, since up till now it still lacks some important features in a RDBMS: subselects, stored procedures, triggers, views, foreign key referential integrity etc. It just recently added transaction support with the help of innoDB
engine. All major commercial DBMS beat it in terms of features and performace under heavy multiple users, complex queries, and read/write query load. MySQL is faster for simple SELECT queries. If going for Open source DBMS, then Postgres SQL is a better choice both in features and licenses(truly open source ).
(3) vendor lockup etc.
PHP and J2EE does not have the vendor lockup problem.
At this moment ASP.NET do have the this issue. simply look at what MS did for Office users.
However, in the long run, .NET platform may not be a big problem for platform lockup. With (hopefully) the rise of open souce .NET implementations like MONO, we may not rely on MS for the .NET technology. but that's not ture at this moment and quite possibly will never happen.
(4)Integration with other systems/platform:
tradional MOM middleware is well supported in java and MS technologies. they also support web services well. PHP also has some existing library supporting XML web services. PHP also supports calling other languages such as java.
The above is trying to provide a technical overview without considering other factors. As mentioned by hootasbank and WanYan, The application requirement scope, the available resources, and the project schedule should determine the platform and the system architecure.
作者:mmpower 在 海归商务 发贴, 来自【海归网】 http://www.haiguinet.com
|
|
|
返回顶端 |
|
|
|
|
|
|
您不能在本论坛发表新主题, 不能回复主题, 不能编辑自己的文章, 不能删除自己的文章, 不能发表投票, 您 不可以 发表活动帖子在本论坛, 不能添加附件不能下载文件, |
|
|