Rockford Lhotka

 Friday, June 25, 2010

CSLA 4 beta 3 is now available for download.

This is the final beta release of CSLA 4. All work going forward will be focused on stabilization, bug fixing and updating sample applications. My current plan is to do a release candidate the week of July 5, and final release around July 15.

New features include:

  • Improved ASP.NET MVC 2 support
  • Server exceptions can be altered by your IDataPortalExecptionInspector implementation
  • ERLB now has a default AddNewCore() implementation
  • Numerous other bug fixes and minor tweaks based on user feedback

As always, see the change log for a list of important changes in this release.

Given the short timeline until release, it is really important that anyone considering using CSLA 4 in the near future help out by using the framework and identifying any bugs or stability issues. In short, I need your help to make this a successful release.

Thank you!

Friday, June 25, 2010 11:30:18 AM (Central Standard Time, UTC-06:00)  #    Disclaimer

CSLA .NET 3.8.4 is now available as a beta download. This is mostly a bug fix release to address a few issues from 3.8.3, plus some ASP.NET MVC work.

Version 3.8.4 targets .NET 3.5 and Silverlight 3 (though with a little effort it works with Silverlight 4 as well).

See the change log for a list of changes. There aren’t many, but if they affect you then they are important.

The only feature change in 3.8.4 is that most of the new ASP.NET MVC 2 support from CSLA 4 has been back-ported to 3.8. This means that the Csla.Web.Mvc project now targets and supports ASP.NET MVC 2, and provides more features and functionality that was there in 3.8.3.

This is a stable beta, given the small number of changes (other than the MVC support). So if you are affected by any of the issues listed in the change log I strongly recommend moving from 3.8.3 to 3.8.4 beta to test and utilize the changes.

Friday, June 25, 2010 11:19:03 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Tuesday, June 8, 2010

Over the past few months I’ve been researching, writing and speaking about MVVM quite a lot. One of the teaching tools I’ve developed has turned out to be useful for both teaching and actually building applications. This is the Bxf (Basic XAML Framework) code I’ve developed.

I must confess, I have little interest in becoming a UI framework author. But I also recognize that you can’t do any UI pattern like MVVM (or MVC) without some minimal framework support – there’s just some plumbing code you must have for the pattern to be actually useful.

Bxf is the minimum set of functionality I’ve been able to identify to support MVVM, with a couple other key goals:

  1. Support MVVM so a developer only creates a View, ViewModel and Model
  2. Same functionality/code in Silverlight and WPF
  3. Zero code-behind the XAML – any UI code goes in the viewmodel, and binding/commanding/trigger actions are used to allow the view to interact with the viewmodel
  4. Enable the use of the Visual Studio 2010 XAML designer (“Cider”), most notably the drag-and-drop data binding support it provides
  5. Enable the use of Expression Blend

I’ve included Bxf in some samples from the Visual Studio 2010 launch and for CSLA 4. But I’ve decided that’s too random, so I created http://bxf.codeplex.com to house the code.

My hope is that other people who find Bxf useful might choose to join the project as contributors and extend it to be more broadly useful. However, I also hope that the framework remains extremely simple and minimalistic (since there are already several quite robust and complex frameworks out there for people who need more than a simple solution can offer).

Bxf | Silverlight | WPF
Tuesday, June 8, 2010 12:23:23 PM (Central Standard Time, UTC-06:00)  #    Disclaimer

Know CSLA .NET? Looking for a job with a cool company?

Magenic is hiring CSLA developers for consulting work, so if you want to work for a great company, with some really fun and smart people, often using CSLA, you should contact one of our recruiters!

p.s. Magenic is also open to working with independent contractors through a subcontract agreement, so let us know if you are interested in that as well, thanks!

Tuesday, June 8, 2010 11:49:14 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Wednesday, June 2, 2010

I am working on a video series discussing the use of the MVVM design pattern, plus a “zero code-behind” philosophy with CSLA .NET version 4.

I’ve decided to put the intro video out there for free. It is a good video, covering the basics of the pattern, my approach to the pattern and how a CSLA-based Model works best in the pattern.

http://www.lhotka.net/files/MvvmIntro.wmv

The rest of the series will be demo-based, covering the specifics of implementation. I’ll add another blog post when that’s available for purchase, but I thought I’d get this intro online now so people can make use of it.

Wednesday, June 2, 2010 12:36:58 PM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Wednesday, May 26, 2010

Thanks to Russ Blair, there is now a time-based index for all the video segments in the CSLA for Silverlight video series:

http://download.lhotka.net/SLVid01Index.htm

This index makes it much easier to find specific topics within the videos. As always, if you’d like to buy the video series, please visit http://store.lhotka.net.

Wednesday, May 26, 2010 9:11:01 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Thursday, May 20, 2010

If you are a computer professional looking for a great place to work, you might consider Magenic. We’re looking for good consultants in San Francisco, Minneapolis, Chicago, Atlanta and Boston.

In particular, we’re looking for people with really good .NET development skills, XAML and/or web design skills, SharePoint development skills and SQL Server skills.

http://magenic.submit4jobs.com/

Magenic is a pure Microsoft focused consulting company. As such, you’ll get to work with people who share your technology focus and interests. All we do is .NET or .NET related work like SharePoint and SQL Server. Our clients are in nearly every vertical market, and that means we get to use cool technologies – from ASP.NET MVC and Silverlight to SQL BI tools and BizTalk to TFS and Subversion. Some of our projects involve large, geographically distributed teams. Others have just a few Magenic consultants working with a customer.

Magenic Studios is our UI design group. It is a national group, which means there’s travel, and also means the people in Studios get to work on the coolest UI design projects. The focus of this group is XAML and web design, not development. We hire people who are technology savvy – we’re not looking for Photoshop-only people, but rather our people know html and css and understand how styles cascade and interact. The same on the XAML side – we’re not after C# skills, but our people understand why a StackPanel is preferable to a Canvas, and how to use styles to control the appearance of the UI.

Our consultants are experienced and enthusiastic – which means it is a lot of fun to work with them. Every time I get to interact with a Magenic project team I learn something new, either about .NET itself, or ways in which the technology can be applied to solve complex business problems. And our consultants interact across the company, freely tapping into the shared experiences and knowledge of their colleagues. Magenic has a great culture for passionate technologists!

For my part, I’ve worked for Magenic for nearly 10 years now, and it has been a great experience. I love working with the kind of people Magenic hires. And I love working for a company where the owners and managers put so much energy into making the company a good place to work, while also remaining focused on keeping the company successful, sustainable and vibrant. In these economic times (like those of 2001-2002), maintaining that balance is challenging, so it is nice to be able to have confidence that the company is in good hands.

Of course we all hope the economy continues to improve, and the reality is that, thanks to current economic improvements, Magenic needs more consultants now in all our offices. So if you’ve been a professional technologist for a few years and want to work at a great company with people who share your passion for software, UI design, web work or data – you should really check out Magenic.

Thursday, May 20, 2010 8:36:54 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Wednesday, May 12, 2010

Magenic is hosting a Code Mastery event in Chicago on May 26 – which is very soon!

Code Mastery is a free training event for Microsoft .NET developers. This is two tracks of high quality, in-depth technical training on current technologies from Microsoft. We’re covering Silverlight, WPF, SharePoint, TFS, Pex, CSLA .NET version 4 and more!!

The event is being held at the Microsoft offices in Downers Grove, IL. This is an all day event and lunch is provided for attendees.

Register now to reserve your seat – don’t miss this great opportunity for high quality, free training!!

Wednesday, May 12, 2010 10:46:41 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Friday, May 7, 2010

There’s a lot of understandable buzz about the iPad, including this well-written post that I think conveys something important.

As a Microsoft-oriented technical evangelist I’m now almost constantly asked what I think of the iPad. I’ve spent perhaps a total of 20 minutes with one, so I’m not an expert, but I can confidently say that I found it very pleasant to use, and I think it is a great v1 product.

(as an aside, many people also call it a “Kindle killer”, which I absolutely think it is NOT. It is too heavy, the screen is shiny and backlit and the battery doesn’t last 1-2 weeks – it was almost inconceivable to me that anything could replace real books (but the Kindle did), and the iPad certainly doesn’t compete with real paper or the Kindle)

I think the iPad reveals something very, very important. As does the iPhone, the Android phones and the upcoming Windows Phone 7: most users don’t need a “computer”.

Not a computer in the traditional sense, the way we as software designer/developers think about it.

Given the following:

  • “Instant” on
  • Primarily touch-based UI for the OS
  • Apps (and OS) that is designed for touch through and through (and no non-touch apps)
  • Light weight
  • Good battery life
  • Good networking (including home LAN, corporate domain, network printing, etc)
  • Portable peripherals, and standard connectors (USB, Firewire, ESATA, etc)
  • Docking station capability

I submit that your typical user doesn’t need a traditional computer. Sure, there are the “knowledge workers” in accounting, who push computers harder than developers do, but they aren’t a typical user either.

From what I can see, a typical user spends a lot of time

  • reading and composing email
  • using specialized line of business apps, mostly doing data entry and data viewing/analysis
  • browsing the web
  • playing lightweight casual games (solitaire, Flash-based games, etc)
  • using consumer apps like birthday card makers
  • organizing and viewing pictures and home videos
  • creating simple art projects with drawing apps, etc

None of these things require anything like the new i7 quad core (w/ hyperthreading – so 8 way) laptop Magenic is rolling out to all its consultants. Most users just don’t need that kind of horsepower, and would gladly trade it to get better battery life and more intuitive apps.

Which (finally) brings me to the real point of this post: today’s apps suck (just ask David Platt).

David talks a lot about why software sucks. But I want to focus on one narrow area: usability, especially in a world where touch is the primary model, and keyboard/mouse is secondary.

I have a Windows 7 tablet, which I like quite a lot. But it is far, far, far less usable than the iPad for most things. Why? It really isn’t because of Windows, which can be configured to be pretty touch-friendly. It is because of the apps.

Outlook, for example, is absolutely horrible. Trying to click on a message in the inbox, or worse, trying to click on something in the ribbon – that’s crazy. I’m a big guy, and I have big fingers. I typically touch the wrong thing more often than the right thing…

Web browsers are also horrible. Their toolbars are too small as well. But web pages are as much to blame – all those text links crammed together in tables and lists – it is nearly impossible to touch the correct link to navigate from page to page. Sure, I can zoom in and out, but that’s just a pain.

The web page thing is one area where the iPad is just as bad as anything else. It isn’t the fault of the devices (Windows or iPad), it is the fault of the web page designers. And it really isn’t their fault either, because their primary audience is keyboard/mouse computer users…

And that’s the challenge we all face. If the traditional computing form factor is at its end, and I suspect it is, then we’re in for an interesting ride over the next 5-7 years. I don’t think there’s been as big a user interaction transition since we moved from green-screen terminals to the Windows GUI keyboard/mouse world.

Moving to a world that is primarily touch is going to affect every app we build in pretty fundamental ways. When click targets need to be 2-4 times bigger than they are today, our beautiful high-resolution screens start to seem terribly cramped. And these battery-conserving end user devices don’t have that high of resolution to start with, so that makes space really cramped.

And that means interaction metaphors must change, and UI layouts need to be more dynamic. That’s the only way to really leverage this limited space and retain usability.

For my part, I think Microsoft is in a great place in this regard. Several years ago they introduced WPF and XAML, which are awesome tools for addressing these UI requirements. More recently they streamlined those concepts by creating Silverlight – lighter weight and more easily deployed, but with the same UI power.

I’d be absolutely shocked if we don’t see some sort of Silverlight-based tablet/slate/pad/whatever device in the relatively near future. And I’d be shocked if we don’t see the iPad rapidly evolve based on user feedback.

I really think we’re entering a period of major transition in terms of what it means to be a “computer user”, and this transition will have a deep impact on how we design and develop software for these computing appliances/devices.

And it all starts with recognizing that the type of UI we’ve been building since the early 1990’s is about to become just as obsolete as the green-screen terminal UIs from the 1980’s.

It took about 5 years for most organizations to transition from green-screen to GUI. I don’t think the iPad alone is enough to start the next transition, but I think it is the pebble that will start the avalanche. Once there are other devices (most notably some Silverlight-based device – in my mind at least), then the real change will start, because line of business apps will shift, as will consumer apps.

I’m looking forward to the next few years – I think it is going to be a wild ride!

Friday, May 7, 2010 10:16:26 AM (Central Standard Time, UTC-06:00)  #    Disclaimer
 Thursday, May 6, 2010
Thursday, May 6, 2010 11:30:45 AM (Central Standard Time, UTC-06:00)  #    Disclaimer