C#或Python为我的应用程序

我的任务是开发一个应用程序来从远程REST服务中提取数据并生成Excel报告。 该应用程序将由公司中的less数用户使用(10-15)。 数据负载可以达到10000-200000条logging。 我一直在辩论是否使用Python或C#…

我正在考虑Python的唯一原因是因为我对它很熟悉,而且风险也不大。

我个人想尝试使用C#,因为这将是一个很好的学习机会。 应用程序不是太复杂,所以学习它的开销不会太多…我想。

C#有什么问题,我应该关心这种types的程序? 用户运行Windows XP …用户没有安装.NET是一个主要的关注?

提前致谢。

编辑:我想我需要强调的是最终用户应该能够运行应用程序,而无需安装额外的库/框架。

为什么不把两个世界融合在一起的IronPython ?

如果你想学习C#,而且你没有这么有限的时间限制,现在可能是一个很好的尝试的时机。 另外,虽然我还没有完成Excel或者Python或C#的工作,但是我期望使用Microsoft产品而不是Python来处理Excel文件会更容易。 如果您只是将CSV格式的数据转储到文件中,Python或C#都可以正常工作。

如果你想尝试一些更疯狂的东西,你可以使用IronPython,这样你就可以使用.NET资源,但是你仍然可以用Python编写。

我通常会说, 使用你所知道的

但是,在这里,使用解释型语言可能会遇到一些性能问题。 我自己会使用C#。 如果你想学习, 现在就像任何时候一样好

然而,如果你自己的成本/收益分析显示你会更好的python,使用。

Windows上的C#将需要.NET,但您可以使用.NET客户端configuration文件使安装非常轻松。

如果你做一个基于Web的应用程序没有在客户端机器上安装.NET不会是一个问题..但我想你不想同时尝试C#和Web开发

如果用户必须安装C#客户端,那么不安装.NET将是一个问题。 您可以打包安装程序,以便下载.NET运行时,但取决于您使用的function可能是相当大的下载。

如果您的应用程序是基于Web的,那么所有的C#代码都会在服务器上运行,并将HTML传递给浏览器,因此无论是否安装.NET都不重要。

与C#集成几乎肯定会更简单。 考虑到“仅Windows”和“与Excel集成”的要求,C#更适合这个单独的问题似乎是一个简单的select。

而且,不,没有.NET的用户与Python相比并不是一个问题。 DotNet框架是Microsoft Update的标准部分。 相比之下,Python几乎肯定不会在平均最终用户的机器上。 在你的情况下,使用内部应用程序,最后一点可能无关紧要。

如果您使用C#进行任何types的HTTP工作,请确保查看WCF REST Starter Preview2中的新HttpClient库。 忽略下载的名称,HttpClient部分可以独立于WCF使用。

这是一个比只使用HttpWebRequest更好的客户端。

Python很容易从Web服务器获取数据,parsingJSON或XML,并生成某种报告。 如果您需要真正的Excel集成(例如,您的输出应该是包含大量图表的Excel电子表格),那么C#可能会更好,但Python仍然有可能; 有用于编写丰富的电子表格文件的PyExcelerator ,如果您想使用COM与Excel交谈,则可以使用Python对COM的支持 。

使用Python,制作独立的可执行文件也非常简单,例如使用py2exe 。

这听起来像一个批处理工具,一个不会有GUI; 如果我是你,我想我会用Python写它,除非我真的想要一个有趣的项目来帮助我学习C#。 但是,任何与GUI,C#可能是更好的。 (我没有用Python做GUI开发,但是我在这里和其他地方都看到了Python GUI的性能往往很慢。

答案可能与情况有关,而不是关于手头任务的更好语言的问题。

如果您之前没有C#经验,那么现在就跳进来学习它并不是一个好主意。 语法的差异是微不足道的学习,掌握是通过了解肮脏的细节和如何使用语言的优势来完成工作来定义的。

如果你有足够的时间,并且从头开始不是问题,或者你有一种与C#(例如Java或C ++)非常相似的语言的经验,那么你可能承担风险并适应新语言很快。

如果你不关心效率(例如,它是一个宠物项目,你不关心你的工作或效率根本不重要),尝试C#只是为了学习新东西(总是一件好事)或坚持Python以确保你不必调整你的想法太多(总是漏洞和误解的来源)。

如果你一定要使用C#,你应该在“空闲时间”(不一定在家里,但最好是在工作中没有其他事情的时候)玩弄它,从而build立一个你可以使用的技能集与实际的项目。 这样,你就已经熟悉了这个范式(松散地使用这个术语),并且在他们算的地方遇到了更less的问题。

我意识到这是一个旧的post,但我想我有一些相关的信息在任何人在近期碰到这个,像我一样。

Python库Openpyxl在我的基于桌面的自动化脚本中操作和创buildexcel文件方面效果很好。

http://openpyxl.readthedocs.io/en/default/usage.html

它直接从我的理解访问文件,不像c#中的互操作技术。 所以无论在哪里运行,都不需要安装Excel。 如果您试图在服务器上获取某些内容,则可能是获取Excel许可副本的问题,或者如果您的用户正在本地运行,则可能存在问题。

使用C#,您可以使用Visual Studio的全部function来帮助代码,例如代码完成,debugging工具和错误高亮显示。 然而,你可以在Visual Studio中使用Python获得大部分的内容,但是我发现试图获得正确版本的python绑定到项目以及什么都不是很复杂。

在C#中,您可以轻松编译一个可执行文件,但是我相信您需要加载一些Python库以接近类似的本地可执行文件,并且可以与C#输出相比较。