I have a designed a smart client application which talks to WCF Services --> BL--> DAL and finally the database. Since I know that I would using only SQL Server for this application, I am of the opinion for going in for Stored Procedures(for its obivious benefits) and having transactions being handled at Business layer using System.Transactions.
My Lead Architect is against the idea of using Stored Procs. His argument is that with SP approach it would be a question of getting the right transcation boundaries and also ensuring that the messaging and the transction are in a single distributed XA transaction. He says that these things are best achieved through individual statements and not in SP since SP's have their own txns.
But wouldnt transactions be managed eventually by the respective resource managers ( in this case SQL Server). I dont quite follow his argument. He comes from a J2EE background wherein I have seen quite a few applications then were written to make it database agnostic. I have done lot of applications starting from .Net 1.0 and I never faced any issues with using Stored Procs.
I am somehow not convinced with his explanation. I have used Stored procs in couple of large scale projects and they worked fine with transactions being controlled at Enterprise Services / COM+.
I am of the opinion that if I know that I would be using SQL Server its better that I tried to leverage the database specific features for performance.
Would appreciate if someone can shed some light on this.
Thanks
Sai