LAMP(Linux,Apache,MySQL,PHP/Ruby/Python)堆栈是否适合企业使用?
需要说明的是,"企业"是指一家大型或大型公司,其安全性,稳健性,技能组合可用性,总体拥有成本(TCO),可扩展性和工具可用性是关键考虑因素.换句话说,一家寻求外部采用框架/架构的公司 - 无处不在的东西将被视为在这种环境中比异国情调/深奥的东西更"有效".
我见过Oracle,IBM和Sun在各种企业的LAMP堆栈上实现了系统的用例.我也看到过像yellowpages.com(Ruby on rails)和Facebook(php)等网站建立的例子.但是,这些例子都不是我正在寻找的.
我真的想找到一个例子,它是一家大型银行(即花旗集团),电信公司(即I&AT)和制造商(即Proctor and Gamble)的企业标准.为了清楚起见,我不是在寻找一个在有限意义上使用它的例子(比如摩根大通),但它是CRM,制造系统或人力资源管理等系统以及内部系统的核心平台.和外部网站.
到目前为止,我所看到的感觉是构建在LAMP堆栈上的应用程序执行速度较慢且灵活性较低.我听到的一些论点是:
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.
对于业余爱好者来说,MySQL是一个"尚未准备好黄金时间"的数据库,而不是SQL Server或Oracle的竞争对手(尽管PostgreSQL似乎因其更强大而闻名).
PHP/Ruby on rails针对CRUD(创建,读取,更新和删除操作)进行了优化.虽然这在构建CRUD密集型Web应用程序时是一个优势,但它们的执行速度都比Java/Java EE或C#(这两者都是常见的企业标准)慢.此外,许多应用程序和系统(如制造系统)具有许多非CRUD功能,使用PHP或Ruby甚至Python可能难以构建.
任何人都可以提供论据来支持或反驳LAMP堆栈适合企业的想法吗?
谢谢!
K A
F#中最优雅的冒泡方法是什么?
UPDATE
正如其中一个答案所指出的那样,泡泡排序在函数式语言中并不高效.一个幽默愤世嫉俗的评论者也指出,只有当列表很小并且几乎无论如何都要排序时,泡泡分类才适用.
但是,我很想知道如何在F#中编写一个聪明的冒泡,因为我过去在C#,C++和Java EE中做过泡泡排序,因为我是F#newbie.
我在一家拥有大量SAP投资的公司工作,我们还拥有数十个大型.NET系统(主要是内部用于工程系统)和Java平台(主要用于外部Web应用程序).因此,我们在ABAP,C#和Java EE上拥有大型开发工作室.
简而言之,我们需要一种更好的方法来确定何时应该使用Commercial,Off The Shelf(COTS)软件,何时应该利用我们自己的开发人员.
我想根据最佳实践构建一个决策树来帮助解决这个问题.
在最高级别,杰夫阿特伍德的相关职位总结得很好:最佳代码根本就没有代码
更深一点,我希望看到如下标准:
COTS系统是否可以满足大多数要求?(如果是,COTS系统可能是一个不错的选择:(避免重新发明轮子))
该系统是否旨在满足核心业务职能/创造竞争优势?(如果是这样,定制开发可能是一个不错的选择:见Joel Sposky的:为未发明的这里的综合症辩护)
自定义应用程序与COTS产品的TCO是多少?
是否存在自定义开发无法满足的时间限制?(如果是,COTS系统可能是一个不错的选择)
可以清理吗?
using System;
class AscendingBubbleSort
{
public static void Main()
{
int i = 0,j = 0,t = 0;
int []c=new int[20];
for(i=0;i<20;i++)
{
Console.WriteLine("Enter Value p[{0}]:", i);
c[i]=int.Parse(Console.ReadLine());
}
// Sorting: Bubble Sort
for(i=0;i<20;i++)
{
for(j=i+1;j<20;j++)
{
if(c[i]>c[j])
{
Console.WriteLine("c[{0}]={1}, c[{2}]={3}", i, c[i], j, c[j]);
t=c[i];
c[i]=c[j];
c[j]=t;
}
}
}
Console.WriteLine("bubble sorted array:");
// sorted array output
for(i=0;i<20;i++)
{
Console.WriteLine ("c[{0}]={1}", i, c[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在一家拥有大量SAP投资的公司工作,我们还拥有数十个大型.Net系统(主要是内部用于工程系统)和Java平台(主要用于外部Web应用程序).因此,我们在ABAP,C#和Java EE上拥有大型开发工作室.
我们在哪个域中使用哪个平台都有不错的标准,但是我们对何时使用Web UI以及何时使用桌面UI没有太多的清晰度.
我过去曾经看过一些关于这个主题的优秀研究(比如这个),但我想要一些更有条理的东西
我想根据最佳实践构建一个决策树来帮助解决这个问题.
我过去看到的一些标准包括:
在电子商务类型设置中比较Java EE和.Net性能时,我多年来一直在使用Java Pet Store和.Net Pet Store示例.有没有比这种类型的应用程序更好的方法来比较Java EE和.Net的性能?
更新:
正如一些人在下面指出的那样,实现,框架版本,体系结构和硬件对性能的影响要大于使用.Net与Java.我完全同意这一点.但是,记住这一点,我仍然想知道什么样的一般比较最好.由于宠物店是一个相当成熟和一般的电子商务测试案例,我倾向于认为它对基线非常有用.
我想有一个干净的C#类,可以从Active Directory进行身份验证.
它应该非常简单,它只需要请求凭据并检查它是否与AD期望的匹配.
我负责许多C#应用程序,我希望所有这些应用程序都使用相同的类.
有人可以提供这样一个类的干净代码样本吗?它应该具有良好的错误处理,得到很好的评论,并且特别要求提供凭据而不是尝试读取用户是否已经登录到另一个应用程序的AD.(这是安全要求,因为某些应用程序用于具有共享计算机的区域:具有多个角色和不同权限级别的人员可能使用同一台计算机而忘记在会话之间注销)
.net ×2
architecture ×2
c# ×2
algorithm ×1
arrays ×1
bubble-sort ×1
cots ×1
desktop ×1
enterprise ×1
f# ×1
java ×1
java-ee ×1
lamp ×1
performance ×1
php ×1
ruby ×1
smartclient ×1
sorting ×1