asp net 4 a traves de ejemplos


Buenos dias, me gustaria dedicar este curso sobre todo a mi padre quien siempre me ha dicho que nunca entendia el detalle de trabajo como programador siempre quedandose embelesado ante lo que es un aplicacion espero que este contenido te lo aclare y hagas tus "pinitos"...,tambien lo dedico a todos aquellos que avidos de interes por el conocimiento de desarrollo que no diseño de paginas web esten deseando crear un por ejemplo motor de busqueda para sus paginas o una aplicacion web en general espero que disfruten el curso tanto como yo lo estoy disfrutando escribiendolo, tambien espero que superen los conocimientos que se muestran en el curso si desarrollais algo de los que esteis orgullosos al margen de este curso dejadme un mensaje y vere vuestra url.Al curso tal cual lo estoy creando se iran añadiendo "subcuros" Javascript XHTML... etc no es imprescindible que os aprendais todos los subcursos porque os llevaria un tiempo mucho mas grande que el deseado para el proposito final con que diseñe este que es el de aprender ASP .NET hojead los subcursos haced practicas modificando los ejercicios con otros tags/ejemplos que vengan en ellos luego podreis usar los subcursos para ir "mas alla " en cuanto os tengais que enfrentar a problemas distintos a los planteados aqui o mas concretos.

aplicaciones hay2 tipos de aplicaciones, compiladas como los scripts CGI Common Gateway Interface e interpretadas como el Javascript

en el primer caso Javascript, se interpreta en tiempo de ejecucion el script mediante un interprete (navegador) obteniendo un resultado de interpretar el codigo.

en el segundo caso CGI bin script el servidor tiene compilado y linkado, un programa en C etc que ejecuta el servidor como resultado a una entrada de datos.

diferencias entre aplicaciones .NET de escritorio y aplicaciones web y aplicaciones mobiles

estas 3 citadas aplicaciones son basicamente con tecnologia microsoft los 3 a grandes rasgos tipos de desarrollo que se pueden realizar, al margen de la interconexion entre estas tecnologias.


  1. las aplicaciones de escritorio son aplicaciones que pueden o no estar conectadas en internet y que se ejecutan en la memoria del ordenador conectadas a un .net framework (ya van por la version 4) es decir el codigo .net se compila a codigo msil y este es ejecutado por el framework  a codigo maquina que puede ser de 32 o 64 bits en uno o mas procesadores de esta tarea la mayor parte la ejecuta el framework aunque tambien depende de como programemos ,las tecnologias usadas son programacion en WinForms y programacion en Windows Presentation Foundation, la diferencia entre ambos es que mientras que en uno el codigo de cada pantalla es una clase con controles insertados o personalizados,cajas de texto , etiquetas, botones por decirlo de alguna manera en Winforms "incrustados en el formulario" con pocas posibilidades de aplicar efectos graficos , con Windows Presentation Foundation se usa un lenguaje de marcado XAML jerarquico para definir las pantallas con amplias posibilidades de realizar efectos , nota toda aplicacion WPF en windows puede a su vez ejecutarse en web en un navegador descargando el plug in de ejecucion de WPF para Internet Explorer (navegador que lo soporta), programacion concurrente o de consultas en paralelo Linq , podremos optimizar el rendimiento de nuestras aplicaciones para varios procesadores, esto escapa de este curos sin embargo si teneis curiosidad podeis consultar el libro parllel programming de la editorial wrox para introduciros en este tambien apasionante tema. http://www.postw.com/posts/libros/9859/bajar-gratis-wrox-professional-parallel-programming-with-dec-2010/
  2. las aplicaciones web son aquellas aplicaciones que se ejecutan en nuestro navegador actualmente hay varias tecnologias microsoft Windows Presentation Foundation y ASP .NET su desarrollo es analogo al de aplicaciones de escritorio , mientras que en ASP .NET los formularios web son mas dificiles de aplicarles efectos graficos , al final lo que carga el navegador es un lenguaje de marcado llamado HTML que veremos mas tarde y scripts en javascript para personalizar eventos acciones de este lenguaje de marcado , WPF sigue trabajando con XAML pudiendo realizar todo tipo de efectos cliente rico , otra diferencia es que en ASP .NET se "vuelca" el contenido total o parcial de la pagina HTML con los cambios al seridor cada vez que se realiza una accion como pulsar un boton de enviar una pagina, mientras que WPF trabaja en un motor de ejecucion en local que se comunica mediante otras tecnologias a servidores remotos para realizar las conexiones con bases de datos etc.la limitacion de las aplicaciones tanto WPF como web es que andan "aisladas" del hardware del equipo con lo cual se complica un poco mas por seguridad el acceso al hardware del PC aceleradora grafica, sistema de archivos del disco duro, si se produce algun acceso este esta esta encapsulado por clases en .NET o ejecutado bajo lo que se llama un control ActiveX
  3. una aplicacion mobile puede ser una aplicacion ASP .NET ejecutada en un navegador IE bajo por ejemplo Windows Mobile 7 o una aplicacion bajo WPF en este caso no hay limitacion de acceso al hardware el telefono y su ejecucion no se realiza conectandose a un solo servidor remoto si no como a una especie de "nube" de servidores que proporcionan los servicios y distribucion de la aplicacion ,de una forma rapida, bajo una plataforma llamada Windows Azurehttp://www.mhprofessional.com/product.php?isbn=0071717897
Un Poco de HTML
a partir de ahora solo hablare de desarrollo web, esto significa que tendremos n equipos con n o mas navegadores conectados a un servidor web ASP NET IIS, internet information server que es el que se encarga de la gestion de servir y recibir los envios de los formularios web.

hay dos tipos de metodos de envios de una pagina web a un servidor IIS , el metodoo GET y el POST estos forman parte del protocolo HTTP que va por el puerto 80 de nuestro ordenador normalmente y evita la complicacion de complejas configuraciones de Firewalls ya que estos por defecto permiten enviar datos por ese puerto con seguridad.

el metodo GET envia o recibe una solicitud web y es una instruccion que ejecuta el navegador IE internet Eplorer cargando la pagina de la URL solicitada o devolviendo un codigo HTTP de error en caso de que no  pueda cargarla/enviarla , si se envian datos via GET esto se hace mediante la URL como en este interesante video que podeis ver los parametros de la peticion del video a you tube se hacen mediante un GET:
http://www.youtube.com/watch?v=LM4SB_m-Fas


el metodo POST es otro metodo usado por HTTP para "postear" enviar los datos de nuestra pagina web al servidor , en este caso los valores de los controles son enviados en variables "ocultas" que se pueden leer desde el servidor sin que el usuario las pueda ver en la URL o direccion de nuestro navegador.

Que es una pagina web o HTML interpertada por el navegador?
no es mas que una serie de tags o etiquetas que pueden ir anidadas entre si en algo llamado DOM, Document Object Model y no es mas que una representacion jerarquica de HTML.
todas las paginas HTML contienen al menos los tags
<HEAD title="titulo de la pagina en el marco superior de la ventana del navegador">
</HEAD>
<BODY onload="cargada()">
</BODY>

Con este Editor HTML/Javascript podreis ver los ejemplos en tiempo real online http://smultron.es/editor-html-online/ hasta que veamos el editor del entorno de desarrollo de .NET Visual Studio.

head es el tag de cabecera de la pagina web entre cada apertura y cierre de HEAD se incluyen las etiqeutas meta por ejemplo para refrescar automaticamente la carga de la pagina pasados unos segundos o antiguamente se usaba para definir el contenido de la web en los buscadores y para guardar anidado otro tag
<SCRIPT language="Javascript">
function cargada()
{
      alert("se cargo la pagina");
}
</SCRIPT>

si incluimos el tag SCRIPT dentro del HEAD y añadimos al evento del tag BODY o cuerpo de la pagina que cuando se cargue llame al codigo de scripting Javascript (ya lo veremos en mas detalle) y muestre un mensaje cuando haya finalizado la carga de la pagina.dentro de las etiquetas de apertura y cierre de BODY va añadido un formulario o controles HTML ,
<BODY>
<INPUT id="Botonfueraform" Type="Button" onClick="cargada()"></INPUT>
<FORM> <INPUT id="Botondentroform" Type="Button" onClick="cargada()"></INPUT></FORM>
</BODY>
en ASP NET no trabajaremos exactamente con HTML sino con XHTML las diferencias son que siempre toda etiqueta de apertura tiene una de cierre tambien hay etiquetas de apertura y cierre simultaneas en la misma etiqueta como <BR/> que inserta un salto de linea, pruebenlo!!
abran el bloc de notas en mi-PC->programas->accesorios y creen su pagina web escriban texto libre con o sin javascript y con texto separado por <BR/> a continuacion guarde la pagina como un archivo con extension .htm que junto con .html son las extensiones de paginas web en Windows y Unix respectivamente
como se observa claramente el formateo de la pagina web no es literal , depende del marcado HTML y otra cosa mas llamada estilos de la pagina que veremos a continuacion.


otra cosa que se me habia olvidado en XHTML, HTML son los caracteres de escape, si probais un poco con los tags
vereis que siempre os salen las palabras "pegadas" entre si por muchos espacios que incorporeis
en el documento de texto, esto es porque HTML XHTML es un lenguaje de marcado interpretado por el
navegador para arreglar esto estan las secuencias de escape veamoslo:
poned &nbsp; 10 veces y os agregara 10 espacios en blanco hay muchas mas secuencias de escape 
como por ejemplo los simbolos < y > que son respectivamente &lt; &gt;


mas Javascript:
vamos a ver un sencillo programa en javascript que valide el contenido de una caja de texto.
hay que indicar que javascript es case sensitive es decir no es lo mismo la funcion VALIDA_NUMERICO() que valida_numerico(), las variables se declaran con var seguido de una inicializacion de tipos, si no se inicializa el tipo se asume que es del tipo abstracto object que despues se puede inicializar en tiempo de ejecucion.
<HEAD>

<SCRIPT language="Javascript">
function VALIDA_NUMERICO(textcaja)
{
      var numericolongitud4dec3=/^-?\d4+\.\d3+)$/; expresion regular o regular expression
      if(numericolongitud4dec3.test(textcaja))
       {
           return true;
       }
       else
       {
           return false;
        }
       return false;
}
function OnKeyPresscajanum_longitud(e,texto,long)
{
     switch(e.KeyChar) //e es el evento input.event
    {
    case 0,1,2,3,4,5,6,7,8,9:
             VALIDA_NUMERICO(texto+e.KeyChar);
     case else:
        break;
     }
         if(texto.length>long)
          {
          e.CancelBubble=true; //cancela la cascada de eventos desde la ventana hasta el tag input
                                            //window.body...input para que no                
                                            //agregue el caracter
          return e;
          }
          return e;
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT Type="Text" id="caja" onKeyPress="OnKeyPresscajanum_longitud(e,texto,long)"></INPUT>
</BODY>









Events in JavaScript

A AFont sizePrint ContentAdd new contentShare
The following table contains the complete list of events, their browser support and types. If you need the interfaces that belong to the event types in hierarchical form, see the page for the Event interface.
Name that can be used for theaddEventListenerremoveEventListenerand event initialization (initEvent, ...) methods.Name that can be used for event attributes (HTML), shorthand form (e.g. obj.onclick) and for theattachEventdetachEvent and fireEvent methods.SupportBubblesCancelableDescriptionType
-onabort
YesNoOccurs when the user aborts the loading of animg or input:image element.Event
-onactivate
YesNoOccurs when an element becomes active.Event
-onafterprint
NoNoOccurs when the browser has built the contents of the current document for printing or for the print preview.Event
-onafterupdate
YesNoOccurs on a databound object after it updates the data in the data source object.Event
-onbeforeactivate
YesPartiallyOccurs before an element becomes active.Event
beforecopyonbeforecopy
YesYesOccurs before the selection is copied to the clipboard and before the oncopy event.Event
beforecutonbeforecut
YesYesOccurs before the selection is cut from the document and provides a possibility to enable the Cut menu item.Event
-onbeforedeactivate
YesYesOccurs on the active element before it loses the active state.Event
-onbeforeeditfocus
YesYesOccurs before an input:fileinput:password,input:text or textarea element or an element in an editable region becomes a UI-activated.Event
beforepasteonbeforepaste
YesYesOccurs before the contents of the clipboard are pasted into the document and provides a possibility to enable the Paste menu item.Event
-onbeforeprint
NoNoOccurs when the browser starts to build the contents of the current document for printing or for the print preview.Event
beforeunloadonbeforeunload
NoYesOccurs before the browser unloads the document and provides a possibility to display a confirmation dialog, where the user can confirm whether he wants to stay or leave the current page.Event
-onbeforeupdate
YesYesOccurs on a databound object before it updates the data in the data source object.Event
bluronblur
NoNoOccurs when an element loses focus.Event
bounceonbounce
NoYesOccurs when the contents of a marqueeelement touch one side of the marqueeelement's bounding rectangle.Event
-oncellchange
YesNoOccurs on a data source object when the data in it has changed.Event
changeonchange
NoYesOccurs when the selection, the checked state or the contents of an element have changed. In some cases, it only occurs when the element loses the focus.Event
CheckboxStateChange-
NoNoOccurs when the state of a checkbox has changed.Event
clickonclick
YesYesOccurs when the user clicks on an element.MouseEvent
contextmenuoncontextmenu
YesYesOccurs when the right mouse button is clicked on an element and the context menu is shown.MouseEvent
-oncontrolselect
YesYesOccurs before a control is selected in an editable region.Event
copyoncopy
YesYesOccurs before the selection is copied to the clipboard.Event
cutoncut
YesYesOccurs before the selection is cut from the document and added to the clipboard.Event
-ondataavailable
YesNoOccurs each time when a new chunk of data becomes available from the source.Event
-ondatasetchanged
YesNoOccurs on a data source object when the initial or a new data set becomes available.Event
-ondatasetcomplete
YesNoOccurs on a data source object when all its data becomes available.Event
dblclickondblclick
YesYesOccurs when the user double clicks on an element.MouseEvent
-ondeactivate
YesNoOccurs on the active element when it loses the active state.Event
DOMActivate-
YesYesOccurs when an element becomes active.UIEvent
DOMAttrModified-
YesNoFires when an attribute is added, removed or when the value of an attribute is modified by script.MutationEvent
DOMCharacterDataModified-
YesNoFires when a script changes the value of aTextNode.MutationEvent
DOMFocusIn-
YesNoOccurs before an element receives focus.UIEvent
DOMFocusOut-
YesNoOccurs before an element loses the focus.UIEvent
DOMMouseScroll-
NoNoOccurs when the mouse wheel rolls.MouseEvent
DOMNodeInserted-
YesNoOccurs on a node when it is added to an element.MutationEvent
DOMNodeInsertedIntoDocument-
NoNoOccurs on a node when it is inserted into the document.MutationEvent
DOMNodeRemoved-
YesNoOccurs on a node when it is removed from its parent.MutationEvent
DOMNodeRemovedFromDocument-
NoNoOccurs on a node when it is removed from the document.MutationEvent
DOMSubtreeModified-
YesNoFires on a node when a modification occurs in the subtree that belongs to it.MutationEvent
dragondrag
3
YesYesOccurs periodically on the source element during the drag operation.In Firefox from version 3.5:DragEvent
In Safari, Google Chrome and in older Firefox:MouseEvent
dragdrop-
3.5
YesYesOccurs on a possible target element when the dragged data is dropped on it.MouseEvent
dragendondragend
3
YesYesOccurs on the source element when the user has finished the drag operation.In Firefox from version 3.5:DragEvent
In Safari, Google Chrome and in older Firefox:MouseEvent
dragenterondragenter
YesYesOccurs on an element when the user moves the mouse pointer into it during a drag operation.In Firefox from version 3.5:DragEvent
In Safari, Google Chrome and in older Firefox:MouseEvent
dragexit-
YesYesOccurs on an element when the user moves the mouse pointer out of it during a drag operation.In Firefox from version 3.5:DragEvent
In onlder Firefox:MouseEvent
draggesture-
YesYesOccurs on the source element when the user starts the drag operation.In Firefox from version 3.5:DragEvent
In onlder Firefox:MouseEvent
dragleaveondragleave
3.5
YesYesOccurs on an element when the user moves the mouse pointer out of it during a drag operation.In Firefox from version 3.5:DragEvent
In Safari and Google Chrome:MouseEvent
dragoverondragover
YesYesOccurs periodically on an element while the mouse pointer is over it during a drag operation.In Firefox from version 3.5:DragEvent
In Safari, Google Chrome and in older Firefox:MouseEvent
dragstartondragstart
3.5
YesYesOccurs on the source element when the user starts the drag operation.In Firefox from version 3.5:DragEvent
In Safari and Google Chrome:MouseEvent
dropondrop
3.5
YesYesOccurs on a possible target element when the dragged data is dropped on it.In Firefox from version 3.5:DragEvent
In Safari and Google Chrome:MouseEvent
erroronerror
NoYesFires when an error occurs while loading an external file.Event
-onerrorupdate
YesNoOccurs on a databound object when it cannot update the data in the data source object.Event
-onfilterchange
NoNoOccurs after a filter has changed or finished a transition.Event
finishonfinish
NoYesOccurs when a marquee element has finished the scrolling animation.Event
focusonfocus
NoNoOccurs when an element receives focus.Event
-onfocusin
YesNoOccurs before an element receives focus.Event
-onfocusout
YesNoOccurs after an element loses focus.Event
hashchangeonhashchange
83.610.65
YesNoOccurs when the hash subsection (begins with a '#' sign) of the current document's URL has changed.Event
-onhelp
YesYesOccurs after the user has pressed the F1 key.Event
inputoninput
NoNoOccurs when the text content of an element is changed through the user interface.Event
keydownonkeydown
YesYesOccurs on an element that has the focus when a key is pressed down and occurs periodically until the key is released.KeyboardEvent
keypressonkeypress
YesYesOccurs on an element that has the focus when a key is pressed down and occurs periodically until the key is released.KeyboardEvent
keyuponkeyup
YesNoOccurs on an element that has the focus when the user releases a key.KeyboardEvent
loadonload
NoNoOccurs when an object has been loaded.Event
-onlosecapture
NoNoOccurs when the object loses the mouse capture.Event
messageonmessage
83
NoYesOccurs when the postMessage method sends a message to the current window.MessageEvent
mousedownonmousedown
YesYesOccurs when the user presses a mouse button over an element.MouseEvent
-onmouseenter
NoNoOccurs when the user moves the mouse pointer into the area of an element.Event
-onmouseleave
NoNoOccurs when the user moves the mouse pointer out of the element.Event
mousemoveonmousemove
YesNoOccurs when the user moves the mouse over the element.MouseEvent
mouseoutonmouseout
YesNoOccurs when the user moves the mouse pointer out of the element.MouseEvent
mouseoveronmouseover
YesYesOccurs when the user moves the mouse pointer into the element.MouseEvent
mouseuponmouseup
YesYesOccurs when the user releases a mouse button over an element.MouseEvent
mousewheelonmousewheel
YesYesOccurs when the mouse wheel rolls.MouseEvent in Firefox and Opera
WheelEvent in Safari and Google Chrome
-onmove
YesNoOccurs when the position of an element's top-left corner is changed.Event
-onmoveend
YesNoOccurs when the user stops dragging an absolute or relative positioned element in an editable region.Event
-onmovestart
YesYesOccurs when the user starts dragging an absolute or relative positioned element in an editable region.Event
offlineonoffline
83
NoNoOccurs when the browser starts to work offline.Event
onlineononline
83
NoNoOccurs when the browser starts to work online.Event
overflow-
NoNoOccurs when the contents or the size of an element is changed and it causes a scrollbar to appear.UIEvent
overflowchanged-
NoNoOccurs when the contents or the size of an element is changed and it causes a scrollbar to appear or disappear.OverflowEvent
pasteonpaste
YesYesOccurs before the contents of the clipboard are pasted into the document.Event
-onpropertychange
NoNoOccurs every time when the value of an element's property is changed.Event
RadioStateChange-
NoNoOccurs when the state of a radio button has changed.Event
readystatechangeonreadystatechange
NoNoOccurs when the load state of the data that belongs to an element or a HTML documentchanges.Event
resetonreset
NoYesOccurs on a form before it is reset.Event
resizeonresize
NoNoOccurs when the size of an object has changed.Event
-onresizeend
YesNoOccurs when the user stops resizing an element in an editable region.Event
-onresizestart
YesYesOccurs when the user starts to resize an element in an editable region.Event
-onrowenter
YesNoOccurs on a data source object when the current row in it has changed.Event
-onrowexit
NoYesOccurs on a data source object before the current row in it changes.Event
-onrowsdelete
YesNoOccurs on a data source object before rows are deleted.Event
-onrowsinserted
YesNoOccurs on a data source object when rows have been inserted.Event
scrollonscroll
NoNoOccurs when the contents of an element have been scrolled.Event
searchonsearch
NoNoOccurs when the user presses the ENTER key or clicks the 'Erase search text' button (x) in aninput:search field.Event
selectonselect
NoYesOccurs after some text has been selected in an element.Event
-onselectionchange
NoNoOccurs when the selection in the document has changed.Event
selectstartonselectstart
YesYesOccurs at the start of a selection process.Event
startonstart
NoNoOccurs when a marquee element begins the scrolling animation and when a new loop starts.Event
-onstop
NoNoOccurs when the user aborts the loading of the document.Event
submitonsubmit
NoYesOccurs on a form element when the user clicks on a submit button in the form.Event
textInput-
YesYesOccurs when some characters are entered into an element.TextEvent
underflow-
NoNoOccurs when the contents or the size of an element is changed and it causes a scrollbar to disappear.UIEvent
unloadonunload
NoNoOccurs before the browser unloads the document.Event

External links:





Introduccion A Xhtml - www.TutosLand.com
View more documents from ImSimple.

Una forma muy divertida de aprender Javascript Muy Muy a fondo mas de lo que interesa en este curso es en la siguiente direccion es un machacaladrillos en el cual os invitan a hacer un curso de programacion y os animan a que participeis en el
desarrollo posterior del juego su url es esta http://javascriptgamer.com/brickslayer/

mas cosas que hay que saber sobre javascript:
disponemos del objeto document que seria nuestro tag <BODY> de nuestra pagina se le llama HTML dinamico al
XHTML/HTML generado a partir de inyeccion de codigo interpretado de Javascript..
en el curso de XHTML pudimos ver que podiamos crear forms imaginen que tenemos dos formularios podemos referenciar sus
elementos de la siguiente manera:
<body>                                                   document.
<form id="form1">                                  document.forms[0], document.forms["form1"], document.form1
<input type=Textbox id="nombre" Text=""></input>  document.forms[0].controls[0], document.forms["form1"],controls.TextBox[0] document.form1.controls[0]


<input type=button id="Abrirform2" Text="abrir2"></input>
</form>
</br>

<form id="form2"> document.forms[1],
<input type=Textbox id="nombre2" Text=""></input>   document.forms[1].controls[0]
<input type=Submit id="Enviar" Text="Enviar2"></input> document.forms[1].controls.Buttons[0]
</form>
</body>

imagine que por lo que sea desea mostrar el formulario2 al pulsar/volver a pulsar el botonAbrirform2
podriamos hacer 2 cosas acceder mediante el DOM al estilo de form2 y hacer un display='hidden' al pulsar en el evento onclick 
del boton 'Abrirform2' o si lo hacemos entre 2 envios de formularios recordar metodo POST inyectar el HTML
con document.write('<form id="form2">  & _
<input type=Textbox id="nombre2" Text=""></input> & _ 
<input type=Submit id="Enviar" Text="Enviar2"></input></form>');
esto puede resultar util si en nuestro ejemplo de validacion anterior en javascript queremos añadir texto indicando que no es valida la tecla pulsada.

tambien se puede referenciar los elementos de una pagina en forma de Arbol con var nodoItem = document.getElementbyId("nombrelemento");
y luego recorrer los nodos nodoItem=nodoItem.nextsibling(); ahora nodoItem apuntaria al boton para ir al nodo hijo
nodoItem=nodoItem.nextnode();

http://html.conclase.net/w3c/dom1-es/expanded-toc.html

Nota:
snippet en javascript para poner el foco en una caja de texto al cargar la pagina:
<Head>
<script type="text/javascript">
function setfocus(){
    document.forms[0].field.focus()
}
</script>
</Head>
..
<Body onload="setFocus()">...
...


un aspecto que debeis cuidar en vuestras paginas htm html es que no se puedan producir inyecciones del tipo javascript en
el codigo, por ejemplo una forma de hackear una pagina html seria si esta contiene una caja de texto


y le asignamos al evento onclick de un boton que haga una inyeccion de un marcador para ir a la busqueda 
de la palabra seleccionada dentro de la pagina y se redirija a ella con el objeto location. 


<html>
<head>
<script language="Javascript">
function Buscaycoloca()
{
var node=document.getElementbyTagName("BODY"); 
for(var i=0;node.TagName!="/body";i++)
  {
    if(node.nodeValue==caja.Text)
        { 
        node=node.previousNode();
        node.write("<a link='#palabra'>");
        node=node.nextNode();
        node.write("</a>");
        location.url=location.url + "?#palabra";
        }
          
  } 
}
</script>
<head>
<body>
Buscar:<input type="Text" id="caja"></input><input type="Button" onClick="Buscaycoloca()"></input>
texto1
<hr/>
texto2
</br>
texto3
</br>
texto4
<hr/>
texto5
</br>
</body>
</html>


aqui habria que tener cuidado lo correcto es hacer la comparacion if (node.Value==node.Text.ToString()
que lo que hace es cerrar entre comillas el valor Text de la caja caja por que si no hacemos esto podriamos poner como
contenido de la caja de texto palabra1");document.write("<script>nuestro script malicioso</script>"
y este ser interpretado al pulsar el boton.


Esto esta muy bien, mi pagina ya tiene contenido
y puede incluir scripts pero y el formato?


es cierto se me olvido de nuevo hablar el formato, pero mejor asi porque lo que mal empieza mal acaba y me expico
en HTML XHTML cada etiqueta tiene un nombre por ejemplo una tabla 
<table id="marcoprincipal"> un id o identificador y unos atributos
<tr height=550px>
<td COLSPAN=3>marco triple principal
</td>
</tr>
<tr>
<td width=10%>fila1</td><td width=80%>fila2</td><td>fila3</td>
</tr>
</table>
en este caso los atributos definen el % del ancho que ocupa la fila en la tabla de la pagina
o un ancho como habreis observado si habeis creado la pagina web con la tabla prevalece el ancho
de arriba a abajo de las celdas, es decir si eliminamos el tr height ocupa todo el alto de la pagina
y si sustituimos los % por un tamaño y px nuestra pagina tendra un formato para una resolucion fija


recomiendo el uso de tablas para crear los huecos con contenido que tendra la pagina sin embargo si
queremos aplicar mas formatos lo mas correcto es haciendolo aplicando una cosa llamada estilos CSS
o estilos de hoja en cascada
se puede aplicar un estilo encascada sobre caso todos los tags de HTML XHTML solo añadiendo el atributo
<TAG .. style="width:10%;height:60%;overflow:scroll;display:block" ...>
esto tambien hace bastante engorroso el diseño de nuestras paginas web puesto hay que ir etiqueta por etiqueta.
como hacemos entonces?
tenemos 2 opciones 
1)definir estilos para controles
2)definir estilos y aplicarlos a etiquetas 
3)lo mas inteligente hacer una mezcla de ambos


Nota:las hojas de estilo van en un archivo como puede ir linkado un archivo de javascript con extension .js
pero  en este caso con extension .css 
<HEAD>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
<HEAD>
en su interior veremos algo parecido a esto:
.fondorojo50porciento
{
.background-color:#FF0000;
.width:50%;
.overflow:scroll; saca las barras de scroll si el contenido es mas grande que el estilo de su contenedor
}


INPUT
{
.background-color:#FFFF0F;
.texalign:right;
.width:100px;
.overflow:hidden; oculta el contenido si este es mas grande que el estilo de su contenedor
}




esto haria que automaticamente al linkar la hoja de estilo a la pagina todos los INPUT tengan el estilo establecido para INPUT automaticamente sin hacer nada mas.


si queremos que algun input especifico tenga el estilo fondorojo50porciento


<HTML>

<HEAD>

<BODY>

<DIV STYLE="position:absolute;width=100px;height=200px">

<DIV style="position:relative;width=550px;height:200px">
<INPUT Type=Text CLASS="fondorojo50porciento"></INPUT><INPUT TYPE=Button></INPUT>

</DIV>

</DIV>

</BODY>
</HTML>


lo podeis comprobar por vosotros mismos ni que decir tiene que es preferible la sencillez de las tablas 
pero si optais por crear contenidos contenidos en DIV omitir las etiquetas SPAN y aplicar los estilos deseados a cada <DIV>
un ejemplo alucinante de como puede llegar a cambiar una pagina web solo con cambiarle los estilos la tenemos en CSS ZEN GARDEN
todas las paginas son la misma solo que cambiando los estilos !!!!alucinante!!!!




Aqui teneis un cruso introductorio a la aplicacion de las hojas de estilo CSS:






como colofon de todo esto os dejo una web donde aparecen snippets de HTML Java
script CSS y templates desde las cuales empezar vuestras creaciones web.



Recursos para generar CSS a traves de templates y Scripts e Imagenes.
Mas recursos para diseñar vuestras plantillas online

Comentaros que con Blogger estoy teniendo problemas de error 400 cuando intento pegar contenido con demasiados hipervinculos por eso seguire usando la incrustacion de paginas aunque tarde en carga el contenido un poco mas de lo habitual.





Se me olvidaba deciros que en javascript si incluis la palabra reservada debug; podreis al menos con IE ejecutar el codigo de cliente paso a paso para poder depurar fallos , tambien decir que si la pagina contiene un cierto marcado HTML y algun atributo se modifica dinamicamente completamente no os hara caso, es derir: <a id="locblank" href="" >linkzoombie</a>  no se puede volver a hacer util este link, pero si lo definimos dinamicamente con una funcion javascript si funcionara za id="locblank" href="javascript:devuelvedireccion()">linkdinamico</a>

Existen numerosos APIS , Application program Interface de web de terceros para que incluyais en vuestras propias web funcionalidades o personalizaciones de webs de terceros Facebook,Softonic,Google etc,
ahi os dejo las de Google que son con ejemplos y muy claras de entender para que os entretengais.

http://code.google.com/apis/ajax/playground/?exp=localsearch#object_literals
Aqui os dejo un "compresor/ofuscador de javscript" para que una vez probados y reprobados vuestros scripts originales los podais subir a vuestras paginas HTML sin miedo a que los modifiquen por 3eras personas.

a continuacion os pongo un articulo muy interesante sobre hosting gratuito de paginas web, en concreto de ASP .NET ahi podeis subir por el momento vuestras webs HTML con CSS y Javascript que tamien funcionaran para hacer pruebas , para ello necesitareis un programa ftp como este.


A continuacion os añado otro recurso importante un analizador de SEO para que podais posicionar vuestra pagina web de las primeras de la listas de Yahoo , Google o bing


en la pagina principal si buscais en el buscador o vais paso a paso por las entradas os encontrareis multitud de programas para diseñar graficamente los que son las imagenes que maquetaran vuestra web el tag HTML para añadir una imagen es <img src="url_completa_del_ftp_donde_colgais_la_imagen.gif o ./imagen1.gif" class="referencia_hoja_css_donde_se_indica_alto_y_ancho_de_la_imagen></img>

Bueno despues desta laaaaarga introduccion comenzamos oficialmente el curso de ASP .NET 4 a traves de ejemplos!!!
segundo prologo, uff y van dos, he pensado como orientar el curso podria hacer algo cerrado y que luego se puediese encuadernar pero nada mas lejos de mi intencion y como (ahora me vais a decir que no tengo abuela) me esta gustando como quedo la parte de XHTML Javscript y CSS pues seguire haciendo aunque intentando profundizar algo mas una referencia de referencias asi que no os asusteis si de nuevo aparecen subcursos o definiciones mas o menos amplias , otra cosa tambien habra que pasar por momentos "rollo" de teoria para entender que es loque va tras los "engranajes" del codigo , al menos lo basico en arquitectura. y sin mas ya empezamos.

1)Instalacion del Microsoft Web Developtment Studio. podeis encontrarlo aqui:


No hay comentarios:

Publicar un comentario

Ayudenos a mejorar el blog con su opinion...