Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 14-jun-2006, 16:00   #1 (permalink)
Neuron_376 está en el buen camino
 
Avatar de Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Inlcudes en ASP.NET

Hola, acostumbrado estoy al código estructural como ASP y PHP, donde tenemos un archivo .asp y archivos tipo libreria como .inc.asp .lib.asp, etc., como los quieramos nombrar, entonces...

En ASP tengo:

a) default.asp

b) /lib/Comun.lib.asp

c) Entonces de default.asp hago un include de Comun.lib.asp y asi puedo usar N funciones en N .asp diferentes.

Bien, mi pregunta, es como se hace en ASP.NET para trabajar de la manera más eficiente con librerias.

Algo como:

a) default.aspx

b) default.aspx.vb

c) /lib/Comun.lib.aspx

d) Donde default.aspx ó default.asox.vb hacen un include de Comun.lib.aspx

Aquí... es mejor usar archivos como /lib/Comun.lib.aspx, o sería mejor siempre tener todo en DLL tipo libreria, como....

e) /lib/Comun.lib.dll el cual tenga las funciones que necesito ? y que pasa cuando necesito N dll los cuales son compartidos para varias paginas.

En fin, cuales son las maneras, y de todas cual seria la mejor manera para trabajar con librerias, y además, cual sería la mejor estructura a usar para una librería ???
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Neuron_376 está desconectado   Responder Citando
Antiguo 14-jun-2006, 18:52   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.476
Hola Neuron, si son las funciones del tipo que no encajan en ningún objeto en particular, yo te sugeriría que crees una clase adicional, llamada libreria o como te resulte mejor semánticamente, después invocas los métodos de ellas desde cualquier parte de tu aplicación.

Explico un poco mejor como lo trabajo yo...

Tengo un administrador de contenidos, estos contenidos son

Páginas
Eventos

Cada uno de estos, en realidad es un objeto cierto?

Por lo tanto tengo los siguientes archivos:

Pagina.cs
Evento.cs

Los cuales tienen a manera no limitativa los siguientes métodos:

Add()
Edit()
Delete()
Get()

Con sus sobrecargas si es necesario; Ahora, lo que hago regularmente, es que va a haber funciones que por su naturaleza no sean ni de calendario, ni de página, supongamos un método que le da un cierto formato a una cadena. Entonces este método lo pongo dentro de una clase que llamo Helper, de esta manera está disponible por todos lados de mi aplicación, si a esto te preocupas por crear métodos estáticos, pues mejor, pues no sugieren explícitamente una instancia de la clase, de tal forma que puedes hacer:

Helper.FormatPhone(variable);

Basta con que dicha clase se encuentre dentro de tu espacio de nombres.

Una de las cosas que más me costó trabajo de la migración a .NET fué precisamente pensar un poco más orientado a objetos, te sugiero también que te olvides de como lo hacías en ASP ;)

Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Antiguo 15-jun-2006, 03:45   #3 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
Sencillo y claro.
Buen resumen u_goldman. Opino que es la mejor forma de trabajar el asunto.
Hace un par de dias que descubrí esto del shared. Genial también!
Saludos.
__________________
..:: moNTeZIon ::..
moNTeZIon está desconectado   Responder Citando
Antiguo 15-jun-2006, 15:37   #4 (permalink)
Neuron_376 está en el buen camino
 
Avatar de Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Me perdi en algo ahii...

Entonces, pensemos en esto:

-- Sistema para desplegar fotos de un album --

1. Pagina que muestra un album (default.asp)

2. Pagina donde editas el album (editarAlbum.asp)

Ambas paginas necesitan de funciones comunes como:

function ObtenerInfoAlbumesDeUsuario(x, y, z)

La cual comunmente la ponemos en un archivo libreria que se jala con un include virtual... etc.

Eso, pasarlo a tema de .NET, sería como:

1. default.aspx
1.1 default.aspx.vb

2. editarAlbumes.aspx
2.1 editarAlbumens.aspx.vb

Entonces, creo un archivo con clases (objetos, funciones, etc) como:

3. AlbumesFunciones.aspx.vb ó AlbumesFunciones.vb ???

Bien, entonces, para que 1.1 y 2.1 puedan usar 3, que tengo que hacer en el código, o bien en cada uno de ellos ?

Dicen del nombre de espacio, entonces, en nameespace de 1.1, 2.1 y 3, ahi tengo que poner el mismo espacio, como: "AlbumesWork" ????

Bien, si hago eso, entonces, como hago que una segunda libreria tambien funcione ahi, como:

4. CadenasFunciones.aspx.vb ... en este punto, tambien debo poner el mismo nombre de espacio para esta nueva libreria.

Claro, internamente no son funciones, son objetos, que luego puedo usar como:

obj1 = new CadenasFunciones
obj2 = new AlbumesFunciones

varTemp = obj1.ObtenerInfoAlbumesDeUsuario(x, y, z)

Bien, eso estaría bien, pero como ahora tengo N librerias que cualquier archivo puede jalar, sin ser exclusivos basado en su nameespace?

O, siempre lo mejor es que todo mi sitio WEB tenga el mismo NameSpace? pensando en paginas como forosdelweb.com

Gracias.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Neuron_376 está desconectado   Responder Citando
Antiguo 15-jun-2006, 16:44   #5 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.298
Enviar un mensaje por Skype™ a moNTeZIon
Hola Neuron,
Respecto al punto 3, pienso que si. Tendrías que agregar un fichero de clase, en tu caso AlbumesFunciones.vb, por ejemplo. En caso qu se trate de la version 2.0 tendrás que meterlo en la carpeta App_Code.
Se trata de un unico fichero, no hay aspx, porqué no es ningun webform. Es una clase, y ya, de por si, podrás usarla en tu proyecto. De más, puedes incluirla dentro de un namespace, con lo que tendrás que importarlo en tus páginas, o escribirlo antes de llamar a la clase.
En esta clase irían todas la propiedades y funciones respecto a los albumes, como yo lo veo.

El punto 4, es como dices. Seria crear otra clase igual que antes. Si quieres la metes en el mismo espacio de nombres, y si no en otro, o en ninguno.

El ejemplo de uso que pones creo que está más o menos bien. En VB sería algo así:
Código:
Dim obj1 As new CadenasFunciones
Dim obj2 As new AlbumesFunciones

Dim varTemp As ¿String? = obj1.ObtenerInfoAlbumesDeUsuario(x, y, z)
Por ejemplo...

O en caso que hayas metido las clases en un mismo espacio de nombres:
Código:
Dim obj1 As new miNameSpace.CadenasFunciones
Dim obj2 As new miNameSpace.AlbumesFunciones

Dim varTemp As ¿String? = obj1.ObtenerInfoAlbumesDeUsuario(x, y, z)
Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 15-jun-2006 a las 16:50.
moNTeZIon está desconectado   Responder Citando
Antiguo 16-jun-2006, 15:27   #6 (permalink)
Neuron_376 está en el buen camino
 
Avatar de Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Gracias.

Bien, entonces, no es oblitgatorio usar el mismo nombre de espacio, lo cual es bueno, entonces...

Solamente lo ponto en esa carpeta y listo, ahorita, bien, como le digo a mi default.aspx.vb que debe cargar /App_Code/AlbumesFunciones.vb

?
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Neuron_376 está desconectado   Responder Citando
Antiguo 16-jun-2006, 17:18   #7 (permalink)
Neuron_376 está en el buen camino
 
Avatar de Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Bien...

Otra pregunta... en ASP yo podia hacer:

Response.write strHtmlCode

Entonces, todo el código de Html se interpretaba correctamente por el usuario, ahora, en .NET también puedo hacerlo, sin embargo los controles de ASP.NET no se interpretan, sino que el código se mira directo en el cliente al hacer un "Ver Código Fuente"

Saben como lograr eso, es decir, seguir manteniendo en un archivo todo el html aun con los controloles de ASP.NET como:

<form id=form1 runat=server><asp:label id=label1 />

Donde, si hago un response.write como:

Response.write "<form id=form1 runat=server><asp:label id=label1 />"

Este codigo sea interpretado correctamente y no se ponga directo en el cliente ?

Espero haberme explicado...

Gracias.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Neuron_376 está desconectado   Responder Citando
Antiguo 17-jun-2006, 19:14   #8 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.476
Pero para qué querrías escribir HTML de esta manera?
A mi me pasó cuando hice un formulario gigante, no lo utilicé como un webform sino hice una especie de control con todo el HTML y el procesamiento como un ASP normal(por cierto fué una lata), después tuve que escribir javascript dinámico pues no estaba utilizando validators, así que utilicé un literal control, pero la verdad al final no quedé satisfecho con esto, a lo mejor si explicas que es lo que quieres hacer te podemos dar una mano con otro approach.


Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Antiguo 15-jul-2008, 12:45   #9 (permalink)
Neuron_376 está en el buen camino
 
Avatar de Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Respuesta: Inlcudes en ASP.NET

Saludos:

Tengo la misma pregunta ligada en el tema:

Agregar Controles usando una cadena

Se trata de lo mismo, como hacer una especie de Response.Write strASPCode

Gracias.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Neuron_376 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 09:11.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93