Koen about .Net

February 17, 2010

Silverlight Reference Architecture

Filed under: Development — Tags: , — koenwillemse @ 20:53

I’ve been working on a Silverlight application which uses RIA services. Most of the blog posts I see out on the web are using DataSources directly etc. This is not a solution which is enterprise ready, testable, maintainable etc…. Off course it’s obvious that when people are demonstrating new technologies, they won’t do this in a very complex scenario, but I’m a bit disappointed that there aren’t much posts about using RIA Services in combination with MVVM, TDD etc…

So I decided to do the development with a solid architecture in mind and start blogging about it. But I noticed that my colleague Dennis Doomen was working on the same thing, which he will use on the session he is going to host, and published a nice picture about how he envisions his default Silverlight architecture. The good thing about this is that I had almost the same thing in mind, so we’re pretty much on the same track here. The thing that’s maybe is a bit doubtfull is that he is sitting about 5 meters away from me at the customer where we are working now ;-).The picture as he drew it can be found here.

So as I’m working on this architecture of mine, I’ll try to blog occasionally about it, when I’ve made progress or added some important / infrastructure functionality.
Hope that it helps some of you guys. If it’s helpfull, pelase let it know.


July 14, 2009

Problems with session time-outs & Load balancing

Filed under: Development, Release management — Tags: , — koenwillemse @ 13:00

When we went live with our last big project, we got a lot of complaints about users getting logged out way too fast. They indicated that this occurred within a few minutes. We absolutely didn’t understand this as we configured the session timeout to be 20 minutes.


We googled a lot and found a lot of posts concerning settings in IIS. We checked those, made some modifications and thought the problem would be fixed. But of course… Not :-(. We double checked the settings, and again and again… A lot of googling time later we found a post (I forgot the url) about session timeouts and load balancers. And then we finally found it.


The problem is that the production environment uses a load balancer for our two front-end servers. Because we use in process session state the network guys configured the balancer to use sticky sessions. We thought that it would work OK then. But then we got to the problem using the earlier mentioned post. Load balancers also use a sliding timeout on the stickyness of the session! We checked this with the network guys and what was the surprise: default value of this timeout was 5 minutes! So we updated this to 30 minutes and it worked fine again :-). Finally, after a lot of hours googling, checking settings, double checking them etc, we found the problem.


What are the lessons learning?

1. Make sure that when a load balancer is used and you use in process session, that the expiration of the sticky session has a correct timeout set.

2. Make sure that you staging area has the same network topology as your production servers. We didn’t have this (now we do!), otherwise we would have run into the issue way earlier and our users would have been less annoyed ;-).

June 11, 2009

Experiences with creating a Service Oriented Architecture

Filed under: Development, Projects — Tags: , , — koenwillemse @ 21:53

In May 2007 (yes a long time ago already ;-)) I started working for the customer I’m still working for. One of my collegues, Dennis Doomen, started here 2 months earlier with setting up a full SOA architecture for .Net as a POC. I joined him for supporting the internal employees by learning .Net (all previous Oracle developers) and also as a developer. When the project was in the acceptance phase, I became the Team leader when Dennis started working on a new project (for the same customer) and now I’m currently holding the position of architect for the systems build in .Net and the newly created front-end applications based upon the architecture.

In the past, the development for this company was fully based upon Oracle & Oracle Forms. They made a (small) shift by introducing a .Net web application for the external customers, which we have build. The new system was still largely Oracle (as database, but also Oracle Forms for the application for the internal users and unfortunately a lot of business logic). During the this period, TFS was introduced, which is now also being used for bug registration / tracking. Next to those initial application, more web applications have been created using .Net.

We created a Service Oriented Architecture based upon the following technologies: Web Service Software Factory (using WCF) for our backend logic, Web Client Software Factory for our front-end application(s), Enterprise Library Logging Application Block, Unity and the Enterprise Library Policy Injection as some of the base components. Next to that we also used open source components, like RhinoMocks and Nhibernate.

In the last 2 years we have run into issues, especially just after Go Live, and also during the development period. Looking back now, we made some good choices, but also some that are not so good. I’m going to try to post about some of the good choices (in my opinion) and about the bad choices and how we have fixed them or how we are planning to fix them. Hope I can help other people not to make the same less good choices and help them make better choices.

Blog at WordPress.com.

%d bloggers like this: