With any luck, this post will show up sometime on the 12/23 and I’ll have successfully figured out how to schedule posts :).
First — I hope to everyone that celebrates, they are having a very happiest of holidays. If weather, travel, etc. goes well, we’ll be celebrating with family and enjoying a little bit of downtime with people that we love and care about. I hope that however you chose to spend the time, it’s merry.
On to MarcEdit. A couple of update notes. First, related to the MAC version of the application. After updating MarcEdit 7.7 to the new .NET core framework (.NET Core 8.0 LTS) — I switched to my mac to make changes and recompile the code, targeting the new framework…and I was in for a surprise. I had not been paying attention, but Microsoft has essentially ended development using Visual Studio on Mac systems, and has transitioned to using Visual Code. That isn’t so much a big deal — Visual Code has a great extension and can easily be used to write C# applications. The bigger issue was that the previous UI methodology I was using wasn’t being ported forward to support .NET Core 8. Since all of the current application now uses that framework — that is a problem. That leaves me with a couple of options:
- Stop supporting apple devices (not really something I’d like to do)
- Rewrite the entire application using Microsoft’s new MAUI framework (or something similar)
- Look for another option
I have decided to look for another option — because while there aren’t a lot of Mac downloads, there is enough that I’d like to keep the option open. So, I did a little research and testing, and for now, what I’ve done is created a process where you can run MarcEdit 7.7 via Wine on a Mac. Essentially, to make this work, I’ve done the following:
- Updated some MarcEdit 7.7 code to support how apple passes arguments
- Created a shim script that acts as the application wrapper that can be used to create a native mac bundle allowing for plist creation and entitlements to ensure the program works as closely to a mac system as possible.
- Created a pkg — where the app and pkg have ben signed and notarized using apples signing tools and my developers code signing certificate.
The results can be seen here:
https://youtu.be/jgkYJEfcZY0?si=zil7j5fZhoeJXyUq
I’ve written up some instructions — you will find them on the download page with the mac option. I will provide a link to bother previous version and the new version — but at this point, all new development will happen on the version being wrapped for use with Wine. Long-term, I likely will be recoding the application to utilize a framework like MAUI or UNO so I can write one interface that will compile natively for multiple systems — but that is likely a 8-12 month project and right now, both only the UNO framework is complete enough to make the transition work. So, while I evaluation frameworks, I’ll be moving all business code into a new code library — MarcEdit.Essentials — which should simplify the move at a later date.
Changes
Updates to this version of the application are as following:
- Changes related to supporting MarcEdit 7.7 on Mac Devices. Please note, one thing that still needs to be fixed is the AutoUpdating functionality. Currently, the program sees itself as running on windows because of Wine. However, I have a bit I flip when the shim passes arguments that identifies the application. I’ll be doing a little work here so that in the future — the program will do a better job recognizing where the app is running so Mac users will be directed to download the Mac package.
- MarcEditor — when saving or compiling — the program will attempt to save the position of the cursor and take the user back to that location.
- Added a file validator to the plugin manager to make certain any config data is found and loaded.
- Added MarcEdit.Essentials to the application to start pulling out functions still found mingled with the UI code.
That’s pretty much it. Downloads have been posted, updates should prompt, the org version has been refreshed.
Again, have a happy holiday!
–tr
Leave a Reply