views:

52

answers:

2

Hi, I am considering rebuilding my ASP.NET portal using ASP.NET MVC. I use the same portal solution at two different web sites, and I would like to have a single place og editing and writing articles for my sites - a management site. I have considered making an "Article Web Service" that would provide me with the functionality of creating and listing articles - but how about performance?

On my portal i need to fetch all my articles to make a list of articles (full list - ~100 articles) then show a single article with comments. The same applies to forums, blogs, media gallery, and so on.

I think im blinded of the opportunity of providing me - the administrator - with an easy to use interface in one place where i control all the portals.

Would the extensive use of webservices slow my portals down so much that they become useless? Is there an alternative solution to doing this single point of administration, an alternative to WebServices?

cheers,

A: 

For a straight MVC-based portal, you shouldn't need web services, unless you're making heavy use of Ajax or Silverlight -- but in those cases, the web services are called by the client, not from the server-side. Server-side WS are generally reasonably expensive from a performance perspective, and make sense only in certain limited high-scale, multi-server applications.

For your admin tasks, just build a set of protected pages with a UI that controls the admin functions you need. If you're feeling adventurous, Silverlight can be good, too.

If you're looking for some ASP.NET perf tips (though not wrt MVC), you might enjoy my new book: Ultra-Fast ASP.NET.

RickNZ
A: 

Sounds like a good idea for your architecture.

If you expose your database via a service, it creates a really great separation between your UI and back-end, so you can write WPF, Silverlight, ASP.NET, WinForms UI that all consume the same service(s) if you so desire.

You might want to look into WCF which gives you great flexibility as to where the services live and who consumes them and how.

Also, with a reasonable amount of effort you can implement things like caching and compression, which will alleviate any performance penalties you incur by the additional layer you'd be introducing.

Veli