Thanks for this new series. I really think WinForms is way underrated. Either that or WPF is way overrated. I understand some of the graphics needs with WPF but the simplicity of WinForms is just so awesome.
Hi Tim, what's your reasoning for putting the IsValidUrl method inside the ApiAccess class? Since all it does is check a string, shouldn't it be a static method in a separate utility class? Doesn't matter too much given the scope of this application of course, but I was curious since you kept emphasising setting the app up for future modifications.
Good question. It can be a bit of preference, but in this case I preferred to keep it with the rest of the API-type calls. Spreading things out without enough of a reason makes things more complex without also providing offsetting value. In this case, I don't anticipate using this method outside of when I'm calling an API, so it fits within the same class. Also, by not making it static, it can later access the logger.
Question. At 22:00, you added 2 more params to CallApiAsync, and I never see you remove them. At that point of course, my version won't build/run. Am I missing something?
I'm not sure what you mean by "I never see you remove them." I don't remove them. That's the new signature line for the method. As for your version not building, my guess is that you did something different from me. When I added the two new parameters, I also added default values for them. That way, you could call the method without specifying the values for them and it would still work. Did you not do that? Also, the order is important. You cannot have a parameter without a default value come after a parameter that does have a default value.
@@IAmTimCorey Thanks. I must have had a "senior" moment somewhere. Found missing "=true" in the IApiAccess file. No idea how that happened. Onward through the fog!!!
Not here, not yet, but you can show potential employers. Just make sure that the code is yours and not similar to mine. Otherwise it will do you a disservice.
One question I have is when you said the portfolio items are never completed. I actually completed at least 20 portfolio items. I have at least 20 fully completed projects where its so perfect there is no room for improvement. These are things I actually even use myself.
I covered this before, and I believe I even mentioned it in this video: self-evaluation is an incredibly important part of being a developer. If you look at your work and say it is complete and it is perfect, you have not learned how to properly self-evaluate. Software is never perfect. Ever. If you think it is, you've are deceiving yourself. That needs to be your biggest point of focus, identifying how to better self-evaluate. Otherwise, you will not be able to become a good developer.
@@IAmTimCorey No source code is ever perfect, there is always room for improvement. However, zero-defect releases of significant features or projects is possible, and I believe should be the goal of all developers. My own definition of a zero-defect release is one where zero issues were found by internal QA team during testing, and zero issues reported by the end user audience during the first year of release. I would say it doesn't meet criteria for "significant" for purposes of this discussion if the user base is only a handful of users, or if the lines of source code is less than maybe 2000 lines, or if the app never underwent formal QA process, or if the user audience is too small to care or report bugs. Early in my career I thought I was pretty good (youthful hubris probably)... It took about 20-25 years of professional coding experience before I was able to consistently deliver zero-defect releases on features of considerable complexity and size. And even still I can go through the code on each one and sort of cringe and think to myself I could have done this or that better, even if it's something simple like I didn't communicate well enough in the code comments, etc.