Поделиться через


Smallest Dotenet网站更新-现在支持.NET4并添加了JavaScript API

[原文发表地址]SmallestDotNet Update - Now with .NET 4 support and an includable JavaScript API

[原文发表时间] 2010-02-08 09:44 PM

前些年,我在.Net Framework网站上发了个帖子。上面有很多容易引起混淆的地方。如果你搜索关键字".NET Framework"或者".NET Framework Redistributable",通常你会看到一个可以下载的链接,下载文件大小是200MB左右。而下载的文件是一个完整的离线安装包,当需要安装.NET Framework时,程序员可以直接分发安装到任何类型的电脑上而不需要连接网络。

.NET 3.5的Client Profile 安装文件大概是28MB,而实际上NET 4 Client Profile则比它看起来更小。为了帮助大家避免这些混淆,我建立了SmallestDotNet.com 这个网站。它会探测你的浏览器的UserAgent,并告诉你已经安装了哪个版本的.NET,如果想要安装.NET 3.5需要多大的下载量,以及哪一种可再发行的.NET版本最适合你以便达到最小的下载量。

现在.NET 4很快就要发布了,在Tatham Oddie(他这周呆在家里)的帮助下,我花了一个小时的时间更新了网站以便支持新版本的.NET。我们同时对一些bug进行了修复(我保证只有很少的几个bug),并且提供了一个JavascriptAPI以帮助大家检测客户端的.NET Framework的版本。

你可以通过三种方式使用此网站。

第一种方式, 直接访问网站。

如果你有一台电脑需要安装.NET或者你不确定安装了哪个版本的.NET,直接访问SmallestDotNet.com 我会尽全力告诉你。 它在IE下使用最好,不过在Firefox下亦能使用(在安装了相应的.NET插件的情况下)。如果你的浏览器是Safari或者Chrome,很抱歉我不能帮助到你,因为无法从这些浏览器上获取关于.NET的任何信息。

第二种方式,直接包含可输出HTML代码的Javascript代码。

如果你想以最便捷的方式告诉用户安装的.NET的版本,并且你想在你的网站上实现这个功能,比如通过你的博客,你直接把下面这行代码包含到页面中即可:

<script type="text/javascript" src="https://www.smallestdotnet.com/smallestdotnet/javascript.ashx"></script>

然后我会以下面的方式返回:

document.write('<span class="smallerdotnet">')
document.write('Detected 3.5 SP1 .NET Framework. No update needed.')
document.write('</span>')

然后你可以根据返回结果自己尝试使用。

第三种方式,包含可以输出JSON格式的Javascript代码。

HTML 直接输出速度比较快,但是当你想要进行更多的输出控制时就不是很方便,比如你想自己控制um或者显示的文本。如果这样,你可以包含下面的代码:

<script type="text/javascript" src="https://www.smallestdotnet.com/smallestdotnet/javascriptdom.ashx"></script>

然后我会返回一个JSON格式的对象如下面所示:

SmallestDotNet = {};
SmallestDotNet.latestVersion = {
major: 4,
minor: 0,
profile: "client",
servicePack: null
};SmallestDotNet.allVersions =
[
{
major: 4,
minor: 0,
profile: "client",
servicePack: null
},
{
major: 3,
minor: 5,
profile: "full",
servicePack: 1
},
{
major: 2,
minor: 0,
profile: "full",
servicePack: null
}
];

在合适的情况下,我们会输出相应电脑上最新版本的.NET Framework,以及它的SP和Profile(客户端的Profile,完整版等等)。它同时会返回一个在电脑上找到的已安装的所有版本的.Net Framework的数组。比如在我电脑上测试,它告诉我的电脑已经安装.NET 4 Client Profile,.NET 3.5 SP1以及.NET 2.0。

更新提示: 我已经更新了JSON格式的输出,在返回对象中包含了另一个数组,这个数组包含了所有.NET Framework版本以及下载地址的完整列表,格式如下:

SmallestDotNet.downloadableVersions =
[{
major: 4,
minor: 0,
profile: 'client',
servicePack: null,
url: 'https://www.microsoft.com/...'
},...SNIP...
{
major: 2,
minor: 0,
profile: 'full',
servicePack: 2,
url: 'https://www.microsoft.com/...'
},{
major: 1,
minor: 1,
profile: 'full',
servicePack: 1,
url: 'https://www.microsoft.com/...'
}];

我现在并没有添加细节信息,比如.NET 2,0 SP2等等,如果你需要更多的功能,请告诉我,我可以添加。它已经运行两年了,如果它对你有帮助,请告诉我。如果它有一些不足的地方,也请告诉我。

关于JSON对象,你可以询问各种类型的问题。这里有一个可以在此JSON对象上运行的 JavaScript alert() 例子。当然,在使用的时候,你应该检查这些对象是否为空以及检查所有版本数组的长度是否正确.

alert( SmallestDotNet.latestVersion.major );
alert( SmallestDotNet.allVersions.length );
alert( SmallestDotNet.allVersions[0].minor );
alert( SmallestDotNet.allVersions[1].major );");

如果能添加一些jQuery代码去告诉终端用户一些关于你的程序需要哪个版本运行以及他们需要先安装哪个版本的友好的提示就会达到更好的效果。在你的程序的问题解决中,它也会带来很大的帮助。
希望它能够给你带来帮助。希望你能够喜欢。