唯一考虑Python的原因是因为我熟悉它,并且这样做风险较小。
个人想尝试使用C#,因为这将是学习它的好机会。应用程序并不太复杂,所以学习它的额外负担不会太大… 我想。
对于这种类型的程序,C#是否存在任何问题需要我关注?用户运行Windows XP…用户没有安装.NET是否是一个重要问题?
提前感谢您的回答。
编辑: 我想强调一下,最终用户应该能够在不安装其他库/框架的情况下运行应用程序。
http://openpyxl.readthedocs.io/en/default/usage.html
从我的理解来看,它直接访问文件,不像c#中的Interop技术。因此,无论在哪里运行,都不需要安装Excel。如果您想在服务器上获取某些内容,可能会出现获取经过许可的Excel副本或确保其存在的问题,如果用户在本地运行,则可能会出现此类问题。通常我会说,用你所知道的。
然而,在这里使用解释性语言可能会遇到一些性能问题。我个人会使用C#。如果你想学习它,现在是一个很好的时机。
然而,如果你自己的成本/收益分析显示你最好使用python,那就用它吧。
在Windows上,C#需要.NET,但你可以使用.NET客户端框架使安装变得非常简单。
答案可能更多地与情况有关,而不是哪种语言更适合手头的任务。
如果你没有C#的经验,现在跳进去边学边做可能不是一个好主意。语法差异很容易学习,精通则需要了解其细节和如何利用语言的优势来完成工作。
如果你有足够的时间,并且重头开始不是问题,或者你有使用范式非常类似于C#(比如Java或C++)的语言的经验,那么你可能能够承担风险,并且很快适应新语言。
如果你不关心效率(例如,这是一个个人项目,你不太关心工作或效率根本不重要),尝试使用C#学习一些新东西(总是一件好事),或者坚持使用Python以确保你不必过多调整思维(总是源于漏洞和误解的来源)。
如果您一定要使用 C#,应该在“空闲时间”里(不一定是在家,最好是在工作时没有其他事情做的时候)玩弄它,从而建立一个你可以在实际项目中使用的技能集。这样,您就已经熟悉了该范例(宽泛使用此术语),并且在关键时遇到的问题会更少。
如果用户需要安装C#客户端,则没有安装.NET将是一个问题。您可以打包安装程序,使其下载.NET运行时,但根据您使用的功能,它可能是一个相当大的下载。
如果您的应用程序是基于Web的,则所有C#代码都在服务器上运行,并仅向浏览器提供HTML,因此是否安装.NET都不重要。
从C#与Excel的集成来看,这个问题似乎很简单。考虑到“仅限Windows”和“与Excel集成”,选择C#似乎更加合适。
而且,与Python相比,用户没有安装.NET框架并不是一个问题。.NET框架是Microsoft Update的标准部分。相比之下,Python几乎肯定不会出现在普通终端用户的计算机上。当然,在您的内部应用程序中,最后一点可能并不重要。
如果您正在使用C#进行任何类型的HTTP工作,请确保查看WCF REST Starter Preview2中的新HttpClient库。请忽略该下载的名称,HttpClient部分可以独立于WCF使用。
它比仅使用HttpWebRequest更好。
使用Python从Web服务器获取数据、解析JSON或XML并生成某种报告非常容易。如果您需要真正好的Excel集成(例如,您的输出应该是包含多个图表的Excel电子表格),C#可能更好,但Python也是可行的;有PyExcelerator用于编写丰富的电子表格文件,还有Python支持COM,如果您想使用COM与Excel通信。
使用Python也非常容易制作独立的可执行文件,例如使用py2exe。
这听起来像是一个批处理工具,没有GUI;如果我是您,我会用Python编写它,除非我真的想要一个有趣的项目来帮助我学习C#。但任何带有GUI的东西,C#可能更好。(我没有用Python进行GUI开发,但我在这里和其他地方看到过评论,Python GUI的性能往往较慢。)