如何构建像Thunderbird这样的应用程序?我应该选择哪种语言?

时间:2010-02-13 17:30:59

标签: c++ programming-languages project-management cross-platform mozilla

我不想构建Thunderbird功能。我只是想构建一个具有插件功能,跨平台,易于安装的项目。是否有任何文件指向Firefox或Thunderbird的开发?

我知道Thunderbird是用C ++构建的,那么我怎样才能获得这些图形和所有其他功能。

请帮帮我。

6 个答案:

答案 0 :(得分:4)

您可以在此处浏览Firefox的源代码:

http://mxr.mozilla.org/firefox/source/

和雷鸟:

http://mxr.mozilla.org/seamonkey/source/

无论如何,如果您想构建一个带插件的便携式应用程序,我建议您忘记尝试复制Mozilla并学习Qt或wxWidgets。

答案 1 :(得分:4)

本着其他答案的精神,我不得不指出Mozilla提供了用于构建应用程序的平台,包括Firefox和Thunderbird, - 请参阅XULRunner

使用XULRunner

  • 在XUL(Firefox和Thunderbird使用的跨平台UI描述语言)甚至HTML中开发接口,
  • 用JavaScript开发程序逻辑,或者,如果你真的需要,用Komodo开发C ++(甚至Python),
  • 支持与Firefox / Thunderbird相同的扩展机制

以下是在XULRunner之上构建的部分应用程序列表:XULRunner Hall of Fame


为了回答您的原始问题,Mozilla平台通过指定一组跨平台API(例如(过度简化)XUL用于接口定义)并在每个平台上实现每个API,在许多平台上提供丰富的功能。

从头开始实现这样一个跨平台层是很多的工作,所以你应该选择一个在答案中提到的跨平台解决方案,而不是试图查看和复制Thunderbird的实现。这里(Mozilla,Eclipse,QT,wxWidgets等)

每个人都有自己的优点和缺点,在不了解您当前的专业知识和要求的情况下,不可能为您挑选一个。

答案 2 :(得分:2)

Eclipse RCP可以很好地构建具有插件功能的丰富的跨平台客户端应用程序。 Eclipse RCP基于 Java 和SWT技术。

Here是使用Eclipse RCP构建的应用程序列表。还可以使用RCP构建演示邮件客户端here。另一个使用RCP构建的优秀软件是RSSOwl,一个提要阅读器。

答案 3 :(得分:1)

在选择开发的语言/平台时,我认为需要考虑以下几点:

  1. 寻找功能的开发支持。
  2. 可维护性 - 在平台/语言的支持方面,维护支持的程度。
  3. 与意图平台(跨平台等)的兼容性
  4. 语言/平台的未来可扩展性
  5. C ++只是一种很棒的语言。其余的(利用丰富的图形等)是学习......

答案 4 :(得分:0)

许多选择和其他人已经提出了好主意。 Java将使您的生活(合理)变得简单,但C / C ++以牺牲需要抽象API为代价为您提供更多功能。

我应该小心 - 一旦你致力于一套技术并在没有重写的情况下做了一些认真的开发,你可能很难对你的应用进行更改。例如,如果您选择C和Apache Portable Runtime,则可能很难转换为其他内容。同样,如果您在swing中编写UI,转换为SWT / Eclipse将意味着重写UI。我不想劝阻你,只是添加一个警告,我认为x-platform应用程序需要非常仔细的计划。

一些注意事项r.e. Mozilla树也是。 Thunderbird / Firefox等基本上是使用不同的组件从同一个源代码树构建的。 Mozilla构建系统非常复杂,在我看来比Linux内核更加复杂。因此,曼努埃尔关于忘记Mozilla的建议很好,除非他们的路线能够获得一些东西。

答案 5 :(得分:0)

Mozilla的类别管理员可以很容易地为您的应用程序添加插件支持,但就像其他海报所说的那样,在到达目的地之前,您将有一个可以爬山的公平山。