MSDN Updates

Get Microsoft Silverlight

Friday, December 05, 2008

Session on Continuous Integration

I'm planning on giving a session on Continuous Integration using CruiseControl and nAnt. Started prearing my notes for it. Hope it goes on well.
I will upload my PPT and notes if any once I'm done with it.

Session on Continuous Integration

I'm planning on giving a session on Continuous Integration using CruiseControl and nAnt. Started prearing my notes for it. Hope it goes on well.
I will upload my PPT and notes if any once I'm done with it.

Tuesday, December 02, 2008

Search for Objects in DB

Came across this article. I'll dig into it later.

SQL Server Central

Wednesday, November 26, 2008

Performance Tuning in ASP.NET

I have a situation here.
We have a search criteria which returns about 70K + records. We have paging and the option to export to Excel. The earlier design was using caching which I promptly got it removed. Caching is not on a per user basis. So if there are two users trying to get the same report with different search criteria, one of them is surely in for a rude shock!
I ran the perf mon and saw that the large object heap size was going in GB's. The Gen 2 heap size was also huge.

So after reading this post from Tess i came to this conclusion.
Solutions:-
Option I- Session
The primary concern is disposing the objects after usage. If we run the perfmon, we see that the data gets moved to the Gen2. This is not good. The large object heap size also goes in GB's.

Option II - Cache
This seems to be the better solution under the circumstances. The advantages of using caching is that we can set the expiry to say 20 minutes. IN order to use the cache for each user, we can use the cache key as "Session.SessionID". This will be unique for each user.
This also moves the the object to Gen2 but from what I have seen, ASP.NET takes care of disposing the cached objects as and when it faces memory issues OR "memory pressures".
Additionally in the Session End event in Global.asax, we can remove the cache item.

Option II still has some issues to be resolved.

Monday, November 24, 2008

Meeting Jeff


I went to the Wintellect site the other day and got on Jeff's blog.
To my pleasant surprise, I saw that Jeff would actually be here in hyderabad. I immediately put in a note requesting him to meet me for a while. He replied back and said he would let me know. I was thrilled beyond words. When I came to know that I would be meeting him on Friday, I was so excited that everyone at my place knew that I was meeting him.
I waited outside the MS gate and there he was. With a very pleasant smile and a sore that :) we spoke for some time on a lot of topics. I was a little disappointed that I couldnt get to spend the whole afternoon (talk about wishful thinking eh :)) but it was awesome getting insights from the man himself!
We also did have a quick photo session! I did learn one thing though.. humility was at its best that day. I am now a bigger fan of the Wintellect team and I do hope to see them more often!

Thursday, May 22, 2008

Workflow Versioning

One of my assignments required me to build a state machine workflow. I started going through the Workflow foundation and built the workflow definition. I must say that working with WF was amazing. I think its one of the best things that MS has done! Yes it still needs some work but hey ... who says life is perfect!
Anyways I used the external data service to pass parameters to the WF from the host. we now had this requirement to change the WF definition. I was under the impression that his will not lead to any issues. I thought that as long as I was not adding a new state, the existing data which was created using the old WF definition should work fine. Turns out.. it does not!
Which is fine, considering the security point of view, data built using one version of the dll should not work with another version. But what is the solution.
The solution it seemed was to go for versioning. There are quite a few posts which talks about that so i'll not get into the details here. So we tried to getthe versioning to work but unfortunately we hit a dead end there. We then came to know through reliable sources(I'm not at a liberty to mention who) that for versioning to work with External data services, we may need to use a concept called correlations. Remember that serialization has to be enables for this. Now I looked around for some samples and found that it looked like a pretty simple task (though understanding it is not!) and i tried the same with my workflow. Surprise surprise... it didnt work at all. I did see some posts about how getting correlation to work with a state machine workflow is not an easy if not impossible task. I have still not been able to solve it (pressed for time) and we had a workaround. We built a small appllication which would take all the workflow data which was built using the version 1 of the workflow, use the new version of the workflow and recreate them. In the process, we had to sensure that all the workflows were in the same state as before. Our workaround was aided since our application database was also holding the WFGUID's. WE have done some testing and it seems to be working fine.
In the meanwhile I'll need to get back to the original problem and see if I can actually get this to work with a state machine workflow.

My reliable source also mentioned that the instance state table stores the version of the dll in the binary data. Hence if you ever get this error "System.IndexOutOfRangeException: Index was outside the bounds of the array. ", this is a versioning problem and then when you try to fix it using correlation or whatever is the right solution, you may get this error
"System.Workflow.Activities.EventDeliveryFailedException: Event "CRApproval" on interface type ", and if you do get this error ....
"Run to the Hills....
Run for your lives .... "

A tribute to one of the greatest bands ever :)

Friday, March 28, 2008

Who is an Architect

I have been playing the role of a Technical Lead for over 2+ years now.
A couple of weeks back, I had an interview for an architect's role.
It was a very interesting interview and it showed that I still have some way to go before I'm ready to be an architect.
From the Arch Journals that I was reading, Arvindra SehmiArchitect, Developer and Platform Evangelism Group, Microsoft EMEA says that a typical architect will have the following responsibilities
" Support business visioning and scoping activities.
Translate between business and IT requirements.
Communicate with stakeholders, both within business and IT.
Weigh different interests.
Determine solution alternatives.
Create a viable and feasible design.
Choose solutions.
Manage quality.
Manage complexity.
Mitigate risks.
Communicate.


This requires a diverse range of skills, including knowledge of architecture
design, workgroup and communications skills, and consultancy skills.
"

Ram, another Architect from MS, has these interesting things to say about an Architect.
http://blogs.msdn.com/ramkoth/archive/tags/Architecture/default.aspx

Thursday, March 27, 2008

SaaS, SOA , Software + Services

The above terms are something that you will hear on a regular basis these days. I am going to go on a hunt. A hunt to find out what are these terms, what do they mean, and what impact do they have on the industry in the coming years. This is going to involve some amount of research so I will be updating this on a regular basis.
Till then ... time for a treasure hunt!

Update on 27 Mar 08
Found this image on the architecture journal article
http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx

It gives a nice picture.




So far what I have think is
Software + Services is a Microsoft initiative. Talks about Software + cloud serices. I need to find out what is this cloud services.
SaaS is basically some applications that are ready to be used and are consumed over the internet. Now how is this different from WS..?
finding out...

Thursday, March 06, 2008

Authentication in Web Services

Ismail and me were sitting and having a coffee the other day and Ismail asked me about security in Web Services. Though it was quite a while since I had worked on it, I remembered that we need to send some tokens. I quickly did a search and came across this article that kind of covers it well.
http://www.codeproject.com/KB/webservices/WS-Security.aspx