如何在用户的机器上构建不需要框架的软件?

时间:2010-05-11 17:52:54

标签: frameworks

我是ASP.NET开发人员,但现在我想构建一个可以安装在我的PC上的软件。使用.NET平台构建的软件仅在安装.NET Framework时才有效,而用Java编写的软件仅在安装了JDK时才有效。当我安装Firefox,uTorrent等程序时,我不需要安装任何框架(.NET,JDK等)。如何编写不依赖于框架的软件?

4 个答案:

答案 0 :(得分:4)

您必须使用不依赖于框架的语言,或者只使用已安装框架的目标客户端。

例如,如果选择C或C ++,则会将二进制文件分发到包含机器代码的客户端。此代码不依赖于运行时环境(如C#或Java)或解释器(如Python或Ruby)。这就是Firefox和uTorrent等应用程序的编写方式。

答案 1 :(得分:4)

“当我安装Firefox,uTorrent等程序时,我不需要任何框架。”

实际上,你做到了。他们只是倾向于使用C ++框架,例如MFC,其中一些已经安装。即使这样,这些框架的安装程序也包含在其他应用程序安装程序中(通常称为Microsoft Visual C++ 2008 SP1 Redistributable Package或类似的东西。另请参阅:Visual C++ Deployment)。

现在,已经说过,他们不需要虚拟机(如JVM for Java或CLR for .NET),因为C ++编译为x86 / x86-64机器语言,直接由操作执行系统

答案 2 :(得分:0)

从根本上说,你总是有一个“平台”,即操作系统。传统上,如果您想编写将在多个操作系统上运行的代码,您将使用相当可移植的语言,如C ++,为目标操作系统生成本机可执行文件。不过,不同操作系统的工作方式也存在差异。因此,将存在特定于该OS的C ++(或其他可移植语言)代码的一部分。您尝试尽可能地隔离这些部分,以最大限度地减少在操作系统之间移植的工作量。尽管如此,这种努力通常非常重要。您还受限于所有目标操作系统上可用功能的最小公分母(除非您为给定操作系统创建公开其特殊功能的自定义版本)。

这是复杂,耗时且昂贵的。这就是创建Java和.NET等技术的原因。

答案 3 :(得分:0)

如果您想构建真正独立于平台的软件,您最终将获得Java Runtime或.NET等解决方案。您可以做什么,您可以以这样的方式编写应用程序,您可以在大多数已知平台上编译/运行它,当然,您需要使用中间件将您的应用程序的对象转换为平台对象(函数,无论......) )。

我已经看到Pascal for DOS在这样的抽象层中所做的解决方案,只需很少的努力就可以直接转移到Delphi for Windows而无需触及应用程序逻辑。