Oh yeah, and the TAO party was really great.
Steve Ballmer keynote
Great keynote today. Ballmer is a fun guy, and answered tough questions with a smile. He looked like a motivated, smart, and surpisingly honest guy. I got to ask him a question about Micrsofot's plan to offer an Amazon EC2 / S3 alternatice on the MS platform, and he pretty much told me it's in the works, but still confidential. We should know more in 3 months. But basically he admitted MS will have a hosted file storage and utility computing offer pretty soo. Exciting stuff.
UX Track - a failure
When I read about the UX track I got pretty excited. Information architecture. Interaction design. I thought I'd get a bunch of great tips, dos and don'ts that'd help me create great web experiences. I've attended 1 1/2 sessions, and it was quite a disppointment.
In session #1 (interaction design), we learned about the revolutationary concept of "brainstorming", but rebrnded under the name "ieation phase" - they're consultants, they have to pretend to be thought leaders to make money I guess. But nothing about actual interaction design in web apps.
Session #2 (information architecture) unveiled the secrets of folksonomy (fancy consultant word for tagging), and wasted 30 minutes of the attendees time in modeling a "Hotel" class. ("Hmmm.. it should probably have a name and a description, maybe a location as well? What data types could that possibly be?"). Are you kidding me??? This is what my interns do all friggin day!
UX track is a wonderful idea with incredibly poor implementation. 1 hour is not enough time to do group activities (which are overrated anyway) and learn something. Tell me something I odn't already know, or don't bother.
I wasn't the only one feeling that way. Other designers walked out. If Microsoft wants to keep Mix interesting by keeping a mix of designers and developers, they better fix this fast.
Other sessions
ASP.NET Ajax - nice presentation by Nikhil Kothari . Some nice little code snippets and Ajax best practices. I think it's worth mentioning XML-Script is pretty much dead in the water. Micrsosoft is looking at a different approach for client-side databinding and templating.
Great MVC session. Scott Hanselman is clever, funny guy. They're doing a really good job with that framework. The open space discussion afterwards was very interesting. It looks like we'll have to wait for the next preview to get better AJAX support, but they seem to be trying to monthly builds out, so that's encouraging. MS has a good team working on this.
Good quote from Scott: "compilation is really just a series of unit tests". He even went as far as questioning the purpose of compilation altogether. When using test driven development methodolgy (TDD), are strongly typed languages really just useful for intellisense support? Probably. But that's where Sscott and I disagree. Intellisense support and code readablilty are a big deal for me. My app has over 100,000 lines of code. I can guarantee you that if everything was loosely typed, handing code over to new developers / interns etc... would be a nightmare.
I also learned about how to use Linq's dynamic data binding when submitting a form. Pretty cool, but you gotta make sure you don't expose vulnerability. It reminds me a bit of SQL injections. Trusting the query makes coding easy and saves a bit of time, but can lead to serious security holes.
That's where Scott's recommendation of using custom objects between Controller and View makes a lot of sense. Only expose what the view needs to know. It doesn't solve the problem of trusting the query at the controller level though. Here's a concrete example.
Let's say theProduct class has a Name and Description Property. For whatever reason, in a specific context you only want to expose "Name" as editable in your HTML form. In asp.net, injecting more properties in the post data is difficult, if not impossible. When using a FormView/DetailsView, you'd need to inject a new databound control in the data control tree, all on from the client. You just can't do that.
In MVC, if using Linq dynamic data binding (something like Bind
So... watch out.
Another topic of discussion revolved around building business objects leaning towards the UI tier rather than data tier. A typical business tier might know about DataRows, DataSet etc... But think about business objects containing validation and presentation attributes around its properties. It can make view building pretty easy.
That's basically what SalesForce does. When building custom objects, you define validation rules at the object level. It makes a lot of sense IMO. The biggest complaint I've had from users though is the lack of customization at the presentation level.
Anyway, it was a very interesting chat with very smart people. I'd love to see the ability to set validation rules at the object level.


0 comments:
Post a Comment