The important part: I am still working on Corefig. There will be a new version. It will improve greatly upon previous versions.
The bad part: the project has suffered a serious setback. It will take some time to recover.
Current Status of the Corefig Project
To my eternal shame, the project has been essentially idle for quite some time. I had set myself a goal of releasing vNext of Corefig by the end of January 2019. That will not happen. I have moved the goal to 1st quarter of 2019. Given how long everyone has been waiting, I hope that’s not as big of a setback to you as it was to me.
What is Corefig?
The Corefig project began as an offshoot of “CoreConfig”. CoreConfig was a PowerShell-based GUI tool for configuring Windows Server Core 2008, later updated for 2008 R2. It was built by a Microsoft team and released on Codeplex at no charge. By the team I discovered it, it was already long in the tooth. It never received any further updates.
Windows Server 2012 had released, and a great many of the features in CoreConfig simply did not function. So, I took it upon myself to fork the project and fix the worst of the problems. I didn’t want to risk Microsoft’s ire by stealing their product name, I didn’t want a long name, and I generally suck at naming things. So, “Corefig” was born. After Codeplex’s shut down, it now has a forever home at GitHub.
I have done some minimal updating through the years, but Corefig has remained largely unchanged from its initial release. It still has a lot of problems and many opportunities for feature enhancements. I love the project and definitely don’t want to abandon it, but I have not kept up on it well.
Backstory: Why is it Taking So Long?
A number of factors have contributed to the eternal delay in a new release of Corefig.
Simple logistics play a huge role. I have a full-time job (over 40 hours per week) and I don’t work on Corefig there. Outside of that job, I write many blog articles, maintain multiple small open-source projects, work on contributions to Microsoft Docs, and have broken ground on a few bigger projects that I’m not ready to even talk about. Aside from that, I adore my family and make time to spend with them, and I even get to see my friends once in a while as well. In short, I’m a busy guy and I don’t have much time to set aside for the Corefig project.
Something you might consider a much bigger reason: I am completely dumping all existing Corefig material. I went right back to the root problem: the world needs an on-demand graphical interface to easily configure Windows Server Core and Hyper-V Server from the local console. Everything else went into the trash.
Why the Old Paradigm Doesn’t Work
I owe a great debt to the original CoreConfig. I learned many, many things about PowerShell and Windows Server system administration that I would probably have not discovered for years through other means. I did not abandon that tack on a whim.
The world has changed, though, and we must change with it. I did not have the font of PowerShell knowledge then that you do now. If you want to learn PowerShell, I could name-drop all afternoon and not hit every great author or presenter. You could start with the excellent Learn PowerShell Scripting in a Month of Lunches. You should eventually own a copy of Windows PowerShell in Action, regardless of your skill level. There are PluralSight courses if you learn through videos — I’m sure YouTube even carries some great material. If you learn from digging into other people’s script the way that I do, pop onto GitHub and search for PowerShell projects. If you have questions, PowerShell.org maintains lively forums. I’ve only mentioned a tiny handful of options. In short, Corefig provides no didactic value for the current generation of PowerShell learners.
The GUI Problem
Of course, a lot of the functionality still justifies PowerShell. However, Corefig contains one major component that does not: a GUI. I love PowerShell — it is nothing short of amazing. But, it has always been a terrible tool for generating GUIs. From the CoreConfig source code, I can tell that the original authors used a tool to make the GUI. I did not have that tool.
As far as I know, the only serious tool that exists for creating PowerShell GUIs comes from SAPIEN. Due to a traumatizing experience that I had the one and only time that I ever tried a SAPIEN tool, I am unlikely to consider their products for any purpose. I looked at the feature list of their current offerings and, even if I’m willing to try to overlook their past faults, the delta between their asking price and the maximal possible value-add they offer to someone in my position creates an unsurpassable chasm. Hard “no” from me.
Other options exist, including one that I rolled myself. These all include using one tool (or more) to generate the script, then digging through all that generated script to wire up event handlers. I did that for a long time until I realized that I was throwing away hours of my life to solve a problem that I did not need to have.
Yes, I’m aware of people that use XAML-based solutions to crank out PowerShell GUIs quickly. Two problems:
- XAML-based GUIs don’t work on Core
- If you can look at XAML for more than five minutes and not develop a debilitating eye twitch and a desperate need for a nap, you are far more stalwart than I
Corefig v2 Paradigm
I will build the next version as a compiled EXE using a proper development language. I had decided on one and was happy with it. But, circumstances have changed, so I will spend a little more time thinking about what I want. I am not accepting suggestions. I know my talents and limits and that’s all the criteria that I will use. Roll your own if you’re concerned about what I might choose.
Because I will have a “real” development environment, I will focus on creating a usable interface. Some elements will continue to exist just so that Corefig can keep its familiar face, but only if they add sufficient value. Usability will be a driving force in my design (wish me luck, since I’m not a credentialed UX expert).
What’s This About a Murder?
And now, the part that I do not want to write. I accidentally killed Corefig v2. I had been working on it secretly and had made a fair bit of progress into it. But somehow, through a series of system migrations and whatnot, I have completely lost all of that code. In the day of ubiquitous and free online version controls, that’s unacceptable. For a guy like me that has backups of backed up backups, that’s unacceptable. I did wrong. I’m sorry.
So, I’m starting over. I may not have the code, but I have the lessons.
Thanks to everyone that has stuck with this project and sent words of gratitude and encouragement. You make the work worthwhile.
Visit the Project on GitHub
Follow the Corefig project on GitHub so that you can receive notifications when v2 finally releases!