Posts

Showing posts from 2013

Early Impressions of AngularJS

Update 10/2016 - This posting is better viewed in my new blog . Understand first, I've only been working with Angular in my free time over the last couple weeks. With that said I must admit I'm REALLY impressed! Very exciting framework. I dove into Knockout quite extensively a while back and I have high regard for that framework. However, I'm finding Angular seems to be a much better solution for the problem spaces I typically find myself working in. Simply put Angular addresses not only data binding (which originally lead me to Knockout) but also a host of issues which arise when trying to create an "application". I'm having a ton of fun learning Angular in conjunction with TypeScript. More later.

ASP.NET Web API doesn't play nice with Entity Framework's dynamic proxy classes.

Update 10/2016 - This posting is better viewed in my new blog . I have a Web API project which leverages an SQL database through Entity Framework. Pretty standard Microsoft technology stacks I've been using for years. When using EF I've historically disabled lazy loading and proxy generation due to lack of need for those features. This project I left them enabled. I quickly started getting serialization exceptions from my controller. A little googling and I found this is a known issue with the use of EF dynamic proxies and serialization (specifically JSON). Infinite reference loops can and often do appear in EF entities. Take the following example. public class Parent { public ICollection<Child> Children { get ; set ; } } public class Child { public Parent Parent { get ; set ; } } A Parent has references to many Children and each Child has a reference to the Parent. An infinite loop occurs when the serializer attempts to fully resolve either of

The Death of FitTrack

Image
Update 10/2016 - This posting is better viewed in my new blog . While working on the MVC implementation for my FitTrack application I googled "cottage cheese" to cross reference a menu item entry. This is what I got. That search was essentially the death of my FitTrack application. Notice the variants of cottage cheese you get if you select the drop down arrow. Then notice the measurements you get on next line, beautifully data bound to the variants drop down above. Awesome! With FitTrack's Silverlight UI implementation I came pretty close to this level of responsiveness but my MVC implementation falls FAR short of what google is doing with a simple search on a food name. I'd been pretty happy with what I'd accomplished using Knockout.js, Bootstrap, MVC and CSLA until I saw that. Simply put a basic food name search on google results in something that FAR exceeds anything I could ever hope to provide for a cross platform exp

How HTML5 destroyed my CSLA dream

Update 10/2016 - This posting is better viewed in my new blog . Let me start by stating, emphatically: I LOVE CSLA .NET ! I first became aware of this excellent framework in 2008 when my boss dropped Rocky's book Expert C# 2008 Business Objects on my desk. In very short order I recognized the enormous benefits CSLA could provide to developers like myself who where trying to to produce great enterprise applications. The idea that I could create completely self-contained classes which would flow naturally between the various application layers and physical tiers made me fairly giddy with excitement. This excitement was reinforced by my efforts as I implemented user presentation layers for WinForms, WPF and Silverlight all based on the same business core with little impedance between the architectural layers or the physical tiers. Concerns such as validation and n-level undo were mostly handled by the CSLA framework with very little additional effort from the developer (me).

Developing one step forward and two steps back.

Update 10/2016 - This posting is better viewed in my new blog . I think most developers will probably relate with this frustration. I don't know how many times I've gone to add some cool new feature to an application only to find that it requires an update to some dependent project or another. Almost without fail such an update requires further updates and somewhere in the chain is one or more breaking changes. The result always seems to be that my "quick" add of the cool feature spirals out of control and ends up costing me hours of frustration as I try to get my project back to the state I started in.

Windows Application Menus Left or Right?

Update 10/2016 - This posting is better viewed in my new blog . Until recently I didn't know that menus in Windows applications (File, Tools, Help, etc.) could be presented in more than one way. I discovered this little feature because my new Lenovo X1 Carbon came with the setting set to right-handed which is the opposite of my previous dozen plus Windows installs. It drove me a little nuts so I went looking for a way to change it. I pretty quickly discovered that the option to change this is only enabled if you have a touch monitor, which my X1 does not. For touch monitors the default is right-handed and for non-touch default is the left-handed that most of us are accustom to. The problem was that since my X1 has no touch screen there was no available setting to change this back to the non-touch default. It appears that Lenovo imaged their Windows 8 install from a touch enabled device then installed in on my non-touch enabled X1 locking in the touch-enabled default. After

Lenovo Thinkpad X1 Carbon

Update 10/2016 - This posting is better viewed in my new blog . After almost five years with my previous laptop I was finally given a new one at work. My old HP has been an absolute work horse and I've been very happy with it but it was showing its age in a big way. The battery (my third) was quickly dying, the original hard drive died a couple months back and one of the keyboard's shift keys was failing to register key press about half the time. When I replaced the hard drive a couple months ago I installed Windows 8 only to find out that several hardware components do not have drivers specifically for Windows 8, most notably the ATI Radeon 2600 HD mobile GPU. This had the effect of causing my laptop fan to run at full speed continuously. A little annoying for both myself and my cube mates to put it mildly. Enter my new laptop, a Lenovo Thinkpad X1 Carbon. The first thing that struck me is how beautiful this machine is. It's thin, light and flat black. So much lighte

Microsoft Patterns & Practices Symposium 2013

Update 10/2016 - This posting is better viewed in my new blog . I spent three days last week at the 2013 P&P Symposium on the Microsoft campus in Redmond WA. I had high hopes going in that I'd take home a lot of new and interesting knowledge. I ended up being pretty disappointed. This is a list of the sessions along with the immediate impressions note I made for each one as it finished. Day 1 Keynote: Cloud Unplugged, Scott Guthrie: Scott was good but this was unscripted. Resilient Cloud Apps, Mark Simms: Good info. Check out the Transient Fault Application Block. CQRS, Greg Young: Separating data CRUD operations into commands and reads. Meh. Autoscaling in Windows Azure, Grigori Melnik: Nice info poorly given. Check out the Autoscaling Application Block (Wasabi). Windows Azure Active Directory, Vittorio Bertocci: Bingo! SSO! Closing Keynote: Felicity Aston, British Explorer: 60 days alone on the South Pole. Day 2 Keynote: Windows 8 Unplugged, Ales Holecek: