Menu

Migration to .NET 4 / .NET Core

2016-01-10
2020-09-11
  • Tomáš Jecha

    Tomáš Jecha - 2016-01-10

    Hi,
    I suggest to split KeePassLib into 2 parts:

    • Core non-UI DLL responsible for cryptography and reading / writing DB - without reference to System.Drawing, WinForms etc.; can be used to directly access DB file; this should be alse quite easy to migrate to .NET 4 / .NET Core / Universal Apps

    • Application DLL responsible for localization, application and other UI specific tasks

    Motivation:

    • To make future migration to new .NET CLR 4 easier

    • To be able to use KeePass DB file also from apps written in newer CLR

    My goal:

    • I would like to write open source website that can access to KeePass DB online

    Also what are plans for future development of KeePass? Is migration to newer .NET planned?

     

    Last edit: Tomáš Jecha 2016-01-10
  • Dominik Reichl

    Dominik Reichl - 2016-01-10

    I'm not planning to "migrate" to .NET 4 in the near future (you probably mean to set the target .NET framework in the IDE to .NET 4). Although there are a few nice features in newer .NET versions, I don't think sacrificing .NET 2.0 compatibility is worth it. Note that KeePass ships with a configuration file that instructs .NET to run KeePass with .NET 4 / 4.5, if installed (.NET 2.0 is not required in this case).

    Best regards,
    Dominik

     
  • David Lechner

    David Lechner - 2016-01-10

    I have an interest in .NET Core too. Since Dominik isn't going to do this anytime soon (with good reason), I invite you to have a look at https://github.com/dlech/KeePass2PCL. It is something I started a year ago with portable class libraries. I stopped working on it when the announcemets about the "new" .NET came out. I think coreclr and friends are far enough along that I could start working on it again, but change it to target coreclr instead of using PCLs.

     

    Last edit: David Lechner 2016-01-10
  • steelej

    steelej - 2016-01-10

    Link is broken!

     
  • T. Bug Reporter

    T. Bug Reporter - 2016-01-10

    When a sentence ends with a raw URL, SourceForge assumes that the period ending the sentence is part of the URL. To prevent this, put the URL in angle brackets (which will disappear when the message is displayed): https://github.com/dlech/KeePass2PCL.

     
  • Mike

    Mike - 2019-06-22

    With Microsofts future plans for the .NET Framework (Talking about .NET Core aka .NET5) are there now any plans to "migrate"?

     
  • Dominik Reichl

    Dominik Reichl - 2019-06-22

    I'm not planning to migrate to anything else, because I currently don't see any benefit that justifies a migration. This might change in the future of course.

    Best regards,
    Dominik

     
  • Mike

    Mike - 2019-06-22

    I see. Thank you for your response.

    Well the benefit I was aiming for was, instant portability to Linux with one code base (of course with some refactoring like suggested be the original discussion initiator @ jechtom )...

    I have create some add-on applications that reference KeePass binaries which I then could easily also use under Linux, my reason for asking.

    Thank you for your time and effort for this great and useful application, nonetheless.

     
  • mtr tm

    mtr tm - 2019-10-28

    Hi Dominik,

    I searched for a thread like this just so I could see if there were plans to port. I do think there are some good reasons to upgrade:
    1. Framework is basically dead and in support mode - everything is going core. C# 8 and new language features won't be included in Framework
    2. Core 3 has some very cool features which would help users - the main one being we can now create an .exe that contains the entire runtime (no installing .net)
    3. Core 3 is cross-platform, so the guts would run on linux and windows

    I'm very familiar with .Net and wouldn't mind helping make the switch, so if you are interested let me know

     
  • Manuel Berfelde

    Manuel Berfelde - 2020-01-07

    Please consider switch to core.

    If KeePass is here to stay, there is pretty much no alternative.

     
  • Paul

    Paul - 2020-01-07

    there is pretty much no alternative.

    Why?

    cheers, Paul

     
  • Paul

    Paul - 2020-01-07

    Quote from the article.
    "If you have existing .NET Framework applications that you are maintaining, there is no need to move these applications to .NET Core."

    cheers, Paul

     
    • Manuel Berfelde

      Manuel Berfelde - 2020-01-07

      That's how your applications becomes "legacy software"

       
      👍
      2
  • Manuel Berfelde

    Manuel Berfelde - 2020-01-07

    If you are interested why I personaly would like to see a core implementation have a look over here: https://github.com/PSKeePass/PoShKeePass/issues/126

     
  • mtr tm

    mtr tm - 2020-01-13

    I think I did a pretty good job in outlining why it is a good idea to upgrade, and I'm also willing to help. It looks like there is demand for this, too. @dreichl what do you think?

     
  • Dominik Reichl

    Dominik Reichl - 2020-01-14

    In my opinion, the disadvantages of a migration to .NET Core currently outweigh the advantages (for users!). This might change in the future, i.e. a migration might happen someday, but not now.

    Best regards,
    Dominik

     
    • mtr tm

      mtr tm - 2020-01-15

      Can you explain why? It seems there are multiple people telling you the same thing - it's BETTER for users for multiple reasons - latest security fixes, ability for truly portable executables, better for the developer community by allowing modern/more secure code and language features, compability etc. I'm willing to help, and searching around here it seems others are. Mono is going away with .Net 5 (out in less than a year) and I'm afraid if this project isn't upgraded (shouldn't be a lot of work to make all libraries .net standard compatible and then just make implementations in core or framework) it will die.

      Do you have concrete reasons behind resisting updating this code? I guess you can just say no, but I'm assuming you actually have some reasoning behind it. Can you explain at all? Do you disagree with some of the things I and others have said?

       
      👍
      3
  • Michael

    Michael - 2020-04-02

    +1 for supporting .NET Core. Please. I love scripting KeePass functionality with PowerShell, but PowerShell on .NET has been in sustaining mode for years... and to get any sort of new support, you must switch to PowerShell Core (built on .NET Core). Unless KeePass is built with .NET Core, this won't work.

     
    👍
    3
  • mtr tm

    mtr tm - 2020-09-10

    So... with .Net 5 a couple months away and no movement here, I'm starting to think the author isn't coming around. This thread started in 2016 and, while there may have been some points I agreed with at the time, in 2020 I haven't seen one reason to not move and quite a few reasons to update. It's really too bad. Anyone know of some alternatives?

     
    • Horst

      Horst - 2020-09-11

      So since 2016 the actual KeePass has no problems to run on even the newest Windows version.
      So there is no real problem to solve.
      And of course there are many alternatives.

       

      Last edit: Horst 2020-09-11
    • John Jones

      John Jones - 2020-09-11

      Don't expect anything out of KeePass, development is basically stopped. It is maintained by a single developer really.

      KeePassXC is the only similar type of software that has an actual active development schedule, it is not based on .NET unfortunately.

       
  • Paul

    Paul - 2020-09-11

    development is basically stopped

    This is not true, there was a new release yesterday.
    KeePass has always had a single developer, nothing has changed there.

    cheers, Paul

     

Log in to post a comment.