With correct coding you can expose Navision codeunits functions as webservices with 3 lines of code.
- 2 lines of code in Navision side a- 1 lines of code in .NET Web Service.
A good article explaining the foundations to build such code is in http://msdn2.microsoft.com/en-us/library/ms952079.aspx
Note: This article explains a way to expose codeunits functions as Web Services. I would only add a remark to this article. You must ensure a thread lock in web services layer or in concurrent requests you can have answers returned to wrong client.
Recently using a similar technique I have exposed a project management add-on logic has web services. This allowed external applications (Web, Mobile) to communicate data with Navision without duplicating business logic. This allowed me to build a web interface without a single line of business code. Validations, posting and other code has done in Navision. I never thought that NAS had such performance with so many users.
For documents that I have read NAV 5.1 will expose directly codeunits as web services, but the major improvements will be performance at this layer. Using NAS model, can only process on request at the time, I hope 5.1 web services improve this lap. Having more than 40 concurrent web users in same NAS can be major performance problem.
I did that once for a demonstration project, but never gone live. If you follow standards there aren’t any major differences between .NET WS and Java.