asp .net mvc 4 paso a paso en 6 días

Upload: eduardo-sergio

Post on 06-Jul-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    1/134

    Aprender ASP .NET Paso a Paso en 7 días | 1

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 dias (Dia 1)

    Este artículo es parte de Aprender paso a paso ASP.NET MVC en 7 días y puedes revisarlo en loslink siguientes:

    • ia !: Controladores" vistas #uerte$ente tipadas y clases %elper

    • ia &: Testeo unitario" ruteo de '() saliente

    • ia *: Vistas parciales" anotaciones de datos" (a+or" Autenticacion y Autori+acion

    • ia ,: -SN" -/uery" ad$inistrador de sesiones y controladores asíncronos

    • ia 0: E$pa1ueta$iento" Mini#icacion " Vie2Model " Mane3o de e4cepciones y Areas

    • ias 5: Mdos de Visuali+aci6n" Proveedor MVC Aut%" Enlace Modelo MVC

    Contenido

    • ¿Por qué e !ode"#e$ind en %an #ueno en ASP.NET&

    • Pro#e'a n'ero 1: Tes%eo Uni%ario

    • Pro#e'a n'ero : *a reaidad de a separa!i+n de !+di,o - a U

    • Nues%ro /éroe MVC (Modeo0 Vis%a - Con%roador)

    • Pre"equisi%os

    • *a# 21: Creando una si'pe Api!a!ion ASP.NE% MVC 3/oa Mundo4

    1

    http://maninformatic.blogspot.com.ar/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com.ar/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148http://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148http://maninformatic.blogspot.com.ar/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com.ar/2013/10/aprender-mvcmodelo-vista-controlador.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    2/134

    Aprender ASP .NET Paso a Paso en 7 días | 2

    • *a# 2: Pasando da%os en%re e !on%roador - a 5is%a

    • *a# 26: Creando un si'pe 'odeo usando MVC

    • *a# 2: Creando un si'pe 8or'uario de en%rada de da%os MVC

    • *a# 29: Usando aor para !rear 5is%as r;pida'en%e

    Co'o e no'#re de ar%

    *a 'anera !o'o aprenderé'os MVC en es%a serie de ar%

    Queriendo demostrar que el concepto MVC es igual entre ASP.NET MVC y SPRING MVC es

    que realizare Aprender MVC con las dos tecnologías ( para ls amantes de microsoft y para los

    amantes del software libre).

    Pueden revisar Aprender SPRING MVC Paso a Paso en 7 dias (Dia 1)

    ¿Porque el code-behind en tan bueno en ASP.NET?

    Es%o- se,uro que %odos os desarroadores es ,us%a e !on!ep%o de !ode"#e$ind. *aa!ep%a!i+n de a,o nue5o !o'o MVC0 no es nada 8;!i para eos.

    Cuando $a#a'os de !ons%ruir api!a!iones ASP.NET en una arqui%e!%ura de !apas0eas se di5iden en !ua%ro par%es: U (pa,inas ASP=)0 !ode"#e$ind (ar!$i5os ASP=.!s)0!apa in%er'edia (!ases .NET) - 8ina'en%e a !apa de Da%os (Da%a a-er).

    Si se 'ira os aspe!%o de a dis%ri#u!i+n de !+di,o0 e 'a-or !+di,o e !ua %iene a+,i!a es a !apa in%er'edia o e !ode"#e$ind (ar!$i5os ASP=.!s). *a U (n%er8a deUsuario) o ar!$i5os ASP= son ar!$i5os /TM*0 os !uaes son ';s a!er!a dedise>ador de a in%er8a de usuario0 - a +,i!a de a!!eso a da%os son ';s o 'enos!o'ponen%es es%;ndar !o'o os En%erprise Da%a ?o!@s.

    2

    http://maninformatic.blogspot.com/2013/12/aprender-spring-mvc-sobre-gae-paso-paso_8074.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-spring-mvc-sobre-gae-paso-paso_8074.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    3/134

    Aprender ASP .NET Paso a Paso en 7 días | 3

    Va'os a anaiar os pro#e'as.

    Problema número 1: Testeo nitario

    De os aspe!%os de %es%eo uni%ario pode'os e!uir a *+,i!a de da%a - e U /TM*.*as !ases de +,i!a de da%os son -a !o'ponen%es %es%eados !o'o En%erprise Da%a?o!@0 en%i%- da%a !on%e%0 o *NB da%a !on%e%. Noso%ros -a no %ene'os que in!uires8ueros en %es%ear separada'en%e e DA*. En !aso que % %en,as un !apa dea!!eso a da%os personaiado es%e ser

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    4/134

    Aprender ASP .NET Paso a Paso en 7 días | 4

    Co'o die pre5ia'en%e0 os ASP= - os ASP=.!s0 no pueden ser desa!opados0 o queredu!e a reu%iia!i+n. Si0 Mi!roso8% dio pri'ero que e !ode"#e$ind es di8eren%e de aU0 pero en%on!es eos son soo ar!$i5os 8

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    5/134

    Aprender ASP .NET Paso a Paso en 7 días | 5

    Co'o es%e Con%roador es un si'pe !ase .NET0 pode'os reusaro - $a!er %es%eosuni%arios 8;!i'en%e. Va'os a 5er !+'o pode'os !rear Api!a!i+n MVC usando aPan%ia MVC pro5is%a por Visua S%udio.

    Pre-/equisitos

    " Visua S%udio 21 (Cuaquier 5ersi+n). Es%o in!u-e ASP.NE% MVC

    "ab 01: Creando una sim#le A#licaci$n ASP.NEt *+C (ola *undo2

    En es%e a#ora%orio !reare'os un si'pe pro,ra'a $oa 'undo0 u%iiando a pan%iaMVC. Creare'os un si'pe !on%roador0 !one!%a e !on%roador a una si'pe p;,inainde.asp - 5er a p;,ina en un ?roFser.

    5

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    6/134

    Aprender ASP .NET Paso a Paso en 7 días | 6

    Paso 01: Crear el Pro&ecto

    Crear un nue5o pro-e!%o see!!ionando Api!a!i+n He# de ASP.NET MVC - !o'ono'#re de pro-e!%o M-Iis%/eoHord0 en a si,uien%e 5en%ana see!!iona'os 5a!io.

    Una 5e $e!$o !i!@ en A!ep%ar0 -a %iene $e!$o a es%ru!%ura !on as !arpe%asapropiadas0 donde puedes a,re,ar !on%roadores0 5is%as - 'odeos.

    6

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    7/134

    Aprender ASP .NET Paso a Paso en 7 días | 7

    Paso 0!: A%re%ar un controlador 

     A$ora 5a'os a a,re,ar un nue5o !on%roador !o'o se 'ues%ra en a si,uien%e 8i,ura.

    Paso 03: A%re%ar una 4ista

     A$ora que %ene'os e !on%roador0 ne!esi%a'os a,re,ar a 5is%a. /a!e'os !i!@dere!$o en a 8un!i+n nde e !ua es%; en e !on%roador - see!!iona'os Add VieF.

    7

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    8/134

    Aprender ASP .NET Paso a Paso en 7 días | 8

    En e !uadro de diao,o se indi!a e no'#re de a 5is%a0 e !ua de#e ser e 'is'o queen e !on%roador (nde)J desa!%i5a 3Usar una p;,ina de dise>o o 'aes%ra40 porque noquere'os que nues%ra 5is%a $erede de un Mas%erPa,e.

    Una 5e $e!$o en a!ep%ar0 podre'os 5er una si'pe pa,ina ASP= !on e si,uien%e!+di,o /TM*.

    8

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    9/134

    Aprender ASP .NET Paso a Paso en 7 días | 9

    Paso 05: E6ecutar la A#licaci$n

    Si $a!es C%r K I9 5er;s un error. Es%e error es o#5io0 porque no in5o!a'os apropiada'en%e e !on%roadorLa!!i+n.

    Si di,i%as en e #roFser a U* de#es ser !apa de 5er !orre!%a'en%e a 5is%a.

    "ab 0!: Pasando datos entre el controlador & la 4ista

    E !on%roador re!i#e a pri'era !ar,a de 'odeo0 a 'a-or

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    10/134

    Aprender ASP .NET Paso a Paso en 7 días | 10

     A$< es donde a nue5a %é!ni!a de ,es%i+n de sesiones se $a in%rodu!ido en e 'ar!ode ASP.NET MVC0 es de!ir e VieFDa%a.

    10

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    11/134

    Aprender ASP .NET Paso a Paso en 7 días | 11

    Paso 01: Crear #ro&ecto & de7inir la 4ista de datos.

    E pri'er paso es !rear un pro-e!%o - un !on%roador. En e !on%roador0 de8inir a5aria#e 5ieFda%a0 !o'o 'os%ra'os en e !+di,o de a#ao.

    Paso 0!: *ostrando el 4ie8 data en la 4ista.

    *o si,uien%e es 'os%rar da%a en a 5is%a pero usando e %a, por!en%ae. Uno de ospun%os ';s i'por%an%es a no%as es que a 5is%a no %iene !od"#e$ind. Para 'os%rar a5is%a ne!esi%a'os usar e %a, en a p;,ina ASP=.

    11

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    12/134

    Aprender ASP .NET Paso a Paso en 7 días | 12

    Paso 03: E6ecutamos la a#licaci$n

    Presiona'os C%rKI9 - 'odi8i!a'os a U* en e ?roFser.

    "ab 03: Creando un sim#le modelo usando *+C

    En es%e a#ora%orio !reare'os un si'pe 'odeo personaiado0 es%o !on a,unosda%os - 'os%raro en a 5is%a.

    Paso 01: Creamos un sim#le archi4o de clase

    e pri'er paso es !rear un si'pe 'odeo personaiado e !ua es%; en #an!o !on%res propiedades: !ode0 na'e0 - a'oun%. Crear un si'pe Pro-e!%o MVC - $a!er !i!@en a !arpe%a 'ode - !i! en Add NeF %e' - see!!ionar !ase - asi,nare e no'#reCurs%o'er.

    12

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    13/134

    Aprender ASP .NET Paso a Paso en 7 días | 13

    Paso 0!: 9e7inimos un controlador con acci$n

    e pri'er paso es !rear un !on%roador - a,re,ar una si'pe a!!i+n que 'ues%re eCus%o'er.

    'por%ar e na'espa!es de 'odeo en a !ase !on%roador0 !rea'os un o#e%o de a!ase Cus%o'er !on a,unos da%os - o pasa'os a a 5is%a a'ado 3Dispa-Cus%o'er4.

    Paso 03: Creamos una 4ista 7uertemente ti#ada usando la clase.

    13

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    14/134

    Aprender ASP .NET Paso a Paso en 7 días | 14

    Ne!esi%a'os a$ora unir os pun%os de MVC0 'edian%e a !rea!i+n de 5is%as. /a!e !i!dere!$o en e 'é%odo Dispa-Cus%o'er den%ro de !on%roador (Con reaiado en epri'er a#ora%orio).

    Nota: Pre5ia'en%e es ne!esario que se !o'pie e pro-e!%o

    a 5en%aa de !rear una 5is%a 8uer%e'en%e %ipada es que se pueden o#%ener aspropiedades de as !ases en a 5is%a pero di,i%ando 'ode - 3.4 !o'o se 'ues%ra:

     A#ao es%a e !+di,o de a 5is%a (sin%ais aor) e !ua 'ues%ra os 5aores de aspropiedades de !ien%e. Ta'#ién pode'os asi,nar una !ondi!i+n I que 'ues%re os!ien%es !o'o un !ien%e pri5ie,iado si a !an%idad es%; por arri#a de 122 - un !ien%enor'a si es%; por de#ao de 122.

    14

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    15/134

    Aprender ASP .NET Paso a Paso en 7 días | 15

    Paso 05: E6ecuta la a#licaci$n

     A$ora para ee!u%ar a api!a!i+n presiona C%rKI9.

    "ab 05: Creando un sim#le 7ormulario de entrada de datos *+C

    Cada pro-e!%o peque>o o ,rande ne!esi%a un 8or'uario de en%rada de da%os. En es%ea#ora%orio !reare'os una si'pe en%rada de da%os para nues%ro !ien%e !o'o se'ues%ra:

    15

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    16/134

    Aprender ASP .NET Paso a Paso en 7 días | 16

    Tan pron%o !o'o e usuario 8ina in,rese os de%aes - en5

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    17/134

    Aprender ASP .NET Paso a Paso en 7 días | 17

    Después0 si,uiendo os pasos an%eriores de !+'o !rear una 5is%a (Ci!@ dere!$o - AddVieF) !rea'os a 5is%a IiCus%o'er.

    Paso 0!: Creando el controlador 

     Arri#a de8ini'os a a!!i+n de 8or'uario $a!ia e !on%roador a a 8un!i+nDispa-Cus%o'er

    Ne!esi%a'os o#%ener os da%os de os !on%roes /TM* (8or')0 ena e o#e%o - en5iar

    e o#e%o a a 5is%a.

    De#ao e !+di,o de Dispa-Cus%o'er0 ena e o#e%o !us%o'er !on os da%os de a!oe!!i+n eques%.Ior' - en5

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    18/134

    Aprender ASP .NET Paso a Paso en 7 días | 18

    Paso 03: Creando la 4ista #ara mostrar el ob6eto customer 

    E si,uien%e paso es !rear a 5is%a Dispa-Cus%o'er0 see!!ionado a op!i+n 5is%a8uer%e'en%e %ipada ( reaiada en os pasos an%eriores).

    Paso 05: ;inalmente e6ecutar el #ro&ecto

    Presionando as %e!as CT* K I9 ee!u%a'os e pro-e!%o.

    18

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    19/134

    Aprender ASP .NET Paso a Paso en 7 días | 19

    O a $a!er !i! en e #o%+n en5iar0 'ues%ra a 5is%a Dispa-Cus%o'er.

    "ab 0

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    20/134

    Aprender ASP .NET Paso a Paso en 7 días | 20

    En orden para !rear una e%ique%a 8or'a para /TM* ne!esi%a'os usar3/%'.?e,inIor'4

    E !+di,o de arri#a ,enera e si,uien%e !+di,o /TM*:

    E raor /TM* 3?e,inIor'4 %o'a %res par;'e%ros no'#re de a a!!i+n0 e no'#re de

    !on%roador - e 'é%odo /TTP (ET0 PST).

    Va'os a !rear e 8or'uario de en%radas de da%os:

    Paso 03: Creando una 4ista ;uertemente ti#ada

    Para !rear e 8or'uario !on aor es ne!esario que a 5is%a se $a-a !reado !on aop!i+n 5is%a 8uer%e'en%e %ipada !o'o se reaio en e a#ora%orio 26. Pero si no se$io es%o en a par%e superior de a 5is%a a,re,a'os o si,uien%e - $a!er a 5is%a8uer%e'en%e %ipada.

    Con es%o -a pode'os !rear nues%ro 8or'uario en a 5is%a IiCus%o'er.

    20

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    21/134

    Aprender ASP .NET Paso a Paso en 7 días | 21

    Paso 05: Creando el controlador 

    *a par%e 8ina es e !+di,o de !on%roador (Cus%o'er)0 e !+di,o de !on%roador a$oraes ';s si'pe0 e o#e%o !us%o'er 5a ser au%o enado por nues%ras !ase raor.

    - a 8ina ee!u%ar - 'os%rar; os da%os

     

    21

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    22/134

    Aprender ASP .NET Paso a Paso en 7 días | 22

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 dias (Dia )

    Contenido

    • Cu8l es la Agenda9

    • )a ;5: Testeo 'nitario en Proyectos MVC

    • )a ;7: Entendiendo el (uteo en MVC

    • )a ; %ay para el Tercer ía9

    ¿Cuál es la Agenda?

    Este artículo es la continuaci6n de Aprender paso a paso en 7 dias y puedes revisarlo en los link

    siguientes:

    • ia !: Controladores" vistas #uerte$ente tipadas y clases %elper

    • ia &: Testeo unitario" ruteo de '() saliente

    • ia *: Vistas parciales" anotaciones de datos" (a+or" Autenticacion y Autori+acion

    • ia ,: -SN" -/uery" ad$inistrador de sesiones y controladores asíncronos

    22

    http://maninformatic.blogspot.com.ar/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    23/134

    Aprender ASP .NET Paso a Paso en 7 días | 23

    • ia 0: E$pa1ueta$iento" Mini#icacion " Vie2Model " Mane3o de e4cepciones y Areas

    • ias 5: Modos de Visuali+aci6n" Proveedor MVC Aut%" Enlace Modelo MVC

    23

    http://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148http://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    24/134

    Aprender ASP .NET Paso a Paso en 7 días | 24

    En este dia & vere$os los siguientes cuatro laoratorios:

    • Escriiendo Testeos 'nitarios en Proyectos MVC.

    • Con#igurar (utas en MVC

    • Validaci6n de (utas en MVC

    • Con#igurando (utas de salida en MVC

    Lab 06: Testeo Unitario en Proyectos MVC

    Cuando e$pe+a$os toda la serie MVC ?ia !@ e$pe+a$os con dos prole$as relacionados al

    codee%ind.

    ¿Cóo !odeos "acer testeos unitarios en A#P$%&T code be"ind?

    ¿Cóo !odeos reusar el code be"ind de A#P$%&T con di'erentes inter'aces de usuarios?

    En esta secci6n va$os a concentrarnos en el pri$er punto" es decir" Testeo 'nitario.

    Solo una r8pida recapitulaci6n si necesita$os %acer testeo unitario al siguiente

    $>todo btngeneratein(oices)clic* de Code e%ind de ASP.NET" tene$os los siguientes

    prole$as:

    • C6$o %ace$os para crear los o3etos sender y e(entargs9

    • El c6digo de aa3o se e3ecuta a3o el o3eto BttpConte4t" C6$o puedo i$itarlo9

    • /u> pasa con los controles de inter#a+ de usuario de ASP.NET" C6$o accedo a estos9

    • /u> pasa con otros o3etos de ASP.NET co$o los o3etos sesi6n y aplicaci6n" c6$o

    accedo a estos9

    Muc%os desarrolladores podrían %alar acerca de $ock tests" r%ino $ocks" etc. pero todavía esto

    es desaperciido y la co$pilaci6n au$enta con las variales de sesi6n" o3etos de data vie2"

    controles ASP.NET '" creando aun $8s con#usi6n.

    24

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    25/134

    Aprender ASP .NET Paso a Paso en 7 días | 25

    Así 1ue lo 1ue %are$os en esta secci6n es crear una si$ple aplicaci6n MVC y %are$os teste

    unitario en aplicaciones ASp.NEt usando el testeo unitario de Dra$e2ork VSTS.

    Paso +: Crear un si!le !royecto las ostrar Custoer$

    El pri$er paso es crear un si$ple proyecto MVC. 'sare$os el $is$o proyecto el cual nosotros

    tene$os creado en MVC ?Modelo Vista Controlador@ del día ! ?MyDirstBelloorld@. En caso no

    tengas el proyecto $encionado" por #avor crea uno usando el enlace de arria.

    )a clase controlador al #inal del día ! es una si$ple clase .NET. Por e3e$plo" si $iras el c6digo

    del proyecto cercana$ente" puedes ver #8cil$ente la clase controlador de Custo$er con se

    $uestra a continuaci6n:

    25

    http://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    26/134

    Aprender ASP .NET Paso a Paso en 7 días | 26

    En si$ples palaras este es una si$ple clase .NET pode$os #8cil$ente instanciar la clase y crear

    auto$8tica$ente testeos unitarios para el $is$o. Esto es e4acta$ente lo 1ue va$os %acer en

    nuestros siguientes pasos:

    Paso ,: Agregando un si!le !royecto de testeo unitario$

    Va$os a usar nuestro testeo unitario del #ra$e2ork de VSTS para testear la clase controlador.

    Agrega un nuevo proyecto a su soluci6n usando la plantilla Proyecto Pruea 'nitaria.

    26

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    27/134

    Aprender ASP .NET Paso a Paso en 7 días | 27

    Paso -: Agregar re'erencias a!ro!iadas al !royecto

    Necesita$os agregar una re#erencia a la aplicaci6n MVC en nuestro proyecto de pruea unitaria

    ?MVC'nitTest@" para 1ue poda$os controlar la clase Controlador.

    'na ve+ agregado la re#erencia" deerías ver en la aplicaci6n MVC e la re#erencia de proyecto

    co$o se $uestra en la siguiente i$agen:

    Paso .: &scribir la !rueba unitario

    'na ve+ 1ue tengas agregado la re#erencia" are la clase de pruea unitaria" es

    decir UnitTest+$cs$ En esta clase crear un si$ple $>todo de teste lla$ado /is!layCustoer el

    cual es atriuido por el atriuto TestMet"od co$o se $uestra en el siguiente c6digo.

    Si tu ves el siguiente peda+o de c6digo esta$os creando un o3eto de la clase controlador"

    invocando la acci6n del controlador" es decir" isplayCusto$er y entonces veri#ica$os si el

    no$re de la vista es isplayCusto$er. Si ellos son igual esto signi#ica el paso de la pruea o en

    caso contrario esto es #allido.

    27

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    28/134

    Aprender ASP .NET Paso a Paso en 7 días | 28

    28

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    29/134

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    30/134

    Aprender ASP .NET Paso a Paso en 7 días | 30

    Lab 3: &ntendiendo el ruteo MVC 

    4ntroducción

    Al #inal del día" MVC no es nada $8s 1ue una direcci6n de '() asignada a los controladores y los

    controladores asignados a acciones.

    Por e3e$plo cuando un usuario envía un re1ueri$iento de '() co$o

    %ttp:HH222.$anin#or$atic.co$H'icaProducto del navegador" estas acciones son asignadas con

    los controladores de MVC" y los controladores de MVC #inal$ente invocan esas #unciones.

    )o siguiente es una si$ple tala el cual $uestra c6$o todo esto se ve así.

    30

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    31/134

    Aprender ASP .NET Paso a Paso en 7 días | 31

    AIadiendo aFn $8s a la co$plicaci6n 1ue pode$os tener varias direcciones '() asignadas a un

    controlador o se puede tener $8s de un controlador asigna a una sola '(). Por e3e$plo" puedes

    tener555$anin'oratic$cocontactenos  y  555$anin'oratic$coconocenos asignada a

    un solo controlador lla$ado ConocenosController

    .

    Sería $uy ueno si tene$os algFn tipo de $ecanis$o por el cual pode$os con#igurar estas

    asignaciones. Eso es lo 1ue e4acta$ente MVC routing signi#ica. El enruta$iento MVC ayuda a

    con#igurar y asignar la direcci6n '() con los controladores #8cil$ente.

    Paso +: Toar el !royecto MVC creado en el dia +

    Va$os a to$as el $is$o proyecto de Custo$er ? MyDisrtBelloorld@ 1ue %e$os desarrollado en la

    secci6n anterior.

    Paso ,: Cabiar 7lobal$asa8$cs

    Todas las asignaciones de rutas son al$acenados en el arc%ivo de c6digo #uente (outeCon#ig.cs.

    Así 1ue co$o pri$er paso es 1ue tene$os 1ue ir a ca$iar este arc%ivo.

    31

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    32/134

    Aprender ASP .NET Paso a Paso en 7 días | 32

    Todas las asignaciones de rutas son al$acenadas dentro de la colecci6n lla$ada routes. Esta

    colecci6n pertenece al na$espaces Syste$.e.(outing. Para agregar una ruta tu necesitas

    lla$ar el $>todo Map(oute y pasar tres par8$etros na$e" url y de#aults.

    ea3o est8 una captura de reta+o de c6digo de la #unci6n Map(oute.

    • %ae es el no$re principal por la cual la ruta ser8 identi#icada dentro la colecci6n.

    • U9L de#ine 1ue tipo de #or$ato de '() 1uere$os conectar con el controlador. En el

    peda+o de c6digo siguiente deci$os 1ue el #or$ato '() es Vie5Vie5Custoer$

    • /e'aults de#ine la clase controlador y las #unciones de accion los cuales ser8n invocados

    cuando la '(l es lla$ada. Por e3e$plo" en el c6digo siguiente" deci$os 1ue cuando

    Vie2HVie2Custo$er es lla$ado" este invocar8 la clase controlador Custo$er y la #unci6n

    acci6n invocada sera /is!layCustoer$

    En caso su controlador to$e par8$etros" puede usar el J [email protected] e3e$plo en el siguiente

    peda+o de c6digo" nosotros %e$os usado J para especi#icar 1ue pode$os tener un par8$etro id.

    Si 1uieres de#inir los par8$etros co$o opcionales puedes usar el enu$ UrlParaeter$!tional$

    32

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    33/134

    Aprender ASP .NET Paso a Paso en 7 días | 33

    )o pri$ero es co$entar el c6digo de asignaci6n predeter$inada. Va$os a e4plicar el c6digo de

    asignaci6n predeter$inada $8s tarde.

    ngresa$os el siguiente c6digo" el cual signi#ica cuando lla$a$os a

    %ttp:Hlocal%ostHvie2HVie2Custo$er esto invocar8 al controlador Custo$er y lla$ara la #unci6n

    isplayCusto$er.

    Paso -: &2ecuta la a!licación

    Si e3ecutas la aplicaci6n deerías ver lo siguiente:

    %ota: No $uestra ningFn no$re" por1ue esto tiene 1ue ser enviado del #or$ulario" y puedes

    proar ca$iando el la propiedad action del #or$ulario vie2Hvie2Custo$er@.

    33

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    34/134

    Aprender ASP .NET Paso a Paso en 7 días | 34

    Si recuerdas nosotros co$enta$os la entrada de ruta por de#ecto ?de#ault@" va$os a entender

    1u> signi#ica e4acta$ente ese c6digo.

    KJcontrollerLHJactionLHJidL de#ine este 1ue la '() ser8 auto$8tica$ente lla$ado con la

    convenci6n Controlador ?no$reH#unci6n@ acci6n ?no$reHvalor@. Si tienes una clase controlador

    con Custo$er y #unci6n acci6n co$o Searc% entonces la '() ser8 estructurada auto$8tica$ente

    co$o %tt:HH222.$anin#or$atic.co$HCusto$erHSearc%.

    Lab ;: Validando y asignando (alores !or de'ecto a U9Ls de MVC

    MVC tiene 1ue ver con la acci6n 1ue se produce a trav>s de la '() y los datos para esas acciones

    ta$i>n es proporcionado por la '().

    Sería ueno si pudi>ra$os validar los datos 1ue se trans$iten a trav>s de estas '() de MVC.

    Por e3e$plo va$os a considerar la '() MVC %ttp:HHlocal%ostHCusto$erHVie2Custo$er si 1uieres

    ver el detalle para el c6digo del custo$er !;;!" necesitas ingresar

    %ttp:HHlocal%ostHCusto$erHVie2Custo$erH!;;!.

    El c6digo de Custo$er es un nF$ero natural. En otras palaras" cual1uier persona 1ue ingrese

    una '() MVC co$o %ttp:HHlocal%ostHCusto$erHVie2Custo$erHS%iv es inv8lida. El #ra$e2ork MVC

    provee un $ecanis$o de validaci6n por el cual pode$os co$proar en la propia '() si el dato es

    apropiado. En este laoratorio vere$os c6$o validar datos el cual es ingresado en la '() MVC.

    Paso +: Creando un si!le odelo Custoer$

    En este pri$er paso va$os a traa3ar con nuestra si$ple clase $odelo Custo$er ya creada en los

    pasos anteriores.

    34

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    35/134

    Aprender ASP .NET Paso a Paso en 7 días | 35

    Paso ,: Creando la clase controlador

    En el siguiente paso va$os a utili+ar la clase controlador Custo$er ya creada en pasos anteriores

    agregando una colecci6n de Custo$ers en el constructor.

    El controlador tiene una si$ple #unci6n isplayCusto$er el cual $uestra los clientes usando el

    valor . Esta #unci6n to$a el valor d y encuentra en la colecci6n custo$er.

    35

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    36/134

    Aprender ASP .NET Paso a Paso en 7 días | 36

    Si $iras en la #unci6n isplayCusto$er esta to$a un valor id el cual es nu$>rico. eería$os

    to$ar co$o una validaci6n el ca$po el cual indica lo siguiente:

    • d deería sie$pre ser nu$>rico

    • Este deería ser entre ; y ==

    36

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    37/134

    Aprender ASP .NET Paso a Paso en 7 días | 37

    Paso -: A!licando Validación usando rege8 en la ruta MVC

    )a validaci6n descrito en el paso & puede ser logrado aplicando e4presiones regulares en el

    $apeo de ruta ?Map(oute@. Si va$os al arc%ivo (outeCon#ig.cs y ve$os la #unci6n $aproute." la

    entrada a esta #unci6n es el constraint co$o se $uestra es la #igura de aa3o.

    En este orden para aco$odar la validaci6n necesita$os especi#icar el rege4 constraint es decir

    OdJ!"&L en la #unci6n $aproute co$o se $uestra aa3o. OdJ!"&L en rege4 signi#ica 1ue la

    entrada deería ser nu$>rico y ser un $84i$o de ! o & es decir entre ; y ==.

    Puedes especi#icar los valores por de#ecto diciendo idQ; co$o se $uestra en el c6digo de aa3o.

    En el caso de 1ue no est> especi#icado este to$ara el valor ; por de#ecto.

    37

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    38/134

    Aprender ASP .NET Paso a Paso en 7 días | 38

    Paso .: Probando si esto traba2a

    A%ora 1ue esta$os %aciendo la validaci6n usando la #unci6n a!route" es tie$po de proar si

    esta validaci6n traa3a. )a pri$era pruea tene$os 1ue especi#icar ! y vere$os 1ue el

    controlador es correcto y la data es $ostrada.

    Si especi#ica$os un valor $ayor a ==" deería$os otener un error co$o se $uestra aa3o. Por

    #avor note 1ue el error es con#uso pero es el e#ecto de la validaci6n rege4 el cual especi#ica la

    #unci6n $aproute.

    38

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    39/134

    Aprender ASP .NET Paso a Paso en 7 días | 39

    El punto $8s i$portante a notar es 1ue esta validaci6n se e3ecuta antes 1ue la solicitud a la

    #unci6n del controlador.

    Lab

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    40/134

    Aprender ASP .NET Paso a Paso en 7 días | 40

    )o ideal es 1ue las acciones deerían direccionar a las p8ginas. )os enlaces deerían tener

    acciones en la eti1ueta anc%or ?RaG@ y no no$res de p8ginas es decir no$res de vistas.

    Paso +: Creando el controlador !ara las (istas

    e#ini$os las acciones 1ue invocaran estas vistas. En el siguiente codigo tene$os de#inido tres

    acciones: otoBo$e ? esta invoca a la vista Bo$e@" Aout's ?Este invoca a la vista

    aout@" y SeeProduct ?Este invoca a la vista product@.

    Paso ,: Creando (istas

    A%ora va$os a crear las vistas para los tres $>todos de#inidos en el controlador Site ?Aout"

    Bo$e" Product@.

    40

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    41/134

    Aprender ASP .NET Paso a Paso en 7 días | 41

    A%ora va$os a crear una si$ple navegaci6n entre estas si$ples p8ginas co$o se $uestra aa3o.

    e la vista Bo$e nosotros estaría$os navegando a las vistas Aout y Product. e las vistas Aout

    y Product estaría$os navegando atrasa la vista Bo$e.

    Paso -: !ro(eyendo acciones en los lin*$

    Para invocar las acciones relacionadas a las vistas necesita$os especi#icar las acciones en la

    eti1ueta anc%or co$o se $uestra en el siguiente c6digo.

    41

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    42/134

    Aprender ASP .NET Paso a Paso en 7 días | 42

    El c6digo de arria #ue para la vista Product" pues %acer lo $is$o para las vistas Aout y Bo$e.

    Para la Vista Bo$e:

    Para la vista Aout:

    Paso .: /is'rutando su na(egación

    Antes de proar la navegaci6n" es necesario $odi#icar el $apeo de ruta $odi#icado el los

    laoratorios anteriores. Asi va$os al arc%ivo (outeCon#ig.cs. y lo de3a$os con en un inicio:

    42

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    43/134

    Aprender ASP .NET Paso a Paso en 7 días | 43

    A%ora si tienes especi#icado las acciones dentro el enlace" navegas entre las paginas Bo$e" aout

    y product.

    Mientras navegas puedes ver co$o el '() son dirigidos a las acciones $as 1ue a los no$res de

    las paginas co$o %o$e.asp4" aoutus.asp4 el cual viola co$pleta$ente los principios MVC.

    43

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    44/134

    Aprender ASP .NET Paso a Paso en 7 días | 44

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 dias(D %ay para el Cuarto ía9

    ¿Cuál es la Agenda?

    Este artículo es la continuaci6n de Aprender paso a paso en 7 días y puedes revisarlo en los linksiguientes:

    • ia !: Controladores" vistas #uerte$ente tipadas y clases %elper

    • ia &: Testeo unitario" ruteo de '() saliente

    44

    http://maninformatic.blogspot.com.ar/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com.ar/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2013/10/aprender-mvcmodelo-vista-controlador.htmlhttp://maninformatic.blogspot.com/2013/12/aprender-asp-net-mvc-paso-paso-en-7.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    45/134

    Aprender ASP .NET Paso a Paso en 7 días | 45

    • ia *: Vistas parciales" anotaciones de datos" (a+or" Autenticacion y Autori+acion

    • ia ,: -SN" -/uery" ad$inistrador de sesiones y controladores asíncronos

    • ia 0: E$pa1ueta$iento" Mini#icacion " Vie2Model " Mane3o de e4cepciones y Areas

    • ias 5: Mdos de Visuali+aci6n" Proveedor MVC Aut%" Enlace Modelo MVC

    En este día * vere$os los siguientes cinco laoratorios:

    • Vistas paciales

    • Validaci6n usando anotaciones de data

    • (a+or ?MVC ,@

    • MVC indo2s Aut%entication

    • MVC Dor$s Aut%entication

    Lab +0: Vistas Parciales

    Cuando %ala$os acerca de aplicaciones 2e" reusailidad es la clave. Co$o desarrolladores

    MVC estaría$os gustosos para crear vistas reusales. Nosotros gustaría$os crear vistas reusales

    co$o Vistas de caecera y pie de p8gina y usarlos dentro de una vista MVC grande.

    )a vistas reusales podrían se logrados creando KVistas Parciales.

    45

    http://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148http://maninformatic.blogspot.com/2014/01/aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/01/tut-aprender-asp-net-mvc-paso-paso-en-7.htmlhttp://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    46/134

    Aprender ASP .NET Paso a Paso en 7 días | 46

    Paso +: crear una si!le (ista

    Para desarrollar este laoratorio va$os a crear un nuevo proyecto vacío MVC ?MvcTerceria@.

    El pri$er paso ser8 crear una si$ple vista con un controlador. Puedes ver en la siguiente captura"

    A%í %ay una si$ple vista lla$ada Knde4.asp4 el cual ser8 invocada via Bo$eControlles.asp4.

    Paso ,: Crear una si!le (ista !arcial

    A%ora 1ue %e$os creado la vista principal" es tie$po de crear una vista parcial el cual puede ser

    consu$ido desde la vista Knde4. En orden para crear la vista parcial" click derec%o sore la

    46

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    47/134

    Aprender ASP .NET Paso a Paso en 7 días | 47

    carpeta vie2 y agregar vista" $arcar el c%eck o4 KCrear co$o vista parcial co$o se $uestra en

    la siguiente #igura.

    Paso -: Llaar a la (ista !arcial en la !rinci!al$

    ngresar algo de te4to o l6gica en la vista parcial

    Paso .: Llaar a la (ista !arcial en la !rinci!al$

    Dinal$ente lla$ar la vista parcial en la vista principal usando la #unci6n KBt$l.(ederPartial y

    pasar el no$re de la vista en la #unci6n co$o se $uestra en el siguiente c6digo.

    47

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    48/134

    Aprender ASP .NET Paso a Paso en 7 días | 48

    Ta$ien asegurarse 1ue la vista parcial este en el $is$o #older donde est8 su vista principal. Es

    caso de 1ue no este " entonces necesitaras pasar el pat% en la #unci6n (enderPartial. Puedes ver

    la siguiente #igura se %a $ovido la vista parcial en el #older Vie2sHBo$e.

    Paso : &2ecutar el !rograa ara (er la acción

    Dinal$ente presionar CtrlD0" y veras co$o se carga la vista parcial.

    Lab ++: Validación usando Anotación de /ata

    )a validaci6n de data es una de las principales cosas en cual1uier aplicaci6n 2e. Co$o

    desarrollador deerías e3ecutar la validaci6n en el cliente ?ro2ser@ y en el servidor. Así 1ue

    proale$ente le gustaría escriir la validaci6n de una ve+ y luego esperar el #ra$e2ork de

    validaci6n para generar la l6gica de validaci6n en a$os e4tre$os.

    Uuenas noticias" esto es posile pero usando anotaciones de data. En MVC validas los valores del

    $odelo. Cada ve+ 1ue la data llega desde el $odelo tu preguntaras al $odelo diciendo" es este la

    propiedad proveída9" son los valores dentro del rango9.

    48

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    49/134

    Aprender ASP .NET Paso a Paso en 7 días | 49

    )as Anotaciones de data son $etadata el cual puedes aplicar en el $odelo en el #ra$e2ork MVC

    validara usando la $etadata proveída.

    En este laoratorio va$os a en#ocar la validaci6n usando anotaciones de datos. )o pri$ero 1ue

    va$os a %acer es" en el $is$o proyecto ?MVCTerceria@" crear una clase $odelo Custo$er y una

    vista #uerte$ente tipada de entrada de datos lla$ada Bo$e.cs%t$l.

    Asu$iendo 1ue tienes creado el $odelo y la vista #uerte$ente tipada" va$os a e$pe+ar a aplicar

    Anotaciones de ata.

    Paso +: /ecorar el odelo con Anotación de /ata$

    $portante i$portar el espacio de no$res ataAnnotations co$o se $uestra en el c6digo de

    aa3o.

    Va$os a decir 1ue tene$os un $odelo Custo$er y 1uere$os asegurar 1ue el ca$po c6digo es

    oligatorio.

    Entonces aplicar el atriuto K(e1uired co$o se $uestra en el siguiente c6digo. si la validaci6n

    #alla y le gustaría $ostrar un $ensa3e de error" puedes pasar el KErrorMessage ta$i>n.

    Paso ,: Cabiar el codigo =oe$cs"tl

    A%ora %ay algunos ca$ios de c6digo 1ue deeria$os %acer en el c6digo Bo$e.cs%t$l. entro

    49

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    50/134

    Aprender ASP .NET Paso a Paso en 7 días | 50

    del ody nos gustaría $ostrar el $ensa3e de error si la data no es correcto es es %ec%o usando el

    siguiente c6digo.

    Ta$i>n necesita$os codi#icar nuestro #or$ulario de ingreso de datos. a continuaci6n se $uestra

    el #rag$ento de c6digo para el $is$o. Note 1ue la #uncion KEditorDorModel auto$8tica$ente

    generara los controles ' de acuerdo a las propiedades del $odelo. Entonces no necesita$os

    crear el control de #or$a individual co$o se %i+o en los laoratorios anteriores.

    Paso -: A"ora en la clase controlador Custoer$

    A%ora en la clase controlador Custo$er agrega$os la validaci6n" cuando el #or$ulario lla$a un

    post sore el controlador" te gustaría conocer si el estado del $odelo es correcto o no. Esto

    puede %acerse veri#icando con la propiedad ModelState.svalid. Si la propiedad es v8lida entonce

    lla$a a procedi$iento de guardar o $uestra la vista KPostCusto$er ?Solo $uestra los datos del

    #or$ulario@" en caso sea #also entonces retorna a la vista original KBo$e" a continuaci6n se

    $uestra el c6digo del controlador.

    50

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    51/134

    Aprender ASP .NET Paso a Paso en 7 días | 51

    Paso .: Probando la A!licación$

    Dinal$ente presionar Ctrl D0" y al enviar el control en lanco $ostrar el $ensa3e de error" pero

    esta validaci6n se reali+a en el servidor" por1ue el controlador es 1uien valida.

    %ota: Note 1ue se e3ecut6 la acci6n post al $>todo del controlador PostCustoer

    Paso : =abilitando la (alidación en el cliente

    En los pasos anteriores las validaciones se reali+an en el lado del servidor" esto signi#ica 1ue

    al $o$ento de enviar el #or$ulario 1ue contiene errores de validaci6n" el control pasa al

    servidor solo para regresar con $ensa3es de error. para evitar este ida y vuelta se puede agregar

    51

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    52/134

    Aprender ASP .NET Paso a Paso en 7 días | 52

    capacidades del lado del cliente en la vista Bo$e.cs%t$l.

    )a validaci6n en el cliente se puede reali+ar con 3/uery 'notrusive Validation" para lo cual %ay

    1ue re#erenciarlo en nuestro proyecto. E3ecutar el siguiente co$ando en Package Manager

    Console ?Berra$ientasHAd$inistrador de pa1uetes de Uilioteca@ : PMG nstallPackage

    3/uery.Validation.'notrusive.

    A%ora" uicar el arc%ivo 2e.con#ig arirlo y asegurar 1ue e4isten las siguientes teclas de la

    secci6n RappSettingsG las claves ClientValidationEnaled y 'notrusive-avaScriptEnaled asignar

    el valor true:

    'tili+ar el ayudante 'rl.Content?@ para otener las direcciones '() de los tres arc%ivos de script"

    a saer. 31uery!.,.,.3s" 31uery.validate.3s y 31uery.validate.unotrusive.3s. Estos arc%ivos son

    necesarios para llevar a cao la validaci6n del lado del cliente ?%o$e.cs%t$l@.

    Paso 6: Probando la A!licación$

    Dinal$ente presionar Ctrl D0" entonces la al presionar el ot6n enviar la validaci6n lo reali+ar8

    en el cliente sin ir al servidor.

    52

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    53/134

    Aprender ASP .NET Paso a Paso en 7 días | 53

    tros atriutos de anotaci6n de datos

    )a pruea resultaría:

    53

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    54/134

    Aprender ASP .NET Paso a Paso en 7 días | 54

    Lab +,: MVC . > 9aor

    Basta a%ora este artículo ya estuvo usando (a+or. /u> es (a+or9 sola para dar una respuesta

    corta. Este es un tipo de vista para MVC. El prole$a desde el punto de vista e Dor$ este no

    se %i+o pensando en MVC" por lo 1ue la sinta4is es un poco pesado.

    Paso +: Practica con sinta8is 9aor

    A%ora 1ue ya tene$os una idea de lo 1ue es (a+or va$os e3ecutar algunas sinta4is co$unes (a+or

    y tratar a tener una idea de lo #8cil 1ue es (a+or co$parado con las vistas ASP.

    54

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    55/134

    Aprender ASP .NET Paso a Paso en 7 días | 55

    Práctica +: #i!le l@nea de código

    Si 1uieres $ostrar una si$ple variale puedes %acer algunas cosas co$o se $uestra en el c6digo

    de aa3o. Todos la sinta4is (a+or e$pie+a con W. Si tiene una si$ple linea de codigo no necesitas

    KJ. (a+or se da cuenta de la conclusi6n l6gica.

    Si co$paras la sinta4is de arria con una vista ASP" necesitas tipear el c6digo siguiente. Asi 1ue

    No es una sinta4is $8s si$ple" ordenado y ligero9.

    Práctica ,: Mlti!les l@neas de código

    Práctica -: bucle 1oreac" y condición 4' 

    para ucles y condiciones i# llega a ser $8s si$ple co$o se $uestra en el siguiente c6digo:

    Práctica .: %o te !reocu!es !or B

    Si est8s pensando si (a+or es con#uso con W de (a+or y W de una direcci6n e$ail" no te

    preocupes" (a+or entiende la di#erencia. Para instanciar en la siguiente línea" la pri$era linea

    (a+or e3ecutar8 co$o un c6digo y la segunda linea de codigo lo entiende solo co$o una direcci6n

    e$ail.

    55

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    56/134

    Aprender ASP .NET Paso a Paso en 7 días | 56

    Práctica : Mostrar B

    En caso 1uieras $ostrar KW solo tipea esto cada ve+ co$o se $uestra en el siguiente codigo.

    se$ostrar8a la siguiente i$agen.

    Práctica 6: Mostrar =TML con 9aor

    En caso 1uieras $ostrar BTM) en el ro2ser. para instanciar una si$ple variale lla$ada co$o

    link el cual tiene c6digo BTM). Estoy $ostrando la variale link en el ro2ser.

    Si e3ecutas el c6digo de arria" te sorprenderias ver 1ue este no se $uestra co$o BTM)" sino

    co$o una si$ple pantalla co$o se $uestra a continuaci6n. a%ora co$o se $uestra

    acontinuaci6n" A%ora eso no es lo 1ue espera$os. Nos esper8a$os una pantalla BTM) adecuado.

    Esto se %ace $ediante (a+or para evitar ata1ues SS ?Balare$os de esto en secciones

    posteriores@.

    Pero no te preocupes" el e1uipo de (a+or se %a %ec%o cargo de esto. Puedes usar Bt$l.(a2

    para $ostrar" la $is$a 1ue se $uestra en el siguiente c6digo:

    56

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    57/134

    Aprender ASP .NET Paso a Paso en 7 días | 57

    Lab +-: #eguridad MVC Dindo5s Aut"enticationE$

    )a seguridad es una de las cosas $8s i$portantes en cual1uier aplicaci6n independiente$ente"

    1uien los desarrolla" en cual1uier tecnología" lo $is$o puede decirse de MVC.

    Antes de e$pe+ar este laoratorio una cosa 1ue necesita$os entender es 1ue MVC al #inal del día

    se encuentra en el $otor ASP.NET.

    %ota: En este artículo no va$os a estar uscando en los #unda$entos de la autenticaci6n de

    2indo2s y #or$s.

    Va$os a i$ple$entar autenticaci6n indo2s en una aplicaci6n MVC ,.

    A%ora" una $anera de i$ple$entar autenticaci6n 2indo2s es reali+ando algunos ca$ios en

    nuestro proyecto.

    Paso +: =abilitar la autenticación Dindo5s$

    El pri$er paso es %ailitar la autenticaci6n indo2. Esto lo reali+a$os en el arc%ivo de

    con#iguraci6n e.con#ig usando la eti1ueta aut%entication y aut%ori+ation 1ue se $uestra a

    continuaci6n:

    57

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    58/134

    Aprender ASP .NET Paso a Paso en 7 días | 58

    Paso ,: #olo algunos de'ectos$

    En la plantilla MVC ," %ay un pe1ueIo de#ecto. Esto e3ecuta la autenticaci6n Dor$s por de#ecto.

    Estale+ca las eti1uetas dea3o de la eti1ueta appsetings para evitar prole$as.

    Paso -: A!licando etiFuetas de autoriación en las acciones del controlador$

    una ve+ 1ue tienes %ailitado la autenticaci6n indo2s en el e.con#ig" usar la eti1ueta

    KXAut%ori+eY y especi#icar cu8les usuarios pueden tener accesoa los controladores y sus

    acciones.

    58

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    59/134

    Aprender ASP .NET Paso a Paso en 7 días | 59

    Por #avor note 1ue el usuario deeria estar presente en su 2indo2s Active irectory o su grupo

    local ?en $i caso uso 2indo2s < y en el ad$inistrador de usuarios y grupos click derec%o en

    E1uipoG Ad$inistrar@" co$o en $i caso el usuario ronald es $i usuario de grupo local.

    Paso .: Crear A!licación en el #er(idor 44# ; 4nternet 4n'oration #er(erE

    Tienes 1ue asegurarte 1ue tienes instalado el S en su e1uipo para lo cual lo puede veri#icar en el

    Panel de ControlG Agregar o 1uitar Progra$asG Activar características de 2indo2s.

    59

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    60/134

    Aprender ASP .NET Paso a Paso en 7 días | 60

    'na ve+ agregado la característica anterior" a%ora va$os a crear la aplicaci6n en el S con la

    %ailitaci6n de autenticaci6n indo2s sola$ente.

    Carga$os en ad$inistrador de S y agrega$os aplicaci6n con el no$re MvcTerceria" crea$os

    un directorio MVCZNS en donde se pulicaran nuestra aplicaci6n desde Visual Studio?esto

    lo vere$os en el siguiente paso@ .

    60

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    61/134

    Aprender ASP .NET Paso a Paso en 7 días | 61

    Bailita$os la autenticaci6n indo2s en nuestra aplicaci6n creada" seleccionando la opci6n

    Autenticaci6n.

    Paso : Publicando nuestra A!licación

    'na ve+ 1ue %a+ creado la aplicaci6n en S" es tie$po de pulicar la aplicaci6n a la carpeta de

    aplicaci6n 2e. Para lo cual %ace$os click derec%o sore el proyecto ? E4plorador de proyectos

    de Visual Studio@ y selecciona$os Pulicar.

    )e da$os la ruta ?creada en el paso anterior" cuando crea$os la aplicaci6n en S@ y le da$os en

    pulicar.

    61

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    62/134

    Aprender ASP .NET Paso a Paso en 7 días | 62

    Paso 6: &2ecutar el controlador y la acción

    Dinal$ente e3ecutar el controlador y la acci6n ?en el navegador digitarlo directa$ente@ y ver

    co$o el cuadro de autenticaci6n indo2 para el ingreso del usuario y la contraseIa. Esto

    validar8 de acuerdo a la autori+aci6n 1ue se asign6 en el controlador Bo$e.

    Si las credenciales son ingresados apropiada$ente" deerías ser capa+ de ver lo siguiente:

    62

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    63/134

    Aprender ASP .NET Paso a Paso en 7 días | 63

    Lab +.: #eguridad MVC 1ors Aut"enticationE

    En el laoratorio anterior vi$os co$o %acer autenticaci6n 2indo2s. )a autenticaci6n indo2s es

    ideal para sitios 2e de intranet. Pero co$o pronto %alare$os acerca de sitios 2e para

    internet" crear y validar usuarios de 2indo2s Active irectoryHtraa3ar con grupos de usuarios no

    es una opci6n #actile. Entonces en este tipo de escenarios KDor$s aut%entication es la $anera

    a seguir.

    Paso +: /e'inir la !agina Login y su controlador$

    )a pri$era cosa 1ue necesita$os es de#inir el controlador el cual invocar8 la vista login.

    así tengo creado una si$ple acci6n inde4 el cual invoca una vista lla$ado )ogin. Esta vista )ogin

    to$ar8 entradas co$o userna$e y pass2ord.

    Paso ,: Creando la (ista Login$

    El siguiente paso es crear el #or$ulario )ogin el cual to$ar8 el userna$e y pass2ord. Para crear

    el #or$ulario y %e usado la vista ra+or y las clases BTM) %elperI En caso tu eres nuevo en clases

    BTM) %elper por #avor revisar el )a !&.

    Este #or$ulario BTM) %ace un post a la acci6n K)ogin del controlador KBo$e y es usa el

    $>todo Post. Así cuando los usuarios presionan el oton enviar" este lan+ara la acci6n Kinde4.

    63

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    64/134

    Aprender ASP .NET Paso a Paso en 7 días | 64

    Paso -: Validar las credenciales$

    En la acci6n nde4 la pri$era cosa 1ue necesita$os %acer es veri#icar si el usuario es correcto o

    no. Por a%ora tene$os en c6digo el usuario y contraseIa. Esto puede sie$pre ser ree$pla+ado

    por consultas del servidor S/) o otra #uente.

    'na ve+ 1ue %e$os veri#icado las credenciales el siguiente paso es usar la #a$osa clase

    KDor$sAut%entication y asignar la cookie diciendo 1ue el usuario en correcto.

    e $odo 1ue en la siguiente solicitud cuando el usuario llegue no tendr8 1ue ser validado una y

    otra ve+. espues de 1ue la cookie se estalece es redireccionado a la vista KAout o de lo

    contrario te 1uedes en la vista )ogin.

    Paso .: Atributo Aut"orie

    Ta$i>n necesita$os usar el atriuto KXAut%ori+eY dentro los controladores" los cuales 1uere$os

    restringir para los usuarios no autori+ados.

    Por e3e$plo se puede ver el siguiente c6digo para la acci6n Knde4 del controlador KBo$e 1ue

    esta decorada con el atriuto KAut%ori+e.

    64

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    65/134

    Aprender ASP .NET Paso a Paso en 7 días | 65

    Si cual1uier usuario no autori+ado" accede directa$ente a cual1uiera de estos controladores ellos

    ser8n enviados a la vista )ogin es decir detr8s del nde4.

    Paso : Cabiar el arc"i(o 5eb$con'ig

    Dinal$ente necesita$os %acer ca$io en el #a$oso arc%ivo K2e.con#ig es decir %ailitar la

    seguridad KDor$s. la parte $as i$portante en el c6digo de aa3o es la propiedad K)ogin'rl.

    Paso 6: Veos la acción en Autenticación 1ors$

    Si a%ora lla$as a inde4 este directa$ente se $uestra la vista )ogin" este test pruea 1ue la

    autenticaci6n KDor$s esta traa3ando.

    65

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    66/134

    Aprender ASP .NET Paso a Paso en 7 días | 66

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 dias (D

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    67/134

    Aprender ASP .NET Paso a Paso en 7 días | 67

    • ia 0: E$pa1ueta$iento" Mini#icacion " Vie2Model " Mane3o de e4cepciones y Areas

    • ias 5: Mdos de Visuali+aci6n" Proveedor MVC Aut%" Enlace Modelo MVC

    67

    http://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148http://maninformatic.blogspot.com/2014/06/aprender-asp-net-mvc-paso-paso-en-7_7.htmlhttp://maninformatic.blogspot.com/2014/08/tut-aprender-asp-net-mvc-paso-paso-en-7.html?showComment=1434381214351#c6150926683497608148

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    68/134

    Aprender ASP .NET Paso a Paso en 7 días | 68

    Lab +: G#%H MVC y GIuery

    En caso seas nuevo en -SN por #avor lee esto antes e$pe+ar con este laoratorio" Acerca de

    -SN.

    En este laoratorio va$os a e4poner un si$ple o3eto KCusto$er de MVC en #or$ato -SN y

    consu$i$os el $is$o usando -1uery.

    Para este laoratorio por #avor asegurarse 1ue el proyecto el no$re del proyecto se

    MvcCuartoia y crearse use la plantilla de proyecto 8sico esto es necesario para incluir las

    lirerías -1uery en el proyecto MVC.

    Paso +: Crear un si!le odelo Custoer

    El pri$er paso es crear una si$ple clase $odelo KCusto$er en el proyecto.

    68

    http://maninformatic.blogspot.com/2014/01/tip-acerca-de-json.htmlhttp://maninformatic.blogspot.com/2014/01/tip-acerca-de-json.htmlhttp://maninformatic.blogspot.com/2014/01/tip-acerca-de-json.htmlhttp://maninformatic.blogspot.com/2014/01/tip-acerca-de-json.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    69/134

    Aprender ASP .NET Paso a Paso en 7 días | 69

    Paso ,: &8!oner el ob2eto JCustoerK coo G#%

    A%ora agrega$os un controlador KCusto$er" para e4poner el o3eto custo$er en #or$ato -SN

    necesita$os usar K-son(esult co$o se $uestra en el siguiente c6digo.

    Por #avor" e3ecute el controlador con la acci6n -SN anterior para co$proar 1ue el resultado

    -SN se $uestra correcta$ente. Si estas usando C%ro$e el resultado se $uestra en el navegador"

    si este es nternet E4plorer este descargara un arc%ivo.

    Paso -: Consuiendo el controlador G#% en GFuery

    En caso seas nuevo en -1uery" por #avor leer esto /ue es -1uery9

    El siguiente paso es consu$ir los datos -SN usando una vista MVC. Asi 1ue adelante AIadi$os

    una vista con el no$re Aprender-1uery.cs%t$l

    )o pri$ero es agregar la re#erencia a la lireria -1uery en la parte superior de la pagina. en caso

    69

    http://maninformatic.blogspot.com/2014/01/tip-que-es-jquery.htmlhttp://maninformatic.blogspot.com/2014/01/tip-que-es-jquery.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    70/134

    Aprender ASP .NET Paso a Paso en 7 días | 70

    no encuentras 31uery en el proyecto esto signi#ica 1ue no %as creado el proyecto usando la

    plantilla asica o sino puedes instalarlo de #or$a $anual usando la Consola de Ad$inistracion de

    pa1uetes de Visual Studio" esto lo e4plico al detalle en el artículo cargar vistas parciales en

    ASP.NET MVC usando -1uery A3a4 o ta$ien usando CN co$o lo e4plico es este tips de CN.

    'sando sinta4is %t$l

    'sando sinta4is ra+or

    Puedes entonces %acer una lla$ada al controlador 1ue esta e4poniendo en #or$ato -SN usando

    el $>todo Kget-son co$o se $uestra $8s aa3o. Este to$a tres par8$etros:

    El pri$er par8$etro en Kget-son es el '() MVC -SN con el #or$ato de estructura

    controllerHaction.

    El segundo par8$etro es la data a ser pasada. Por a%ora esto es nulo co$o esta$os $8s

    interesados en otener datos -SN en lugar de pulicar los datos.

    El ulti$o para$etro es el $>todo de devoluci6n de lla$ada Kisplay el cual ser8 invocado cada

    ve+ 1ue otenga$os datos -SN del controlador. )a #unci6n isplay ta$i>n est8 disponile en

    el siguiente c6digo. Estoy asignando una alerta con la propiedad na$e. puedes ver co$o

    sola$ente tipeo data.Custo$erCode" no convierto los datos -SN estos son auto$8tica$ente

    convertidos a o3etos 3avascript.

    70

    http://maninformatic.blogspot.com/2014/01/como-cargar-vistas-parciales-en-aspnet.htmlhttp://maninformatic.blogspot.com/2014/01/como-cargar-vistas-parciales-en-aspnet.htmlhttp://maninformatic.blogspot.com/2014/01/cdn-o-link-para-algunos-componentes-web.htmlhttp://maninformatic.blogspot.com/2014/01/como-cargar-vistas-parciales-en-aspnet.htmlhttp://maninformatic.blogspot.com/2014/01/como-cargar-vistas-parciales-en-aspnet.htmlhttp://maninformatic.blogspot.com/2014/01/cdn-o-link-para-algunos-componentes-web.html

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    71/134

    Aprender ASP .NET Paso a Paso en 7 días | 71

    El c6digo co$pleto en la vista MVC lo $ostra$os aa3o. Se creado un si$ple ot6n BTM) y dentro

    el evento click en donde se est8 lla$ando al $>todo 3avascript Kget-son el $is$o 1ue %ace una

    lla$ada al controlador -SN y $uestra la data -SN en una alerta 3avascript.

    )a vista anterior es invocado usando el $>todo KMostrar-son del controlador Custo$er creado

    anterior$ente.

    71

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    72/134

    Aprender ASP .NET Paso a Paso en 7 días | 72

    Paso .: &2ecutar la a!licación y (er el dato

    espu>s de %aer %ec%o todos los pasos es %ora de e3ecutar el proyecto ?CtrlD0@ y digitar en la

    url %ttp:HHlocal%ost:0;*5;HCusto$erH$ostrar-son para ver la elle+a -SN en e3ecuci6n.

    Lab +6: 7estión de #esion en MVC Vie5/ataH Vie5agH Te!/ata y (ariables sesiónE

    )a $eta principal en MVC es crear aplicaciones 2e y aplicaciones 2e usando el protocolo BTTP.

    Cuando envías una solicitud a la aplicaci6n MVC se atiende la solicitud y se olvida de la solicitud.

    )a pr64i$a ve+ 1ue el $is$o usuario envía la solicitud MVC lo trata co$o una co$pleta nueva

    solicitud.

    A%ora piensa en la siguiente situaci6n:

    • El usuario #inal envía la solicitud al sitio MVC

    • MVC envía una pagina de logueo

    • El usuario ingresa detalles adecuados y envía los datos a la aplicaci6n MVC.

    • MVC valida el usuario y enviar la p8gina inicial del sitio. )a aplicaci6n MVC a%ora se olvida

    todo lo relacionado con el usuario ya 1ue es ap8trida.

    • El usuario %ace clic en uno de los link de la p8gina inicial. Esto es enviado a la aplicaci6n

    MVC y por1ue la aplicaci6n MVC se %a olvidados de todo lo relacionado con el usuario" le

    72

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    73/134

    Aprender ASP .NET Paso a Paso en 7 días | 73

    envía una p8gina de inicio de sesi6n para la autenticaci6n de nuevo[ el usuario se sentir8

    e4traIo..

    Este resu$en necesita$os tener algunos tipos de $ecanis$os el cual nos ayudara a recordar

    estados entre la solicitud y la respuesta de MVC.

    Bay * $aneras de $antener estados en MVC y estas $aneras puede ser usado dependiendo de

    1ue capa a 1u> capa se navegas.

    Te! /ata: Ayuda a $antener los datos sore las redirecciones para una Fnica solicitud y

    respuesta. A%ora la redirecci6n puede ser de controlador a controlador o de controlador a vista.

    Vie5 /ata: Ayuda a $antener datos cuando se $ueve de controlador a la vista.

    Vie5 ag: Este es un contenedor din8$ico alrededor de vista de datos. Cuando usa$os el tipo

    Kvie2ag la conversi6n no es re1uerido. 'tili+a una clave din8$ica interna.

    73

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    74/134

    Aprender ASP .NET Paso a Paso en 7 días | 74

    Variables sesión: 'sando variales sesi6n pode$os $antener datos %asta cerrar el navegador.

    e$ostrare$os los #unda$entos anteriores con una de$ostraci6n.

    Paso +: Crear dos controladores J/e'ault+K y J/e'ault,K$

    Agregar dos controladores e#ault! y e#ault&.

    Paso ,: &stablecer #esionH te!dataH (ie5data y (ie5bag

    En el controlador Ke#ault! dentro del $>todo Knde4 asigna$os valores a sesi6n" te$pdata"

    vie2data y vie2ag co$o se $uestra en el siguiente c6digo. 'na ve+ 1ue %e$os asignado los

    valores %ace$os una redirecci6n a la acci6n KAlgunatraAccion el cual pertenece al controlador

    Ke#ault&.

    74

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    75/134

    Aprender ASP .NET Paso a Paso en 7 días | 75

    Paso -: Leer (alores sesiónH te!dataH (ie5data y (ie5bag

    En el controlador Ke#ault& captura$os para leer valores asignados en el controladorKe#ault!. 'na ve+ 1ue los valores son leídos invoca$os a la vista lla$ada KVistaatos.

    Por #avor note 1ue se esta asignando KVie2ata y KVie2Uag antes de redireccionar a la vista.

    )a vista KVistaatos solo $uestra los datos presentados en KTe$pata" KVie2data" KVie2Uag

    y KSession.

    75

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    76/134

    Aprender ASP .NET Paso a Paso en 7 días | 76

    Va$o a %ailitar un punto de depuraci6n en las acciones de a$os controladores y va$os a ir al

    controlador e#ualt! y a su $>todo nde4 %ttp:HHlocal%ost:0;*5;Hde#ault!Hinde4 . En esta acci6n

    las sesi6n" te$pdata" vie2data y vie2ag son cargadas. ea3o pode$os ver co$o se $uestran

    los datos.

    A%ora de a1uí va$os a redireccionar al controlador Ke#ault& acci6n KAlgunatraAccion.

    En el controlador pode$os ver 1ue otene$os las variales KTe$pata y KSession pero no

    KVie2ata y KVie2Uag ?Ver str* y str, con asignados null@. En otras palaras KVie2ata y

    76

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    77/134

    Aprender ASP .NET Paso a Paso en 7 días | 77

    KVie2Uag no %acen persistencia de datos en redirecci6n $ientras KTe$pata y KSession si lo

    %acen.

    Cuando la vista se invoca pode$os ver todos los datos. En otras palaras los datos KVie2ata y

    KVie2Uag persistieron del controlador a la vista. \ ta$i>n los datos KTe$pata y KSession

    persistieron.

    77

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    78/134

    Aprender ASP .NET Paso a Paso en 7 días | 78

    A%ora cuando la vista vista invocada %e agregado un Biperlnk KBa+$e Click el cual invoca a la

    acci6n Knde4 del controlador Ke#ault!. Esto es para si$ular una nueva solicitud.

    Cuando se %ace click en el %ipenvinculo. Todas las otras variales se apagan" solo la variale

    KSession persiste.)o pode$os ver en la #igura siguiente. Esto signi#ica 1ue las variales KSession

    pueden persistir entre solicitudes.

    ea3o est8 una tala resu$en 1ue $uestra los di#erentes $ecanis$o de persistencia.

    78

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    79/134

    Aprender ASP .NET Paso a Paso en 7 días | 79

    Lab +3: Controler As@ncronos

    )as aplicaciones MVC al #inal del día son aplicaciones 2e los cuales son %ospedados dentro de

    S. A%ora cuando cual1uier solicitud llega al controlador MVC este genera un %ilo del %ilo pool y

    sirve a esta petici6n. En otras palaras el servidor e S $antiene un grupo de %ilos en lugar de

    crear %ilos a partir de cero una y otra ve+ para otener ene#icios de rendi$ientos.

    Va$os asu$ir 1ue un servidor 2e %a creado un pool de %ilos de ta$aIo &. A%ora esto es solo una

    suposici6n por1ue un pool de ta$aIo & es $uy %ipot>tico. Pero para %acer cosas si$ples

    considera$os 1ue los pool de %ilos son de ta$aIo &.

    Va$os a decir pri$ero 1ue la solicitud llega al sitio" S tira un o3eto de pool de %ilo ya reali+ado

    y e$pie+a a servir la petici6n. Mientras tanto va$o a decir llega la segunda solicitud en lo 1ue de

    nuevo el S se tira un %ilo del pool de %ilo y e$pie+a a servir la segunda petici6n.

    A%ora lo divertido e$pie+a cuando llega la tercera solicitud. El servidor S no tiene $8s o3etos

    de %ilos en el pool co$o ya ya %an sido servidos a Kre1uest! y Kre1uest&. Asi 1ue el servidor

    solo $ueve la tercera solicitud a un $odo de espera o el servidor puede enviar un $ensa3e 0;*

    ocupado para el cliente.

    79

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    80/134

    Aprender ASP .NET Paso a Paso en 7 días | 80

    Esta situaci6n es deno$inado co$o KT%read Starvation. )as situaci6n T%read Starvation se

    pueden superar al %acer la solicitud KAsincrona. Así 1ue la petici6n llega e in$ediata$ente la

    solicitud se procesa de $anera KAsincrona y soltando el %ilo 1ue sirva la solicitud

    in$ediata$ente.

    Así 1ue para evitar esto pode$os lograr lo $is$o" %aciendo nuestros controladores KAsincronos.

    A%ora va$os a entender paso a paso co$o i$ple$entar controladores asíncronos en MVC.

    Paso +: =eredar de la clase AsyncController

    Considerando la siguiente clase controlador KBeavyController el cual tiene una acci6n

    KAlgunMetodoBeavy y esta acci6n espera &; segundos. Así 1ue va$os a entender c6$o pode$os

    %acer este si$ple controlador Async%.

    Así 1ue el pri$er paso es %eredar de la clase KAsyncController.

    Paso ,: Marcar todos con el ane8o Async

    El siguiente paso es aIadir la palara Async despu>s de los $>todos. Asi co$o pode$os oservar

    KAlgunMetodoBeavy %a sido ca$iado a KAlgunMetodoBeavyAsync.

    )a l6gica de c6digo de Beavy es decir KT%read.Sleep?@ is $ovido a un $etodo di#erente y este

    $>todo es invocado usando la tarea de la lirería paralela de KAlgunMetodoBeavyAsync.

    Cada ve+ 1ue una KTask o un KT%read es iniciado nosotros incre$enta$os el contador de

    utstandingperations pero usando KAsyncManager y cada ve+ 1ue una tarea $ultit%readed es

    co$pletada decre$enta$os el contador.

    80

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    81/134

    Aprender ASP .NET Paso a Paso en 7 días | 81

    Paso -: Crear el todo co!letado

    A%ora una ve+ todas las tareas $ultit%readed co$pletadas y el utstandingperations esta cero

    necesita$os retornar la vista. Asi para el $is$o necesita$os crear un $etodo Action(esult con la

    palara Co$pleted ane4ada. Este $>todo se lla$a cuando todas utstandinperations son cero.

    Paso .: Asegurarse de crear la (ista JAlgunMetodo=ea(y$cs"tlK

    Ta$i>n asegurarse de agregar la vista KAlgunMetodoBeavy con el siguiente te4to dentro.

    81

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    82/134

    Aprender ASP .NET Paso a Paso en 7 días | 82

    Paso : &2ecutar y dis'rutar

    A%ora digitar en el navegador K%ttp:HHlocal%ost:0;*5;H%eavyHAlgunMetodoBeavy y ver la

    salida.

    82

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    83/134

    Aprender ASP .NET Paso a Paso en 7 días | 83

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 d

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    84/134

    Aprender ASP .NET Paso a Paso en 7 días | 84

    • *a# 1: Rrea MVC

    • ¿Bue $a- para e se%o d

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    85/134

    Aprender ASP .NET Paso a Paso en 7 días | 85

    "ab 1>: Em#aquetado & *ini7icaci$n en *+C

     A'#os !on!ep%os e'paque%ado - 'ini8i!a!i+n a-udan a in!re'en%ar e rendi'ien%o

    Entendiendo el Em#aquetado

    Sie'pre os pro-e!%os He# ne!esi%an ar!$i5os CSS - Ga5aS!rip%. Nor'a'en%e sereaia una pe%i!i+n a ser5idor por !ada ar!$i5o CSS - Ga5aS!rip%0 - si se %ienen5arios de es%os ar!$i5os $a!e que a !ar,a de as p;,inas sean en%as. E'paque%arosnos a-uda a !o'#inar '%ipes ar!$i5os Ga5aS!rip% - CSS en un soo o#e%o en%ie'po de ee!u!i+n0 !o'#inando as< '%ipes soi!i%udes en una soa soi!i%ud que asu 5e a-uda a 'eorar e rendi'ien%o.Por ee'po !onsidere a soi!i%ud de una p;,ina en a si,uien%e i'a,en. *assoi!i%udes son !ap%urados usando a /erra'ien%a de desarroo de C$ro'e. Es%ap;,ina !onsu'e ar!$i5os 3Ga5as!rip%1.s4 - 3Ga5as!rip%.s4. Cuando es%a p;,ina essoi!i%ada es%a $a!e %res pe%i!iones a ser5idor.

    • Pri'era para a p;,ina 3nde4

    • Se,unda soi!i%ud para e ar!$i5o Ga5aS!rip% 3Ga5as!rip%1.s4

    • Ter!era soi!i%ud para e ar!$i5o Ga5aS!rip% 3Ga5as!rip%.s4

     A$ora si piensas un po!o en e es!enario de arri#a puede e,ar a ser peor si%ene'os 'u!$os ar!$i5os a5as!rip% (espe!ia'en%e ar!$i5os GBuer-) resu%ado'%ipes soi!i%udes que redu!ir

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    86/134

    Aprender ASP .NET Paso a Paso en 7 días | 86

    Entendiendo la *ini7icaci$n

    *a 'ini8i!a!i+n redu!e e %a'a>o de os ar!$i5os s!rip% - CSS0 ei'inando espa!ios en#an!o0 !o'en%arios0 e%!. Para e ee'po de a#ao %ene'os un si'pe !+di,o

     a5as!rip% !on !o'en%arios.

    Después de api!ar a 'ini8i!a!i+n os !odi,o a5as!rip% se 5eran !o'o en a i'a,ende a#ao. puedes 5er !o'o son ei'inado os espa!ios en #an!o - !o'en%arios para'ini'iar e %a'a>o de ar!$i5o e in!re'en%ar e rendi'ien%o de#ido a que e %a'a>ode ar!$i5o $a sido redu!ido - !o'pri'ido.

    Va'os a de'os%rar un si'pe ee'po de e'paque%ado - 'ini8i!a!i+n !on MVC pasoa paso.

    Paso 1: Crear un #ro&ecto con la #lantilla en blanco

    Para en%ender e e'paque%ado - 'ini8i!a!i+n0 5a'os a se,uir adean%e - !reare'osun pro-e!%o MVC en #an!o. En es%e 5a'os a a,re,ar una !arpe%a 3S!rip%4 - den%ro de es%e0 5a'os a a,re,ar dos ar!$i5os a5as!rip% !o'o se 'ues%ra en a si,uien%e8i,ura.

    86

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    87/134

    Aprender ASP .NET Paso a Paso en 7 días | 87

    E si,uien%e !+di,o es para e ar!$i5o 3Ga5aS!rip%1.s4

    E si,uien%e !+di,o es para e ar!$i5o 3Ga5aS!rip%.s4

    Paso !: Crear un controlador que llame a una 4ista

     A$ora 5a'os a se,uir - !rear a un !on%roador e !ua a'e a una 5is%a a'ada3MiVis%a4 es !ua !onsu'e a'#os ar!$i5os a5as!rip%.

    87

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    88/134

    Aprender ASP .NET Paso a Paso en 7 días | 88

     A,re,a'os a 5is%a MiVis%a - !onsu'i'os os ar!$i5os a5as!rip%.

    88

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    89/134

    Aprender ASP .NET Paso a Paso en 7 días | 89

    Paso 3: E6ecutar & 4er como se hacen multi#les llamadas

     A$ora ee!u%a'os a api!a!i+n MVC en oo,e C$ro'e0 Presione a !o'#ina!i+n de%e!as C%rKS$i8%K para 5er a si,uien%e saida. Puedes o#ser5ar que $a- %ressoi!i%udes.

    Paso 5: /e7erenciando a S&stem.eb.@#timi=ation2

    E e'paque%ado - 'ini8i!a!i+n es $e!$o por e na'espa!e3S-s%e'.He#.p%i'ia%ion4. A$ora es%e D** no es par%e de 8ra'eFor@ .NET o

     ASP.NET. Ne!esi%a'os usar NUET para des!ar,ar es%a D**. Va'os a NUET -#us!ar ASPNET.He#.p%i'ia%ion.NUET es una $erra'ien%a !ien%e0 que se a,re,a a Visua S%udio - nos per'i%ead'inis%rar - !onsu'ir paque%es. *a ,aer

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    90/134

    Aprender ASP .NET Paso a Paso en 7 días | 90

    Paso 5: El archi4o de con7i%uraci$n de #aquete

     A$ora es%e paso depende de que %ipo de pan%ia MVC $e'os see!!ionado a a $orade !rear nues%ro pro-e!%o. Si $u#iéra'os see!!ionado a pan%ia 3?asi!4 en%on!es ear!$i5o 3?undeCon8i,4 -a se !rearia - !o'o noso%ros $e'os see!!ionado a pan%ia

    3?an!o4 en%on!es %ene'os 'u!$o %ra#ao que reaiar.

    En%on!es si,a'os - a,re,ue'os a !ase 3?undeCon8i,4 - !ree'os un 'é%odo3e,is%er?undes4 !o'o se 'ues%ra en e si,uien%e !+di,o.En e !+di,o de a#ao3#undes.add4 di!e que a,re,ue %odos os ar!$i5os a5as!rip% que es%;n den%ro de a!arpe%a 3S!rip%s4 a un paque%e a'ado 3?undes4.

    Nota im#ortante: No o5idar i'por%ar e na'espa!es 3S-s%e'.He#.p%i'ia%ion4 o deo !on%rario se ,enera un error.

    90

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    91/134

    Aprender ASP .NET Paso a Paso en 7 días | 91

    Paso :"lamar el archi4o de con7i%uracion del em#aquetado desde el archi4o%lobal.asaB.cs

    En es%e paso no es ne!esario si se $a !reado e pro-e!%o u%iiando a pan%ia MVC3?;si!o44. Pero !o'o noso%ros $e'os !reado e pro-e!%o u%iiando a pan%ia MVC3?an!o40 en%on!es %ene'os que a#rir e ar!$i5o ,o#a.asa.!s - en e ini!io de a

    api!a!i+n a'ar e 'é%odo 3e,is%er?udes4 !o'o se 'ues%ra en e si,uien%e !+di,o.

    Paso : Enla=ar el em#aquetado en la 4ista

    Una 5e que e e'paque%ado es $e!$o ne!esi%a'os ei'inar e %a, 3s!rip%4 - a'ar ad 3p%i'ia%ion4 para enaar e e'paque%ado.

    De#ao es%a e !odi,o en a !ua e'paque%are'os a'#os ar!$i5o a5as!rip% en unni!o o#e%o0 e5i%ando as< a'ada de soi!i%ud '%ipe por !ada ar!$i5o a5as!rip%. Ene e'paque%ado !o'pe%o se a,re,a a 5is%a MVC.

    91

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    92/134

    Aprender ASP .NET Paso a Paso en 7 días | 92

    Paso >: *irar el em#aquetado & mini7icaci$n en tiem#o real.Para 'os%rar e e'paque%ado - 'ini8i!a!i+n en %ie'po rea. Ee!u%a'os nues%ropro-e!%o en oo,e C$ro'e - presiona a !o'#ina!i+n de %e!as CT*KS/ITK(/erra'ien%a de Desarroador) - puedes 5er a 'a,ia a$< en donde se 'ues%ra unasoa a'ada para a'#os ar!$i5os a5as!rip%.

    $a!e'os !i!@ en a pes%a>a Pre5ieF pode'os 5er que a'#os ar!$i5os Ga5aS!rip%

    $an sido uni8i!ados. si a 'ini8i!a!ion %a'#ién se $a reaiado e!orde'os nues%roar!$i5o a5a s!rip% ori,ina.

    Co'o puedes 5er en a saida de a#ao0 os !o'en%arios $an sido ei'inado0 os

    espa!ios en #an!o son re'o5idos - e %a'a>o de ar!$i5o se redu!e - es ';se8i!ien%e.

    92

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    93/134

    Aprender ASP .NET Paso a Paso en 7 días | 93

    93

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    94/134

    Aprender ASP .NET Paso a Paso en 7 días | 94

    "ab 1D: *odelo +ista *+C

    Teora

    Una 5is%a 'odeo es una si'pe !ase que represen%a da%os a ser 'os%rados en a5is%a.por ee'po a#ao es%a un si'pe o#e%o Cus%o'erMode !on propiedades3Cus%o'erNa'e4 - 3A'oun%4.

    Pero !uando e 'odeo de o#e%o 3Cus%o'er4 es 'os%rado en a 5is%a MVC es%e'ues%ra a,o !o'o se puede o#ser5ar en a si,uien%e 8i,ura. Es%e %iene3Cus%o'erNa'e40 3A'oun%4 - un !a'po pus 3Cus%o'er ?u-in *e5e4.

    3Cus%o'er ?u-in, *e5e4 (Ni5e de !o'pra de !ien%es) es un indi!ador de !oor e'is'o que indi!a que %an a,resi5o es a !o'pra de os !ien%es.E !oor de 3Cus%o'er #u-in, *e5e4 depende de 5aor de a propiedad 3A'oun%4. Sia !an%idad es 'a-or que 222 en%on!es e !oor es roo0 si a !an%idad es 'a-or que1922 en%on!es e !oor es anaranado - e !aso !on%rario es !oor es a'ario.En o%ras paa#ras 3Cus%o'er ?u-in, *e5e4 es una propiedad e%ra e !ua es!a!uado en #ase de a a !an%idad (!an%idad).

    Por o que a !ase 5ieF'ode 3Cus%o'er4 %iene %res propiedades

    • E %e%#o 3T%Cus%o'erNa'e4 %o'a da%os de a propiedad 3Cus%o'erNa'e4

    • E %e%#o 3T%A'oun%4 %o'a da%os de a propiedad 3A'oun%4 de 'odeo !o'oes%e es

    • 3Cus%o'er?u-in,*e5eCoor4 'ues%ra e 5aor de !oor dependiendo de 5aor3A'oun%4.

    94

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    95/134

    Aprender ASP .NET Paso a Paso en 7 días | 95

    ¿Fue ti#o de l$%ica contendr la clase 4ie8 model?

    *a !ase 5ieF 'ode puede %ener os si,uien%es %ipos de +,i!a:

    • "$%ica de trans7ormaci$n de color: Por ee'po %u %ienes una propiedad3rado4 en e 'odeo - %e ,us%aria 'os%rar en a U e !oor roo para e ni5e de,rado a%o0 !oor a'ario para e ni5e de ,rado #ao - 5erde para e ,rado .

    • "$%ica de trans7ormaci$n de 7ormato de datos: Si %u 'odeo %iene unapropiedad 3Es%ado4 !on e 5aor 3Casado4 - 3So%ero4. En a U %e ,us%aria 'os%rare !o'o un !$e!@#o e !ua es 'ar!ado si 3!asado4 - des'ar!ado sies 4so%ero4.

    • "$%ica de a%re%aci$n: Tienes dos !ase 'odeo di8eren%es 3Cien%e4 -3Dire!!ion4 - %ienes una 5is%a e !ua 'ues%ra a'#os da%os 3Cien%e -3Dire!!i+n4 en una soa 5e.

    • Estructura 9o8nsin=in%: Tienes un 'odeo 3Cien%e4 !on propiedades3No'#reCien%e4 - 3Codi,oCien%e4 - quieres 'os%rar soo 4No'#reCien%e4. puedes !rear un 'odeo !on%enedor arededor - eponer as propiedadesne!esarias.

    Va'os $a!er un peque>o a#ora%orio para en%ender e !on!ep%o 'odeo de 5is%a MVCusando a si,uien%e 'ues%ra e !ua $e'os dis!u%ido pre5ia'en%e.

    Usare e en8oque de arri#a $a!ia a#ao para !rear a pan%aa de arri#a:

    • Paso 1: Crear e 'odeo 3Cus%o'er4

    • Paso : Crear e VieFMode

    • Paso 6: Consu'ir a VieFMode en a 5is%a.

    95

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    96/134

    Aprender ASP .NET Paso a Paso en 7 días | 96

    Paso 1: Creando el modelo Customer 

     Asi 5a'os a se,uir adean%e - !rear un 'odeo 3Cus%o'er40 en nues%ro pro-e!%o3MVCBuin%oDia40 !on as propiedades de a#ao.

    Paso !: Creando la 4ista modelo*o si,uien%e es !rear una !ase VieFMode e !ua !on%endr; a 'odeo 3Cus%o'er4 -a,re,ara propiedades de U. Asi que 5a'os a !rear una !arpe%a 3VieFModes4 - enes%a a,re,ar una !ase 3Cus%o'erVieFMode4.

     A#ao 5a e !odi,o para a !ase 3Cus%o'erVieFMode4. A$ora a,unos pun%osi'por%an%es a!er!a de a !ase 5ieF 'ode:

    96

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    97/134

    Aprender ASP .NET Paso a Paso en 7 días | 97

    • Puedes 5er en a !ase de a#ao !o'o a !ase 3Cus%o'er5ieFMode4 !on%ienea !ase 3Cus%o'erMode4.

    • Ta'#ién un pun%o ii'por%an%e que $e'os de !rear propiedades e !ua 5a !ona !on5en!i+n de no'#res de U (%%Na'e0 %%A'oun%0

    #Cus%o'er*e5eCoor0e%!).

    •  A$ora para o 'as i'por%an%e 'irar e !odi,o para a propiedad3Cus%o'ere5eCoor40 es%e 'ues%ra e !oor dependiendo de a !an%idad(A'oun%) de 5en%as de !ien%e (Cus%o'er). Una 3VieFMode4 eis%e para es%e%ipo de !+di,o puen%e0 e !ua !one!%a e 'odeo - a 5is%a.

    Paso 3: Consumiendo el +ie8*odel en la 4istaE si,uien%e paso es !rear un !on%roador0 e 'is'o que pasa a,unos da%os !o'o se'ues%ra en e si,uien%e !+di,o.

    97

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    98/134

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    99/134

    Aprender ASP .NET Paso a Paso en 7 días | 99

    Co'o puedes 5er a 5is%a no es%a de!orada o se puede de!ir enaada !on a !ase'odeo. *o ';s i'por%an%e es 'irar que a 5is%a es%; i'pia. Es%o no %iene !+di,o paraa %o'a de de!isiones para a !odi8i!a!i+n de !oores. Es%os !+di,o se $an in!uidoden%ro de a !ase VieFMode. Es%o $a!e que VieF Mode sea un !o'ponen%e esen!iade MVC.

    Paso 5: Probando la A#licaci$nUna 5e %er'inado es 'o'en%o de pro#ar a api!a!i+n para o que presiona'osC%rKI9.

    99

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    100/134

    Aprender ASP .NET Paso a Paso en 7 días | 100

    +ie8*odel sera Com#osici$n o (erencia

    Mu!$os arqui%e!%os !o'e%en errores !reando una !ase VieFMode !o'o $eren!ia. Si%u 5es arri#a a !ase VieFMode es !reado por !o'posi!i+n - no por $eren!ia.

    ¿Porque !o'posi!i+n %iene ';s sen%ido& si 5isuaias noso%ros nun!a de!i'os 3es%apan%aa es $io de os o#e%os de ne,o!io40 eso sera.Noso%ros de!i'os 3esa pan%aa usa esos 'odeos4. Asi que es 'u- !aro que sea unarea!i+n usando - no una rea!i+n es un (padres e $ios).

     A,unos es!enarios donde a $eren!ia 8aara:

    • Cuando %u no quieres a,unas propiedades de 'odeo en %u 5is%a.

    • Cuando %u %ienes una 5is%a e !ua usa '%ipes 'odeos.

     As< que no sean a%ra

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    101/134

    Aprender ASP .NET Paso a Paso en 7 días | 101

    'a,en de $%%p:LL%o'dain,.!o'

    +enta6as de +ie8*odel

    eusa#iidad. A$ora que e !+di,o $a sido o#e%o de una !ase. Se puede !rear eo#e%o de es%a !ase en !uaquier o%ra %e!noo,

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    102/134

    Aprender ASP .NET Paso a Paso en 7 días | 102

    Cuando se %ra%a de 'aneo de e!ep!iones0 e #oque %r-...!a%!$ es a op!i+n 8a5ori%ade os desarroadores .NET. Por ee'po en e si,uien%e !+di,o $e'os en5ue%o e!+di,o den%ro de %r-..!a%!$ - si $a- e!ep!iones in5o!a'os a una 5is%a 3Error4 en e#oque !a%!$.

    E ,ran pro#e'a !on e !+di,o de arri#a es a reusa#iidad de 'aneo de !+di,oe!ep!iones. MVC propor!iona a reu%iiar e !+di,o de 'aneo de e!ep!iones en%res ni5ees:

    A tra4)s de acciones dentro del mismo controlador : Puedes usar e e5en%o3nE!ep%ion4 donde es!ri#es a +,i!a e 'is'o que puede ser reu%iiado a %ra5ésde 3A!!iones4 den%ro de 'is'o !on%roador.A tra4)s de cualquier controlador: En MVC pode'os usar 3Ii%erCon8i,4 para !rear un a%ri#u%o e !ua ser; api!ado a !uaquier !on%roador - !uaquier a!!ion.

     A ni5e de pro-e!%o: 'aneando Usin,Appi!a%ionError en o#a.asa. As< que!uando a e!ep!i+n se ,enera desde !uaquier par%e de pro-e!%o MVC0 es%e ser;ru%eado a un 'aneador de error !en%ra.

    102

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    103/134

    Aprender ASP .NET Paso a Paso en 7 días | 103

    Va'os paso a paso a de'os%rar as 6 'aneras de arri#a de 'aneo de errores enMVC.

    Paso 1: A%re%ar un controlador & la acci$n que lan=a el error 

     As< que o pri'ero es a,re,ar un si'pe !on%roador - a a!!i+n que an!e a,unos

    %ipos de e!ep!iones. En e si,uien%e !+di,o puedes 5er que $e'os a,re,ado un!on%roador 3Tes%eandoCon%roador4 !on una a!!i+n 3Tes%earMe%odo40 donde $e'osanado una e!ep!i+n de di5isi+n por !ero.

    Por o que si ee!u%ar a a!!i+n an%erior %er'inar; !on un error !o'o se 'ues%ra en a

    si,uien%e 8i,ura.

    Paso !: Crear una 4ista Error 

    103

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    104/134

    Aprender ASP .NET Paso a Paso en 7 días | 104

     A$ora una 5e que e error es !ap%urado por !uaquiera de os %res 'é%odos des!ri%osan%erior'en%e nos ,us%ar

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    105/134

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    106/134

    Aprender ASP .NET Paso a Paso en 7 días | 106

    Paso 5: /eutili=ar a cualquier acci$n & cualquier controlador,;ilterCon7i%

    Den%ro de He#.Con8i, si'pe'en%e $a#ii%a'os 3Cus%o'Errors4 !o'o si,ue.

    Den%ro de a !arpe%a AppS%ar% a#ri'os Ii%erCon8i,.!s - nos ase,ura'os que/andeErrorA%%ri#u%e es a,re,ado a o#aIi%erCoe!%ion.

    /andeErrorA%%ri#u%e en e ni5e ,o#a !on8ir'a que a e!ep!iones anadas por!ada a!!i+n en %odos os !on%roadores ser;n 'aneados.En e ar!$i5o o#a.asa den%ro de Appi!a%ionS%ar% e 'é%odo e,is%ero#aIi%erses in5o!ado.

    106

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    107/134

    Aprender ASP .NET Paso a Paso en 7 días | 107

    Es%o $a!e que %odas as e!ep!iones anadas por !uaquier 'é%odo den%ro de %odosos !on%roadores re%ornen a 5is%a 3Error4 presen%e den%ro a !arpe%a S$ared.

    Maneo de error a ni5e de !on%roador0 en donde %odos os errores presen%es en asa!!iones de !on%roador 3Tes%eandoCon%roer4 ser;n ad'inis%rados.

    Para $a!er que nues%ra 5is%a 3Error4 una 5is%a 8uer%e'en%e %ipada de Modeo

    S-s%e'.He#.M5!./andeErrorn8o - en%on!es usar a paa#ra !a5e Mode paraa!!eder a sus 'ie'#ros. Uno de sus 'ie'#ros es e o#e%o E!ep%ion.

    107

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    108/134

    Aprender ASP .NET Paso a Paso en 7 días | 108

    E resu%ado ser

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    109/134

    Aprender ASP .NET Paso a Paso en 7 días | 109

    serE6em#lo de reas en el mundo real

    *os paises es%an di5ididos por es%ados para que e desarroo - a ad'inis%ra!i+n sea8;!i.

    109

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    110/134

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    111/134

    Aprender ASP .NET Paso a Paso en 7 días | 111

    No%a: E Rrea es una a,rupa!i+n +,i!a no 8

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    112/134

    Aprender ASP .NET Paso a Paso en 7 días | 112

    ?us!ar Vis%a por de8e!%o

    ?us!ar 5is%a Personaiada

    112

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    113/134

    Aprender ASP .NET Paso a Paso en 7 días | 113

    TUT: Aprender ASP .NET MVC Paso aPaso en 7 do aor." Sin%ais aor 

    • *a# Y: Mé%odos de a-uda /%' Personaiado." Creando %u propio 'o%or de

    5is%a personaiado.

    • ¿Bue $a- para e %i'o d

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    114/134

    Aprender ASP .NET Paso a Paso en 7 días | 114

    Es%e es un 'undo de peque>os disposi%i5os es de!ir '+5ies. Co'o un desarroadorMVC se espera un ,ran apo-o de a pan%ia MVC de Mi!roso8% para e 'is'o. A$oraas pan%aas de es!ri%orio - pan%aas de '+5ies %ienen una a%a 5aria!i+n en %a'a>o.Si nos ,us%arasM+5ies4.

    Ta'#ién 5a'os a,re,ar un !on%roador a'ado 4ni!io4 en !ua in5o!ar; a a 5is%a3inde4.

    Nota: Puedes 5er en e si,uien%e !+di,o que $e'os !reado un a!%ion resu% !o'oinde. Porque nues%ro no'#re de 5is%a - no'#re de a!!ion son os 'is'os0 noso%rosno ne!esi%a'os pasar e no'#re de a 5is%a den%ro de 3re%urn 5ieF()4.

    114

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    115/134

    Aprender ASP .NET Paso a Paso en 7 días | 115

    Paso 0!: Eso es todo as que 4amos a #robar 

    O es%o es %odo o que ne!esi%a'os $a!er. A$ora 5a'os a ir - pro#ar si e 'odo de5isuaia!i+n MVC $a!e $onor a su pro'esa.

     A$ora si 5as e in,resar e !on%roador - a a!!i+n en e na5e,ador 5er;s !o'o ai'a,en iquierda de a#ao. Si in,resas e 'is'o !on%roador - a!!i+n usando ee'uador de '+5ies android %u 5er;s a pan%aa de a i'a,en dere!$a.

    Nota: Para pro#ar si'ua!i+n para '+5ies en es%e a#ora%orio $e'os usado esi'uador 3pera Mo#ie4. Tu puedes des!ar,ar e e'uador de$%%p:LLFFF.opera.!o'LesLde5eoperL'o#ie"e'ua%or  

    115

    http://www.opera.com/es/developer/mobile-emulatorhttp://www.opera.com/es/developer/mobile-emulatorhttp://www.opera.com/es/developer/mobile-emulator

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    116/134

    Aprender ASP .NET Paso a Paso en 7 días | 116

    Paso 03: *s #ersonali=aci$n & controlPero que si quere'os ';s personaia!i+n - !on%ro.Si e es!ri%orio 'ues%ra 3nde.!s$%'4Si e '+5i 'ues%ra 3nde.'o#ie.!s$%'4Si e '+5i Android 'ues%ra 3nde.Android.!s$%'4

    Tene'os -a i'pe'en%ado as pri'eras dos !ondi!iones. A$ora para a %er!era

    !ondi!i+n ne!esi%a'os reaiar a,unos pasos e%ras. eaa%e son a#sou%a'en%e

    peque>os - 8;!ies pero !on ,ran resu%ado 8ina.Pri'er paso es a,re,ar una pa,ina 'as 3nde.Android.!s$%'4 espe!ia'en%e para

     Android en a !arpe%a Vis%a !o'o se 'ues%ra en a si,uien%e i'a,en.

    E si,uien%e paso e $a!er ';s !a'#ios en e ar!$i5o 3o#a.asa.!s4.a. E pri'er paso es a,re,ar e espa!io de no'#re 3S-s%e'.He#.He#Pa,es4 !o'o se'ues%ra en a si,uien%e 8i,ura.

    #. Se,undo paso es usar a !ase 3Dispa-ModePro5ider4 - a,re,ar una en%rada3Android4 den%ro de a !oe!!i+n 3Modes4 !o'o se 'ues%ra en e !+di,o de a#ao. Esi,uien%e !+di,o #us!a para a !adena 3Android4 - si en!uen%ra es%o !ap%ura -redire!!iona a a p;,ina 3nde.Android.!s$%'4.

    116

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    117/134

    Aprender ASP .NET Paso a Paso en 7 días | 117

    Paso 05: Probar la #ersonali=acion de *o4iles

     A$ora si ee!u%as e si'uador de pera Mo#ie !on Android !o'o un usuario a,en%e!o'o se 'ues%ra en a si,uien%e i'a,en0 5eras a pa,ina Android(nde.Android.!s$%') redire!!ionado.

    "ab !3: Pro4eedor *+C @Auth

    Una de os ';s pro!esos a#urridos para un usuario 8ina es re,is%rase en un si%io. A,unas 5e!es esos ar,os 8or'uarios - !orreos de 5aida!i+n s+o pos%er,a eusuario. En%on!es !+'o $a!er as !osas 8;!ies 'edian%e a 5aida!i+n de os usuarios

    117

  • 8/18/2019 ASP .NET MVC 4 Paso a Paso en 6 días

    118/134