Bob*_*toe 27
这很可能导致火焰战,但我认为C#是一个非常好的语言,可以从Web开发开始.
它是一个功能齐全的面向对象语言,是静态类型和编译的.它有很好的文档记录,并且拥有庞大的开发人员社区.
如果您必须在Linux/Apache上运行并且不想使用Mono,那么这将是不使用C#的原因.除此之外,我认为没有令人信服的理由,尤其是ASP.NET MVC,它可以让你摆脱WebForms模型.
这并不是说WebForms必然是坏的,但有些人可能会反对WebForms,因为它引入了其他Web开发平台不固有的抽象.
Pau*_*ell 21
如果您使用C#进行Web开发,根据您使用Web技术的经验,我衷心建议您在ASP.NET Web Forms之前使用ASP.NET MVC.
ASP.NET Web Forms是构建ASP.NET应用程序的原始样式,并试图抽象出许多细节.它允许您构建应用程序,而无需了解引擎盖下发生的事情(发布数据,状态管理).在我看来,当你进入更复杂的场景时(这些教程证明),这些抽象虽然一开始很容易开始"泄漏" .
另一方面,ASP.NET MVC可以更轻松地构建"更接近金属"的网站,同时仍然保持高效.如果您想要对结果HTML进行绝对控制并且不怕cookie,表单标签,发布和查询字符串数据等内容,那么您可能会更喜欢ASP.NET MVC.
当然知道两者都是有益的.但是,如果我现在开始,我可能会开始使用MVC并转移到Forms(然后意识到它有多糟糕并且退回:)).
e-s*_*tis 20
没有"最好的语言".您使用一个工具来实现它的目的,这就是为什么有几个工具.
既然你的问题是"为什么不学习C#",我会说:
现在,我用Php,Python,Java和C#编程.Python是我选择的语言,但c#真的是第一个引诱我的MS编程工具:它干净而高效.真的,这是关于你想做什么,而不是宗教问题.
做出你的选择.
这就是说,C#糟透了,Python也很糟糕.
我同意C#是一种非常完整的语言,它的语法清晰且可扩展.已经有大量的网络资源可用,但它很大,但它有效地将您与Windows作为您的平台联系在一起.对于网络而言,这是一个重要的考虑因素.在桌面上窗口是王道,但对于网络服务器来说市场并不是那么占主导地位.
另一个问题是,如果您在网络上查看富媒体,则必须考虑使用Flash和/或Silverlight.如果你去C#那么你就可以在不学习其他语言的情况下使用Silverlight了.
学习C#的缺点在于它将您与专有平台和软件堆栈联系在一起.现在,有Mono,它可以很好地实现C#和.Net的大部分功能,但主要的和最完整的实现是微软的非免费的.
我没有充分利用C#来讨论它对Ruby或Python的技术优点.然而,我可以说,除了自由软件提供的其他好处(在其他地方详细讨论)之外,学习使用甚至回馈自由软件可能非常有教育意义.