Foros del Web » Programación para mayores de 30 ;) » .NET »

Buenas Prácticas... (NCapas)

Estas en el tema de Buenas Prácticas... (NCapas) en el foro de .NET en Foros del Web. Estimados amigos de forosdelweb... Tengo una duda; donde sería la mas optima capa para poder crear un metodo que Exporte un gridview a Excel , ...
  #1 (permalink)  
Antiguo 18/11/2009, 09:39
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Buenas Prácticas... (NCapas)

Estimados amigos de forosdelweb...
Tengo una duda; donde sería la mas optima capa para poder crear un metodo que Exporte un gridview a Excel, que vendría a ser como un metodo de caracter utilitario para la capa de presentación, y lo que quiero es REUTILIZAR el método. Teniendo en cuenta que trabajo con:

-Capa Entidad
-Capa Datos
-Capa Negocio
-Capa Presentación

Espero su ayuda, gracias.
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #2 (permalink)  
Antiguo 18/11/2009, 09:48
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Buenas Prácticas... (NCapas)

Creo que en la capa de presentación, ya que no harás ninguna conexión a base de datos (Capa Datos) y tampoco necesitarás de reglas que tengan que ver con la lógica del sistema (Capa Negocio).

En mi opinión debería ir en la Capa de presentación.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 18/11/2009, 09:52
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Buenas Prácticas... (NCapas)

Tambien te podrias crear una clase ToolsExcel o Tools como sea de tu agrado donde vas poniendo metodos que ocupes constantemente, asi te creas como tu propia libreria de herramientas
__________________
s[K]eL
  #4 (permalink)  
Antiguo 18/11/2009, 10:10
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Buenas Prácticas... (NCapas)

Gracias, por las respuestas. estoy intentando crear una clase Heredando de:

Inherits System.Web.UI.Page

Pero cuando creo un metodo publico no me aparece en una clase de página aspx.vb
solo aparece el metodo :
CreateHtmlTextWriterFromType

Algo estoy haciendo mal ?
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #5 (permalink)  
Antiguo 18/11/2009, 10:19
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Buenas Prácticas... (NCapas)

Una pregunta, para que necesitas heredar a System.Web.UI.Page?
Por qué no intentas con algo así:
Código vb.net:
Ver original
  1. Public Class ExportaExcel
  2.  
  3. Public Shared Sub Exportacion(parametros)
  4. 'Código de la exportación
  5. End Sub
  6.  
  7. End Class

Y desde una página lo llamas con el nombre directamente ExportaExcel. Exportacion()

Saludos
__________________
Eduardo Peredo
Wigoin
  #6 (permalink)  
Antiguo 18/11/2009, 10:22
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Buenas Prácticas... (NCapas)

mmm... pensaba pasarle como parámetro un gridview, ademas el metodo para exportar utiliza metodos como : Response.
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #7 (permalink)  
Antiguo 18/11/2009, 10:30
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Buenas Prácticas... (NCapas)

Bueno igual eso no debe influir, si declaras tu método Shared como te puse arriba, debería funcionar
Código vb.net:
Ver original
  1. Public Shared Sub Exportacion(parametros)
  2. 'Código de la exportación
  3. End Sub

O aún así no ves el método o te salta algún error?
__________________
Eduardo Peredo
Wigoin
  #8 (permalink)  
Antiguo 18/11/2009, 10:35
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Buenas Prácticas... (NCapas)

Si lo veo.. pero lo que necesito es tener toda la rutina..:

Código:
Public Function ExportarGridViewExcel(ByVal pCtrlGridView As GridView)
     Dim sb As StringBuilder = New StringBuilder()
        Dim sw As StringWriter = New StringWriter(sb)
        Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
        Dim pagina As Page = New Page
        Dim form = New HtmlForm
        pCtrlGridView .EnableViewState = False
        pCtrlGridView .AllowPaging = False
        pagina.EnableEventValidation = False
        pagina.DesignerInitialize()
        pagina.Controls.Add(form)
        form.Controls.Add(gvReporte)
        pagina.RenderControl(htw)
        Response.Clear()
        Response.Buffer = True
        Response.ContentType = "application/vnd.ms-excel"
        Response.AddHeader("Content-Disposition", "attachment;filename=data.xls")
        Response.Charset = "UTF-8"
        Response.ContentEncoding = Encoding.Default
        Response.Write(sb.ToString())
        Response.End()
End Function
Y Me da error por que no reconoce los : Response
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #9 (permalink)  
Antiguo 18/11/2009, 10:45
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Buenas Prácticas... (NCapas)

Solucionado :D
Código:
Public Shared Sub ExportarGridViewExcel(ByVal pCtrlGridView As GridView, ByVal R As System.Web.HttpResponse)
'Codigo
End Sub
Gracias por todo...
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.