您是否使用 .NET 语言编写消费者桌面应用程序?如果是什么类型?
我的印象是,大多数消费者桌面应用程序仍然是 C、C++ 等的本地编译应用程序。
虽然 .NET 语言越来越受欢迎,但这些新类型的应用程序是否曾经突破企业和 Web 领域成为高街消费应用程序?
例如现在看看你的桌面?有多少应用程序是用 .NET 语言、Firefox 编写的?微软办公软件?雷鸟?iTunes?微软视觉工作室?
我的公司开发高端 CAD/CAE 应用程序,我们利用新技术,但我们的核心开发仍然使用 C++ 完成。
我构建并维护了一个用 .NET 编写的大型桌面应用程序(现在是 1.1、2.0)。该应用程序适用于牙医,它利用 TabletPC SDK 的 MIcrosoft.Ink 命名空间中的 Ink 技术工作。一些牙医使用平板电脑使事情变得更容易,并利用该技术的力量。
另一方面,由于我发现 Windows UI 不好看(XP/Vista)并且发现每个应用程序看起来都相同且不一致,所以我编写了自己的 GDI+ 控件库,同时或多或少地尊重“Windows UI 指南”,我想出了非常漂亮的按钮和其他 UI 元素,使我的应用程序看起来比任何其他“普通”Windows 应用程序“更好”。
我们全屏运行(最大混合,无控件,无应用栏),但我们这样做是因为它是专用于任务的机器中使用的非常特定的应用程序。牙科诊所不会在我们的应用程序中使用 Microsoft Excel 和 ALT-TAB。该应用程序像“ATM”一样工作,触摸触摸,完成。非常简单。它在我所在的欧洲取得了成功。
所以我不得不说,我很高兴该应用程序不是Web 应用程序,因为当我们开始时,用于 Windows 窗体的 .NET GDI+ 比 WEB 所能提供的任何东西都要好得多;即使在今天,Ajax 也无法重现完整的桌面体验(不是应该,而是……)。
那时 Java 有一个丑陋的 UI(现在不知道),所以我们选择了 .NET 并从那时起使用 C#。
桌面应用程序不会很快消亡,有些东西仍然无法在网络浏览器中重现。
在六年前开始使用它之前,我考虑过 Java、C++、Delphi 等。没有一个提供 c#.NET 的简单性和强大功能而几乎没有缺点(比如当时没有人拥有的框架)。现在,每个 Windows 盒子肯定都有 .NET Framework 2.0。
同样,我的消费者应用程序非常具体并且针对封闭市场,但我们没有任何反对.NET 的东西。
如前所述,我知道 Tomboy、Beagle,此外还有 F-Spot。所有这些都是大多数 linux 发行版的一部分。Paint.NET 是另一个应用程序。
也许您看到这一点是因为许多流行的桌面应用程序的代码库早于 2001 年?
编辑:我可能应该说早于 2003 年或 2004 年......我怀疑任何人都会在 .NET 版本的第一年或第二年开始一个主要的桌面应用程序。
Intuit 的 TurboTax 2007 和 2008 都是用 .NET 编写的。与我在对另一个答案的评论中抱怨的利基市场视频编辑工具的演示不同,它实际上完全干净地安装在家里我稍微老化的 XP 盒子上,没有发生任何事故(包括它的自我更新技巧)。
今年的用户界面与往年有很大不同,而且大部分情况都更好。由于向 .NET 的过渡似乎是在去年发生的,根本没有对 UI 进行太多更改,因此不能将新 UI 归咎于(或归功于)向 .NET 的切换。
我只是一个用户,不知道是什么促使他们的开发团队转换。
我确实认为这是我在野外发现的第一个明显基于 .NET 的零售软件包。
真可惜。阻止使用 .net 进行桌面开发的唯一原因是桌面机器上需要 .net 框架,但恕我直言,对于能够在 .net 环境中工作时获得的好处,这是一个很小的代价。
只要您不需要 über 性能,我看不出有任何理由不使用 .NET。使用新的超小型可再发行组件,您可以包含一个占用几百 KB 的 .net 安装程序。
我想说的是,如果您已经拥有精通该语言的开发人员,或者有特定的技术要求使其成为必要,或者客户的机器是被锁定,无法使用 .net 平台。
虽然我还不是工作人员的一员(即我是一名学生),但我可以用 C# 编写所有我能摆脱的东西。我尝试过的其他任何事情都无法接近这种语言所提供的效率和清洁度(并且它提供了 Visuall Studio 的所有生产力功能)。
我注意到在Process Explorer中,越来越多的桌面应用程序以黄色突出显示(意味着它们是 .Net)。如上所述,ATI 的 Catalyst 是 Windows Live Mesh,许多游戏都有 .Net 更新或配置引擎,以及我编写的大部分尚未完全进入公共领域的位(因为我没有尽可能多的时间用于编码和测试)。此外,Visual Studio 的大部分都是 .NET - 至少根据 Process Explorer。
我认为,正如上面提到的那样,已经有很多桌面应用程序具有较旧的代码库,除非这样做有一些奇妙的价值,否则它们的所有者不会转换这些代码库。
Visual Studio(至少 2008 年)是用 .NET 编写的
不是传统的桌面应用程序,而是 ATI Catalyst Control Center 基于 .NET。
实际上,我在我的桌面上发现了一些需要 .Net 的应用程序。
最著名的是 Paint.Net,但其中还有“催化剂控制中心”,它与我的 ATI 显卡一起提供。
当然,我们公司正在编写我们自己的桌面 .Net 应用程序。我们的目标受众是商业用户。
可能不会有很多传统意义上的winforms应用程序正在编写,但是两个windows live messenger的下一个版本都将在windows presnetation基础中编写,我认为这就是趋势。
Windows Media Center 是用 C# 编写的,令人印象深刻,但话虽如此,它也不是您传统的 winforms 应用程序。
TechSmith 的 Jing 是 .NET,实际上是 WPF,所以它是 3.5,最前沿的 .NET。
在我工作的地方,几乎所有在这里编写的客户端程序都使用 .NET;这是一个非常棒的商业应用平台。话虽如此,大多数 .NET 将成为一个很好的目标的程序都被部署为 Web 应用程序。其余的通常是图形和 cpu 密集型应用程序,出于性能原因,它们通常在 c++ 中实现。出于同样的原因,您也不会看到太多用 java 编写的桌面应用程序。
你们中的大多数人指的是开源。我同意,有些项目使用 .NET(例如,我使用的是 RSSBandit),但它们并不重要(大部分情况下)。但是企业应用程序呢?最近我写了一个类似于 MS Surface 的应用程序,它是用于广告目的。在此之前,我必须编写一个应用程序来维护仓库。有些不同?在 WinForms 时代,我编写了一个应用程序来支持类似 ebay 的页面。你还需要吗?
就我个人而言,我认为 .NET 在商业中被广泛使用(你每天都看不到)并且它没有被开源使用(为什么?我不知道,也许贡献者讨厌 MS?)。但是,我也认为它将向 .NET 转变,尤其是在 Windows 平台的下一个版本中。而且,我差点忘记了——安装 .NET 框架不是问题,说真的,用户没那么愚蠢和懒惰!
确实,桌面正在失去对 Web 环境的魔力,但它永远不会消亡;)
Microsoft InfoPath - Microsoft Office 的一部分也是用 .NET 编写的