Está en la página 1de 16

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.

com

Taller de ASP.NET

Autores del manual Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com: Pol Salvat Miguel Angel Alvarez Clikear.com
http://www.mistrucos.net (6 cap tulos! Director de DesarrolloWeb.com http://www.desarrolloweb.com (" cap tulos! http://www.cli#ear.com ($ cap tulo!

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Introduccin al taller de ASP.NET


)omenzamos un nue*o taller+ donde *amos a publicar art culos pr,cticos sobre -./.'ET+ es decir+ sobre la plata0orma .'ET en0ocada a la creaci(n de p,ginas din,micas de ser*idor. )omo otros talleres de DesarrolloWeb.com+ este manual no sigue un gui(n estricto ni sus cap tulos tienen por1ue leerse en orden. -l re*2s+ cada art culo es independiente de los otros y pueden leerse por separado. .al*o posibles e3cepciones debidas a 1ue podamos partir un taller complicado en *arios art culos para su mejor comprensi(n. En este taller no se o0recen los conceptos b,sicos de .'ET+ sino 1ue se publicar,n art culos para los cuales se supone 1ue el lector debe conocer de antemano la plata0orma .'ET+ sus usos y modos de trabajo propios. Tenemos en DesarrolloWeb.com otras re0erencias a -./.'ET 1ue ser,n muy interesantes de cara a conseguir la base necesaria para acceder a este manual. )ategor a .'ET dentro de nuestro directorio: en este lugar encontraremos todos los contenidos de DesarrolloWeb.com 1ue tienen relaci(n con .'ET+ as como enlaces a p,ginas e3ternas en las 1ue se trata e3clusi*amente esta plata0orma. 4anual de .'ET: 5ntroducci(n a la plata0orma .'ET+ con los conceptos m,s b,sicos para empezar a entender esta tecnolog a para el desarrollo de aplicaciones web din,micas. .er*icios Web en .'ET: 6n manual 1ue trata sobre la creaci(n de ser*icios web (web ser*ices! utilizando -./.'ET. Di0erencias entre -./ y .'ET: 6n pe1ue7o manual 1ue sir*e para las personas 1ue conocen -./ y 1uieren saber en 1u2 se di0erencia de su e*oluci(n -./.'ET. Tambi2n 1ueremos recordar 1ue tenemos una secci(n de .cripts -./.'ET listos para usar+ donde se puede acceder a una clasi0icaci(n de aplicaciones web ordenadas por distintas tem,ticas. Tambi2n tenemos algunas 8-9 sobre .'ET 1ue pueden ser de inter2s. /ues nada m,s+ sin m,s introducciones os dejamos con el Taller de -./.'ET. Artculo por Miguel Angel Alvarez

Implementar cdigo de Seguridad anti robots en ASP.NET


/ara crear un c(digo de seguridad seguiremos los siguientes pasos: Tenemos 1ue agregar en el 0ormulario 1ue deseamos insertar el c(digo de seguridad los siguientes controles:

6na imagen (d(nde su scr ser, /-nti:obots.asp3! 6n input de tipo te3to+ con un id; type; 0rm<)odigo<.eguridad

En el c(digo => de la p,gina del registro declararemos una *ariable llamada b-nti>ots
?:egion @4embers@ Dim b-nti>ots -s >oolean ; 8alse ?End :egion

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

"

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

En el /age<&oad:
50 'ot 5s/ost>ac# Then .ession(@-nti>ots@! ; Aenerate:andom)ode(! Else B)omprobamos el c(digo antibots 50 0rm<)odigo<.eguridad.=alue ; .ession(@-nti>ots@!.To.tring(! Then b-nti>ots ; True Else b-nti>ots ; 8alse 4e..ession(@-nti>ots@! ; Aenerate:andom)ode(! End 50 End 50

Tenemos 1ue crear la 0unci(n Aenerate:andom)ode para generar un c(digo de seguridad al azar
?:egion @Aenerate:andom)ode@ /ri*ate 8unction Aenerate:andom)ode(! -s .tring Dim random -s 'ew :andom Dim s -s .tring ; @@ Dim i -s 5ntC" ; D Dim i)hr -s 5ntC" While (i EF 6! i)hr ; random.'e3t(GH+ ID! While i)hr JF KL -nd i)hr EF 6K i)hr ; random.'e3t(GH+ ID! End While s ; .tring.)oncat(s+ )hr(i)hr!.To.tring(!! i;iM$ End While :eturn s End 8unction ?End :egion

/ara seguir+ nos 0altar, crear la clase encargada de crear+ manipular y de0ormar el c(digo de seguridad generado en imagen
5mports 5mports 5mports 5mports 5mports .ystem .ystem.Drawing .ystem.Drawing.Drawing"D .ystem.Drawing.5maging .ystem.Drawing.Te3t

/ublic )lass 5magen-nti>ots Dim m<te3t -s .tring Dim m<width -s 5ntC" Dim m<height -s 5ntC" Dim m<0amily'ame -s .tring Dim m<image -s >itmap Dim m<random -s 'ew :andom ?:egion @/ropiedades de lectura@ /ublic :eadNnly /roperty Te3t(! -s .tring Aet :eturn m<te3t End Aet End /roperty /ublic :eadNnly /roperty Width(! -s 5ntC" Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n. C

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Aet :eturn m<width End Aet End /roperty /ublic :eadNnly /roperty Oeight(! -s 5ntC" Aet :eturn m<height End Aet End /roperty /ublic :eadNnly /roperty 5mage(! -s >itmap Aet :eturn m<image End Aet End /roperty ?End :egion /ublic .ub 'ew(>y=al s -s .tring+ >y=al width -s 5ntC"+ >y=al height -s 5ntC"! 4e.m<te3t ; s 4e..etDimensions(width+ height! 4e.Aenerate5mage(! End .ub /ublic .ub 'ew(>y=al s -s .tring+ >y=al width -s 5ntC"+ >y=al height -s 5ntC"+ >y=al 0amily'ame -s .tring! 4e.m<te3t ; s 4e..etDimensions(width+ height! 4e..et8amily'ame(0amily'ame! 4e.Aenerate5mage(! End .ub /ri*ate .ub .etDimensions(>y=al width -s 5ntC"+ >y=al height -s 5ntC"! 50 width EF; D Then Throw 'ew -rgumentNutN0:angeE3ception(@width@+ width+ @-rgument out o0 range+ must be greater than zero.@! End 50 50 (height EF; D! Then Throw 'ew -rgumentNutN0:angeE3ception(@height@+ height+ @-rgument out o0 range+ must be greater than zero.@! End 50 4e.m<width ; width 4e.m<height ; height End .ub /ri*ate .ub .et8amily'ame(>y=al 0amily'ame -s .tring! Try Dim 0ont -s 8ont ; 'ew 8ont(0amily'ame+ $".D8! 4e.m<0amily'ame ; 0amily'ame 0ont.Dispose(! )atch e3 -s E3ception 4e.m<0amily'ame ; .ystem.Drawing.8ont8amily.Aeneric.eri0.'ame End Try End .ub /ri*ate .ub Aenerate5mage(! Dim bitmap -s 'ew >itmap(4e.m<width+ 4e.m<height+ /i3el8ormat.8ormatC"bpp-rgb! B)reamos objeto gra0ico Dim g -s Araphics ; Araphics.8rom5mage(bitmap! g..moothing4ode ; .moothing4ode.-nti-lias Dim rect -s 'ew :ectangle8(D+ D+ 4e.m<width+ 4e.m<height!

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

B:ellenamos el 0ondo Dim hatch>rush -s 'ew Oatch>rush(Oatch.tyle..mall)on0etti+ )olor.&ightAray+ )olor.White! g.8ill:ectangle(hatch>rush+ rect! BEstablecemos la 0uente Dim size -s .ize8 Dim 0ont.ize -s .ingle ; rect.Oeight M $ Dim 0ont -s 8ont B-justa el tama7o de la 0uente Do 0ont.ize ; 0ont.ize P $ 0ont ; 'ew 8ont(4e.m<0amily'ame+ 0ont.ize+ 8ont.tyle.>old! size ; g.4easure.tring(4e.m<te3t+ 0ont! &oop While (size.Width JF rect.Width! BEstablece el 0ormato de te3to Dim 0ormat -s 'ew .tring8ormat 0ormat.-lignment ; .tring-lignment.)enter 0ormat.&ine-lignment ; .tring-lignment.)enter Dim path -s 'ew Araphics/ath path.-dd.tring(4e.m<te3t+ 0ont.8ont8amily+ )Type(0ont..tyle+ 5ntC"!+ 0ont..ize+ rect+ 0ormat! Dim * -s .ingle ; G.D8 Dim points -s .ystem.Drawing./oint8(! ; Q < 'ew .ystem.Drawing./oint8(m<random.'e3t()Type(rect.Width+ 5nteger!! / *+ m<random.'e3t()Type(rect.Oeight+ 5nteger!! / *!+ < 'ew .ystem.Drawing./oint8(rect.Width P m<random.'e3t()Type(rect.Width+ 5nteger!! / *+ m<random.'e3t()Type(rect.Oeight+ 5nteger!! / *!+ < 'ew .ystem.Drawing./oint8(m<random.'e3t()Type(rect.Width+ 5nteger!! / *+ rect.Oeight P m<random.'e3t()Type(rect.Oeight+ 5nteger!! / *!+ < 'ew .ystem.Drawing./oint8(rect.Width P m<random.'e3t()Type(rect.Width+ 5nteger!! / *+ rect.Oeight P m<random.'e3t()Type(rect.Oeight+ 5nteger!! / *!R Dim matri3 -s 'ew 4atri3 matri3.Translate($+ C! BDe0ormamos la imagen path.Warp(points+ rect+ matri3+ D! BDibuja el te3to hatch>rush ; 'ew Oatch>rush(Oatch.tyle.NutlinedDiamond+ )olor.Nrange+ )olor.>lue=iolet! g.8ill/ath(hatch>rush+ path! B-7ade e0ectos Dim m -s 5ntC" ; 4ath.4a3()Type(rect.Width+ 5nteger!+ )Type(rect.Oeight+ 5nteger!! Dim i -s 5ntC" ; D While i EF )Type((rect.Width S rect.Oeight / CD.D8!+ 5ntC"! Dim 3 -s 5ntC" ; m<random.'e3t()Type(rect.Width+ 5nteger!! Dim y -s 5ntC" ; m<random.'e3t()Type(rect.Oeight+ 5nteger!! Dim w -s 5ntC" ; m<random.'e3t()Type(m / KD+ 5nteger!! Dim h -s 5ntC" ; m<random.'e3t()Type(m / KD+ 5nteger!! g.8illEllipse(hatch>rush+ 3+ y+ w+ h! i;iM$ End While 0ont.Dispose(! hatch>rush.Dispose(! g.Dispose(! BEstablece la imagen 4e.m<image ; bitmap End .ub

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

End )lass

-hora en el proyecto crearemos la p,gina 1ue apunta nuestra imagen (el primer control 1ue hemos agregado en el proyecto+ y en el /age<&oad pondremos este c(digo:
/ri*ate .ub /age<&oad(>y=al sender -s .ystem.Nbject+ >y=al e -s .ystem.E*ent-rgs! Oandles 4y>ase.&oad B)reamos una imagen creando el te3to guardado en la sesion Dim ab -s 'ew 5magen-nti>ots(.ession(@-nti>ots@!.To.tring(!+ "DD+ KD+ @-rial@! B)ambiamos la respuesta al cliente a tipo @imagen/jpeg@ 4e.:esponse.)lear(! 4e.:esponse.)ontentType ; @image/jpeg@ B.al*amos la imagen en el :esponse ab.5mage..a*e(4e.:esponse.Nutput.tream+ 5mage8ormat.Tpeg! End .ub

U para terminar+ en el 0ormulario del registro+ d(nde hemos agregado los controles+ en el bot(n del submit+ utilizar esta condici(n:
50 b-nti>ots Then B )reamos el registro Else B El c(digo de seguridad no est, bien colocado End i0

/uedes descargarte todo el c(digo 0uente de pulsando a1u . Artculo por Pol Salvat

Modificar la ubicacin del Vie state en las p!ginas ASP .NET


Aracias a esta 0unci(n podremos ubicar el *iewstate al 0inal de las p,ginas. )olocar el *iewstate al 0inal de una p,gina asp.net puede ser Vtil para optimizaciones para buscadores (para poner al 0inal el *iewstate 1ue su contenido para un buscador no tiene sentido!+ agilizar la carga de la p,gina... C#digo en $isual %asic.Net
/rotected N*errides .ub :ender(>y=al writer -s .ystem.Web.65.OtmlTe3tWriter! Dim stringWriter -s .ystem.5N..tringWriter ; 'ew .ystem.5N..tringWriter Dim htmlWriter -s OtmlTe3tWriter ; 'ew OtmlTe3tWriter(stringWriter! 4y>ase.:ender(htmlWriter! Dim html -s .tring ; stringWriter.to.tring(! Dim .tart/oint -s 5nteger ; html.5nde3N0(@EFinput type;@@hidden@@ name;@@<<=5EW.T-TE@@@! 50 .tart/oint JF; D Then Bdoes <<*iewstate e3istW

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Dim End/oint -s 5nteger ; html.5nde3N0(@/JF@+ .tart/oint! M " Dim *iewstate5nput -s .tring ; html..ubstring(.tart/oint+ End/oint P .tart/oint! html ; html.:emo*e(.tart/oint+ End/oint P .tart/oint! Dim 8ormEnd.tart -s 5nteger ; html.5nde3N0(@EF/0ormJF@! P $ 50 8ormEnd.tart JF; D Then html ; html.5nsert(8ormEnd.tart+ *iewstate5nput! End 50 End 50 writer.Write(html! End .ub

C#digo en C&
protected o*erride *oid :ender(.ystem.Web.65.OtmlTe3tWriter writer! Q .ystem.5N..tringWriter stringWriter ; new .ystem.5N..tringWriter(!F OtmlTe3tWriter htmlWriter ; new OtmlTe3tWriter(stringWriter!F base.:ender(htmlWriter!F string html ; stringWriter.To.tring(!F int start/oint ; html.5nde3N0(@EFinput type;X@hiddenX@ name;X@<<=5EW.T-TEX@@!F i0 (start/oint JF; D!Q int end/oint ; html.5nde3N0(@/JF@+ start/oint! M "F string *iewstate5nput ; html..ubstring(start/oint+ end/oint P start/oint!F html ; html.:emo*e(etart/oint+ end/oint P start/oint!F int 0ormEnd.tart ; html.5nde3N0(@EF/0ormJF@!F i0 (0ormEnd.tart JF; D!Q html ; html.5nsert(0ormEnd.tart+ @Xn@ M *iewstate5nput!FRR writer.Write(html!FR

Artculo por Pol Salvat

"ar formato a un datagrid en el Item"ata#ound ASP.NET


/ara poder 0ormatear una grid mientras se carga accedemos con el 5temData>ound. &o primero 1ue realizaremos es a7adir un handles cuando el grid se haya cargado:

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

-ddOandler 'ombreArid.Arid.5temData>ound+ -ddressN0 5temData>ound

)rearemos una 0unci(n:


/ri*ate .ub 5temData>ound(>y=al sender -s .ystem.Nbject+ >y=al e -s .ystem.Web.65.Web)ontrols.DataArid5temE*ent-rgs! End .ub Dentro de la 0unci(n+ para acceder a cada celda podremos utilizar el e.5tem.)ells('umeroDe)elda!.Te3t; @&o 1ue 1ueramos@

)omo ejemplos 1ue podemos 0ormatar:


e.item.)ells(D!.Te3t ; str5mg.To.tring e.item.)ells(D!.Oorizontal-lign ; Oorizontal-lign.)enter e.item.)ells(D!.=ertical-lign ; =ertical-lign.Top e.item.)ells(D!.Width ; 6nit./i3el(CD! e.item.)ells(D!.*isible;8alse

/odemos utilizar el with para no tener 1ue escribir todo el rato e.item:
With e.5tem .)ells(D!.Te3t ; str5mg.To.tring .)ells(D!.Oorizontal-lign ; Oorizontal-lign.)enter .)ells(D!.=ertical-lign ; =ertical-lign.Top .)ells(D!.Width ; 6nit./i3el(CD! .)ells(D!.*isible;8alse End with

/ara acabar+ hay 1ue comentar 1ue una 0ila de un grid puede ser de la cabecera o no. .i es cabecera:
50 e.5tem.5temType ; &ist5temType.Oeader Then

.i es un elemento normal:

50 e.5tem.5temType ; &ist5temType.-lternating5tem Nr e.5tem.5temType ; &ist5temType.5tem Then

Artculo por Pol Salvat

"ot Net Nu$e% sistema portal en ASP.NET


4ucha gente conocer, /O/ 'u#e+ un sistema para crear un portal 0,cilmente en /O/ y con base de datos 4y.9&. =amos a presentar ahora un sistema para hacer un portal en -./.'ET un poco m,s desconocido+ aun1ue la potencia y desarrollo del programa indican 1ue es totalmente *,lido y muy interesante para lanzarse r,pidamente al mundo editorial en la web. Dot'et'u#e es un sistema para hacer p,ginas web de tipo portal. 5ncluye un parte pVblica+ a la 1ue acceden los *isitantes Pel propio portalP y una pri*ada+ a la 1ue acceden los administradores de la p,gina+ para editar los contenidos de la parte pVblica. Caracter'sticas del !rograma
Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n. H

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

-nte todo es importante hablar de la gratuidad del so0tware. En contra de lo 1ue muchas *eces ocurre con los sistemas 4icroso0t+ podemos utilizar libremente este programa para cual1uier prop(sito. /odemos modi0icarlo+ redistribuirlo o+ incluso+ *enderlo o prestar soporte t2cnico. &a Vnica condici(n es 1ue debemos mencionar la procedencia del so0tware+ en la p,gina o el c(digo OT4&. Dot'et'u#e tiene muchas posibilidades+ algunas de ellas aut2nticamente interesantes. Entre ellas podemos encontrar:

)reaci(n de mVltiples portales utilizando un mismo c(digo y base de datos+ lo 1ue signi0ica 1ue se pueden crear *arios sitios utilizando un mismo alojamiento 1ue soporte -./.'ET. :egistro de usuarios y completa personalizaci(n del portal dependiendo del tipo de usuario. /osibilidad de crear ser*icios o contenidos de acceso restringido+ con enlace directo a m2todos de pago para los usuarios 1ue deseen acceder a esos ser*icios. -cceso de administrador para gestionar los contenidos y ser*icios. -cceso a estad sticas completas del uso del sitio. .istema de gesti(n de banners integrado. -cceso de superusuario para crear nue*os portales. /osibilidad de crear s#ins (apariencias! por el administrador para dotar de un aspecto al portal totalmente personalizado. /ermite trabajar con *arias bases de datos distintas+ aun1ue para algunas hace 0alta algVn m(dulo adicional de soporte. 4Vltiples tipos de contenidos 1ue se pueden administrar. Entre ellos 'oticias+ contacto+ 0oros de discusi(n+ documentos+ e*entos+ etc. 6na larga lista 1ue se puede ampliar con una serie de m(dulos disponibles.

M#dulos de (otNetNuke &os m(dulos son piezas del programa 1ue o0recen soporte a 0uncionalidades espec 0icas para los usuarios del portal. &a *ersi(n actual de Dot'et'u#e dispone de "G m(dulos para realizar tareas di*ersas como gesti(n de usuarios+ calendario de e*entos+ banners+ noticias+ etc. -dem,s+ e3isten otros m(dulos gratuitos+ o0recidos por portales 1ue tratan sobre Dot'et'u#e y tambi2n algunos de pago 1ue o0recen ciertas empresas y desarrolladores. &os m(dulos pueden instalarse+ desinstalarse y con0igurarse siempre 1ue se 1uiera+ para dotar al portal de las 0uncionalidades 1ue necesitamos en cada momento. Entre los m(dulos disponibles en la *ersi(n inicial se encuentran los siguientes:

Aesti(n de cuentas 'oticias o no*edades Aesti(n de banners )ontacto+ 1ue o0rece la posibilidad de en*iar correo a personas o grupos de personas 8oros de discusi(n+ con temas con0igurables Aesti(n de documentos+ con opci(n a descarga o *isualizaci(n )alendario de e*entos 8-9s &in#s >Vs1uedas Encuestas

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

&a lista toda* a continVa con otros m(dulos para temas m,s espec 0icos o tan especiales como ser*icio de in0ormaci(n del tiempo o un ser*icio Whois+ para hacer bVs1uedas de registro de nombres de dominios. Algunos e)em!los de !*ginas realizadas con (otNetNuke E3isten ya bastantes ejemplos de buenos trabajos realizados con Dot'et'u#e. Entre los mejores hay algunos contribuidores de desarrollo de la plata0orma. G>irc#head http://www.Gbirc#head.com En esta p,gina+ aparte de un agradable dise7o+ podremos encontrar nue*os m(dulos gratuitos para e3tender Dot'et'u#e+ como ,lbum de 0otos o Ti#ers de ndices burs,tiles. >yDesignWebsights http://www.bydesignwebsights.com/ N0recen soporte y recursos sobre Dot'et'u#e. En el momento en el 1ue se escribi( este art culo o0rec an alojamiento gratuito sobre la plata0orma. )iber Ouis http://www.cyberhuis.com/ Ntro sitio de recursos con posibilidad de descargar nue*os m(dulos gratuitos. Dot'et'u#e .#ins http://www.dnns#ins.com6n sitio para encontrar nue*as apariencias para Dot'et'u#e. Oay 1ue registrarse para acceder a los s#ins+ pero puede merecer la pena por1ue tienen disponibles decenas de dise7os distintos. Dot'et'u#ed http://www.dotnetnu#ed.com Ntro ejemplo de sitio realizado con Dot'et'u#e 1ue o0rece tambi2n recursos de utilidad. .nowco*ered http://www.snowco*ered.com 6na p,gina m,s comercial sobre Dot'et'u#e+ en la 1ue se o0recen recursos Vtiles+ aun1ue la mayor a de las *eces de pago. C#mo obtener (otNetNuke En la p,gina de inicio de Dot'et'u#e (http://dotnetnu#e.com! podemos encontrar mucha m,s in0ormaci(n e instrucciones para instalar Dot'et'u#e. /ara empezar hay disponible una gu a de instalaci(n del so0tware 1ue e3plica paso a paso el proceso de instalaci(n. Tambi2n disponen de gu as de usuario y de administrador del portal+ as como di*ersa documentaci(n y 8-9s. /ara descargar Dot'et'u#e hay 1ue registrarse en la p,gina y hacer el inicio de sesi(n. /odremos encontrar *arios 0icheros de descarga con distintas *ersiones del programa. Conclusi#n Dot 'et 'u#e es una buena muestra de lo 1ue se puede hacer con .'ET y del empe7o de ciertas comunidades+ junto con 4icroso0t+ de popularizar el uso de so0tware libre en esta nue*a plata0orma de desarrollo. E0ecti*amente+ se trata de un so0tware gratuito desarrollado por una comunidad de personas a 1ue se sienten a gusto trabajando con sistemas 4icroso0t y 1ue desean popularizar sus herramientas. El producto del trabajo lo podemos *er en dotnetnu#e.com (http://dotnetnu#e.com! y en un primer *istazo parece 1ue han conseguido una buena herramienta.

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$D

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Artculo por Miguel Angel Alvarez

Multicultura en ASP.NET
Cr+ditos Este art culo nos lo o0rece Clikear.com+ una web dedicada por completo a .'ET+ 1ue o0rece alojar tus p,ginas -./.'ET gratuitamente.

En este articulo presentamos un ejemplo de una pagina -./ .'ET para conocer las clases 1ue sir*en para hacer una web multicultura+ una de las nue*as e interesantes caracter sticas de la plata0orma .'ET. /resentamos una pagina en la 1ue se nos muestra los di0erentes 0ormatos de hora+ 0echa+ y numeros en distintos tipos de con0iguraciones para distintas culturas. Estudiando este ejemplo el lector podr, conocer algunos de los metodos mas usados de la clase .ystem.Alobalization+ 1ue se utiliza para crear webs multiculturales. .e puede descargar el archi*o comprimido con el ejemplo. Artculo por &li$ear.com

"es'abilitar la e(piracin de la cac'e


&os ser*idores -./.'ET disponen de una cach2 de salida 1ue sir*e para aumentar el rendimiento de las aplicaciones web. &a cach2 guarda por un proceso interno datos de la salida de la aplicaci(n web y si se realiza de nue*o la misma consulta sobre el ser*idor+ 2ste puede utilizar la cach2 para de*ol*er los resultados m,s r,pido+ sin tener 1ue generarlos otra *ez. 'o todos los datos se pueden o deben guardar en cach2. -lgunos no merece la pena guardarlos por1ue puedan depender del usuario 1ue est, consultando la p,gina. /ero hay muchos datos 1ue se pueden guardar por1ue *an a ser los mismos para todos los usuarios 1ue *isitan la p,gina+ como la portada de un portal+ noticias+ productos de una empresa+ etc. &os datos 1ue hay en la cach2 generalmente tienen una 0echa de e3piraci(n determinada+ a partir de la cual se tienen 1ue *ol*er a generar por1ue no se consideran *,lidos. Esa 0echa de e3piraci(n la tenemos 1ue con0igurar nosotros. Tambi2n podemos eliminar esa e3piraci(n si lo deseamos+ lo 1ue *eremos en este art culo. /odemos deshabilitar la e3piraci(n de la cache en los web ser*ers para -./.'ET ".D (1ue no e3pire los elementos puestos en la cache si no tiene espacio! poniendo el siguiente c(digo en el web.con0ig:
Dentro del tag EFsystem.webJF EFcachingJF EF cache disablememorycollection;@true@JFdisableE3piration ; @0alse@

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$$

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

pri*ate>ytes&imit ; @D@ percentage/hysical4emory6sed&imit ; @6D@ pri*ate>ytes/ollTime ; @DD:D":DD@/JF EF/cachingJF

Artculo por Pol Salvat

Error Server Application )navailable en ASP.NET *.+ , ASP.NET -.(

Esto signi0ica 1ue necesitamos crear dos procesos para ejecutar las distintas *ersiones de -./.'et. Esta opci(n la podemos con0igurar por cada website 1ue tengamos+ podr amos incluso tener n grupos distintos. Oay 1ue a7adir 1ue cada grupo correr, en una nue*a instancia de wCwp.e3e+ y 1ue esto implica el consumo de recursos de :-4 (entre "D a GD megas! para cada grupo como m nimo+ y 1ue subir, en relaci(n del uso de la web. /ara crear un grupo de aplicaciones+ apretaremos bot(n derecho sobre 45 /) y seleccionaremos -dministrar

En el menV de la iz1uierda+ localizaremos -dministrador de 5nternet 5n0ormation .er*ices (55.! y desplegaremos la carpeta @Aupos de aplicaciones@

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$"

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Encima de @Arupo de aplicaciones@ apretaremos bot(n derecho del rat(n+ seleccionaremos @'ue*o@+ Arupo de aplicaciones.

En el 5d. De grupo de aplicaciones le pondremos el nombre 1ue 1ueramos (en este ejemplo+ -./<'ET<"<D!

-hora en la carpeta de @Arupo de aplicaciones@ podemos obser*ar el nue*o grupo de aplicaciones 1ue acabamos de crear -./<'ET<"<D

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$C

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

/ara asignar el website a nuestro nue*o grupo de aplicaciones+ pulsaremos encima del sitio web bot(n derecho del rat(n+ propiedades+ y en la pesta7a @Directorio particular@+ en la parte de abajo+ donde pone @Arupo de aplicaciones@ seleccionaremos nuestro nue*o grupo de aplicaciones

-plicaremos y nuestra web en -./.'ET ".D 0uncionar, a la per0ecci(n. Artculo por Pol Salvat

.enerar gr!ficos din!micamente


Este gr,0ico est, basado en un array de *alores. En este array se almacenan los *alores y las 0echas+ para poder sacar un gr,0ico en condiciones en "D parecido al siguiente:

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$G

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

El c#digo ,uente !ara generar el gr*,ico es el siguiente:


5mports .ystem.Drawing .ystem.Drawing 5mports .ystem.Drawing.5maging .ystem.Drawing.5maging /ublic )lass graph )lass graph 5nherits .ystem.Web.65./age :egion @ )(digo generado por el Dise7ador de Web 8orms @ BEl Dise7ador de Web 8orms re1uiere esta llamada. EF.ystem.Diagnostics.Debugger.tepThrough(!JF /ri*ate .ub 5nitialize)omponent(! /ri*ate .ub 5nitialize)omponent(! End .ub B'NT-: el Dise7ador de Web 8orms necesita la siguiente declaraci(n del marcador de posici(n. B'o se debe eliminar o mo*er. /ri*ate designer/laceholderDeclaration -s .ystem.Nbject /ri*ate .ub /age<5nit(>y=al sender -s .ystem.Nbject+ >y=al e -s .ystem.E*ent-rgs! Oandles 4y>ase.5nit B)NDEAE': el Dise7ador de Web 8orms re1uiere esta llamada de m2todo B'o la modi0i1ue con el editor de c(digo. 5nitialize)omponent(! End .ub End :egion /ri*ate .ub /age<&oad(>y=al sender -s .ystem.Nbject+ >y=al e -s .ystem.E*ent-rgs! Oandles 4y>ase.&oad Dim obj>itmap -s 'ew >itmap(LDD+ "DD! Dim objAraphic -s Araphics ; Araphics.8rom5mage(obj>itmap! Dim orange -s 'ew .olid>rush()olor.Nrange! Dim white>rush -s 'ew .olid>rush()olor.White! Dim line)olor -s 'ew /en()olor.>lue+ "! objAraphic.8ill:ectangle(white>rush+ D+ D+ LDD+ "DD! objAraphic.Draw&ine(line)olor+ 'ew /oint(D+ $ID!+ 'ew /oint(LDD+ $ID!! 'ew /oint(D+ $ID!+ 'ew /oint(LDD+ $ID!! objAraphic.Draw&ine(line)olor+ 'ew /oint(K+ K!+ 'ew /oint(K+ $IK!! 'ew /oint(K+ K!+ 'ew /oint(K+ $IK!! Dim l<arr -s 'ew -rray&ist Binserci(n en el array de *alores para el ejemplo l<arr.-dd(@HDD@! l<arr.-dd(@D$/D$/DL@! l<arr.-dd(@KDD@! l<arr.-dd(@D"/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@"DD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$CDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! l<arr.-dd(@$DDD@! l<arr.-dd(@DC/D$/DL@! Dim i -s 5ntC" ; D Dim pos -s 5ntC" ; D Dim /oint=alue -s 'ew /oint8(PCD+ D! Dim /ointDate -s 'ew /oint8(PCD+ $ID! Dim obj8ont -s 'ew 8ont(@=erdana@+ $D! Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n. $K

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Dim 8ontDate -s 'ew 8ont(@=erdana@+ L! Dim wb" -s 'ew .olid>rush()olor.>lac#! Dim 3 -s 5ntC" ; PKD Dim ma3=alue -s 5ntC" ; D Bcalculo del m,3imo *alor de la gr,0ica i;D While i EF l<arr.)ount 50 l<arr(i! JF ma3=alue Then ma3=alue ; l<arr(i! End 50 i M; " End While Bcreaci(n de todos los rect,ngulos de la gr,0ica i;D While i EF l<arr.)ount 3 M; LD Dim au3 -s 5ntC" au3 ; (l<arr(i! S $HI! / (ma3=alue M "DD! objAraphic.8ill:ectangle(orange+ 3+ $HI P au3+ GD+ au3! /oint=alue.Y ; 3 /ointDate.Y ; 3 P $D objAraphic.Draw.tring(l<arr(i!.To.tring+ obj8ont+ wb"+ /oint=alue! objAraphic.Draw.tring(l<arr(i M $!.To.tring+ 8ontDate+ wb"+ /ointDate! i M; " End While :esponse.)ontentType ; @image/gi0@ obj>itmap..a*e(:esponse.Nutput.tream+ 5mage8ormat.Ai0! End .ub End )lass

/uedes descargarte todo el ejemplo desde a1u Artculo por Pol Salvat

Taller de ASP.NET: www.desarrolloweb.com/manuales/taller as! net."tml % &os manuales de DesarrolloWeb.com tienen el copyright de sus autores. 'o reproducir sin autorizaci(n.

$6

También podría gustarte