If you think I can easily be bribed with beer… you are correct
“If someone uses code that is bad, that’s on them” I would love for this to be the case. But it’s not. Broken custom code ends up in support even though it was written by customers or 3rd parties they hired. This is a big drag on our dev and support organizations. Energy that would otherwise go into enhancing the product.
Thanks for the kind words. And even the less kind ones. We are listening. We keep an ear out here, on Epicor Ideas, support or when cornered, I mean interacted with, at Insights. So keep the feedback coming, keep it friendly, keep it actionable. We will keep evolving together.
And thanks to you all for your passion for this stuff. We wouldn’t be here without you.
But refection has been getting the side-eye for the last few years in favor of source generators. They can’t do everything as reflection, but it can help with performance and some stability when using optimizations like “tree shaking.”
In fairness, Epicor also breaks their own code on update at a fair clip. That’s not a dig, it’s just the nature of the beast.
Presumably those that wrote the code can fix any such problem, and (typically) we arent using these patterns for the fun of it, we are solving real business problems.
You mention the goal isnt intended to corral more people into CSG’s arms, however you are leaving a very tall fence that people who want to get out of the line have to climb over (or under).
I hear you that customization isnt going away, but it feels like the difference between getting to chose the make\model of your car vs just the color.
I don’t think I can replace clever articles in couple of sentences, but theoretically, after the projects (that is all platform code) are compiled they can be analyzed for used classes/methods and unused one can be deleted.
If you load something using reflection in this code, this cannot be tracked and you risk to lose the method you are supposed to call.
Kevin uses our code after everything is compiled and theoretically treeshaken. So if he could write that code that loads “some.dll” and it contains the methods, then it good to be used at least until next release, where it can dissappear. But undocumented function can dissappear anyway
Epicor (or any ERP provider), consultants/outsource OR staff developers can break anything. It’s an equal-opportunity opportunity at crashing the system.
Next week, Microsoft is hosting a meeting with developers from other companies, most notably Crowdstrike, to find ways to allow these developers to securely solve business problems without taking down Windows. Some devs (both inside and outside of Microsoft) will argue that kernel access is the only way to solve business problems. Others in the room (mostly non-devs) will be more conservative and demand safety over performance or functionality. The meeting hopes to find a balance and maybe introduce a whole new paradigm, who knows?
Epicor is in a similar position. It’s like we say here all of the time, what business problem are we trying to solve? If “that’s the way we always did it” is not working out any longer, let’s do what we tell our users and try to work within the system.