Tuesday, October 12, 2010
I'm teaching OO design and UML again this term, and one of the things I emphasize to the class is the dangers of coupling. (Get your mind out of the gutter, I mean classes with dependencies on each other.) It's not about calling methods of each other necessarily; it's more about if-I-change-this-one, I'll-have-to-change-this-one-too. Changes that ripple through a system are expensive and dangerous.
When I am helping clients with interop, they are often surprised to learn how entire applications and libraries can depend on each other without ever calling each other's code. For example, App A writes a record to a database table. Service B checks the table regularly for new records (or records with a 0 in the Handled column, or whatever) and calls a web service (or whatever.) Those applications are now coupled - if a change in one necessitates a change in the format of that table (or its name, etc) then the other must be changed too. Thinking ahead and doing all you can to reduce this kind of coupling is part of the challenge of doing good application integration, even if there are no interop calls in the solution.
And then there's performance. So often left until last, it provides another consideration that you should ideally have in mind all the way along. And as Rico Mariani points out, it also couples applications and libraries you may have thought were independent:
Two subsystems that both (loosely) use 2/3 of the L2 cache are going to use 4/3
of a cache... that’s not good. There may be no lines between them in the
architecture diagram but they are going to destroy each others ability to
Sound advice as always. Please read the post, and keep one more "don't forget" floating around as you design and architect your systems and solutions.
Sunday, October 10, 2010
This is really fitting, isn't it? You have a product code named Dev10 and released as Visual Studio 2010 (with the tens not related to each other - see my history
of Visual Studio and Visual C++ version numbers and release names). And today is 10/10/10 no matter what date format you prefer. So today is a great day to take a quick survey
about Visual Studio 2010. Seven questions. I recommend you read them all before you start answering because they are asking about different aspects of the product and you wouldn't want to answer a question about speed with your thoughts about ui features. But it will take almost no time so go and do it.
Friday, October 08, 2010
I've gained a lot of Twitter followers in the last few days, and I'm pretty sure I know why. John Bristowe included me on a list of Canadian Developers
that includes a full list of luminaries. I counted 112, and he's included blog links as well as Twitter handles. Most, but not all, are .NET developers. John follows all of them (us), which shows remarkable dedication. Why not take a look and see if there's someone there you'd like to follow too?
Wednesday, October 06, 2010
The Tech Ed Europe Session Catalog has been updated with my third talk. In the order they're happening, I have:
WCL322 - The Windows API Code Pack: Add Windows 7 Features to Your
DEV311 - Modern Programming with C++0x in Microsoft Visual C++ 2010
WCL329 - Advanced Programming Patterns for Windows 7
The first two I blogged earlier, but the third is new. Here's the abstract:
Windows 7 development in managed code can be very simple,
especially for those using the Windows API Code Pack. But your integration with
Windows 7 doesn't have to be limited to simple interactions with the new API.
This session goes beyond the simple into aspects of Windows 7 development that
have, in the past, been left for you to explore on your own. See how to create a
jump list with a task that delivers a command to your application, as Messenger
and Outlook do. Explore a simple and powerful recipe for connecting to Restart
and Recovery, with minimal effort. Discover how Trigger Started Services can
reduce your power footprint, while giving your users better responsiveness.
Explore all that Libraries has to offer beyond "File Open", and learn why using
a library is a better approach than having a user setting for "save directory."
It's going to be a great week!
PS: About the fourth item you might see under my name ... stay tuned!
Monday, October 04, 2010
I started paying attention to "app compat" around the time Vista was in beta. It stands for Application Compatibility and refers to all the various techniques for ensuring that an application continues to work when it's moved to a new environment, such as from XP to Vista or to Windows 7. Some of these techniques involve changing the source code of the application and rebuilding it, but others don't. And paradoxically, in order to be good at those no-writing-code techniques it helps if you're really a good developer. It really helps if you have strong skills in areas that the .NET Framework generally hides away or abstracts from you.
There are folks whose job it is to solve app compat problems. It's the kind of job that really appeals to me, where you aren't exactly sure how things are going to go each day when you get up, and you think on your feet and react to what you find. And now there's an opening to be such a person if that interests you. Aaron Margosis writes:
The job is basically
to figure out why applications that are important to the customer and that work
on earlier versions of Windows (typically running as admin) no longer work on
Windows 7, and then to get the apps to work correctly without reducing security
posture and (typically) without seeing or touching source code. Don’t worry – we will teach you the
tricks.If you enjoy problem solving on
the Windows platform, you will love this job.
Interested? Have some experience writing Windows apps in native C++ or C? Know a little about how Windows works? Think that being handed unknown problems and asked to fix them is more fun than a regular job? Then read the blog post and apply!
Saturday, October 02, 2010
As a Canadian RD, MVP, speaker, and general involved-in-the-developer-community-person, I interact a lot with the nice folks at Microsoft Canada. It's not unusual for Canadians to be transferred to Redmond to work at "the mother ship" and I tend to keep an eye on them in their new roles and watch what they're up to. That's even more likely when they go to an area that interests me, as Mark Relph
did in the summer of 2009.
He appeared recently on Dot Net Rocks
to talk about developing for Windows and I really enjoyed listening to the episode. I'm not the only one keeping an eye out, obviously, since John Bristowe blogged a nice summary
of the episode with helpful links. Be sure to read that, then listen to the episode, then come on back for the links.
Thursday, September 30, 2010
By now I'm quite addicted to jumplists. When I want to open a PowerPoint deck or a Word document, and I have another one of those open, I just right-click that instance, spot my document among the recent documents, and click it to open what I want. It frees me from remembering exactly where documents are, or opening folders just to open documents they contain, and I like it a lot. I also like the tasks lists that more and more applications are adding, like these:
But older apps have so much less to offer:
What if you could add tasks to the jumplist of any application, without needing access to the source code? That's what Jumplist Extender does. There's a nice review on How To Geek that demonstrates adding tasks to the calculator that comes with Windows.
Neat, isn't it? Get your own copy and have some fun.
Tuesday, September 28, 2010
I love this image:
I know this is true because in my role as friends-and-family help desk, I get people to read the error messages and then I repeat whatever they just told me and then they are like "oh, I get it! Thanks! I'm glad I know someone who understands these darn computers!" This works over the phone when I can't even see the message.
Now why am I mentioning this, besides the fact I love this dialog? Because it comes from a lovely blog entry by Chris Jackson on why app compat problems can't be fixed by talking to the user about them. You slave over a lovely dialog with a button which might as well say CLICK HERE TO GET A VERSION THAT DOESN'T HAVE THIS PROBLEM or a checkbox that might as well say CHECK THIS IF YOU DON'T THINK ITS A PROBLEM AND ARE SICK OF BEING REMINDED but instead the user clicks JUST THIS ONCE I WANT TO USE THE OLD ONE BUT BE SURE TO TELL ME ALL THIS AGAIN NEXT TIME.
Is there a solution? I don't know. But you need to know people are like this.
© Copyright 2021 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Saturday, January 16, 2021 3:26:32 AM (Eastern Standard Time, UTC-05:00)
On this page....
Pluralsight Free Trial
Click Start a FREE 10-Day trial