How do I create software that doesn't require a framework on a custom machine?

I am an ASP.NET developer, but now I want to create software that can be installed on my PC. Software built into the .NET framework only works when the .NET Framework is installed, while software written in Java only works when the JDK is installed. When I install programs like Firefox, uTorrent, etc., I don't need to install any frameworks (.NET, JDK, etc.). How do I write software that is structure independent?

+2


a source to share


4 answers


You will need to use a language that does not depend on the framework or otherwise only target clients who already have your infrastructure installed.



If you chose C or C ++, for example, you would distribute binaries to your client containing machine code. This code will be independent of the runtime environment (like C # or Java) or the interpreter (like Python or Ruby). This is how applications like Firefox and uTorrent are written.

+4


a source


"When I install programs like Firefox, uTorrent, etc., I don't need to have any frameworks."

Actually, yes. They just tend to use C ++ frameworks like MFC, some of which are already installed. Even so, there are installers for these frameworks that come with other application installers (usually called Microsoft Visual C ++ 2008 SP1 Redistributable Package or something like that See Also: Visual C ++ Deployment ).



Now, having said that, they don't need a virtual machine (like JVM for Java or CLR for .NET) as C ++ compiles to x86 / x86-64 machine language which must be executed directly by the operating system.

+4


a source


Basically, you always have a "platform" which is the operating system. Traditionally, if you want to write code that will run on multiple operating systems, you have to use a fairly portable language like C ++, which creates its own executables for the target operating system. However, there are differences between how different operating systems work. Therefore, there will be pieces of C ++ (or other portable language) code that are specific to that OS. You are trying to isolate these parts as much as possible to minimize the effort of porting between OSs. However, these efforts are usually very substantial. You are also limited to the lowest common denominator of features available across all target operating systems (unless you create your own version for a given OS,which reveals its special functions).

It is complex, time consuming and costly. This is why technologies such as Java and .NET were created.

0


a source


If you want to create truly platform independent software, you finally get a solution like Java Runtime or .NET. What you could do, you could write your application in such a way that you can compile / run it on the most famous platform, and of course you need middleware to translate your application objects into platform objects (functions, whatever .. .).

I've seen solutions made in Pascal for DOS in such a layer of abstraction, which with minimal effort was ported directly to Delphi for Windows without affecting the application logic.

0


a source







All Articles