How the annual review scores are formed in the eyes of managers always fascinated me. I have five years of experience with annual reviews myself, and I was always able to do well on them. As a tech lead, I got to give recommendations and participate in some discussions with managers. I formed a pretty firm and possibly naive point of view on them now. The process The way the process went in my last company, and I suspect in most big companies, is like this: At year’s end, the employee is asked to fill out a long form about his achievements and goals.
WPF is very dynamic and allows us to use resources in many different ways. We can use Static or Dynamic. We can place all our resources in App.xaml or use merged dictionaries each time. You can see all the approaches and what I think is best practice in my WPF Merged Dictionary problems and solutions post. If you’re new to WPF resources, I suggest reading my Explicit, Implicit and Default styles in WPF post before diving into this one.
Did you ever feel like Visual Studio is rebuilding projects every single time, even when there were no changes to the code? We can build, change nothing, build again and there we go… VS is starting a build instead of saying all my projects are up to date. Also, there’s that nagging feeling that even when we do change something, VS is building way more projects that it needs. Like most things I do in life, frustration led me to look further into this matter.
After working for the last three years with TFS’s classic source control TFVC, I recently moved to a new company and with that, to Git. Before working with Git, I loved working with TFVC. I thought it was great and pretty much the most I can expect from a source control. Git, however, changed the way I work with source control and even the way I think about source control.
After a relatively short time looking for a job, I joined my a new company: CodeValue . Specifically, I’m working on the OzCode project (which is awesome). But a bit later on that… First let me tell you a bit about my job hunt experience. Started looking for a job I got my CV ready and very hesitantly started to apply for some jobs. If you ever tried looking for a software job in Israel you probably know that almost all jobs are posted through personnel companies, and applying for one job means your CV will end up everywhere.
When starting with WPF, I had a hard time realizing when to use converters and just how powerful they can be. I would often create styles with complicated Data Triggers, or abuse my ViewModel instead of doing some simple converter magic. I’ll share with you some converter tips and tricks that make my development easier every day. Tip #1: When starting a new project, get a converters library A lot of standard converters are reused in every WPF application.
In my last post . I talked about navigation techniques in MVVM and how I didn’t like them too much. I also talked about learning Asp.NET Core is and how good the navigation / routing system is in there. So, following the pain, I decided to create a lightweight navigation WPF framework similar to the one in Asp.NET Core. We’re still using MVVM, but adding controllers which makes it MVVMC, Model-View-ViewModel-Controller (This is how the library is called as well).
Have you ever encountered an over designer? An over designer is a software developer that had some life changing event and became obsessed about architecture. The result being, obsessive decoupling, endless coding of Factories, creating deep (also needless) inheritence hierarchies and various use of design patterns for no good reason. I believe the over deisgner is a mutation in the natural evolution of a software developer. Software Developer’s Evolution Not every software developer reaches to Senior level.
Recently I was dealing with a couple of bugs in C# regarding timeout behavior. The solutions were pretty interesting so I decided to share them. Consider these scenarios: We show a dialog to the user with some message. We close the dialog after 15 seconds. However, if the user closes the dialog manually, we have no need to close it at timeout. Start a long operation. If that operation lasts more than 5 seconds – Abort it.