Wrox Home  
Search P2P Archive for: Go

  Return to Index  

aspx_espanol thread: Y seguimos con el server side Continua Me olvide!


Message #1 by "Jorge Beker" <jorgito@n...> on Tue, 18 Dec 2001 20:30:15 -0300
A lo que me refiero con lo del focus es lo siguiente:



Vi que en ASP.NET, lo que se trata de hacer es que el programador ponga la

mejor cantidad de HTML posible.Por ende me imagine que el .net hace todas

las cosas de javascript.



Un claro ejemplo son los controles del servidor. Yo ya no me preocupo mas

por hacer el <form  name action blalblab>. El .NET lo convierte solo, y yo

el boton <submit> lo veo como un simple evento, al mejor estilo visual

basic.



Por eso lo que no termino de entender es si se puede usar el .net al estilo

vb, sin precuparse por los javascript............ no se si me entienden!!!

Ya se todo lo del javascript , parametros, etc, pero lo que noto es que el

.net se quiere independizar de eso.



Otro ejemplo: Yo hago etiquetas y toda la bola con el editor de .net

Si doy un Response.write "<B>HOLA</B>" , esto me lo pone AL PRINCIPIO del

html. Esto me demuestra que yo no tengo control via codigo del orden en que

se van sucediendo las lineas.



Por otro lado, si yo ahora un control lo leo con control.text y no con

Request("parametro"), lo más logico que se me ocurre es que si quiero pasar

a otra pagfina lo pueda leer con webform.control.text ........... y no con

parametros........... si yo quiero pasar todos los datos de un formulario de

20 campos a otra pagina..........como lo hago???? Ni siquiera hay alguna

clase Form.Parameter.Add o algo asi?



Porque entonces esto es una porquería.......es un intermedio, en el que

tengo la posibilidad de usar propiedades de un textbox en pantalla, pero no

lo puedo usar como variable publica y tranferir a otro formulario, tengo que

usar el metodo viejo de parametros en querystring. O me cambian todo o sigo

usando el tipico ASP haciendo las lineas a mano, y una por una.



Espero que me entiendan



Jorge





Message #2 by "Victor Garcia Aprea" <vga@o...> on Tue, 18 Dec 2001 22:20:17 -0300

Jorge, de tus preguntas deduzco que estas mezclando mucho todo y queriendo

hacer las cosas como las haces con VB6. Por mas facilidades nuevas que se

agreguen, esto es un mundo diferente. Trata de diferenciar por un lado HTML,

por otro ASP.NET y por ultimo el lenguaje que elijas. No mezcles esas 3

cosas diferentes con querer hacer una aplicacion en VB6.





siguen los comentarios intercalados debajo de cada parrafo:





> Vi que en ASP.NET, lo que se trata de hacer es que el programador ponga la

> mejor cantidad de HTML posible.Por ende me imagine que el .net hace todas

> las cosas de javascript.

>

> Un claro ejemplo son los controles del servidor. Yo ya no me preocupo mas

> por hacer el <form  name action blalblab>. El .NET lo convierte solo, y yo

> el boton <submit> lo veo como un simple evento, al mejor estilo visual

> basic.

>

> Por eso lo que no termino de entender es si se puede usar el .net

> al estilo

> vb, sin precuparse por los javascript............ no se si me entienden!!!

> Ya se todo lo del javascript , parametros, etc, pero lo que noto es que el

> .net se quiere independizar de eso.



Recordá que no estas desarrollando una aplicacion VB estandard que va a

correr en una maquina cliente. Sino que tu aplicacion esta corriendo 99,9%

en el servidor y una minima logica que implemente el cliente. Son dos mundos

diferentes, un monton de cosas se simplifican a partir de ASP.NET pero no,

no creas que es lo mismo que hacer una aplicacion en VB6.





>

> Otro ejemplo: Yo hago etiquetas y toda la bola con el editor de .net

> Si doy un Response.write "<B>HOLA</B>" , esto me lo pone AL PRINCIPIO del

> html. Esto me demuestra que yo no tengo control via codigo del

> orden en que

> se van sucediendo las lineas.



Si tenes control para hacer muchas cosas, pero tenes que saber como hacerlo.

Si vos queres emitir un "<B>HOLA</B>", esto lo podrias hacer de muchas

maneras para que lo ponga exactamente donde vos quieras (ej. LiteralControl,

etc).



>

> Por otro lado, si yo ahora un control lo leo con control.text y no con

> Request("parametro"), lo más logico que se me ocurre es que si

> quiero pasar

> a otra pagfina lo pueda leer con webform.control.text ........... y no con

> parametros........... si yo quiero pasar todos los datos de un

> formulario de

> 20 campos a otra pagina..........como lo hago???? Ni siquiera hay alguna

> clase Form.Parameter.Add o algo asi?



Es sencillo, cuando recibis el form asignas los valores de cada control a

las variables correspondientes de una clase tuya, y luego desde la pagina a

la que pases cargas los valores del nuevo form en base a las variables que

asignaste antes.



>

> Porque entonces esto es una porquería.......es un intermedio, en el que

> tengo la posibilidad de usar propiedades de un textbox en

> pantalla, pero no

> lo puedo usar como variable publica y tranferir a otro

> formulario,



a que te referis con "usar en pantalla" ?? Aca noto otra vez que mezclas

HTML y ASP.NET. Si revisas la especificacion HTML vas a notar que los forms

llevan un atributo ACTION que puede llevar el valor GET o POST. GET va a

pasar los valores del form en el URL (ala QueryString) y tiene la limitacion

de largo, en cambio usando POST los valores son pasados en el header del

request. Entonces un FORM usa POST o GET, no hay otra alternativa. Ahora si

lo que vos queres es programar aprovechando las facilidades que te ofrece

ASP.NET lo que tendrias que hacer, es definir variables publicas en una

clase tuya, y leer y escribir las mismas desde los forms que quieras; de

esta manera vas a estar asignado valores y leyendo valores de los campos de

un form sin necesidad de tener que escribir vos mismo el codigo final para

hacer eso.



> usar el metodo viejo de parametros en querystring. O me cambian

> todo o sigo

> usando el tipico ASP haciendo las lineas a mano, y una por una.



Cuando decis "viejo" metodo de parametros en querystring, te repito lo

anterior: es el unico de dos metodos permitidos (GET y POST) para pasar los

parametros de un FORM. ASP.NET no altera la especificacion HTML sino que

trata de simplificar el desarrollo, y te ofrece soluciones de alto nivel

para que vos "creas" que no estas haciendo eso.

Como te explique arriba, lo podes hacer de otra manera.





saludos,

-Victor.



Message #3 by "Jorge Beker" <jorgito@n...> on Tue, 18 Dec 2001 22:53:03 -0300
Muchisimas gracias por tu respuesta victor. Hay algunos puntos que no

entendí de tu respuesta.



Los literalcontrols que son? Por lo que vi en la ayuda es un "control" que

convierte controles de servidor a HTML....

Que tiene que ver esto con que yo sepa en que linea va cada cosa? Porque con

el .net, por ejemplo, donde veo yo la linea <form> ? Como se en el codigo

que si pongo response.write <input type=hidden> lo va a hacer dentro del

formulario?



Me gustaría que me expliques un poco mejor lo de las clases

publicas..............serían una especie de session??



Con respecto a lo de VB6, no es que no entiendo. Tengo experiencia en VB o

C++ , pero hace 2 años que me dedico plenamente al ASP, y conozco

perfectamente la diferencia, lo que pasa es que lo que veo con .net es que

ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6. Es más, lei

en un libro que hay casos en que le podes dar copy a un windows form y paste

en un webforms y funciona... entonces yo estoy loco y no entiendo, o

realmente ellos quieren darle estilo de visual e independizarlo del html?



Jorge



PD: Nuevamente muchas gracias por las respuesta



"Victor Garcia Aprea" <vga@o...> wrote in message

news:130336@a..._espanol...

>

>

> Jorge, de tus preguntas deduzco que estas mezclando mucho todo y queriendo

> hacer las cosas como las haces con VB6. Por mas facilidades nuevas que se

> agreguen, esto es un mundo diferente. Trata de diferenciar por un lado

HTML,

> por otro ASP.NET y por ultimo el lenguaje que elijas. No mezcles esas 3

> cosas diferentes con querer hacer una aplicacion en VB6.

>

>

> siguen los comentarios intercalados debajo de cada parrafo:

>

>

> > Vi que en ASP.NET, lo que se trata de hacer es que el programador ponga

la

> > mejor cantidad de HTML posible.Por ende me imagine que el .net hace

todas

> > las cosas de javascript.

> >

> > Un claro ejemplo son los controles del servidor. Yo ya no me preocupo

mas

> > por hacer el <form  name action blalblab>. El .NET lo convierte solo, y

yo

> > el boton <submit> lo veo como un simple evento, al mejor estilo visual

> > basic.

> >

> > Por eso lo que no termino de entender es si se puede usar el .net

> > al estilo

> > vb, sin precuparse por los javascript............ no se si me

entienden!!!

> > Ya se todo lo del javascript , parametros, etc, pero lo que noto es que

el

> > .net se quiere independizar de eso.

>

> Recordá que no estas desarrollando una aplicacion VB estandard que va a

> correr en una maquina cliente. Sino que tu aplicacion esta corriendo 99,9%

> en el servidor y una minima logica que implemente el cliente. Son dos

mundos

> diferentes, un monton de cosas se simplifican a partir de ASP.NET pero no,

> no creas que es lo mismo que hacer una aplicacion en VB6.

>

>

> >

> > Otro ejemplo: Yo hago etiquetas y toda la bola con el editor de .net

> > Si doy un Response.write "<B>HOLA</B>" , esto me lo pone AL PRINCIPIO

del

> > html. Esto me demuestra que yo no tengo control via codigo del

> > orden en que

> > se van sucediendo las lineas.

>

> Si tenes control para hacer muchas cosas, pero tenes que saber como

hacerlo.

> Si vos queres emitir un "<B>HOLA</B>", esto lo podrias hacer de muchas

> maneras para que lo ponga exactamente donde vos quieras (ej.

LiteralControl,

> etc).

>

> >

> > Por otro lado, si yo ahora un control lo leo con control.text y no con

> > Request("parametro"), lo más logico que se me ocurre es que si

> > quiero pasar

> > a otra pagfina lo pueda leer con webform.control.text ........... y no

con

> > parametros........... si yo quiero pasar todos los datos de un

> > formulario de

> > 20 campos a otra pagina..........como lo hago???? Ni siquiera hay alguna

> > clase Form.Parameter.Add o algo asi?

>

> Es sencillo, cuando recibis el form asignas los valores de cada control a

> las variables correspondientes de una clase tuya, y luego desde la pagina

a

> la que pases cargas los valores del nuevo form en base a las variables que

> asignaste antes.

>

> >

> > Porque entonces esto es una porquería.......es un intermedio, en el que

> > tengo la posibilidad de usar propiedades de un textbox en

> > pantalla, pero no

> > lo puedo usar como variable publica y tranferir a otro

> > formulario,

>

> a que te referis con "usar en pantalla" ?? Aca noto otra vez que mezclas

> HTML y ASP.NET. Si revisas la especificacion HTML vas a notar que los

forms

> llevan un atributo ACTION que puede llevar el valor GET o POST. GET va a

> pasar los valores del form en el URL (ala QueryString) y tiene la

limitacion

> de largo, en cambio usando POST los valores son pasados en el header del

> request. Entonces un FORM usa POST o GET, no hay otra alternativa. Ahora

si

> lo que vos queres es programar aprovechando las facilidades que te ofrece

> ASP.NET lo que tendrias que hacer, es definir variables publicas en una

> clase tuya, y leer y escribir las mismas desde los forms que quieras; de

> esta manera vas a estar asignado valores y leyendo valores de los campos

de

> un form sin necesidad de tener que escribir vos mismo el codigo final para

> hacer eso.

>

> > usar el metodo viejo de parametros en querystring. O me cambian

> > todo o sigo

> > usando el tipico ASP haciendo las lineas a mano, y una por una.

>

> Cuando decis "viejo" metodo de parametros en querystring, te repito lo

> anterior: es el unico de dos metodos permitidos (GET y POST) para pasar

los

> parametros de un FORM. ASP.NET no altera la especificacion HTML sino que

> trata de simplificar el desarrollo, y te ofrece soluciones de alto nivel

> para que vos "creas" que no estas haciendo eso.

> Como te explique arriba, lo podes hacer de otra manera.

>

>

> saludos,

> -Victor.

>

>

>





Message #4 by "Victor Garcia Aprea" <vga@o...> on Wed, 19 Dec 2001 05:41:00 -0300

Van los comentarios intercalados...





> Muchisimas gracias por tu respuesta victor. Hay algunos puntos que no

> entendí de tu respuesta.

>

> Los literalcontrols que son? Por lo que vi en la ayuda es un "control" que

> convierte controles de servidor a HTML....

> Que tiene que ver esto con que yo sepa en que linea va cada cosa?

> Porque con

> el .net, por ejemplo, donde veo yo la linea <form> ? Como se en el codigo

> que si pongo response.write <input type=hidden> lo va a hacer dentro del

> formulario?



Los controles que yo te sugeri sirven para poner HTML/texto/etc donde vos

quieras, el tema es que tenes que saber donde ponerlos!! La idea es que

desde ASP.NET no veas el <FORM>. Por que? Por que esta todo orientado a

objetos, aunque la mayoria de las veces no te des cuenta. Afirmemos unos

conceptos... Cuando vos creas una pagina lo que en realidad estas haciendo

es creando una clase nueva que va a derivarse de "System.Web.UI.Page", esto

significa que vas heredar todos los beneficios que incluye Page o sea toda

la funcionalidad basica que requiere una pagina. Esta clase nueva se

compila, cuando alguien hace un pedido de tu pagina se crea una instancia en

el servidor, se ejecuta y el resultado es... HTML... puro HTML que es

devuelto al cliente. Ahora bien... donde se crea cada "pedacito" del HTML

que contiene una pagina... vos con los controles que le agregues a una

pagina vas a producir que el HTML para representarlos, y la clase Page (de

la cual derivas la clase que va a representar a tu pagina) ya incluye

algunos controles!!! que representan por ejemplo: los tags

<BODY>,<HTML>,etc. Entonces...? Si ya tenes ubicado como se genera cada

porcion de HTML lo que tenes que hacer es ubicar el control que la genera

(que puede ser tuyo o proporcionado por Page) y hacerle lo que quieras!.



>

> Me gustaría que me expliques un poco mejor lo de las clases

> publicas..............serían una especie de session??



No exactamente. Aca habria que indentificar bien cual es tu requerimiento ya

que existen muchas maneras de hacer que los valores de controles o valores

de variables persisten de pagina en pagina, cada uno con sus pro y contras.

Una de las opciones provistas por los WebForms es State Bags, esto es un

repositorio que almacena pares de valores, por ejemplo:



ViewState["edad"] = 26;	// almacena un valor

int iEdad = (int)ViewState["edad"]; // recupera un valor



Como funciona esto? Todos los pares de valores que hayas almacenado se suman

a los pares de valores necesarios para persistir la informacion de los

controles del FORM y todo se almacena en el famoso VIEWSTATE. Esta solucion

parece barbara porque al persistirse con cada requerimiento no tiene que

almacenarse nada en el servidor, eso es cierto, pero tambien tiene contras,

como por ejemplo, tiempo de procesamiento necesario para decodificar esos

valores cuando llegan al servidor y algo que puede convertirse en importante

si se usa indiscriminadamente como es el largo que puede adquirir el

VIEWSTATE, recordá que este se incluye con cada pedido al servidor y el

servidor lo devuelve con cada respuesta, eso le esta sumando unos Kb

adicionales a cada pagina, si tu VIEWSTATE tiene 4Kb y tenes miles de

requerimientos, estas teniendo una sobrecarga de trafico considerable. No

cualquier tipo puede almacenarse en un VIEWSTATE, tiene que poder

convertirse a texto; esto para la mayoria de los tipos basicos, el ASP.NET

lo hace por vos. Si es un tipo que definiste vos, vas a tener que

implementarle un "TypeConverter".

Otra solucion que te comente, es usar variables de una clase tuya, de esta

manera podes almacenar los valores ahi, y luego acceder a una instancia de

esa clase desde la pagina que quieras para leer/escribir, el tema aca reside

en que ahora los valores no son pasados entre client/servidor con cada

pedido pero son **almacenados en el servidor**; entonces para algunos

valores de tipo sencillo puede servir pero olvidate de almacenar varios Kb

por cliente, porque con un trafico de usuarios alto te quedarias sin

aplicacion.



Hay otras soluciones tambien, por supuesto, ninguna perfecta. Es cuestion de

hacer un analisis de requerimientos especificos para ver que puede adaptarse

mejor. Lo bueno es que ahora las opciones son mas que antes!





>

> Con respecto a lo de VB6, no es que no entiendo. Tengo experiencia en VB o

> C++ , pero hace 2 años que me dedico plenamente al ASP, y conozco

> perfectamente la diferencia, lo que pasa es que lo que veo con .net es que

> ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6. Es más, lei

> en un libro que hay casos en que le podes dar copy a un windows

> form y paste

> en un webforms y funciona... entonces yo estoy loco y no entiendo, o

> realmente ellos quieren darle estilo de visual e independizarlo del html?

>



Decididamente son cosas diferentes. Se ha logrado un grado de abstraccion

muchisimo mayor que con ASP, de eso no hay duda, pero no se puede programar

en ASP.NET sin ser conciente del tipo de aplicacion que se esta

desarrollando y de admitir que es imposible que sea igual que con VB6.



saludos,

-Victor.







Message #5 by "Jorge Beker" <jorgito@n...> on Wed, 19 Dec 2001 08:21:52 -0300
Muchisimas gracias de nuevo!!!!!!!!!!!!!!!



Vamos de a poquito entendiendo todo.........



Lo del viewstate está muy bueno..........................son cookies pero

más fáciles de usar!!!!



Con respecto a la clase, como lo haría? hago un public class jorge { int

jorge = 20 } y con eso lo leo en TODA la aplicación??? Que aspx y que aspx

no pueden leerlo? Por ejemplo los del mismo directorio, o se basan en el

sessionid?



Con respecto a los literal. Como voy a saber donde ponerlo, si yo , te

reitero NO VEO ni SE en donde te pone los tags!!!!!!!!!!!! Si creo un botón,

ni siquiera se si está adentro o afuera del form!. Aparte, para que un

control llamado literal? Un control que lo unico que hace es response.write

???



Jorge

"Victor Garcia Aprea" <vga@o...> wrote in message

news:130413@a..._espanol...

>

>

> Van los comentarios intercalados...

>

>

> > Muchisimas gracias por tu respuesta victor. Hay algunos puntos que no

> > entendí de tu respuesta.

> >

> > Los literalcontrols que son? Por lo que vi en la ayuda es un "control"

que

> > convierte controles de servidor a HTML....

> > Que tiene que ver esto con que yo sepa en que linea va cada cosa?

> > Porque con

> > el .net, por ejemplo, donde veo yo la linea <form> ? Como se en el

codigo

> > que si pongo response.write <input type=hidden> lo va a hacer dentro del

> > formulario?

>

> Los controles que yo te sugeri sirven para poner HTML/texto/etc donde vos

> quieras, el tema es que tenes que saber donde ponerlos!! La idea es que

> desde ASP.NET no veas el <FORM>. Por que? Por que esta todo orientado a

> objetos, aunque la mayoria de las veces no te des cuenta. Afirmemos unos

> conceptos... Cuando vos creas una pagina lo que en realidad estas haciendo

> es creando una clase nueva que va a derivarse de "System.Web.UI.Page",

esto

> significa que vas heredar todos los beneficios que incluye Page o sea toda

> la funcionalidad basica que requiere una pagina. Esta clase nueva se

> compila, cuando alguien hace un pedido de tu pagina se crea una instancia

en

> el servidor, se ejecuta y el resultado es... HTML... puro HTML que es

> devuelto al cliente. Ahora bien... donde se crea cada "pedacito" del HTML

> que contiene una pagina... vos con los controles que le agregues a una

> pagina vas a producir que el HTML para representarlos, y la clase Page (de

> la cual derivas la clase que va a representar a tu pagina) ya incluye

> algunos controles!!! que representan por ejemplo: los tags

> <BODY>,<HTML>,etc. Entonces...? Si ya tenes ubicado como se genera cada

> porcion de HTML lo que tenes que hacer es ubicar el control que la genera

> (que puede ser tuyo o proporcionado por Page) y hacerle lo que quieras!.

>

> >

> > Me gustaría que me expliques un poco mejor lo de las clases

> > publicas..............serían una especie de session??

>

> No exactamente. Aca habria que indentificar bien cual es tu requerimiento

ya

> que existen muchas maneras de hacer que los valores de controles o valores

> de variables persisten de pagina en pagina, cada uno con sus pro y

contras.

> Una de las opciones provistas por los WebForms es State Bags, esto es un

> repositorio que almacena pares de valores, por ejemplo:

>

> ViewState["edad"] = 26; // almacena un valor

> int iEdad = (int)ViewState["edad"]; // recupera un valor

>

> Como funciona esto? Todos los pares de valores que hayas almacenado se

suman

> a los pares de valores necesarios para persistir la informacion de los

> controles del FORM y todo se almacena en el famoso VIEWSTATE. Esta

solucion

> parece barbara porque al persistirse con cada requerimiento no tiene que

> almacenarse nada en el servidor, eso es cierto, pero tambien tiene

contras,

> como por ejemplo, tiempo de procesamiento necesario para decodificar esos

> valores cuando llegan al servidor y algo que puede convertirse en

importante

> si se usa indiscriminadamente como es el largo que puede adquirir el

> VIEWSTATE, recordá que este se incluye con cada pedido al servidor y el

> servidor lo devuelve con cada respuesta, eso le esta sumando unos Kb

> adicionales a cada pagina, si tu VIEWSTATE tiene 4Kb y tenes miles de

> requerimientos, estas teniendo una sobrecarga de trafico considerable. No

> cualquier tipo puede almacenarse en un VIEWSTATE, tiene que poder

> convertirse a texto; esto para la mayoria de los tipos basicos, el ASP.NET

> lo hace por vos. Si es un tipo que definiste vos, vas a tener que

> implementarle un "TypeConverter".

> Otra solucion que te comente, es usar variables de una clase tuya, de esta

> manera podes almacenar los valores ahi, y luego acceder a una instancia de

> esa clase desde la pagina que quieras para leer/escribir, el tema aca

reside

> en que ahora los valores no son pasados entre client/servidor con cada

> pedido pero son **almacenados en el servidor**; entonces para algunos

> valores de tipo sencillo puede servir pero olvidate de almacenar varios Kb

> por cliente, porque con un trafico de usuarios alto te quedarias sin

> aplicacion.

>

> Hay otras soluciones tambien, por supuesto, ninguna perfecta. Es cuestion

de

> hacer un analisis de requerimientos especificos para ver que puede

adaptarse

> mejor. Lo bueno es que ahora las opciones son mas que antes!

>

>

> >

> > Con respecto a lo de VB6, no es que no entiendo. Tengo experiencia en VB

o

> > C++ , pero hace 2 años que me dedico plenamente al ASP, y conozco

> > perfectamente la diferencia, lo que pasa es que lo que veo con .net es

que

> > ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6. Es más,

lei

> > en un libro que hay casos en que le podes dar copy a un windows

> > form y paste

> > en un webforms y funciona... entonces yo estoy loco y no entiendo, o

> > realmente ellos quieren darle estilo de visual e independizarlo del

html?

> >

>

> Decididamente son cosas diferentes. Se ha logrado un grado de abstraccion

> muchisimo mayor que con ASP, de eso no hay duda, pero no se puede

programar

> en ASP.NET sin ser conciente del tipo de aplicacion que se esta

> desarrollando y de admitir que es imposible que sea igual que con VB6.

>

> saludos,

> -Victor.

>

>

>

>

>





Message #6 by "Victor Garcia Aprea" <vga@o...> on Wed, 19 Dec 2001 14:22:45 -0300

Respuestas intercaladas...





> Muchisimas gracias de nuevo!!!!!!!!!!!!!!!

>

> Vamos de a poquito entendiendo todo.........

>

> Lo del viewstate está muy bueno..........................son cookies pero

> más fáciles de usar!!!!

>

> Con respecto a la clase, como lo haría? hago un public class jorge { int

> jorge = 20 } y con eso lo leo en TODA la aplicación??? Que aspx y que aspx

> no pueden leerlo? Por ejemplo los del mismo directorio, o se basan en el

> sessionid?



Tu variable 'jorge' tiene que llevar el modificador 'static' para que solo

exista una instancia de la misma.



Para entenderlo mejor: en C# no existe el concepto de variable "global",

como podes tener en C++. Entonces como "emulas" una variable "global".

Usando miembros estaticos en una clase X. Cuando un miembro es estatico en

lugar de crearse una instancia del mismo en memoria para cada instancia de

la clase solo se crea una que es compartida por todas las instancias de la

clase.

El mismo concepto lo podes aplicar a metodos o funciones "globales", esto no

existe en C#, ya que todo metodo tiene que pertenecer a una clase... bueno

declarando metodos estaticos de una clase X podes luego usarlos desde donde

quieras.



Un ejemplo:



class DatosPersonales

{

	public static int iEdad = 0;

	public static string sApellido = "";

	public static string sNombre = "";

}



Las tres variables miembros que definí en esta clase pueden ser accedidas

desde cualquier codigo tuyo usando la siguiente sintaxis:



DatosPersonales.iEdad = 26;

int iLeerEdad = DatosPersonales.iEdad;



OJO, aca hay una diferencia con C++ que consisite en que en C# no se puede

acceder a los miembros estaticos utilizando el nombre de alguna de las

instancia de la clase sino que hay que utilizar el nombre de la clase,

mientras que en C++ se puede acceder de ambas maneras, o sea:



DatosPersonales documento;

DatosPersonales.iEdad = 26;		// esto es valido en C# y C++

documento.iEdad = 26;			// esto es solo valido en C++



esta ultima sintaxis fue removida en C# para hacer mas sencilla la

identificacion de cuando una variable es estatica y cuando no, ya que si

usas el nombre de una instancia en lugar del nombre de la clase no queda

claro si es estatica o no, en cambio usando el nombre de la clase no hay

dudas.



OJO II, si bien esto es una solucion a tu problema original de querer algun

lugar alternativo para guardar los valores de un FORM entre distintas

paginas, no es una solucion muy prolija en varios aspectos, o sea que no es

para abusar.



> Con respecto a los literal. Como voy a saber donde ponerlo, si yo , te

> reitero NO VEO ni SE en donde te pone los tags!!!!!!!!!!!! Si

> creo un botón,

> ni siquiera se si está adentro o afuera del form!. Aparte, para que un

> control llamado literal? Un control que lo unico que hace es

> response.write

> ???



Con respecto a ver cada componente que tiene tu clase derivada de 'Page',

podes escribir un pequeño bucle que vaya iterando el contenido del array

Controls (para entenderlo, escribi la salida en pantalla, con todos los

datos que quieras) vas a notar que ademas de los que vos hayas agregado hay

otros que representan al resto del HTML... como saber un control esta dentro

del FORM o no...? De la misma manera que una clase Page tiene un array de

Controls, a su vez cada Control tiene un array de Controls; esto sirve para

identificar los Controls que son "hijos" de un Control determinado. En el

caso de los controles que estan dentro de un FORM los vas a poder ubicar

examinando el array Controls de la variable que represente a tu FORM (que va

a ser una del array Controls de la clase Page).

Ej. como insertar un TextBox en un FORM:



// mi ejemplo asume que tu control FORM tiene un indice '1' en el array

Controls de la clase Page.



TextBox tb = new TextBox();

tb.Text = "Soy un nuevo control";

this.Controls[1].Controls.Add( tb );



Con respecto a "para que un control llamado Literal?"... bueno este control

y otros (ASP:PlaceHolder,etc) se usan para generar HTML/texto/tags

propios/etc cuando tu problema no lo soluciona ningun otro control. No son

controles que simplemente hacen un "Response.Write" sino que cada uno esta

modelado en una clase particular con diferentes propiedades/metodos que te

permiten realizar **desde programacion** algunas cosas interesantes y

hacerlas "al estilo visual" como te gusta decir a vos...

Por ejemplo con un ASP:PlacerHolder podes crear controles en una pagina de

forma dinamica en lugar de tener que declararlos explicitamente en el diseño

de la misma.



Ejemplo:

<asp:placeholder id="relleno" runat="server"/>



con esto luego podes desde programacion hacer:



TextBox tb = new TextBox();

tb.Text = "blahblah";

relleno.Controls.Add( tb );



El HTML que va a generar tu ASP:PlaceHolder seria algo asi:



<input name="ctrl0" type="text" value="blahblah" />







Espero haber aclarado algo,



saludos,

-Victor.



Message #7 by "Rissone, Cristian" <crissone@a...> on Wed, 19 Dec 2001 14:50:40 -0300
Hola a todos ....

Pregunta cortita ...veo que estan hablando de ViewState para almacenar 

valores de variables ...

Porque no utilizan el objeto SESSION("NonbreVarible",ValorVariable) 

para pasar valores entre

diferentes paginas ? Tiene esto algun inconveniente ?

Gracias y saludos .





-----Mensaje original-----

De: Victor Garcia Aprea [mailto:vga@o...]

Enviado el: Mi=E9rcoles, 19 de Diciembre de 2001 05:41 a.m.

Para: ASP.Net en Espa=F1ol

Asunto: [aspx_espanol] Re: Y seguimos con el server side Continua Me

olvide!







Van los comentarios intercalados...





> Muchisimas gracias por tu respuesta victor. Hay algunos puntos que no

> entend=ED de tu respuesta.

>

> Los literalcontrols que son? Por lo que vi en la ayuda es un 

"control" que

> convierte controles de servidor a HTML....

> Que tiene que ver esto con que yo sepa en que linea va cada cosa?

> Porque con

> el .net, por ejemplo, donde veo yo la linea <form> ? Como se en el 

codigo

> que si pongo response.write <input type=3Dhidden> lo va a hacer 

dentro del

> formulario?



Los controles que yo te sugeri sirven para poner HTML/texto/etc donde 

vos

quieras, el tema es que tenes que saber donde ponerlos!! La idea es que

desde ASP.NET no veas el <FORM>. Por que? Por que esta todo orientado a

objetos, aunque la mayoria de las veces no te des cuenta. Afirmemos 

unos

conceptos... Cuando vos creas una pagina lo que en realidad estas 

haciendo

es creando una clase nueva que va a derivarse de "System.Web.UI.Page", 

esto

significa que vas heredar todos los beneficios que incluye Page o sea 

toda

la funcionalidad basica que requiere una pagina. Esta clase nueva se

compila, cuando alguien hace un pedido de tu pagina se crea una 

instancia en

el servidor, se ejecuta y el resultado es... HTML... puro HTML que es

devuelto al cliente. Ahora bien... donde se crea cada "pedacito" del 

HTML

que contiene una pagina... vos con los controles que le agregues a una

pagina vas a producir que el HTML para representarlos, y la clase Page 

(de

la cual derivas la clase que va a representar a tu pagina) ya incluye

algunos controles!!! que representan por ejemplo: los tags

<BODY>,<HTML>,etc. Entonces...? Si ya tenes ubicado como se genera cada

porcion de HTML lo que tenes que hacer es ubicar el control que la 

genera

(que puede ser tuyo o proporcionado por Page) y hacerle lo que 

quieras!.



>

> Me gustar=EDa que me expliques un poco mejor lo de las clases

> publicas..............ser=EDan una especie de session??



No exactamente. Aca habria que indentificar bien cual es tu 

requerimiento ya

que existen muchas maneras de hacer que los valores de controles o 

valores

de variables persisten de pagina en pagina, cada uno con sus pro y 

contras.

Una de las opciones provistas por los WebForms es State Bags, esto es 

un

repositorio que almacena pares de valores, por ejemplo:



ViewState["edad"] =3D 26;	// almacena un valor

int iEdad =3D (int)ViewState["edad"]; // recupera un valor



Como funciona esto? Todos los pares de valores que hayas almacenado se 

suman

a los pares de valores necesarios para persistir la informacion de los

controles del FORM y todo se almacena en el famoso VIEWSTATE. Esta 

solucion

parece barbara porque al persistirse con cada requerimiento no tiene 

que

almacenarse nada en el servidor, eso es cierto, pero tambien tiene 

contras,

como por ejemplo, tiempo de procesamiento necesario para decodificar 

esos

valores cuando llegan al servidor y algo que puede convertirse en 

importante

si se usa indiscriminadamente como es el largo que puede adquirir el

VIEWSTATE, record=E1 que este se incluye con cada pedido al servidor y 

el

servidor lo devuelve con cada respuesta, eso le esta sumando unos Kb

adicionales a cada pagina, si tu VIEWSTATE tiene 4Kb y tenes miles de

requerimientos, estas teniendo una sobrecarga de trafico considerable. 

No

cualquier tipo puede almacenarse en un VIEWSTATE, tiene que poder

convertirse a texto; esto para la mayoria de los tipos basicos, el 

ASP.NET

lo hace por vos. Si es un tipo que definiste vos, vas a tener que

implementarle un "TypeConverter".

Otra solucion que te comente, es usar variables de una clase tuya, de 

esta

manera podes almacenar los valores ahi, y luego acceder a una instancia 

de

esa clase desde la pagina que quieras para leer/escribir, el tema aca 

reside

en que ahora los valores no son pasados entre client/servidor con cada

pedido pero son **almacenados en el servidor**; entonces para algunos

valores de tipo sencillo puede servir pero olvidate de almacenar varios 

Kb

por cliente, porque con un trafico de usuarios alto te quedarias sin

aplicacion.



Hay otras soluciones tambien, por supuesto, ninguna perfecta. Es 

cuestion de

hacer un analisis de requerimientos especificos para ver que puede 

adaptarse

mejor. Lo bueno es que ahora las opciones son mas que antes!





>

> Con respecto a lo de VB6, no es que no entiendo. Tengo experiencia en 

VB o

> C++ , pero hace 2 a=F1os que me dedico plenamente al ASP, y conozco

> perfectamente la diferencia, lo que pasa es que lo que veo con .net 

es que

> ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6. Es 

m=E1s, lei

> en un libro que hay casos en que le podes dar copy a un windows

> form y paste

> en un webforms y funciona... entonces yo estoy loco y no entiendo, o

> realmente ellos quieren darle estilo de visual e independizarlo del 

html?

>



Decididamente son cosas diferentes. Se ha logrado un grado de 

abstraccion

muchisimo mayor que con ASP, de eso no hay duda, pero no se puede 

programar

en ASP.NET sin ser conciente del tipo de aplicacion que se esta

desarrollando y de admitir que es imposible que sea igual que con VB6.



saludos,

-Victor.









---

Usted est=E1 suscrito a aspx_espanol como:

crissone@a...

Para darse de baja, env=EDe un mensaje en blanco a

$subst('Email.Unsub')






$subst('Email.Unsub').

======================================================================

                      WARNING

The information in this e-mail and in any attachment is

confidential and intended solely for the attention and

use of the named addresse(s). It must therefore not be

disclosed to any person without our previous authorization.

If you are not the intended recipient or a person

responsible for delivering it to the intended recipient you

are not authorized to and must not disclose, copy, distribute

or retain this message or any part of it and you are requested

to notify the sender immediately.



Electronic messages may be altered. Aguas Provinciales de Santa Fe S.A. shall

therefore accept no liability whatsoever and howsoever resulting

from this message if it has been changed, distorted or falsified.



======================================================================



                    ADVERTENCIA

La información contenida en este mensaje y cualquier archivo anexo

al mismo es confidencial y dirigida exclusivamente para su

utilización y aplicación por los destinatarios consignados.

En consecuencia, no debe ser divulgada a ninguna persona sin

autorización previa. Si no es uno de los destinatarios consignados o

la persona responsable de hacer llegar este mensaje a los

destinatarios consignados, Usted no está autorizado a divulgar, copiar,

distribuir o retener la información (o parte de ella) contenida en este

mensaje, y se lo insta a notificar al remitente inmediatamente.



Los mensajes electrónicos pueden ser alterados. En consecuencia, Aguas Provinciales de Santa Fe S.A. no aceptará ninguna obligación
cualquiera sea el

resultante de este mensaje en caso de haber sido modificado, distorsionado o falsificado.





Message #8 by "Victor Garcia Aprea" <vga@o...> on Wed, 19 Dec 2001 15:45:34 -0300

Hola Cristian,



Aunque sintacticamente son identicas, la implementacion de ASP.NET del

ViewSate y el Session son dos cosas *muy* diferentes y no deberian

utilizarse indistintamente. Tu eleccion va a depender del tipo de aplicacion

y las particularidades de la misma.



Recordá principalmente que en el caso del ViewState la persistencia del

estado se logra incluyendo en cada pedido/respuesta los valores del mismo,

mientras que en un Session esos valores son almacenados en el servidor

consumiendo recursos valiosos.



Si bien es cierto que el Session de ASP.NET fue mejorado muchisimo con

respecto al Session de ASP (soporte para granjas de servidores y un modo de

funcionamiento sin necesidad de tener cookies activadas) sigue sin ser la

mejor solucion para muchos otros casos.



saludos,

-Victor.







> -----Original Message-----

> From: Rissone, Cristian [mailto:crissone@a...]

> Sent: Wednesday, December 19, 2001 2:51 PM

> To: ASP.Net en Español

> Subject: [aspx_espanol] Re: Y seguimos con el server side Continua Me

> olvide!

>

>

> Hola a todos ....

> Pregunta cortita ...veo que estan hablando de ViewState para

> almacenar valores de variables ...

> Porque no utilizan el objeto

> SESSION("NonbreVarible",ValorVariable) para pasar valores entre

> diferentes paginas ? Tiene esto algun inconveniente ?

> Gracias y saludos .

>

>

> -----Mensaje original-----

> De: Victor Garcia Aprea [mailto:vga@o...]

> Enviado el: Miércoles, 19 de Diciembre de 2001 05:41 a.m.

> Para: ASP.Net en Español

> Asunto: [aspx_espanol] Re: Y seguimos con el server side Continua Me

> olvide!

>

>

>

> Van los comentarios intercalados...

>

>

> > Muchisimas gracias por tu respuesta victor. Hay algunos puntos que no

> > entendí de tu respuesta.

> >

> > Los literalcontrols que son? Por lo que vi en la ayuda es un

> "control" que

> > convierte controles de servidor a HTML....

> > Que tiene que ver esto con que yo sepa en que linea va cada cosa?

> > Porque con

> > el .net, por ejemplo, donde veo yo la linea <form> ? Como se en

> el codigo

> > que si pongo response.write <input type=hidden> lo va a hacer dentro del

> > formulario?

>

> Los controles que yo te sugeri sirven para poner HTML/texto/etc donde vos

> quieras, el tema es que tenes que saber donde ponerlos!! La idea es que

> desde ASP.NET no veas el <FORM>. Por que? Por que esta todo orientado a

> objetos, aunque la mayoria de las veces no te des cuenta. Afirmemos unos

> conceptos... Cuando vos creas una pagina lo que en realidad estas haciendo

> es creando una clase nueva que va a derivarse de

> "System.Web.UI.Page", esto

> significa que vas heredar todos los beneficios que incluye Page o sea toda

> la funcionalidad basica que requiere una pagina. Esta clase nueva se

> compila, cuando alguien hace un pedido de tu pagina se crea una

> instancia en

> el servidor, se ejecuta y el resultado es... HTML... puro HTML que es

> devuelto al cliente. Ahora bien... donde se crea cada "pedacito" del HTML

> que contiene una pagina... vos con los controles que le agregues a una

> pagina vas a producir que el HTML para representarlos, y la clase Page (de

> la cual derivas la clase que va a representar a tu pagina) ya incluye

> algunos controles!!! que representan por ejemplo: los tags

> <BODY>,<HTML>,etc. Entonces...? Si ya tenes ubicado como se genera cada

> porcion de HTML lo que tenes que hacer es ubicar el control que la genera

> (que puede ser tuyo o proporcionado por Page) y hacerle lo que quieras!.

>

> >

> > Me gustaría que me expliques un poco mejor lo de las clases

> > publicas..............serían una especie de session??

>

> No exactamente. Aca habria que indentificar bien cual es tu

> requerimiento ya

> que existen muchas maneras de hacer que los valores de controles o valores

> de variables persisten de pagina en pagina, cada uno con sus pro

> y contras.

> Una de las opciones provistas por los WebForms es State Bags, esto es un

> repositorio que almacena pares de valores, por ejemplo:

>

> ViewState["edad"] = 26;	// almacena un valor

> int iEdad = (int)ViewState["edad"]; // recupera un valor

>

> Como funciona esto? Todos los pares de valores que hayas

> almacenado se suman

> a los pares de valores necesarios para persistir la informacion de los

> controles del FORM y todo se almacena en el famoso VIEWSTATE.

> Esta solucion

> parece barbara porque al persistirse con cada requerimiento no tiene que

> almacenarse nada en el servidor, eso es cierto, pero tambien

> tiene contras,

> como por ejemplo, tiempo de procesamiento necesario para decodificar esos

> valores cuando llegan al servidor y algo que puede convertirse en

> importante

> si se usa indiscriminadamente como es el largo que puede adquirir el

> VIEWSTATE, recordá que este se incluye con cada pedido al servidor y el

> servidor lo devuelve con cada respuesta, eso le esta sumando unos Kb

> adicionales a cada pagina, si tu VIEWSTATE tiene 4Kb y tenes miles de

> requerimientos, estas teniendo una sobrecarga de trafico considerable. No

> cualquier tipo puede almacenarse en un VIEWSTATE, tiene que poder

> convertirse a texto; esto para la mayoria de los tipos basicos, el ASP.NET

> lo hace por vos. Si es un tipo que definiste vos, vas a tener que

> implementarle un "TypeConverter".

> Otra solucion que te comente, es usar variables de una clase tuya, de esta

> manera podes almacenar los valores ahi, y luego acceder a una instancia de

> esa clase desde la pagina que quieras para leer/escribir, el tema

> aca reside

> en que ahora los valores no son pasados entre client/servidor con cada

> pedido pero son **almacenados en el servidor**; entonces para algunos

> valores de tipo sencillo puede servir pero olvidate de almacenar varios Kb

> por cliente, porque con un trafico de usuarios alto te quedarias sin

> aplicacion.

>

> Hay otras soluciones tambien, por supuesto, ninguna perfecta. Es

> cuestion de

> hacer un analisis de requerimientos especificos para ver que

> puede adaptarse

> mejor. Lo bueno es que ahora las opciones son mas que antes!

>

>

> >

> > Con respecto a lo de VB6, no es que no entiendo. Tengo

> experiencia en VB o

> > C++ , pero hace 2 años que me dedico plenamente al ASP, y conozco

> > perfectamente la diferencia, lo que pasa es que lo que veo con

> .net es que

> > ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6.

> Es más, lei

> > en un libro que hay casos en que le podes dar copy a un windows

> > form y paste

> > en un webforms y funciona... entonces yo estoy loco y no entiendo, o

> > realmente ellos quieren darle estilo de visual e independizarlo

> del html?

> >

>

> Decididamente son cosas diferentes. Se ha logrado un grado de abstraccion

> muchisimo mayor que con ASP, de eso no hay duda, pero no se puede

> programar

> en ASP.NET sin ser conciente del tipo de aplicacion que se esta

> desarrollando y de admitir que es imposible que sea igual que con VB6.

>

> saludos,

> -Victor.

>

>

>

>

> ---

> Usted está suscrito a aspx_espanol como:

> crissone@a...

> Para darse de baja, envíe un mensaje en blanco a

> $subst('Email.Unsub')

>




> $subst('Email.Unsub').

> =======================                      WARNING

> The information in this e-mail and in any attachment is

> confidential and intended solely for the attention and

> use of the named addresse(s). It must therefore not be

> disclosed to any person without our previous authorization.

> If you are not the intended recipient or a person

> responsible for delivering it to the intended recipient you

> are not authorized to and must not disclose, copy, distribute

> or retain this message or any part of it and you are requested

> to notify the sender immediately.

>

> Electronic messages may be altered. Aguas Provinciales de Santa

> Fe S.A. shall

> therefore accept no liability whatsoever and howsoever resulting

> from this message if it has been changed, distorted or falsified.

>

> =======================

>                     ADVERTENCIA

> La información contenida en este mensaje y cualquier archivo anexo

> al mismo es confidencial y dirigida exclusivamente para su

> utilización y aplicación por los destinatarios consignados.

> En consecuencia, no debe ser divulgada a ninguna persona sin

> autorización previa. Si no es uno de los destinatarios consignados o

> la persona responsable de hacer llegar este mensaje a los

> destinatarios consignados, Usted no está autorizado a divulgar, copiar,

> distribuir o retener la información (o parte de ella) contenida en este

> mensaje, y se lo insta a notificar al remitente inmediatamente.

>

> Los mensajes electrónicos pueden ser alterados. En consecuencia,

> Aguas Provinciales de Santa Fe S.A. no aceptará ninguna

> obligación cualquiera sea el

> resultante de este mensaje en caso de haber sido modificado,

> distorsionado o falsificado.

>

>

>

> ---

> Usted está suscrito a aspx_espanol como:

> vga@o...

> Para darse de baja, envíe un mensaje en blanco a

> $subst('Email.Unsub')

>




> $subst('Email.Unsub').

>



Message #9 by "Rissone, Cristian" <crissone@a...> on Wed, 19 Dec 2001 15:47:44 -0300
Gracias Victor .

Saludos .



-----Mensaje original-----

De: Victor Garcia Aprea [mailto:vga@o...]

Enviado el: Mi=E9rcoles, 19 de Diciembre de 2001 03:46 p.m.

Para: ASP.Net en Espa=F1ol

Asunto: [aspx_espanol] Re: Y seguimos con el server side Continua Me

olvide!







Hola Cristian,



Aunque sintacticamente son identicas, la implementacion de ASP.NET del

ViewSate y el Session son dos cosas *muy* diferentes y no deberian

utilizarse indistintamente. Tu eleccion va a depender del tipo de 

aplicacion

y las particularidades de la misma.



Record=E1 principalmente que en el caso del ViewState la persistencia 

del

estado se logra incluyendo en cada pedido/respuesta los valores del 

mismo,

mientras que en un Session esos valores son almacenados en el servidor

consumiendo recursos valiosos.



Si bien es cierto que el Session de ASP.NET fue mejorado muchisimo con

respecto al Session de ASP (soporte para granjas de servidores y un 

modo de

funcionamiento sin necesidad de tener cookies activadas) sigue sin ser 

la

mejor solucion para muchos otros casos.



saludos,

-Victor.







> -----Original Message-----

> From: Rissone, Cristian [mailto:crissone@a...]

> Sent: Wednesday, December 19, 2001 2:51 PM

> To: ASP.Net en Espa=F1ol

> Subject: [aspx_espanol] Re: Y seguimos con el server side Continua Me

> olvide!

>

>

> Hola a todos ....

> Pregunta cortita ...veo que estan hablando de ViewState para

> almacenar valores de variables ...

> Porque no utilizan el objeto

> SESSION("NonbreVarible",ValorVariable) para pasar valores entre

> diferentes paginas ? Tiene esto algun inconveniente ?

> Gracias y saludos .

>

>

> -----Mensaje original-----

> De: Victor Garcia Aprea [mailto:vga@o...]

> Enviado el: Mi=E9rcoles, 19 de Diciembre de 2001 05:41 a.m.

> Para: ASP.Net en Espa=F1ol

> Asunto: [aspx_espanol] Re: Y seguimos con el server side Continua Me

> olvide!

>

>

>

> Van los comentarios intercalados...

>

>

> > Muchisimas gracias por tu respuesta victor. Hay algunos puntos que 

no

> > entend=ED de tu respuesta.

> >

> > Los literalcontrols que son? Por lo que vi en la ayuda es un

> "control" que

> > convierte controles de servidor a HTML....

> > Que tiene que ver esto con que yo sepa en que linea va cada cosa?

> > Porque con

> > el .net, por ejemplo, donde veo yo la linea <form> ? Como se en

> el codigo

> > que si pongo response.write <input type=3Dhidden> lo va a hacer 

dentro del

> > formulario?

>

> Los controles que yo te sugeri sirven para poner HTML/texto/etc donde 

vos

> quieras, el tema es que tenes que saber donde ponerlos!! La idea es 

que

> desde ASP.NET no veas el <FORM>. Por que? Por que esta todo orientado 

a

> objetos, aunque la mayoria de las veces no te des cuenta. Afirmemos 

unos

> conceptos... Cuando vos creas una pagina lo que en realidad estas 

haciendo

> es creando una clase nueva que va a derivarse de

> "System.Web.UI.Page", esto

> significa que vas heredar todos los beneficios que incluye Page o sea 

toda

> la funcionalidad basica que requiere una pagina. Esta clase nueva se

> compila, cuando alguien hace un pedido de tu pagina se crea una

> instancia en

> el servidor, se ejecuta y el resultado es... HTML... puro HTML que es

> devuelto al cliente. Ahora bien... donde se crea cada "pedacito" del 

HTML

> que contiene una pagina... vos con los controles que le agregues a 

una

> pagina vas a producir que el HTML para representarlos, y la clase 

Page (de

> la cual derivas la clase que va a representar a tu pagina) ya incluye

> algunos controles!!! que representan por ejemplo: los tags

> <BODY>,<HTML>,etc. Entonces...? Si ya tenes ubicado como se genera 

cada

> porcion de HTML lo que tenes que hacer es ubicar el control que la 

genera

> (que puede ser tuyo o proporcionado por Page) y hacerle lo que 

quieras!.

>

> >

> > Me gustar=EDa que me expliques un poco mejor lo de las clases

> > publicas..............ser=EDan una especie de session??

>

> No exactamente. Aca habria que indentificar bien cual es tu

> requerimiento ya

> que existen muchas maneras de hacer que los valores de controles o 

valores

> de variables persisten de pagina en pagina, cada uno con sus pro

> y contras.

> Una de las opciones provistas por los WebForms es State Bags, esto es 

un

> repositorio que almacena pares de valores, por ejemplo:

>

> ViewState["edad"] =3D 26;	// almacena un valor

> int iEdad =3D (int)ViewState["edad"]; // recupera un valor

>

> Como funciona esto? Todos los pares de valores que hayas

> almacenado se suman

> a los pares de valores necesarios para persistir la informacion de 

los

> controles del FORM y todo se almacena en el famoso VIEWSTATE.

> Esta solucion

> parece barbara porque al persistirse con cada requerimiento no tiene 

que

> almacenarse nada en el servidor, eso es cierto, pero tambien

> tiene contras,

> como por ejemplo, tiempo de procesamiento necesario para decodificar 

esos

> valores cuando llegan al servidor y algo que puede convertirse en

> importante

> si se usa indiscriminadamente como es el largo que puede adquirir el

> VIEWSTATE, record=E1 que este se incluye con cada pedido al servidor 

y el

> servidor lo devuelve con cada respuesta, eso le esta sumando unos Kb

> adicionales a cada pagina, si tu VIEWSTATE tiene 4Kb y tenes miles de

> requerimientos, estas teniendo una sobrecarga de trafico 

considerable. No

> cualquier tipo puede almacenarse en un VIEWSTATE, tiene que poder

> convertirse a texto; esto para la mayoria de los tipos basicos, el 

ASP.NET

> lo hace por vos. Si es un tipo que definiste vos, vas a tener que

> implementarle un "TypeConverter".

> Otra solucion que te comente, es usar variables de una clase tuya, de 

esta

> manera podes almacenar los valores ahi, y luego acceder a una 

instancia de

> esa clase desde la pagina que quieras para leer/escribir, el tema

> aca reside

> en que ahora los valores no son pasados entre client/servidor con 

cada

> pedido pero son **almacenados en el servidor**; entonces para algunos

> valores de tipo sencillo puede servir pero olvidate de almacenar 

varios Kb

> por cliente, porque con un trafico de usuarios alto te quedarias sin

> aplicacion.

>

> Hay otras soluciones tambien, por supuesto, ninguna perfecta. Es

> cuestion de

> hacer un analisis de requerimientos especificos para ver que

> puede adaptarse

> mejor. Lo bueno es que ahora las opciones son mas que antes!

>

>

> >

> > Con respecto a lo de VB6, no es que no entiendo. Tengo

> experiencia en VB o

> > C++ , pero hace 2 a=F1os que me dedico plenamente al ASP, y conozco

> > perfectamente la diferencia, lo que pasa es que lo que veo con

> .net es que

> > ELLOS MISMOS quisieron convertirlo a un estilo parecido a VB6.

> Es m=E1s, lei

> > en un libro que hay casos en que le podes dar copy a un windows

> > form y paste

> > en un webforms y funciona... entonces yo estoy loco y no entiendo, 

o

> > realmente ellos quieren darle estilo de visual e independizarlo

> del html?

> >

>

> Decididamente son cosas diferentes. Se ha logrado un grado de 

abstraccion

> muchisimo mayor que con ASP, de eso no hay duda, pero no se puede

> programar

> en ASP.NET sin ser conciente del tipo de aplicacion que se esta

> desarrollando y de admitir que es imposible que sea igual que con 

VB6.

>

> saludos,

> -Victor.

>

>

>

>

> ---

> Usted est=E1 suscrito a aspx_espanol como:

> crissone@a...

> Para darse de baja, env=EDe un mensaje en blanco a

> $subst('Email.Unsub')

>




> $subst('Email.Unsub').

> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 

                     WARNING

> The information in this e-mail and in any attachment is

> confidential and intended solely for the attention and

> use of the named addresse(s). It must therefore not be

> disclosed to any person without our previous authorization.

> If you are not the intended recipient or a person

> responsible for delivering it to the intended recipient you

> are not authorized to and must not disclose, copy, distribute

> or retain this message or any part of it and you are requested

> to notify the sender immediately.

>

> Electronic messages may be altered. Aguas Provinciales de Santa

> Fe S.A. shall

> therefore accept no liability whatsoever and howsoever resulting

> from this message if it has been changed, distorted or falsified.

>

> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

>                     ADVERTENCIA

> La informaci=F3n contenida en este mensaje y cualquier archivo anexo

> al mismo es confidencial y dirigida exclusivamente para su

> utilizaci=F3n y aplicaci=F3n por los destinatarios consignados.

> En consecuencia, no debe ser divulgada a ninguna persona sin

> autorizaci=F3n previa. Si no es uno de los destinatarios consignados 

o

> la persona responsable de hacer llegar este mensaje a los

> destinatarios consignados, Usted no est=E1 autorizado a divulgar, 

copiar,

> distribuir o retener la informaci=F3n (o parte de ella) contenida en 

este

> mensaje, y se lo insta a notificar al remitente inmediatamente.

>

> Los mensajes electr=F3nicos pueden ser alterados. En consecuencia,

> Aguas Provinciales de Santa Fe S.A. no aceptar=E1 ninguna

> obligaci=F3n cualquiera sea el

> resultante de este mensaje en caso de haber sido modificado,

> distorsionado o falsificado.

>

>

>

> ---

> Usted est=E1 suscrito a aspx_espanol como:

> vga@o...

> Para darse de baja, env=EDe un mensaje en blanco a

> $subst('Email.Unsub')

>




> $subst('Email.Unsub').

>





---

Usted est=E1 suscrito a aspx_espanol como:

crissone@a...

Para darse de baja, env=EDe un mensaje en blanco a

$subst('Email.Unsub')






$subst('Email.Unsub').

======================================================================

                      WARNING

The information in this e-mail and in any attachment is

confidential and intended solely for the attention and

use of the named addresse(s). It must therefore not be

disclosed to any person without our previous authorization.

If you are not the intended recipient or a person

responsible for delivering it to the intended recipient you

are not authorized to and must not disclose, copy, distribute

or retain this message or any part of it and you are requested

to notify the sender immediately.



Electronic messages may be altered. Aguas Provinciales de Santa Fe S.A. shall

therefore accept no liability whatsoever and howsoever resulting

from this message if it has been changed, distorted or falsified.



======================================================================



                    ADVERTENCIA

La información contenida en este mensaje y cualquier archivo anexo

al mismo es confidencial y dirigida exclusivamente para su

utilización y aplicación por los destinatarios consignados.

En consecuencia, no debe ser divulgada a ninguna persona sin

autorización previa. Si no es uno de los destinatarios consignados o

la persona responsable de hacer llegar este mensaje a los

destinatarios consignados, Usted no está autorizado a divulgar, copiar,

distribuir o retener la información (o parte de ella) contenida en este

mensaje, y se lo insta a notificar al remitente inmediatamente.



Los mensajes electrónicos pueden ser alterados. En consecuencia, Aguas Provinciales de Santa Fe S.A. no aceptará ninguna obligación
cualquiera sea el

resultante de este mensaje en caso de haber sido modificado, distorsionado o falsificado.






  Return to Index