CODE eXPerience

Jan 13

wpf7 Error 8 Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

Applying a design on a WP7 application I got the following error message(on compile):

Error    8    Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

Not very intuitive neither friendly; couldn’t find much on the internet either so I had to dig the design element by element, check the types styles are applied to, etc.

Finally I discovered that I had a style defined for TextBlock target type and I was trying to apply it to a TextBox. Lack of support from VS and Blend in this matter.

Jun 15

Performance on Silverlight 4 Applications

Hello there!

In December 2010 I presented the design pattern for WPF and Silverlight applications recommended by Microsoft itself. MVVM it’s a deerivation from MVC design pattern and I will get back with a blog post about that presentation.

Following that presentation, Wednesday, 15 June 2011 I have came up with a new presentation which treated the performance of applications built on top of Silverlight 4, and I was pleased to catch public attention with architecture debate on what we had.

First of all the application was supposed to get 18 000 objects from the server and display them in realtime without pagination on the UI, all the controls which presented content had to be customized.

I used a grid from Silverlight toolkit, and customized all columns and cell from that grid so I can display all the information form the server.

FYI, the information from the server was structured in Games -> Events -> event details; events had different number of details so I needed to customize to a very low level all the interface elements.

In order to create a very responsive application for the user, and user experience to be as fluent as possible I applied a couple of tricks:

1. While performing heavy operation in background use dispatcher to you can update the UI

2. Structure your resources on shortest paths: e.g. I put all templates on the app.xaml -> it’s bad for the another developer, but I was able to deliver a good user experience

3. In order to get all that information form the server I needed to split down my calls: I did it on Games -> call the server for each item. Later, the profiler told me I splitted that too much

So far the experience of the user was acceptable, but I felt like I needed further optimization.

As next steps, which IMHO every developer should take, I launched a couple of profiling tools and which are available only with Visual Studio Ultimate edition (2010).

1. Sampling profile: it measures the CPU samples of your application. To find out more about sampling read this.

2. .NET profiler instrumentation: this method detect long executing methods from your code.

3. .NET memory allocation: as name says this profiling method allows you to target excessive memory allocating code blocks, but this is not the only way to do it: VMMap also can help you a lot!

4. (my favourite) Concurrency profile:  this method will help you with the part that you cannot even detect from inspecting the lines of code: resource contentions and thread synchronization issues from your application. Yet this is a very tricky part and only some of the developers are aware of this aspect.

Hope to write soon about the next presentation!

Jan 19

ASP.NET MVC 3.0 Fundamentals - Online Training Course for .NET Developers -

A good and organized kick-starter for ASP.NET MVC3.

Dec 29

IIS7 App pool identity access to SQL Server on the same machine. What happens on distributed architecture?

Have you ever tried to use the Default application pool identity(ApplicationPoolIdentity) in IIS7 and provide trusted access to a SQL Server database?

Some of you may know about the new, innovative application pool identity mechanism that IIS 7 provides: each application pool will have a virtual user created (when ApplicationPoolIdentity identity is used) and you are no longer required to manage that.

Quite fine ‘till here, but what about trusted connections, to a SQL database for example?

Then you’ll have to give rights to the “IIS APPPOOL\research” user from SQL Server.

You won’t be able to find that user as a user object using “Advanced” option from Select User or Group dialog window.

You wonder what happens on a distributed architecture?

Oct 25

JQuery Mobile with ASP.NET MVC -

Can’t wait to play with it! :)

Sep 01

Change default browser in Visual Studio

Did you ever found yourself in need to change the default browser when running your web applications from Visual Studio? I’m sure yes. Now there is a lot more easier way to do that:

Visual Studio default browser choosing

Find out here more details.

Aug 29

Launch List

#entrepreneurs check this out: “Launchlist is intended to help and encourage web designers and developers to check their work before exposing it to the world at large.” Find it here.

AppInventor for Android

Apple iPhone 4 is compared to Samsung l9000 Galaxy S. Yes, the smart phone that worth no less than 1000 $ is compared to a much more cheaper one.  There must be a reason for that. I think Android OS is part of the success of Android based smart phones  and thus  will end in a large use of it. Know how to build your own application on Android: http://appinventor.googlelabs.com/about/.

I forget to mention this project is supported by Google.

Html5 Boilerplate

"Boilerplate is not a framework, nor does it prescribe any philosophy of development, it’s just got some tricks to get your project off the ground quickly and right-footed."

says all about it!:)

Find it here.

MVCContrib Gallery

During my work experience I met several situations were companies developed several galleries of own developed controls and templates. It is a good practice to develop once and reuse.

However there are several disadvantages:

- The controls and templates become quickly obsolete

- You need a strong support documentation for them.

- Not having a large community feedback may drive to a wrong approach, and/or wrong approach to continue their development further.

Considering previous deck I can say that open/public galleries are better to support and develop; MVCContrib Gallery is such an example. It’s description quoted from the Codeplex: “
This gallery is filled with project styles that work with the out of the box markup from the ASP.Net MVC project template. These were origionally part of the www.asp.net website but went away after a site redesign. Since they were licensed under a Creative Commons licences, we put them up here and hope to have more submitted by great developers and designers like you!”

Here it is: http://mvccontribgallery.codeplex.com/ Go and use it!