[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[DotGNU]PNET on Windows - ideas on registry structure, SDK and runtime
From: |
Maciek |
Subject: |
[DotGNU]PNET on Windows - ideas on registry structure, SDK and runtime |
Date: |
Wed, 21 Apr 2004 02:26:19 +0800 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.6) Gecko/20040113 |
Here are some of my ideas for the near future of PNet on Windows platform.
Registry structure
------------------
This is closely related to my future work on improving coremul.
At the moment, there's no mechanism for finding which PNet
implementation to use when running assemblies. That's one problem; it
should be also possible to figure out whether to use PNet, Mono or .NET
if all those implementations are installed (including their different
versions!) - I'll elaborate on this at a later time.
Let's start with standardising PNet's registry structure - I think
registry would be the easiest method to manage different installations.
Here's an example of what I was thinking:
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET (key)
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\PreferredVersion (string
value, e.g. 0.6.2)
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\CurrentVersion (string
value, e.g. 0.6.4)
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\0.6.4 (key)
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\0.6.4\InstallRoot
(string val, e.g. "C:\Windows\Portable.NET\0.6.4")
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\0.6.2 (key)
HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\0.6.2\InstallRoot
(string val, e.g. "C:\Windows\Portable.NET\0.6.2")
CurrentVersion is set everytime PNet is installed with the official
installer, as long as version being installed is newer than the latest
existing version.
PreferredVersion is what the user chooses to use when running
(double-clicking) .NET apps in Explorer. A simple GUI config can be
written which allows the user to set their preferred PNet version.
CoreEmul operation:
_CorExeMain is called by app.exe
Read HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\PreferredVersion to v
If (v == NULL) Then:
Read HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\\CurrentVersion to
v
Endif
If (HKEY_LOCAL_MACHINE\Software\DotGNU\Portable.NET\\v exists) Then:
Read HKEY_LOCAL_MACHINE\Software\DotGNUPortable.NET\\v\InstallRoot to
path
If ("path\bin\ilrun.exe" exists) Then:
Execute path\bin\ilrun.exe app.exe
Endif
Endif
(this logic could also be used in clrwrap)
The user may also install PNet for themselves only, in which case
HKEY_CURRENT_USER can also be used.
Portable.NET Runtime and SDK
----------------------------
I'd suggest splitting PNET for Windows into 2 packages: runtime and SDK.
The runtime installer can be as small as 3MB (including SWF) and would
be useful for those who don't want or can't download large files, or for
software vendors who want to distribute and deploy their .NET
applications at the lowest possible cost.
The runtime would be installed in C:\Windows\Portable.NET\x.x.x (where
x.x.x is version no.)
The SDK package will include compilers, libraries and sources, as well
as GNU sample programs and libraries (Qt#, GTK#, etc.). Easy to use HTML
or CHM documentation will be included as well. Ideally the SDK will
feature a Free IDE such as SharpDevelop.
The SDK on the other hand would be installed in C:\Program
Files\Portable.NET SDK\x.x.x
What do you think? Does putting different versions of PNet into separate
directories make sense?
Regards,
Maciek Plewa
PS. I'll be changing my email address this week.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [DotGNU]PNET on Windows - ideas on registry structure, SDK and runtime,
Maciek <=