首页 > 解决方案 > 用 Typescript 替换 ASP.NET 中的 aspx 页面中引用的 MicrosoftAjax.js

问题描述

我的 ASP.NET 应用程序中的 HTML/JS .aspx 页面使用MicrosoftAjax.js文件,例如:

<script src="../../Scripts/MicrosoftAjax.js"></script>

考虑到 MicrosoftAjax.js 非常旧,我想用 TypeScript (.ts) 文件替换 MicrosoftAjax.js 文件并达到相同的目的。由于我对 Typescript 不太熟悉,因此我不太清楚这种变化会有多复杂及其影响。

我可以遵循任何具体步骤来进行此更改吗?

标签: asp.net.netajaxtypescriptajaxcontroltoolkit

解决方案


好了,你可以下载ajaxcontrol工具包源代码。

所有的 JavaScript 例程都包括在内。

因此,您可以尝试修改工具包源代码以使用 TypeScript。

但是,除非您愿意修改该代码,否则请查看代码并使用源代码?

那为什么还要使用 TypeScript。我的意思是,你采用 TypeScript 肯定是有原因的——比如新软件开发?

我的意思是,你为什么关心这么多人在他们的项目中使用的 jQuery 或 jquery.UI 库是否是 TypeScript?

答案:你不会一笑而过——是吗?

除非您打算主动修改该 JavaScript 库并进行更改。

如果您不打算更改该代码,那么我认为有零理由担心该代码是 JavaScript,或者一些 .net “层”被扔在顶部称为 TypeScript 以(希望)使您的 JavaScript 更容易编写。

我的意思是,我正在研究 TypeScript,因为编写 JavaScript 往往很糟糕!!!在这里,我们有了出色的 .net 框架、类、出色而出色的类型检查、强大的数据类型,然后我们必须跳到编写带有所有缺点的 JavaScript,以及编写 js 代码时令人难以置信的痛苦和痛苦。它超越了痛苦——它就是这样。

现在,不要误会我的意思——作为开发人员,我们都必须处理 js 代码。js 让我们有能力编写非常好的交互式和响应式 Web 应用程序。结果如此惊人,以至于我们现在实际上可以提供、编写和构建应用程序,这些应用程序可以提供比桌面软件提供的更好的用户体验(至少在大多数情况下 - 业务应用程序)。所以我喜欢客户端 JavaScript 代码可以为我们做的事情——但是这个巨大的 JavaScript 库混乱——还在增长吗?它现在正在扼杀浏览器的性能 - 并增加加载时间 - 这是我们行业必须处理的一团糟。(而 Blazer 看起来就是那个解决方案)。

所以,我现在有

 AjaxToolKit - tons of JavaScript library routines
 jQuery - a ton more of JavaScript library routines
 jQuery.UI - a ton more of JavaScript library routines
 jQuery.toast - a ton more of JavaScript library routines.
 bootstrap.js - a ton more of JavaScript library routines

等等!!!!(可能还漏掉了十几个!!!!)。

我的意思是,真的什么时候这种疯狂会停止!!!

你希望我采用多少个外部 js 库?

但是,请注意非常小心 - 库例程!!!!

这意味着这是我不维护、修改和关心的代码。 (所以谁在乎那个外部库代码是否是 Typescript ???)

没有什么能阻止您将 TypeScript 用于您的代码,但是谁对上述所有外部库代码例程大加赞赏 - 为什么不直接使用它们呢?

事实上,这就是为什么我迫不及待想要跟上西装外套的原因。Blazer 可能真的很酷,因为我现在可以运行我的 .net 代码客户端。(这太酷了!!!) - 没有更多的 JavaScript 代码!!!!我们的救星来了!!!

但是,在 Blazor 中更有价值的不是您可以编写 .net 代码(现在是 c# - 希望他们有一天会添加 vb.net - 但看起来不会发生这种情况)。

巨大的价值是我现在可以抛弃必须采用大量外部脚本库的训练,现在对服务器端代码和客户端代码都使用一种无​​缝语言。没有更多的 JavaScript,但更重要的是,我可以采用纯粹、干净的 .net 代码——而且该代码将用于两端。这意味着诸如将类对象从服务器端移动到客户端之类的事情——我不必乱用 JSON、序列化或任何东西——它们都是相同的代码,从而将数据类型从服务器移动到客户端side 不仅接近自动,而且是无缝的,并且是相同的语言。它在编译速度浏览器(客户端)端运行。Blazor 有可能摆脱所有这些废话,

这是所有这些库的银河系混乱,并且用大量外部库的大量负载杀死浏览器,这是现在的大混乱。

Blazor 有可能将所有这些毛球扔出窗外。

现在我为什么要提到上述内容?那么,如果你打算考虑修改ajax工具包的源码呢?我会考虑迁移到 Blazor,而不是 TypeScript。

但是,话又说回来,我们仍然没有回答你为什么关心?

我看到零优势来更改 jQuery 库代码,或者在这种情况下,使用 typecript 的 ajax 控制工具包,除非您首先要主动修改该外部库的源代码。

我的意思是,你为什么要大声疾呼说 jQuery,或者 jQuery.UI 是 JavaScript,或者上面的某个层叫做 TypeScript 正在被使用?(也许更好的智能感知???)。

因此,该工具包是开源的。

事实上,我确实修改了 ajax 文件上传器。

我需要两件事:

首先,我希望有时间进行上传(谁遗漏了该功能!!!!)。但话又说回来,这就是 ajax 工具包的美妙之处——它是开源的。所以,现在我的上传器显示时间是这样的:

在此处输入图像描述

还有另一个缺失的功能?好吧,ajaxfile 上传的 3 个事件。我希望能够将值从上传器传递到服务器端事件。所以,我修改了事件,现在我可以传递一个 jason 字符串——这有效地允许我在上传过程中传递一个“类”。

现在,我是否可以决定花费所有额外的时间来让这段代码像 TypeScript 一样工作?哎呀,那将是相当多的混乱和额外的时间。

但是,事实上我已经使用了所有这些外部库(jQuery、jQuery.UI 等等?我看不到这里的需要或目标。

我们都使用大量的外部 js 库。除非我们打算激活 MODIFY 此类代码,否则 TypeScript 对我作为开发人员的价值为零。

在您的代码中采用 TypeScript 并不会阻止您使用和消费这些天您肯定正在使用的大量外部 js 库代码。

那么,回答你的问题?

如果您想下载 ajaxtool 工具包的副本,并添加类型脚本标签,并自行重新编译整个工具包 - 并使用 Type Sciprt?

当然,继续,但我看不到这里的目标,除非你真的愿意下载源代码并且你打算主动修改和弄乱源代码。

如果您只是继续使用所有这些外部库代码,那么我认为在这些外部库中使用 TypeScript 的好处是零 - 只需使用 TypeScript 进行代码开发 - 不是每个人现在都在使用的其他 JavaScript 库代码。

我的意思是,你关心 jQuery 或 bootstrap.js 是 TypeScript 吗?不要这么想。

但是,嘿,ajax 工具包是开源的。您可以直接修改该库代码,但我认为这样做没有任何好处。


推荐阅读