|
 |
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.
|
|
 |