Not a fan of closed primaries, nor do I see the advantage in strictly limiting the vote to members of the club. Trump won the primaries because he got more votes. I don't think it matters who cast them, just that they did.
My preference is admittedly partly personal. In this area, I know the GOP nominee will win most races, but not all races. So in 2016 I voted in the Democratic primary so I could express a preference for POTUS at that point. This week I'll vote in the GOP primary for Governor, an open House seat and the seat Corker is leaving in the Senate, and it's because the GOP nominee WILL WIN the Governor's race and the House seat and I have a strong preference which Republican wins those races and represents my area and is Governor. In the Senate, Bredesen will win that primary easily, and so I don't need to cast a vote until the general.
Why shouldn't I be allowed to do that? More importantly, how does that improve elections if only (e.g.) registered Republicans get to express preferences about GOP nominees? If you live in a blue state, why shouldn't registered republicans be allowed to express preferences on which Democrat will win? You're demanding, effectively, that we register with a party that we might not/do not align with, or give up our right to cast MEANINGFUL votes in a lot of primaries.
As to solutions, what I'd like to see either in primaries or the general is some kind of ranked choice vote (RCV) system, instant runoff, whatever. You talked about Trump - the problem with him and others in a lot of primaries is most people don't show up, and those that do are often the true believers, the activists, and the person who motivates the activists gets the win. Trump is and was also really polarizing - you had people who loved him or hated him. At least with ranked choice voting in the early going, some Cruz voter, for example, who was a neverTrumper could rank Kasich second, Bush third, etc. and that effectively pushes Trump down the list to the bottom in the second 'round.' As is, with plurality takes all, you might 'win' a primary with 24% of the vote if there are lots of people running. Ranked choice voting would, IMO, result in a better process, no matter who the candidate or the race because it better reflects all our ACTUAL PREFERENCES.
It also will encourage more people to run, or reduce the huge pressure on some candidates who aren't doing well early to drop out. Say you have 4 "conservatives" running in a primary, and one 'moderate.' The danger is the conservatives split the far right vote, and the moderate might win the primary with 30%, even if 70% of the voters preferred someone more conservative. In the current system, the party will put a HUGE amount of pressure on the conservative losing early polls to drop out and endorse someone else to make sure a 'true' conservative wins the primary. With RCV that guy can tell the party to shove it - let the voters rank them and it will work out fine.
It also allows for third parties to run and get more votes. I NEVER vote 3rd party, because they will lose, and I always have a preference between which major party candidate is least horrible. With RCV I'd have voted 3rd party first ballot several times. Etc. Lots of reasons to go with RCV over our current system.