最近,微软不断推出Linq,WF,WPF等新技术......在我看来,它们就像技术创新一样,完全改变了应用程序的设计和编码方式。
然而,它们基于相同的底层框架(2.0)如果我看一下Java,有很多库提供关键功能(例如Hibernate,Spring),但它们仍被认为仍然只是库。
所以我的问题是,人们是否认为这些技术真正改变了我们编写Windows代码的方式?是否值得学习Microsoft在Visual Studio版本中推出的每种开发方法。
或者这只是炒作。作为图书馆,它们很重要,但对于完成工作并不重要。他们是否会产生巨大的影响力并且我会学到它,它会对我作为开发人员的未来产生重大影响吗?
编辑:对于一些实施的语言未来也是如此。有些正在改变我们编程的方式(泛型)其他,更不重要(部分类)这使得学习泛型成为学习.NET的关键部分,不像学习使用部分类
答案 0 :(得分:2)
对我而言,技术创新改变了用户对计算机的感知和交互方式。谷歌搜索和基于手机的应用程序就是每个人都体验到的很好的例子。在最新的Microsoft技术堆栈中,我认为只有WPF才具有创新性。它实际上允许开发人员创建新的令人惊叹的UI,这些UI之前太昂贵或无法构建。然后,这会改变用户与我们软件的接口方式。所有其他的只是一堆工具(库),供开发人员放入他的工具包中,以便在需要时将其拉出。如果没有它们,你当然可以编写出色的应用程序。
我实际上开始发现新的MS开发“改进”的不断涌现开始使更糟糕的开发人员。现在,而不是有时间专注于学习业务,创建出色的界面,与用户交谈,测试和设计可维护的应用程序;我们几乎没有时间跟上流行语和新图书馆。
别误会我的意思。 Linq非常棒(特别是在xml上),但它不允许我在使用ADO.net(或之前的ADO或DAO或OLEDB)之前完成任何我无法做到的事情。
答案 1 :(得分:1)
鉴于一些新技术我认为选择“获胜”技术而不是学习新东西要困难得多(因为很久以前就已经发明了所有东西:))例如我在WF中非常有趣 - 我认为这项技术是软件开发的一个非常大的转变,但当我深入研究它时,我发现我应该等到vNext利用广告奖金。 LINQ / WPF等其他技术确实提高了我的工作效率。开发人员在选择技术时应该谨慎。我教自己不要跳到每个穿越街道的行列,但是学习一些新的“解决所有问题”技术仍然很诱人:)
答案 2 :(得分:0)
新的图书馆和技术一直在出现。以GUI开发为例,您可以通过几种方式开发GUI应用程序。有些跨平台有些没有。一些不是“设计师友好”的一些。这些事情不断变化,我认为,至少在一段时间内,它们将继续转变。您可以随意调用这些不同的方法,但这实际上就是市场营销。它是API吗?一种新方法?有关系吗?在某些情况下,对于某些人来说,这是一种不同的方式。
最终,这些API或方法或您想要称之为的任何东西都只是工具。你学习了一种新工具并将它应用到你的工艺中,当一个更好的工具变得可用时,你学会使用 it 或者让你的技能消失。那么新工具会改变我们编写代码的方式吗?当然。但他们改变了我们的手艺吗?绝对不是。
答案 3 :(得分:0)
它针对哪个版本的CLR有用吗? PC上的每一个软件都以x86架构为目标,这是否意味着它采用了相同的技术?
此外,它们是图书馆还是技术是否重要?它有所作为吗?
在任何情况下,您提到的产品彼此之间没有多大关系(除了由Microsoft制作)。
LINQ是一种语言功能,它内置于C#或VB(或其他.NET语言)编译器中,并且语言语法已经扩展以适应LINQ。这意味着它当然不仅仅是一个图书馆。
另一方面,WPF不是该语言的一部分。您可以将其称为库,框架或您喜欢的任何其他术语。这些都改变了你编程的方式吗?也许。 LINQ肯定提供了以前没有的东西,对我来说,至少,它彻底改变了我编写C#的方式。它也让我的工作效率提高了很多。
WPF有点微妙,因为当然已经存在大量的GUI库。但WPF仍然提供了很多便利,并且能够比我所知道的任何其他Windows兼容库更容易地做一些非常好看的图形内容。让你在2d GUI应用程序中使用GPU着色器在WPF之前并不容易完成,所以至少对于某些事情来说,WPF有可能改变你编程的方式。
是的,Spring for Java也是如此。