Building a package manager is kind of a large project, so I’d recommend trying to build some smaller applications in C# first. That will help you set up your development environment and get a better grasp on the language and ecosystem.
Once you’ve got an okay understanding of the language, I think a package manager would be a great project to learn with (especially if it’s something you’re interested in)!
do I invent my own pkg format or do I use pre built packages like deb or rpm? I think the later one will be more easier
Whether you build your own package format or use one from another manager is up to you. If you want to learn how a specific package manager works, consider integrating with their package format. If you want to design a full system, consider designing your own (and maybe take inspiration from some existing solutions). I wouldn’t say that using an existing format would be strictly easier, as those formats are specially designed and can often be very complicated.
where should I start?
This is a tricky question for any application. I’d highly recommend spending a little bit of time to determine roughly what steps will need to be done for each stage of package management (i.e., creating a package, publishing a package, installing a package). Since you’re just doing this to learn, it’s okay if it’s not perfect or if there are portions that are missed, it’s just important to get some thoughts out. When you actually start writing code, you’ll probably want to focus on the more fundamental aspects that block the other stages (implement package creation before implementing installation)
Building a package manager is kind of a large project, so I’d recommend trying to build some smaller applications in C# first. That will help you set up your development environment and get a better grasp on the language and ecosystem.
Once you’ve got an okay understanding of the language, I think a package manager would be a great project to learn with (especially if it’s something you’re interested in)!
Whether you build your own package format or use one from another manager is up to you. If you want to learn how a specific package manager works, consider integrating with their package format. If you want to design a full system, consider designing your own (and maybe take inspiration from some existing solutions). I wouldn’t say that using an existing format would be strictly easier, as those formats are specially designed and can often be very complicated.
This is a tricky question for any application. I’d highly recommend spending a little bit of time to determine roughly what steps will need to be done for each stage of package management (i.e., creating a package, publishing a package, installing a package). Since you’re just doing this to learn, it’s okay if it’s not perfect or if there are portions that are missed, it’s just important to get some thoughts out. When you actually start writing code, you’ll probably want to focus on the more fundamental aspects that block the other stages (implement package creation before implementing installation)