Systems of systems are very "hot" right now -- My take -- and someone please correct me if I'm wrong -- is that my understanding is that when talking about architecting enterprise applications in .Net is that it is important to realize that IIS does fulfill the role of an application server. You can expose web services that run on IIS that utilize the .Net framework to perform your business logic.


One of the problem areas in our development in Java/J2EE is the integration of products between different vendors -- we might have an app server from Company S, IDE/Tools from Vendor B, Data tier from Company O, all running on the (corporate mandated) Company M's Operating system... and we run into trouble..

What's nice about .Net is that the the data tier, the middle tier, as well as the presentation tier (both web and winforms based) are all provided by one vendor, Company M, also builds the development environment.. and the server...

What's also really nice is that since that MS saying that they "produce and eat their own dogfood" they are spending their money to come up with good solutions to common problems -- and thankfully they release these as patterns and practices available on the MSDN website.

These patterns and practices provide some very good "blocks" which are used to architect enterprise apps -- all for free... in another world, these types of things usually are provided by (high priced) consultants or in-house development...