Microsoft
Apparently the last time I was on Codeplex I didn’t even realize it, but as of February 28th, I’ve been a member of Codeplex for two great years. Since then I’ve posted enough projects to be in the top 20 of the entire site! I’ve had a few talks with Codeplex folks and really respect what they’re doing. Being able to host code and make it available to the world is an amazing thing. I used Sourceforge a few years ago, but I never felt that it was a good enough fit for Windows projects. I switched over to Codeplex...
In the Last Post Previously, I’ve spoken about about Visual Studio and Expression Blend, styles and templates, and some of the important foundations of XAML-based databinding. In this post, learn about customizing your applications by writing reusable code components that can be linked in declaratively. Making It Do Your Bidding To really make your Silverlight application look good, you’re going to need to resort to custom code sometimes. The instinctive thing to do is to wire up event handlers to run at various times to create objects, adjust bounded values, or to start animations. As much as...
In Case You’ve Just Tuned In… In my previous post, I talked about Visual Studio vs. Expression Blend, styles, and templates. In this post I’ll talk about databinding. The Ties That Bind As with WPF, databinding is an incredibly powerful feature of Silverlight. The ability to declare a relationship between properties of an element and the properties of an object is amazing. You can bind the properties of Silverlight controls to any CLR object’s public properties, but it will be a one-time binding only. Ideally, you’d probably like it if a Label would update when its associated...
I recently gave a talk for the Corvallis .NET User’s Group (CDNUG) about using Silverlight as a developer. Silverlight is pitched as a Flash-replacer, a video streaming enabler, and a designer’s dream, but it doesn’t get much love for business applications or more general use. This isn’t actually fair, as Silverlight has amazing databinding and custom presentation features just like it’s older brother WPF. Tooling Around The first challenge to developers with Silverlight is the tooling. We devs are used to our environment being a certain way. Visual Studio, SQL Server Management Studio, and other similar applications use...
I’m up to 13 projects on CodePlex! Most of them are Coding 4 Fun projects, but I have a few of my own too. I have a few more to post and hopefully I’ll get to them soon. If you haven’t used CodePlex for your own code yet, you should. Even if you aren’t thinking of it as some big project, you get some great benefits. First of all, it’s backup. You don’t need to be so worried if your system goes south. It’s backed up. Furthermore, it’s in source control so you can go back and see previous...
OK. So this is going to be a cross between a rant and constructive criticism. I’m sure that Microsoft has great reasons that they created MEF (Managed Extensibility Framework) the way that they did, but it’s just tantalizingly close to perfection, so I’m going to complain about it anyway! For two of my recent articles, I’ve been working with MEF to enable an addins platform for a utility runner. MEF does some nice things: It makes it easy to designate classes as extensions (define an addin) It makes it easy to...
So I’m typing a document, and suddenly I realize that I must have just hit the CAPS LOCK key. I noticed this right after typing “lOCATION” when all of a sudden Word autocorrected it to the right case *and* turned off the CAPS LOCK key! Very cool. I tried again with just typing it with CAPS LOCK on and getting LOCATION but it didn’t do it. It’s smart enough to realize that if I type in reverse sentence case I probably didn’t mean it. This is a welcome feature.
I do a lot of math work at home with my boys, and creating random problems for them to solve can be challenging. I just discovered a Microsoft Education Labs project that generates worksheets based on a sample problem. Kind of like Pandora (music), give it a problem you “like” and it comes back with more, with a similar difficulty. The problems are embedded directly into Word with solutions on the last page. You can do basic math, algebra solving, and more. Use the Math Input Panel in Windows 7, or use their specialized syntax. Very easy! App in...
I should have blogged on this beforehand… but on Saturday I gave a talk about Windows 7 for developers at the Iowa Code Camp, and last night I gave another similar talk to the Cedar Rapids INETA group. There are lots of neat new features to take advantage of. The taskbar alone offers peeks and previews, custom buttons on preview, alerts/progress, even icon overlays (something that would have really come in handy with Notification Icons!). The intent is to move away from the notification area now and they’ve really provided some good tools for it. I always have fun...
So after playing with the TouchSmart from the user point-of-view, it was time to take a look at the dev story. It turns out that touch-enabling your applications in Windows 7 will be a great deal easier than before! This isn’t just detecting that there was a touch somewhere (like on a PDA/smartphone), but keeping track of multiple touch points, and understanding gestures (select, pan, zoom, rotate). There are three levels of compatibility depending on how much work you want to do and what your app needs to accomplish: Level One: Essentially do nothing. As long as your application...
Well this has been another great day! The focus was on Windows 7 today. I got to play with the HP TouchSmart PC for one thing. It wasn’t as cool as I’d hoped! Touch is a bit laggy and not all that accurate much of the time. Instead of typical touch screen technology (capacitive or resistive) it uses cameras. It can only detect two touch points, but it got confused pretty often. We talked a lot about the ribbon user interface paradigm as seen in Office 2007, and sometimes called the Fluent UI. It looks like there will be...
Well it’s been another great day! I love learning these under-the-covers details about Windows 7. New updates to BITS, service control, PowerShell V2, and energy efficiency. I’ve got lots of ideas for talks I’d like to do, code snippets to write, and blog entries. Of course the concepts here are evolution for the most part so far. The revolutionary stuff comes the next two days! Still though, it shows some good work coming out of MS. Still no FTP support in BITS. This was disappointing to me. From the start, this is what has prevented it from being a truly...
This week I’m in Redmond for some training on Windows 7 and Windows Server 2008 R2. It was quite a day and it will be quite a week overall. I spent a good chunk of the morning listening to Mark Russinovich. Having used his Sysinternals tools for years, and seeing his move to Microsoft (currently a Technical Fellow), it was a neat experience to be able to be one of a fairly small group in this talk, getting to ask him questions when I needed to. He’s a great speaker and knows the kernel like few people do! I...
I’ve been really excited about getting my hands on the Windows 7 beta from everything that I heard about it. I finally got the official download link and installed it on my Acer Aspire One (1GB RAM, 160GB HD). It is just perfect so far. I had been running Vista Home Premium on here before, and honestly it was pretty good, but Windows 7 definitely installed faster, boots up faster, and is just smarter to use. A few small things really make a difference. The no-hassle wireless networking, Start items disappear when you are searching by typing, Aero Peek...
Well I decided to take the plunge. At a virtualization roadshow event, a fellow lab proctor asked me if I was using it yet. I’ve always gone with Virtual PC since it’s so straight-forward. Virtual Server just seemed so… server-like! I have wished that I could remotely startup a VPC, but in the past I’ve just gone to the computer in question and launched it. From there, I need to either use the Virtual PC software locally or enable Remote Desktop sharing on the guest. This isn’t ideal though. If I’m running a client with RDP support (XP Home, pre-XP,...
In case you missed this, Microsoft recently released the Image Composite Editor (also known as ICE). This is a very cool app for doing panoramic pictures. I love Autostitch, but you need to reset settings each time, and you can only choose JPEG output (though 100% quality is darn good). ICE lets you output in JPEG, TIFF, BMP, PNG, HD Photo, and even the interactive Silverlight Deep Zoom format. It defaults to 100% scaling (Autostitch defaults to 25% or something like that), and it even auto-crops for nice clean borders. Not only that, but it’s fast, and the user interface...
I’ve got a new system setup now. From the title you’ve probably figured out what it is! I bought the Shuttle KPC barebones motherboard (only $99!!). I also got the 650GB SATA drive from Newegg. I already had 2GB of memory from my main desktop, and the processor was only another $40. It runs like a champ and I now have four machines backed up nightly (I’ve never been able to say that before!) and all of my network files on a server-class OS. Installation was a snap. It’s obviously Windows Small Business Server 2003 under the hood so...
I got an email yesterday from Microsoft letting me know that I’ve been awarded MVP status for Visual C#! I was nominated, but honestly I didn’t hold out much hope that I would get it. There are many people much more active in the community than I am. I’ve done some fun things, but not enough to expect this. So I’m very happy! There are some cool perks, but the best part is being a part of the greater MVP community. These are people who have done some very great things and to be part of that group is the...
How can this be so difficult? In Windows Forms applications, you just call Application.Restart() and your app goes away and restarts. What could be easier! In WPF, not only is the Restart method removed from the Application object, apparently the feature is just completely unsupported. Forum responses from Microsoft suggest disassembling the BCL code to see how the Application implements it, but the poster points out that it's non-trivial, and even at that it's not correct. Not that I ever noticed before, but the command line arguments don't get passed into the restarted process. How wild is that! Another message...
Dividing up work to run in separate threads can be really challenging. Proper division of labor, synchronization, scheduling, and all that is just a tough job. I've gotten pretty well-versed in Windows concurrency using the standard Windows.Threading classes (many of them wrapping the Win32 entities). Understanding semaphores, mutexes, locks, wait queues and other related concepts takes some real work and head stretching. Once you understand them though, you may still struggle with actually fitting them into your code properly. In many cases, you just need to run some code in parallel with your UI. Much of this doesn't even apply...