Consideraciones en los WebServices: WebMethods
Sabemos que cuando a los métodos públicos de un Web Service le colocamos el atributo WebMethod, lo estamos exponiendo para llamadas remotas. Para esto también es necesario tener en cuenta algunas cosillas:
Parámetros con tipos nativos. Con esto minimizamos la serialización, dado que se hace una validación automática gracias al .NET Framework.
Buffering. Por defecto, la configuración de buffer (BufferResponse) está fijada en verdadero, para asegurar que la respuesta estará en el buffer completamente antes de pasar al cliente. Esto es bueno cuando se retorna pequeños datos, pero obviamente, en grandes cantidades, es preferible deshabilitar el buffering.
[WebMethod(BufferResponse=false)]
Public string GetTextFile()
{
...
}
Almacenar los datos en caché. Siempre y cuando los datos a retornar no sean muy volátiles. Se puede especificar el tiempo –en segundos- que la respuesta estará almacenada en caché. Pero ojo, dado que el caché consume memoria del servidor, no sería apropiado si el WebMethod devuelve mucha información.
[WebMethod(CacheDuration=60)]
Public String GetDetails()
{
...
}
Parámetros con tipos nativos. Con esto minimizamos la serialización, dado que se hace una validación automática gracias al .NET Framework.
Buffering. Por defecto, la configuración de buffer (BufferResponse) está fijada en verdadero, para asegurar que la respuesta estará en el buffer completamente antes de pasar al cliente. Esto es bueno cuando se retorna pequeños datos, pero obviamente, en grandes cantidades, es preferible deshabilitar el buffering.
[WebMethod(BufferResponse=false)]
Public string GetTextFile()
{
...
}
Almacenar los datos en caché. Siempre y cuando los datos a retornar no sean muy volátiles. Se puede especificar el tiempo –en segundos- que la respuesta estará almacenada en caché. Pero ojo, dado que el caché consume memoria del servidor, no sería apropiado si el WebMethod devuelve mucha información.
[WebMethod(CacheDuration=60)]
Public String GetDetails()
{
...
}