我对“Hello World”30年的爱恨情仇(7)

<UserControl x:Class="SilverlightApplication1.MainPage"> <Grid x:Name="LayoutRoot" Background="White"> <TextBlock x:Name="Greeting"></TextBlock> </Grid> </UserControl>

  -

public partial class MainPage : UserControl { public MainPage () { InitializeComponent (); Loaded += MainPage_Loaded; } void MainPage_Loaded (object sender, RoutedEventArgs e) { Greeting.Text = "Hello, World."; } }

  当然,Silverlight 就像一只坏股票一样一路绿了下去。但它仍然是一种非常有用和可行的技术,但一旦人们意识到 Microsoft 并没有放太多筹码在这只股票上,那时它就只能死掉——和它在当时是否是正确的工具无关,一切根源在于一种它已经过时的感觉。HTML5 用“write once, run everywhere”的口号很好地营销了自己,并且数以百计的企业在他们意识到自己的错误之前,就贸贸然地一头扎了进来(它其实应该是“一次编写,到处被困,然后为每个目标设备再写一次”)。

  不过,Silverlight 还是有让我们喜欢的部分的,就在 Windows 8.1 中的 XAML 和C#堆栈。下面是“Hello, World”的一个版本,使用模型 – 视图 – 视图模型(MVVM)模式。

  2011 年 – WinRT / C#

public class ViewModel { public string Greeting { get { return "Hello, World"; } } } <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid.DataContext> <local:ViewModel/> </Grid.DataContext> <TextBlock Text="{Binding Greeting}"/> </Grid>

  虽然 Windows 8.1 让我有空闲投入到我的写作和业余项目,但对于大多数公司而言,仍然有一些新的东西在里面,因此他们希望一个基于 web 的解决方案。那意味着 HTML 和 JavaScript,所以那是我花了我大部分时间携手工作的语言。是的,一旦我以为我可以抽身离去,它们又将我拉了回来。在我认真思考了我为什么讨厌使用 HTML 和 JavaScript 来 web 开发的原因之后,我决定去找一个更好的办法。我们的团队聚在一起,寻找潜在的方法,终于发现一个很酷的解决方案。最近,一种新的语言被发布了,它就是 TypeScript,这是 JavaScript 的一个超集。它没有试图改变语法,任何有效的 JavaScript 也是有效的 TypeScript。更进一步的,这语言还提供了一些开发时功能,例如可帮助塑造 API 调用和提供丰富内容的接口(而没有出现在生成的代码中),同时还有很多构造例如有继承性的类,强类型变量以及静态修饰符所有这些编译成完全有效的,跨浏览器的 JavaScript。

  使用 TypeScript 是一个非常容易��的决定。即使是处于测试阶段,100% 它的产品都适用于 JavaScript,所以如果我们发现它不能很好地工作,那么我们只要放到 JavaScript 开发即可。事实证明,这令人难以置信地有用——即使是团队中的 JavaScript 纯粹主义者和那些憎恨任何试图“修改语言”的人,也赞同 TypeScript 给了我们额外的控制力和重构能力,并且 TypeScript 支持并行开发,能够提升我们发布基于 web 的高质量代码的能力。

  2012 年 - TypeScript

class Greeter { public static greeting: string = "Hello, World"; public setGreeting (element: HTMLElement): void { element.innerText = Greeter.greeting; } } var greeter: Greeter = new Greeter (); var div: HTMLElement = document.createElement ("div"); greeter.setGreeting (div); document.body.appendChild (div);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fd791be3316fb1117261d7b0c883b975.html