Inspired by our rather radical approach to enforcing development discipline, Andre “I’ve got 88 in my handle” Margono decided to pick on another sinful habit in development, this time within plugin development. Corporal punishment triggering behavior this time is to select all attributes as filtering attributes for Update message. Unfortunately, plugin registration tool that comes […]
Tip #230: Ban the browse button
I like German words. Take, for example, Spießrutenlaufen. If you like me, and don’t speak a word of German, you know, just by looking, that the word means business, the word means corporal punishment. I often wonder if ignorance of the developers can be cured by introduction of Spießrutenlaufen for coders. Function is longer than […]
Tip #219: You want the top one
One of the challenges of creating reports is the lack of real data in development environment. There is not enough Nancies Davolios to simulate real volumes. For that reason alone production organization is often replicated “back” to test and development environments. Reports suddenly come to life and designers can see 7-figures opportunities and otherwise empty […]
Tip #217: Bad Id, bad
Following my anal retentive attention to the tightness of LINQ code and SQL it generates, I decided to refactor an old piece of code that extracted identifiers of the accounts matching certain criteria. Being very smug with all the newly acquired knowledge, I quickly produced an equivalent of: To my horror, this code generated an […]
Tip #215: Computer says ‘no’
Well, this is embarrassing. Remember that flogging I unleashed on unscrupulous developers being disrespectful to LINQ, performance and humanity in general? I was basking in my own cleverness of possessing the knowledge of LINQ operators including magic Any: Yesterday I had a chance to use what I preached and this is what I got in […]
Tip #212: Getting a yes or no answer in LINQ
Say, you need to find out if your organization has any opportunities with the estimated value of more than a million dollars (that’s right, that’s how developers usually roll). No need to retrieve anything, just simple yes or no. There are many ways to accomplish the task, most of them, sadly, are as efficient as […]
Tip #209: Who’s your sister?
When it comes to the coding, not always but often, less means better, faster and more manageable code. I’ve recently come across of someone else’s (could it have been me 4 years ago?) piece of work updating bulk email setting for the contact: Sigh. The “all columns” sin aside, the retrieve is absolutely unnecessary. You […]
Tip #203: Geek Stuff New Features Spring ’14
If you are a coder or a wanna be Dynamics CRM Coder today’s videos for Dynamics CRM 2013 Spring ’14 release are for you. Its all code from here down. Configuration Migration Package Deployer Plugin Registration Tool Solutions Versions
Tip #202: Sandbox New Features Spring ’14
It is day #2 in the topic specific new feature videos for Microsoft Dynamics CRM 2013 Spring ’14. Today the videos are all about the Sandbox instances available online. Sanbox Instances Reset a Sandbox Instance Admin Mode Copy
Tip #194: When automatic update is not your friend
tl;dr Nuget is a great tool and a real timesaver but beware of automatic updates that can unexpectedly bring incompatible or broken builds of third-party libraries and that will, in turn, break your plugins or workflows. The real story or “I saw the whole thing” Friday, August 1st, 6:00PM All users logoff and CRM is […]