Post on 22-Feb-2018
7/24/2019 Programacion de Aplicaciones en ASP.net
1/161
1
Introduccin a .NET
1. INTRODUCCIN...............................................................................3
2. MICROSOFT .NET FRAMEWORK.........................................................3
2.1. CLR (COMMON LANGUAGE RUNTI ME).......................................3
2.1.1. CLS (Com m o n L a n g u a g e S p e ci f ic a t i o n )..........................4
2.1.2. CTS (Com m o n T y p e S y st e m ).........................................4
2.1.3. CIL (Co m m o n I n t e r m e d i at e L a n g u ag e ).........................4
2.2. BIBLIOTECA DE CLASES .NET FRAMEWORK..............................5
3. QU ES MICROSOFT VISUAL STUDIO................................................7
4. CERTIFICACIONES OFICIALES PARA DESARROLLADORES EN
VISUAL STUDIO................................................................................8
GLOSARIO...........................................................................................11
REFERENCIAS WEB..............................................................................15
BIBLIOGRAFA....................................................................................17
ndice
formacindigital
7/24/2019 Programacion de Aplicaciones en ASP.net
2/161
7/24/2019 Programacion de Aplicaciones en ASP.net
3/161
3
Introduccin a .NET1. INTRODUCCIN
En este tema estudiaremos algunos conceptos bsicos sobre la plataforma .NET, tambin
conocida como .NET Framework. Asimismo, veremos qu es Visual Studio e indicaremos
algunas certificaciones oficiales para desarrolladores.
Esta base terica nos facilitar el entendimiento y contextualizacin de ASP.NET como un
framework de .NET para el desarrollo de aplicaciones web.
2. MICROSOFT .NET FRAMEWORK
Microsoft .NET Framework es un componente integral de Windows que permite el
desarrollo de aplicaciones a travs del uso de un conjunto de herramientas y servicios que
proporciona, los cuales podemos agrupar en dos bloquesprincipales:
El Entorno de Ejecucin Comno Com m o n La n g u a g e Ru n t i m e (CLR) es el ncleo
de .NET Framework. Se encarga de la gestin y ejecucin del cdigo, as como de
proporcionar servicios para facilitar el proceso de desarrollo.
La Biblioteca de clases de .NET Framework. Este conjunto de clases constituye un
API de servicios para utilizar en la programacin de nuestras aplicaciones. Por ejemplo,
las clases para acceder a bases de datos (ADO.NET), para gestionar ficheros XML,
gestin de hilos (threading), para el desarrollo de aplicaciones web (ASP.NET), etc.
Por otra parte, ASP.NET es conjunto de tecnologas de Microsoft .NET Framework para la
creacin de aplicaciones y servicios web.
2.1. CLR (COMMON LANGUAGE RUNT I ME)
El CLR es la base del sistema Microsoft .NET. Este motor hace que sea posible el desarrollo
basado en mltiples lenguajes y la integracin y ejecucin de todos ellos en el entorno .NET.
Esto se realiza gracias al seguimiento de las especificaciones del CLR por parte de los
creadores de lenguajes y herramientas de desarrollo.
7/24/2019 Programacion de Aplicaciones en ASP.net
4/161
4
Introduccin a .NET2.1.1. CLS (Com m o n L a n g u a g e S p e ci f ic a t i o n )
La Especificacin Comn de Lenguajes se conoce como CLS (Common Language
Specification) y consiste en un conjunto de caractersticas comunes que deben cumplir todos
los lenguajes de la plataforma para poder integrarse entre s. Por ejemplo, es posible escribir
una clase en C# y heredar de dicha clase desde Visual Basic, gracias a que el entorno de
ejecucin es comn y el cdigo compilado no pasa directamente a cdigo ejecutable puro,
sino a un cdigo intermedio denominado IL (Intermediate Language).
Por ello, podemos decir que .NET Framework tiene soporte multilenguaje.
2.1.2. CTS (Com m o n T y p e S y st e m )
Estas siglas corresponden a Common Type System o Sistema Comn de Tipos. Es el
mecanismo del CLR que permite definir el modo en que los tipos de datos sern creados y
manipulados por el entorno de ejecucin de .NET Framework. As, todos los lenguajes
pueden trabajar basndose en una serie de especificaciones que hacen posible el intercambio
de informacin y el trabajo con las libreras bsicas de la plataforma .NET.
2.1.3. CIL (Co m m o n I n t e r m e d i at e L a n g u ag e )
CIL es un lenguaje intermedio entre el cdigo fuente y el cdigo mquina en el momento de
la compilacin.
Es un lenguaje parecido al bytecode de Java, hacia el cual cualquier compilador de un
lenguaje integrado en Microsoft .NET (C#, Visual Basic, etc.) deber compilar su cdigo
fuente, ya que es el nico entendible por el CLR, el cual lo interpreta y ejecuta en la
mquina.
Lo que hace posible que todos los lenguajes usados en .NET puedan compilarse a un
lenguaje unificado (IL) es que cumplen con una especificacin comn (CLS) y con un sistema
comn de tipos (CTS).
El cdigo auxiliar generado se compila a continuacin en cdigo nativo y se optimiza para la
arquitectura de hardware concreta en la que se ejecuta, utilizando los servicios de
compilacin JIT (Just In Time) de CLR. En resumen, el JIT es otro elemento de .NET
Framework que se encarga de convertir el cdigo CIL en cdigo de nuestro sistema
operativo.
7/24/2019 Programacion de Aplicaciones en ASP.net
5/161
5
Introduccin a .NETLa siguiente figura muestra un diagrama con el proceso de generacin de lenguaje
intermedio a partir del cdigo fuente:
2.2. BIBLIOTECA DE CLASES .NET FRAMEWORK
La biblioteca de clases es un componente de .NET Framework que incluye clases,
interfaces y tipos de valores que proporcionan acceso a funcionalidades del sistema como:
Representar tipos de datos base y excepciones.
Encapsular estructuras de datos.
Realizar E/S.
Obtener acceso a informacin sobre tipos cargados.
Control y comprobacin de seguridad de .NET Framework.
Proporcionar acceso a datos, interfaz grfica para el usuario (GUI).
Cdigo IL
Cdigo fuente
(C#, VB, C++,...)
Compilador
CLS
CTS
Mquina
Interprete acdigo nativo
7/24/2019 Programacion de Aplicaciones en ASP.net
6/161
6
Introduccin a .NETLa biblioteca de clases es, por tanto, una coleccin orientada a objetos de tipos reutilizables
y empleada para desarrollar aplicaciones nuevas, facilitando as el trabajo, pues reutilizamos
elementos ya creados no teniendo que programarlos desde cero.
Por otra parte, en la biblioteca de clases de .NET Framework encontramos los tipos. Estos
son la base para compilar aplicaciones, componentes y controles de .NET. Dichos tipos
utilizan un esquema sintctico de punto, el cual sirve para representar una jerarqua. Por
ejemplo, en System.IO,donde System es un espacio de nombres superior en la jerarqua e
incluye a IO, mediante este esquema se agrupan los tipos relacionados en los denominados
espacios de nombres o namespaces, que son agrupaciones de elementos relacionados para
evitar ambigedades y hacer ms fcil la bsqueda y referencia a cada uno de ellos.
Los espacios de nombres ms usados son:
ESPACIO DE NOMBRES UTILIDAD DE LOS TIPOS DE DATOS QUE CONTIENE
System
Tipos de uso muy frecuente como: los tipos bsicos, tablas,
excepciones, fechas, nmeros aleatorios, recolector de basura,
entrada/salida en consola, etc.
System.CollectionsColecciones de datos de uso comn como: pilas, colas, listas,
diccionarios, etc.
System.Data
Manipulacin de bases de datos. Forman la denominada arquitectura
ADO.NET.
System.IO Manipulacin de ficheros y otros flujos de datos.
System.Net Realizacin de comunicaciones en red.
System.Reflection Acceso a los metadatos que acompaan a los mdulos de cdigo.
System.Runtime.Remoting Acceso a objetos remotos.
System.Security Acceso a la poltica de seguridad en que se basa el CLR.
System.Threading Manipulacin de hilos.
System.Web.UI.WebControlsCreacin de interfaces de usuario basadas en ventanas para
aplicaciones web.
System.XML Acceso a datos en formato XML.
System.LinqConsultar archivos XML, bases de datos relacionales, objetos .NET
y/u otro tipo de estructura de datos.
7/24/2019 Programacion de Aplicaciones en ASP.net
7/161
7
Introduccin a .NET3. QU ES MICROSOFT VISUAL STUDIO
Microsoft Visual Studio es un entorno de desarrollo integrado, o IDE (Integrated
Development Environment), para sistemas operativos Windows, el cual soporta diferentes
lenguajes de programacin, entre ellos Visual C++, Visual C# y Visual Basic . La definicin
de IDE hace referencia a un programa o aplicacin que ofrece al programador un entorno
donde desarrollar las aplicaciones, que comprende habitualmente un editor de cdigo, un
compilador, un depurador y un constructor de interfaz grfica.
Ejemplo de entorno de desarrollo. Visual Studio 2010.
Adems de Microsoft Visual Studio, existen otros IDE muy conocidos, como Visual Web
Developer y WebMatrix.
Con Visual Studio el desarrollador puede crear aplicaciones de escritorio, aplicaciones de
negocio, formularios web, aplicaciones para Azure (cloud computing), para Windows Phone
7, etc., lo que permite la comunicacin entre diferentes medios y dispositivos.
7/24/2019 Programacion de Aplicaciones en ASP.net
8/161
8
Introduccin a .NETDesde la primera versin de Visual Studio lanzada en 1998 y denominada Visual Studio
6.0, han sido desarrolladas cinco versiones ms: Visual Studio .NET (2002), Visual Studio
.NET (2003), Visual Studio 2005, Visual Studio 2008 y Visual Studio 2010, lanzada
oficialmente el 12 de abril de 2010.
Cada versin ha ido introduciendo nuevas utilidades y frameworks de desarrollo,
incorporndose en la versin actual, el .NET 4.0, herramientas para el desarrollo de
aplicaciones para Windows 7.
Adicionalmente Visual Studio incorpora caractersticas interesantes. As, nos ofrece la
posibilidad de:
Utilizar mltiples monitores.
Acoplar y desacoplar las ventanas en diferentes lugares de la interfaz de trabajo.
Crear aplicaciones para mltiples plataformas de Microsoft (Windows, Azure, Windows
Phone 7 o SharePoint).
Desarrollar aplicativos para pantallas multitctiles.
4. CERTIFICACIONES OFICIALES PARA DESARROLLADORES EN VISUAL STUDIO
Microsoft dispone de un completo catlogo de certificaciones de cada uno de sus productos,
organizadas por niveles. En la tecnologa que nos ocupa, encontramos para la versin de
.NET 4.0 dos niveles de certificaciones profesionales:
MCTS (Microsoft Certified Technology Specialist). Esta certifica a los profesionales
como especialistas en diferentes tecnologas de la plataforma. Para obtener cada una de
estas certificaciones es necesario realizar el correspondiente examen oficial.
MCITP (Microsoft Certified IT Professional). Se trata de certificaciones de alto
nivel. Engloba los certificados MCPD (Microsoft Certified Professional Developer), en los
entornos Windows, Web y Azure. Estas certificaciones requieren como requisito previo
disponer de varias certificaciones MCTS y superar un examen.
7/24/2019 Programacion de Aplicaciones en ASP.net
9/161
9
Introduccin a .NET Visual Studio es un entorno de desarrollo integrado para sistemas
operativos Windows y diseado especialmente para la plataforma .NET.
Un entorno de desarrollo est compuesto por un editor de cdigo, un
compilador, un depurador y un constructor de interfaz grfica.
ASP.NETes un conjunto de tecnologas de Microsoft .NET Framework para la
creacin de aplicaciones y servicios web.
Microsoft dispone de diferentes niveles de certificacin, segn la tecnologa
y nivel de especializacin.
NET Framework es un componente integral de Windows que permite el
desarrollo de aplicaciones a travs del uso de un conjunto de herramientas y
servicios que proporciona.
El CLR es la base del sistema Microsoft .NET. Este motor hace que sea
posible el desarrollo basado en mltiples lenguajes (tienen que cumplir una
especificacin comn, CLS), y la integracin y ejecucin de todos ellos en el
entorno .NET -esta integracin es posible gracias al sistema comn de tipos,
CTS-.
Las bibliotecas de claseson un componente de .NET Framework, las cuales
forman un espacio de nombres organizados jerrquicamente.
rec
uerde
7/24/2019 Programacion de Aplicaciones en ASP.net
10/161
7/24/2019 Programacion de Aplicaciones en ASP.net
11/161
11
Introduccin a .NETA
API (Application Programming Interface - Interfaz de programacin de
aplicaciones). Es el conjunto de funciones y procedimientos que ofrece una
biblioteca especfica para la comunicacin entre componentes software.
ASP (Active Server Pages). Pginas activas del servidor Internet Information
Server. ASP es la versin anterior a la tecnologa ASP.NET de Microsoft.
C
CLR (Common Language Runtime). Motor de ejecucin comn incluido en el
paquete Microsoft .NET.
CSS (Cascading Style Sheets - Hojas de Estilo en Cascada). Se utilizan para dar
formato a documentos HTML o XML, separando los datos del formato de
presentacin.
CTS (Common Type System). Especificacin de tipos bsicos para la integracin
de distintos lenguajes de programacin en Microsoft .NET (como C#, Visual Basic
.NET, JScript, .NET).
C#. Lenguaje creado por Microsoft para su plataforma .NET. Es parecido a C++ y
Java.
D
DHTML (Dinamic HTML - HTML dinmico). Se forma de una conjuncin de HTML,
hojas de estilo en cascada (CSS) y lenguajes de Script como JavaScript o
VBScript.
DLL(Dynamic Link Library - Bibliotecas de Enlace Dinmico). Es un archivo que
contiene funciones que se pueden llamar desde aplicaciones u otras DLL. Los
desarrolladores utilizan las DLL para poder reciclar el cdigo y aislar las
diferentes tareas. Las DLL no pueden ejecutarse directamente, es necesario
llamarlas desde un cdigo externo. Las DLL de Windows permiten que las
aplicaciones puedan operar en el entorno de Windows.
F
Framework(Marco de trabajo). Es un esquema o estructura que puede incluir
soporte de programas, bibliotecas y un lenguaje interpretado para la
organizacin, desarrollo y/o la implementacin de una aplicacin.
gl
osario
7/24/2019 Programacion de Aplicaciones en ASP.net
12/161
12
Introduccin a .NETH
HTML (HiperText Markup Language). Lenguaje para la creacin de pginas web
relacionadas entre s por hipertexto.
HTTP (HiperText Transport Protocol). Protocolo de comunicaciones utilizado por
los navegadores de Internet para el acceso a recursos web, como ficheros de
imgenes, vdeo, pginas HTML, pginas ASP, pginas ASPX, etc.
I
IIS (Internet Information Server). Es el servidor web de Microsoft. ASP.NET
funciona sobre l.
J
Java. Lenguaje de programacin orientado a objetos desarrollado por Sun
Microsystems.
JavaScript. Lenguaje de Script desarrollado por Netscape y utilizado en los
navegadores de Internet.
M
MDAC (Microsoft Data Access Components). Componentes Microsoft de acceso a
datos.
MFC (Microsoft Fundation Classes). Librera basada en jerarqua de clases.
Bsicamente encapsula el API de Windows en una forma orientada a objetos.
MSIL. Lenguaje intermedio para la ejecucin de aplicaciones en Microsoft .NET.
P
PHP (Personal Home Page - Procesador de hipertexto). Las pginas PHP
presentan una tcnica similar a las pginas ASP de Microsoft, es decir, las
pginas HTML incluyen el cdigo PHP embebido en ellas y al ejecutarlas, se
genera cdigo HTML dinmicamente.
Proceso de negocio. Es un conjunto de tareas relacionadas lgicamente, que
toman uno o ms tipos de entradas (inputs), llevadas a cabo para lograr un
resultado de negocio definido (outputs). Tambin puede verse como un conjunto
de actividades que colectivamente consiguen alcanzar un objetivo de negocio.
glosario
7/24/2019 Programacion de Aplicaciones en ASP.net
13/161
13
Introduccin a .NETEs, por ejemplo, el proceso a travs del cual una organizacin ofrece sus
servicios a sus clientes.
R
RAD(Rapid Application Development - Desarrollo rpido de aplicaciones). Es un
proceso de desarrollo de software desarrollado inicialmente en 1980. Tiende a
englobar la usabilidad, la utilidad y la rapidez de ejecucin.
RIA (Rich Internet Applications - aplicaciones de Internet enriquecidas). Son un
nuevo tipo de aplicaciones con ms ventajas que las tradicionales aplicaciones
web. Esta surge como una combinacin de las ventajas que ofrecen las
aplicaciones web y las aplicaciones tradicionales.
S
Script.Es un guion o conjunto de instrucciones. Permiten la automatizacin de
tareas creando pequeas utilidades.
SDK(Software Development Kit - kit de desarrollo de software). Es un conjunto
de herramientas de desarrollo que le permite a un programador crear software.
V
VBScript (Visual Basic Script). Lenguaje de Script desarrollado por Microsoft.
X
XML (eXtensible Markup Language - lenguaje de marcado extensible). Se utiliza
para la construccin de documentos de datos estructurados multi-propsito.
glosario
7/24/2019 Programacion de Aplicaciones en ASP.net
14/161
7/24/2019 Programacion de Aplicaciones en ASP.net
15/161
15
Introduccin a .NETMSDN library: referencia completa a
las caractersticas de Visual Studio
http://msdn.microsoft.com/es-
es/library/bb386063.aspx
Web de Microsoft donde se puede
obtener ms informacin de Visual
Studio, descargar versiones de prueba
o comprar.
http://www.microsoft.com/spain/visu
alstudio/products
Ms informacin sobre las
certificaciones profesionales.
http://www.microsoft.com/learning/e
n/us/certification/cert-vstudio.aspx
Informacin y recursos para crear
pginas web ASP.NET
http://msdn.microsoft.com/es-
es/asp.net
Referencia completa de todas las
directivas en ASP.NET.
http://msdn.microsoft.com/es-
es/library/xz702w3e.aspx
Blog sobre ASP.NET http://www.asp.net/es/aprender/
Pgina con recursos formativos,
ejemplo, etc. de ASP.NET
http://www.elguille.info/NET/ASPNET
/Default.aspx
The Official Microsoft ASP.NET Site http://www.asp.net/
Informacin general sobre ASP.NET
http://msdn.microsoft.com/es-
es/library/4w3ex9c2.aspx#VisualWe
bDeveloper
Herramientas imprescindibles para un
desarrollador de .NET
http://www.genbetadev.com/herrami
entas/herramientas-imprescindibles-
para-un-desarrollador-de-net
referencia
sweb
7/24/2019 Programacion de Aplicaciones en ASP.net
16/161
7/24/2019 Programacion de Aplicaciones en ASP.net
17/161
17
Introduccin a .NETGriffiths, Ian; Adams, Matthew; Liberty, Jesse. Programming C# 4.0. 6thEdition.
OReilly. 2010.
MacDonald, Matthew. Beginning ASP.NET 4 in CSharp 2010. Apress. Washington.
2010.
Mackey, Alex. Introducing .NET 4.0 with Visual Studio 2010. Apress. 2010.
Mueller, John Paul. Start Here! Learn Microsoft Visual C# 2010. OReilly Media,
Inc. 2011.
Northrup, Tony; Snell, Mike. Exam 70-515: Web Applications Development with
Microsoft .NET Framework 4.Microsoft Press. 2010.
Shepherd, George. Microsoft ASP.NET 4 Step by Step. Microsoft Press. 2010.
Stephen, Rob. Start Here! Fundamentals of Microsoft .NET Programming. OReilly
Media, Inc. 2011.
biblio
grafa
7/24/2019 Programacion de Aplicaciones en ASP.net
18/161
7/24/2019 Programacion de Aplicaciones en ASP.net
19/161
1
Introduccin al desarrollo
de aplicaciones web
1. INTRODUCCIN...............................................................................3
2. ASP.NET...........................................................................................33. JAVA (JSP, SERVLETS).....................................................................4
4. PHP..................................................................................................4
5. DHTML.............................................................................................5
GLOSARIO.............................................................................................7
REFERENCIAS WEB..............................................................................11
BIBLIOGRAFA....................................................................................13
ndice
formacindigital
7/24/2019 Programacion de Aplicaciones en ASP.net
20/161
7/24/2019 Programacion de Aplicaciones en ASP.net
21/161
3
Introduccin al desarrollo
de aplicaciones web1. INTRODUCCIN
Al principio, el desarrollo de pginas web se limitaba al uso del lenguaje de marcado HTML
(lenguaje de marcado de hipertexto), un lenguaje sencillo, sin capas ni estilos, con el que se
obtenan pginas estticas cuya labor nicamente era suministrar informacin personal del
autor o de la empresa (de forma textual o a travs de imgenes), sin proporcionar ninguna
interaccin con el usuario.
Internet est basado en una serie de estndares, protocolos y lenguajes que sirven para que
los diferentes servidores y clientes se comuniquen entre s. Los protocolos bsicos de
Internet son principalmente el protocolo TCP/IP y HTTP.
En los prximos apartados, presentaremos una serie de tecnologas de desarrollo web
utilizadas en la actualidad.
2. ASP.NET
ASP.NET sucedi aASP (Active Server Page), que es la tecnologa que desarroll Microsoft
para la creacin de pginas dinmicas del lado del servidor. Las pginas ASP tienen
insertados lenguajes Scripts, como VBScript o JavaScript, junto al cdigo HTML.
ASP.NET se construy sobre el Common Language Runtime(CLR), esto hace que podamos
escribir cdigo ASP.NET usando cualquier lenguaje admitido por el .NET Framework (C#,
Visual Basic .NET, Delphi, C++, F#, J#, Perl, Python...). Estos lenguajes nos permiten
desarrollar aplicaciones ASP.NET que se benefician de la seguridad de tipos, herencia, etc.
Nosotros emplearemos C# durante este curso.
Con Visual Studio, podemos crear diferentes tipos de proyectos ASP.NET, que incluyen sitios
web, aplicaciones web, servicios web y controles de servidor AJAX.
Hay una diferencia entre los proyectos de sitios web y los proyectos de aplicaciones web, ya
que, algunas caractersticas solo funcionan con proyectos de aplicaciones web, como MVC y
ciertas herramientas para automatizar la implementacin web. No obstante, otras
caractersticas, como los datos dinmicos, funcionan tanto con los proyectos de sitios web
como con los proyectos de aplicaciones web.
7/24/2019 Programacion de Aplicaciones en ASP.net
22/161
4
Introduccin al desarrollo
de aplicaciones webPor ltimo, ASP.NET solo funciona sobre el servidor de Microsoft IIS. Esto no ocurre con
otros lenguajes del lado de servidor, como PHP, Perl o Python, ejecutables sobre ms de un
servidor como Apache, Hiawatha o Nginx.
3. JAVA (JSP, SERVLETS)
Java es un lenguaje de programacin y la primera plataforma informtica creada por Sun
Microsystems en 1995. Es la tecnologa subyacente que permite el uso de programas como
herramientas, juegos y aplicaciones de negocios. Java se ejecuta en ms de 850 millones de
ordenadores personales de todo el mundo y en miles de millones de dispositivos, como
dispositivos mviles y aparatos de televisin.
La tecnologa Java tambin es usada para la creacin de pginas web con programacin en el
lado del servidor: JSP y Servelts.
Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web de
mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las pginas
JSP estn compuestas de cdigo HTML/XML mezclado con etiquetas especiales para
programar Scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con
nuestro editor HTML/XML habitual.
Por otra parte, se podra definir un servletcomo un programa escrito en Java que se ejecuta
en el marco de un servicio de red (un servidor web, por ejemplo), y que recibe y responde a
las peticiones de uno o ms clientes.
Los servlets y pginas JSP, al estar directamente basado en Java, presenta todas las
ventajas de este lenguaje, como la orientacin a objetos o la disponibilidad de todas las
libreras adicionales de Java (generacin de imgenes, comunicaciones, seguridad,
encriptacin, etc.).
4. PHP
PHP corresponde a las iniciales de Hypertext Pre-processor. Este lenguaje de programacin
tiene una sintaxis similar a los lenguajes C y Perl, y se interpreta por un servidor web como,
por ejemplo, Apache.
PHP presenta una tcnica similar a las pginas ASP.NET, es decir, las pginas HTML incluyen
cdigo PHP embebido en ellas y, al ejecutarlas, se genera cdigo HTML dinmicamente.
7/24/2019 Programacion de Aplicaciones en ASP.net
23/161
5
Introduccin al desarrollo
de aplicaciones webAunque PHP no es un lenguaje orientado a objetos, est preparado para aprovechar una
serie de aspectos de las clases que son recomendables en el desarrollo de aplicaciones.
PHP dispone de un gran nmero de libreras de funciones para realizar operaciones
avanzadas como acceso a bases de datos, correo electrnico, transferencia de ficheros,
comunicaciones, etc.
Por ltimo, las pginas PHP tambin se han extendido mucho en los ltimos aos (son las
pginas web que encontramos con extensin .php o .phtml).
5. DHTML
Sus siglas significan Dynamic HTML(HTML dinmico). Se forma a partir de la conjuncin de
HTML, hojas de estilo en cascada (CSS), lenguajes de script como JavaScript o VBScript, y la
jerarqua de objetos DOM (Document Object Model), que es el conjunto de objetos
predefinidos que definen a todos los objetos de una pgina y del navegador con el que se
est accediendo a dicha pgina, de tal forma que se puede acceder a sus propiedades y
funciones.
Los lenguajes de Script se ejecutan en la mquina cliente (en el navegador del usuario que
solicita una pgina). Es por ello por lo que son diferentes a otras tecnologas, en las cuales el
cdigo ha de ejecutarse en el servidor quien construye y enva al cliente la pgina web.
7/24/2019 Programacion de Aplicaciones en ASP.net
24/161
6
Introduccin al desarrollo
de aplicaciones web En los ltimos aos Internet ha evolucionado considerablemente y las
aplicaciones web son cada vez ms complejas en trminos de contenido,
estructura, comportamiento e interfaz. Adems, la exigencia de una
creciente competitividad del mercado requiere de una puesta en marcha muy
rpida de estas aplicaciones. A pesar de ello, todava en muchas ocasiones
las aplicaciones web se elaboran de una forma artesanal, reduciendo las
posibilidades de xito en su desarrollo y posterior mantenimiento.
Actualmente se utilizan tecnologascomo:
DHTML (Dynamic HTML - HTML dinmico). Se forma a partir de la
conjuncin de HTML, hojas de estilo en cascada (CSS), lenguajes de
Script como JavaScript o VBScript, y la jerarqua de objetos DOM.
JSPy Servlets.La tecnologa Java tambin es usada para la creacin de
pginas web con programacin en el lado del servidor.
PHP. Presenta una tcnica donde las pginas HTML incluyen cdigo PHP
embebido en ellas y, al ejecutarlas, se genera cdigo HTML
dinmicamente.
ASP.NET (tecnologas que se ejecutan en el servidor). Presenta una
tcnica muy parecida a PHP, inserta cdigo dentro del HTML para
generar ms cdigo HTML. Podemos usar cualquier lenguaje admitido
por el .NET Framework (C#, Visual Basic .NET, Delphi, C++, F#, J#,
Perl, Python...) para desarrollar aplicaciones ASP.NET. Nosotros
emplearemos C# durante este curso.
rec
uerde
7/24/2019 Programacion de Aplicaciones en ASP.net
25/161
7
Introduccin al desarrollo
de aplicaciones webA
API (Application Programming Interface - Interfaz de programacin de
aplicaciones). Es el conjunto de funciones y procedimientos que ofrece una
biblioteca especfica para la comunicacin entre componentes software.
ASP (Active Server Pages). Pginas activas del servidor Internet Information
Server. ASP es la versin anterior a la tecnologa ASP.NET de Microsoft.
C
CLR (Common Language Runtime). Motor de ejecucin comn incluido en el
paquete Microsoft .NET.
CSS (Cascading Style Sheets - Hojas de Estilo en Cascada). Se utilizan para dar
formato a documentos HTML o XML, separando los datos del formato de
presentacin.
CTS (Common Type System). Especificacin de tipos bsicos para la integracin
de distintos lenguajes de programacin en Microsoft .NET (como C#, Visual Basic
.NET, JScript, .NET).
C#. Lenguaje creado por Microsoft para su plataforma .NET. Es parecido a C++ y
Java.
D
DHTML (Dinamic HTML - HTML dinmico). Se forma de una conjuncin de HTML,
hojas de estilo en cascada (CSS) y lenguajes de Script como JavaScript o
VBScript.
DLL(Dynamic Link Library - Bibliotecas de Enlace Dinmico). Es un archivo que
contiene funciones que se pueden llamar desde aplicaciones u otras DLL. Los
desarrolladores utilizan las DLL para poder reciclar el cdigo y aislar las
diferentes tareas. Las DLL no pueden ejecutarse directamente, es necesario
llamarlas desde un cdigo externo. Las DLL de Windows permiten que las
aplicaciones puedan operar en el entorno de Windows.
F
Framework(Marco de trabajo). Es un esquema o estructura que puede incluir
soporte de programas, bibliotecas y un lenguaje interpretado para la
organizacin, desarrollo y/o la implementacin de una aplicacin.
glosario
7/24/2019 Programacion de Aplicaciones en ASP.net
26/161
8
Introduccin al desarrollo
de aplicaciones webH
HTML (HiperText Markup Language). Lenguaje para la creacin de pginas web
relacionadas entre s por hipertexto.
HTTP (HiperText Transport Protocol). Protocolo de comunicaciones utilizado por
los navegadores de Internet para el acceso a recursos web, como ficheros de
imgenes, vdeo, pginas HTML, pginas ASP, pginas ASPX, etc.
I
IIS (Internet Information Server). Es el servidor web de Microsoft. ASP.NET
funciona sobre l.
J
Java. Lenguaje de programacin orientado a objetos desarrollado por Sun
Microsystems.
JavaScript. Lenguaje de Script desarrollado por Netscape y utilizado en los
navegadores de Internet.
M
MDAC (Microsoft Data Access Components). Componentes Microsoft de acceso a
datos.
MFC (Microsoft Fundation Classes). Librera basada en jerarqua de clases.
Bsicamente encapsula el API de Windows en una forma orientada a objetos.
MSIL. Lenguaje intermedio para la ejecucin de aplicaciones en Microsoft .NET.
P
PHP (Personal Home Page - Procesador de hipertexto). Las pginas PHP
presentan una tcnica similar a las pginas ASP de Microsoft, es decir, las
pginas HTML incluyen el cdigo PHP embebido en ellas y al ejecutarlas, se
genera cdigo HTML dinmicamente.
Proceso de negocio. Es un conjunto de tareas relacionadas lgicamente, que
toman uno o ms tipos de entradas (inputs), llevadas a cabo para lograr un
resultado de negocio definido (outputs). Tambin puede verse como un conjunto
de actividades que colectivamente consiguen alcanzar un objetivo de negocio.
gl
osario
7/24/2019 Programacion de Aplicaciones en ASP.net
27/161
9
Introduccin al desarrollo
de aplicaciones webEs, por ejemplo, el proceso a travs del cual una organizacin ofrece sus
servicios a sus clientes.
R
RAD(Rapid Application Development - Desarrollo rpido de aplicaciones). Es un
proceso de desarrollo de software desarrollado inicialmente en 1980. Tiende a
englobar la usabilidad, la utilidad y la rapidez de ejecucin.
RIA (Rich Internet Applications - aplicaciones de Internet enriquecidas). Son un
nuevo tipo de aplicaciones con ms ventajas que las tradicionales aplicaciones
web. Esta surge como una combinacin de las ventajas que ofrecen las
aplicaciones web y las aplicaciones tradicionales.
S
Script.Es un guion o conjunto de instrucciones. Permiten la automatizacin de
tareas creando pequeas utilidades.
SDK(Software Development Kit - kit de desarrollo de software). Es un conjunto
de herramientas de desarrollo que le permite a un programador crear software.
V
VBScript (Visual Basic Script). Lenguaje de Script desarrollado por Microsoft.
X
XML (eXtensible Markup Language - lenguaje de marcado extensible). Se utiliza
para la construccin de documentos de datos estructurados multi-propsito.
gl
osario
7/24/2019 Programacion de Aplicaciones en ASP.net
28/161
7/24/2019 Programacion de Aplicaciones en ASP.net
29/161
11
Introduccin al desarrollo
de aplicaciones webDetallada referencia a ASP.NET 4 en
las pginas web de MSDN
http://msdn.microsoft.com/es-
es/library/4w3ex9c2.aspx
Informacin y recursos para crear
pginas web ASP.NET
http://msdn.microsoft.com/es-
es/asp.net
Referencia completa de todas las
directivas en ASP.NET.
http://msdn.microsoft.com/es-
es/library/xz702w3e.aspx
Blog sobre ASP.NET http://www.asp.net/es/aprender/
Pgina con recursos formativos,
ejemplo, etc. de ASP.NET
http://www.elguille.info/NET/ASPNET
/Default.aspx
The Official Microsoft ASP.NET Site http://www.asp.net/
Informacin general sobre ASP.NET
http://msdn.microsoft.com/es-
es/library/4w3ex9c2.aspx#VisualWe
bDeveloper
Herramientas imprescindibles para un
desarrollador de .NET
http://www.genbetadev.com/herrami
entas/herramientas-imprescindibles-
para-un-desarrollador-de-net
referencia
sweb
7/24/2019 Programacion de Aplicaciones en ASP.net
30/161
7/24/2019 Programacion de Aplicaciones en ASP.net
31/161
13
Introduccin al desarrollo
de aplicaciones webGriffiths, Ian; Adams, Matthew; Liberty, Jesse. Programming C# 4.0. 6thEdition.
OReilly. 2010.
MacDonald, Matthew. Beginning ASP.NET 4 in CSharp 2010. Apress. Washington.
2010.
Mackey, Alex. Introducing .NET 4.0 with Visual Studio 2010. Apress. 2010.
Mueller, John Paul. Start Here! Learn Microsoft Visual C# 2010. OReilly Media,
Inc. 2011.
Northrup, Tony; Snell, Mike. Exam 70-515: Web Applications Development with
Microsoft .NET Framework 4.Microsoft Press. 2010.
Shepherd, George. Microsoft ASP.NET 4 Step by Step. Microsoft Press. 2010.
Stephen, Rob. Start Here! Fundamentals of Microsoft .NET Programming. OReilly
Media, Inc. 2011.
biblio
grafa
7/24/2019 Programacion de Aplicaciones en ASP.net
32/161
7/24/2019 Programacion de Aplicaciones en ASP.net
33/161
1
Conceptos de la programacin
orientada a objetos
1. INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS
(POO)..............................................................................................32. OBJETOS Y CLASES...........................................................................3
3. CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A
OBJETOS (POO)................................................................................4
3.1. ENCAPSULACIN.....................................................................4
3.2. ABSTRACCIN.........................................................................5
3.3. HERENCIA................................................................................6
3.4. POLIMORFISMO.......................................................................7
4. MENSAJES Y MTODOS. SOBRECARGA..............................................7
4.1. MENSAJES................................................................................74.2. MTODOS.................................................................................8
4.3. SOBRECARGA...........................................................................8
5. MODELO DE OBJETOS Y RELACIONES ENTRE CLASES........................9
6. VENTAJAS Y DESVENTAJAS DE LA POO...........................................10
GLOSARIO...........................................................................................13
REFERENCIAS WEB..............................................................................17
BIBLIOGRAFA....................................................................................19
ndice
formacindigital
7/24/2019 Programacion de Aplicaciones en ASP.net
34/161
7/24/2019 Programacion de Aplicaciones en ASP.net
35/161
3
Conceptos de la programacin
orientada a objetos1. INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS (POO)
La orientacin a objetoses un paradigma utilizado en el desarrollo software que cambia la
forma de programar, ya que no tiene parecido a la programacin estructurada.
Dicho paradigma augura mejoras en la forma de diseo, desarrollo y mantenimiento del
software ofreciendo una solucin a largo plazo a los problemas que han existido desde los
inicios del desarrollo de software: falta de portabilidad del cdigo, reusabilidad, cdigo que
es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas.
En este tema vamos a tratar aspectos genricos de la Programacin Orientada a Objetos
(POO), necesarios para poder utilizar correctamente el lenguaje en el que vamos a
programar nuestras pginas ASP.NET, el lenguaje C#.
2. OBJETOS Y CLASES
El objeto es el concepto principal sobre el cual se fundamenta la tecnologa orientada a
objetos. Un objeto puede ser visto como:
Una entidad que posee un conjunto de propiedades o atributos y que es capaz de
realizar una serie de acciones.
Una representacin o modelizacin de un objeto del mundo real.
Ejemplo
Podemos tener un objeto bicicleta que represente a una bicicleta dentro de nuestra realidad, o
bien un objeto factura, automvil o persona.
Los objetos son instancias particulares de las entidades abstractas llamadas clases, en
donde se definen las caractersticas comunes a dichos objetos. Se puede decir que una clase
es como una plantilla, molde o prototipo en el que se definen los atributos (variables) y las
acciones (mtodos) comunes para todos los objetos que se crean a partir de ella. Mediante
las clases podremos crear (instanciar) objetos de un mismo tipo, que se diferenciarn unos
de otros mediante su estado, es decir, el valor de sus atributos.
7/24/2019 Programacion de Aplicaciones en ASP.net
36/161
4
Conceptos de la programacin
orientada a objetosEjemplo
Del objeto automvil podemos mencionar como atributos: el modelo, la marca, el color, el nmero de
matrcula, nmero de bastidor, entre otros. Algunas acciones que es capaz de realizar un automvil
son: frenar, acelerar y cambiar la velocidad. Este objeto automvil es una instancia particular de la
clase automvil.
Los parmetros o variables que definen el estado de un objeto se denominan atributos o
variables miembro, y las acciones que pueden realizar los objetos se denominan
mtodoso funciones miembro.
Si lo comparamos con la programacin estructurada, podramos hacer la siguiente
aproximacin: los atributos, propiedades o variables miembro de la POO seran las variables;
los mtodos o funciones miembro seran los procedimientos y funciones. La diferencia est
en que las propiedades y los mtodos se heredan de unas clases a otras. De esta manera,
las propiedades de un objetopueden ser diferentes:
Propiedades propias. Estn declaradas en la clase a la que pertenece el objeto.
Propiedades heredadas. Estn definidas en una clase distinta a la del objeto,
antepasado de este ( padre , abuelo, etc.).
3. CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS (POO)
En este apartado estudiamos las caractersticas asociadas a la programacin orientada a
objetos, las cuales son:
Encapsulacin: ocultar la implementacin interna.
Abstraccin: ignorar la implementacin interna.
Herencia: mecanismo de reutilizacin entre clases.
Polimorfismo: igual mensaje a objetos diferentes produce respuestas diferentes.
3.1. ENCAPSULACIN
La encapsulacines la tcnica de ocultar la implementacin interna de un objeto, es decir,
cmo est construido y de qu se compone. Con la encapsulacin se consigue, por tanto,
que los atributos de un objeto estn ocultos al resto de los objetos, de tal forma que no se
pueda acceder directamente para modificar su estado o consultarlo.
7/24/2019 Programacion de Aplicaciones en ASP.net
37/161
5
Conceptos de la programacin
orientada a objetosPara acceder a los atributos de un objeto debemos utilizar los mtodos denominados get y
set.
La tcnica habitual es que un objeto ofrezca una parte pblica utilizada por otros objetos
para interactuar entre s, pero tambin contenga una parte oculta para encapsular los
detalles de implementacin del objeto.
Como los atributos y la implementacin de cada objeto queda oculta a los dems objetos que
interaccionan en el programa, se favorece la proteccin de los datos y la localizacin de
errores en los programas (ya que cada objeto est altamente especializado y solo se encarga
de su tarea). Esto consigue adems una mayor modularidad y facilita el diseo en equipo de
programas y la reutilizacin de clases (componentes), ya que podemos escribir cdigo de
manera independiente de cmo se encuentren construidos los diferentes objetos que vamos
a utilizar. As, ocultando los detalles de implementacin, podremos realizar cambios en el
cdigo interno de los objetos sin que ello afecte a otros objetos que los utilicen o dependan
de ellos.
3.2. ABSTRACCIN
La abstraccines la capacidad de ignorar los aspectos de implementacin de los objetos en
los pasos iniciales, con lo que solo necesitamos conocer qu es lo que hace un objeto y no
cmo lo hace. Esta propiedad es utilizada para definir un objeto y establecer las relaciones
de este con otros objetos.
De forma grfica, podemos representar un objeto como dos circunferencias: una interna que
contiene todos los detalles de implementacin (variables y mtodos privados) y que
permanece oculta al resto de objetos, y otra circunferencia concntrica externa que
representa lo que el objeto muestra al mundo exterior, la interfaz pblica que permite
interactuar con l.
Fuente: elaboracin propia
Como conclusin, podemos decir que no es necesario entender la implementacin interna de
un objeto para poder utilizarlo.
Mtodos pblicos
(interfaz del objeto)Atributos y mtodos privados
(encapsulados)
7/24/2019 Programacion de Aplicaciones en ASP.net
38/161
6
Conceptos de la programacin
orientada a objetos3.3. HERENCIA
La herenciaes el mecanismo mediante el cual podemos reutilizar clases ya definidas. As,
una vez definida una clase, podemos usarla como base para generar clases ms complicadas
o especializadas, es decir, los mtodos y atributos de una clase pueden transmitirse a las
clases que descienden de ella.
Como la clase hija puede aadir atributos, mtodos y redefinir o sobrescribir los mtodos de
la clase padre, podemos ver la herencia como una sucesiva especializacin de las clases. La
clase de la que se hereda se denomina clase padreo superclase, y la clase que hereda se
denomina clase hijao subclase. Una sencilla regla para verificar que la herencia entre dos
clases es correcta es hacernos la pregunta: es un tipo de...?.
Ejemplo
Siguiendo el ejemplo de los vehculos, los todoterrenos son una clase hija de la superclase vehculo a
motor e incorporan especializaciones, como puede ser la traccin a las cuatro ruedas.
Por otra parte, las subclases tambin pueden sobrescribir los mtodos de la superclase para
proporcionar un comportamiento especial.
Ejemplo
La clase automvil puede contener un mtodo ObtenerNmeroDeMarchas() que siempre devuelva 5,
mientras que la clase frmula 1, que puede tener hasta 7 marchas, sobrescribira este mtodo para
devolver 7 en lugar de 5.
Respecto a la herencia, no hay lmite de nivel, lo cual da lugar a una jerarqua de clases.
Adems, La herenciapuede ser simple, si la clase hija hereda de una nica clase padre, o
mltiple, si lo hace de varias clases.
Nota
El lenguaje que usaremos en la programacin de las pginas ASP.NET de este curso es C#, que solo
soporta herencia simple.
Por ltimo, tambin podemos definir clases abstractas, que son clases que definen
comportamientos genricos y en las que algunos o todos sus mtodos no han sido
implementados (mtodos abstractos), tan solo declarados. El comportamiento de estos
mtodos es totalmente libre para las subclases que hereden de esta, las cuales debern
implementarlos para poder ser instanciadas en objetos.
7/24/2019 Programacion de Aplicaciones en ASP.net
39/161
7
Conceptos de la programacin
orientada a objetos3.4. POLIMORFISMO
El polimorfismoes otra ms de las caractersticas propias de la POO. Expresa la posibilidad
de que el mismo mensaje, enviado a objetos diferentes, ejecute mtodos distintos. Por lo
tanto, es posible definir operaciones o mtodos con el mismo nombre dentro de clases
distintas, donde cada operacin tendr una implementacin propia para cada clase. Esto nos
permite crear una interfaz comn para una serie de clases que tengan algo en comn.
Ejemplo
Supongamos que tenemos en nuestra aplicacin, una clase Enteros para modelar un nmero entero, y
una clase Matrices, para modelar una matriz matemtica. Ambas clases deben tener un mtodo para
sumar dos objetos, ya sean enteros o matrices. Podemos definir un mtodo suma() para la clase
Enteros y otro mtodo suma()para la clase Matrices, de esta forma ambas clases comparten el mismo
nombre para la operacin pero su implementacin es distinta en cada clase.
4. MENSAJES Y MTODOS. SOBRECARGA
Ya conocemos los fundamentos de la programacin orientada a objetos, los conceptos de
clases, objetos y sus caractersticas fundamentales. A continuacin, estudiaremos en este
apartado la forma de relacionarse los objetos mediante mensajes y mtodos, as como la
tcnica de sobrecarga de mtodos.
4.1. MENSAJES
Los mensajesson el mecanismo mediante el cual dos objetos pueden interactuar, es decir,
comunicarse entre s. Un objeto tiene sentido si aparece como un componente de un
programa mayor o de una aplicacin que contiene muchos otros objetos, los cuales
interactan entre s y es, a travs de esta interaccin, como se consigue una funcionalidad
mayor.
Los objetos interactan y se comunican mediante el envo de mensajes. As, cuando un
objeto A quiere que otro objeto B realice una accin, el objeto A enva un mensaje al
objeto B. El mtodo de B que recibe el mensaje de A es denominado mtodo de la
interfaz de B.
En resumen, un mensaje enviado a un objeto representa la invocacin de un determinado
mtodo sobre dicho objeto, es decir, la ejecucin de una operacin sobre el objeto, que
puede ser conocer o, incluso, modificar el estado del objeto destino.
7/24/2019 Programacion de Aplicaciones en ASP.net
40/161
8
Conceptos de la programacin
orientada a objetosPor tanto, para enviar un mensaje necesitamos:
El objeto al que vamos a enviar el mensaje.
El nombre del mtodo (accin o comportamiento que queremos que realice).
Los parmetros necesarios para el mtodo en cuestin.
4.2. MTODOS
Las acciones de los mensajes a los que un objeto puede responder representan su
comportamiento, es decir, son los mtodosque dicho objeto puede realizar. Por tanto, para
que dos objetos puedan interactuar,, es necesario un mensaje que debe especificar:
El objeto al que vamos a enviar el mensaje.
El nombre del mtodo (accin o comportamiento que queremos que realice).
Los parmetros necesarios para el mtodo en cuestin.
Los objetos disponen de dos tipos de mtodos, mtodos de uso interno (ocultos o privados)
y mtodos pblicos, que constituyen la interfaz del objeto con el resto de objetos con
quienes puede interaccionar. Por otra parte, los mtodos consultan o modifican el estado de
un objeto. Son funciones dentro de un objeto y, como hemos visto, pueden retornar un valor
(informacin sobre el estado del objeto), o realizar una accin sobre el estado del mismo.
4.3. SOBRECARGA
Se trata de otra de las tcnicas usadas en la POO que hace referencia a la posibilidad de
tener en una misma clase mtodos con el mismo nombre, pero que difieren en el tipo y/o
nmero de los parmetros que reciben.
Ejemplo
Podemos tener en la clase Matriz dos mtodos:
Mtodo sumar(e, m),que recibira un entero para sumar a la matriz.
Mtodo sumar(m, m), que podra recibir otro objeto matriz.
El primer mtodo implementa la suma matemtica entre un entero y una matriz, y el segundo, la
suma de matrices.
Este ejemplo es una sobrecarga del mtodo sumar, pues aunque tiene igual nmero de parmetros,
difieren en el tipo y, por tanto, su implementacin ser diferente.
7/24/2019 Programacion de Aplicaciones en ASP.net
41/161
9
Conceptos de la programacin
orientada a objetos5. MODELO DE OBJETOS Y RELACIONES ENTRE CLASES
Una vez definido e identificado el problema que deseamos solucionar en nuestra aplicacin,
debemos realizar una representacin lgica de los objetos que forman parte del problema en
el mundo real para utilizarlos en nuestro programa y deben definirse las relaciones
existentes entre dichos objetos. De esta forma, se disea un modelo para que nuestra
aplicacin funcione adecuadamente, donde debemos aplicar los principios de la POO que
hemos aprendido en los apartados anteriores: abstraccin, encapsulacin, herencia y
polimorfismo.
Cada clase en una aplicacin estar especializada en una funcin o tarea especfica. No
obstante, para ofrecer una mayor funcionalidad y realizar tareas ms complejas, es
necesario que exista una relacinentre distintas clases, es decir, una forma de interaccin o
comunicacin entre ellas. As, una clase puede relacionarse con otra a travs de:
Una relacin de composicin: una clase est compuesta de otras clases. Esto ocurre
cuando los atributos de una clase se implementan como objetos de otra clase.
Ejemplo
La clase automvil tiene atributos que pueden ser a la vez clases: puerta, motor, rueda, chasis,etc.
Una relacin de uso: una clase se relaciona con otra a travs de los mensajes que le
enva, pasndole como parmetro del mtodo invocado por el mensaje, una instancia de
una clase.
Ejemplo
Al invocar al mtodo suma de una matriz, le pasamos un objeto entero para que lo sume a un
objeto matriz.
Una relacin de herencia: como ya adelantamos, consiste en que una clase hereda de
una clase padre o superclase, obteniendo as toda la funcionalidad ofrecida por la clase
padre y pudiendo aadir nuevas funcionalidades. Con esta forma de relacin,
conseguimos una mayor reutilizacin del cdigo y una mayor especializacin a travs de
la jerarqua de clases. Las clases iniciales en esta jerarqua son ms generales y, a
medida que profundizamos en la jerarqua de la descendencia, las clases hijas estn
ms especializadas e implementan tareas ms concretas.
7/24/2019 Programacion de Aplicaciones en ASP.net
42/161
10
Conceptos de la programacin
orientada a objetos6. VENTAJAS Y DESVENTAJAS DE LA POO
Entre las ventajasque encontramos al utilizar POO tenemos que:
Facilita la reutilizacin del software a travs de la herencia. Adems, la
encapsulacin nos facilita el uso de objetos que no hemos implementado todava, pero
de los que conocemos qu hacen, no es necesario saber cmo lo hacen.
Facilita el mantenimiento de los programas y la deteccin de errores. La
encapsulacin nos garantiza que las modificaciones realizadas en el ncleo de un objeto
tendrn un efecto limitado y localizado, as su interfaz de comunicacin con el resto de
objetos se mantendr, por lo que podremos seguir comunicndonos con l de igual
forma.
Las tareas de anlisis, diseo e implementacin son ms intuitivas, ya que los
objetos en nuestros diseos van a representar objetos presentes en el mundo real.
Por otra parte, entre las desventajasque encontramos al utilizar POO tenemos que:
La curva de aprendizaje suele ser ms larga que la necesaria en la programacin
estructurada, debido principalmente a que implica un cambio de mentalidad adems de
aprender un nuevo lenguaje orientado a objetos.
Dificultad a la hora de determinar las caractersticas de un objetoya que debemos
tener en cuenta las relaciones con otros objetos. A veces, el establecimiento de nuevas
relaciones puede implicar un cambio en la definicin del objeto.
Jerarquas de herencia complejas, que pueden llegar a ser confusas en el caso de la
herencia mltiple (una clase puede heredar de ms de una clase).
7/24/2019 Programacion de Aplicaciones en ASP.net
43/161
11
Conceptos de la programacin
orientada a objetos Los lenguajes de programacin orientados a objetos permiten el
encapsulamiento, la abstraccin, la herencia y el polimorfismo.
El encapsulamientosepara la interfaz de la implementacin ocultando los
datos dentro del objeto y permitiendo el acceso a los datos de dicho objeto a
travs de funciones miembro (mtodos).
Las subclasesheredan las funciones miembro y las variables de sus clases
padre, haciendo sencilla la reutilizacin de las funcionalidades de las clases
padre.
El polimorfismo permite crear cdigo genrico y reutilizable que podr
funcionar con una amplia gama de clases diferentes.
rec
uerde
7/24/2019 Programacion de Aplicaciones en ASP.net
44/161
7/24/2019 Programacion de Aplicaciones en ASP.net
45/161
13
Conceptos de la programacin
orientada a objetosA
API (Application Programming Interface - Interfaz de programacin de
aplicaciones). Es el conjunto de funciones y procedimientos que ofrece una
biblioteca especfica para la comunicacin entre componentes software.
ASP (Active Server Pages). Pginas activas del servidor Internet Information
Server. ASP es la versin anterior a la tecnologa ASP.NET de Microsoft.
C
CLR (Common Language Runtime). Motor de ejecucin comn incluido en el
paquete Microsoft .NET.
CSS (Cascading Style Sheets - Hojas de Estilo en Cascada). Se utilizan para dar
formato a documentos HTML o XML, separando los datos del formato de
presentacin.
CTS (Common Type System). Especificacin de tipos bsicos para la integracin
de distintos lenguajes de programacin en Microsoft .NET (como C#, Visual Basic
.NET, JScript, .NET).
C#. Lenguaje creado por Microsoft para su plataforma .NET. Es parecido a C++ y
Java.
D
DHTML (Dinamic HTML - HTML dinmico). Se forma de una conjuncin de HTML,
hojas de estilo en cascada (CSS) y lenguajes de Script como JavaScript o
VBScript.
DLL(Dynamic Link Library - Bibliotecas de Enlace Dinmico). Es un archivo que
contiene funciones que se pueden llamar desde aplicaciones u otras DLL. Los
desarrolladores utilizan las DLL para poder reciclar el cdigo y aislar las
diferentes tareas. Las DLL no pueden ejecutarse directamente, es necesario
llamarlas desde un cdigo externo. Las DLL de Windows permiten que las
aplicaciones puedan operar en el entorno de Windows.
F
Framework(Marco de trabajo). Es un esquema o estructura que puede incluir
soporte de programas, bibliotecas y un lenguaje interpretado para la
organizacin, desarrollo y/o la implementacin de una aplicacin.
glosario
7/24/2019 Programacion de Aplicaciones en ASP.net
46/161
14
Conceptos de la programacin
orientada a objetosH
HTML (HiperText Markup Language). Lenguaje para la creacin de pginas web
relacionadas entre s por hipertexto.
HTTP (HiperText Transport Protocol). Protocolo de comunicaciones utilizado por
los navegadores de Internet para el acceso a recursos web, como ficheros de
imgenes, vdeo, pginas HTML, pginas ASP, pginas ASPX, etc.
I
IIS (Internet Information Server). Es el servidor web de Microsoft. ASP.NET
funciona sobre l.
J
Java. Lenguaje de programacin orientado a objetos desarrollado por Sun
Microsystems.
JavaScript. Lenguaje de Script desarrollado por Netscape y utilizado en los
navegadores de Internet.
M
MDAC (Microsoft Data Access Components). Componentes Microsoft de acceso a
datos.
MFC (Microsoft Fundation Classes). Librera basada en jerarqua de clases.
Bsicamente encapsula el API de Windows en una forma orientada a objetos.
MSIL. Lenguaje intermedio para la ejecucin de aplicaciones en Microsoft .NET.
P
PHP (Personal Home Page - Procesador de hipertexto). Las pginas PHP
presentan una tcnica similar a las pginas ASP de Microsoft, es decir, las
pginas HTML incluyen el cdigo PHP embebido en ellas y al ejecutarlas, se
genera cdigo HTML dinmicamente.
Proceso de negocio. Es un conjunto de tareas relacionadas lgicamente, que
toman uno o ms tipos de entradas (inputs), llevadas a cabo para lograr un
resultado de negocio definido (outputs). Tambin puede verse como un conjunto
de actividades que colectivamente consiguen alcanzar un objetivo de negocio.
gl
osario
7/24/2019 Programacion de Aplicaciones en ASP.net
47/161
15
Conceptos de la programacin
orientada a objetosEs, por ejemplo, el proceso a travs del cual una organizacin ofrece sus
servicios a sus clientes.
R
RAD(Rapid Application Development - Desarrollo rpido de aplicaciones). Es un
proceso de desarrollo de software desarrollado inicialmente en 1980. Tiende a
englobar la usabilidad, la utilidad y la rapidez de ejecucin.
RIA (Rich Internet Applications - aplicaciones de Internet enriquecidas). Son un
nuevo tipo de aplicaciones con ms ventajas que las tradicionales aplicaciones
web. Esta surge como una combinacin de las ventajas que ofrecen las
aplicaciones web y las aplicaciones tradicionales.
S
Script.Es un guion o conjunto de instrucciones. Permiten la automatizacin de
tareas creando pequeas utilidades.
SDK(Software Development Kit - kit de desarrollo de software). Es un conjunto
de herramientas de desarrollo que le permite a un programador crear software.
V
VBScript (Visual Basic Script). Lenguaje de Script desarrollado por Microsoft.
X
XML (eXtensible Markup Language - lenguaje de marcado extensible). Se utiliza
para la construccin de documentos de datos estructurados multi-propsito.
glosario
7/24/2019 Programacion de Aplicaciones en ASP.net
48/161
7/24/2019 Programacion de Aplicaciones en ASP.net
49/161
7/24/2019 Programacion de Aplicaciones en ASP.net
50/161
7/24/2019 Programacion de Aplicaciones en ASP.net
51/161
19
Conceptos de la programacin
orientada a objetosGriffiths, Ian; Adams, Matthew; Liberty, Jesse. Programming C# 4.0. 6thEdition.
OReilly. 2010.
MacDonald, Matthew. Beginning ASP.NET 4 in CSharp 2010. Apress. Washington.
2010.
Mackey, Alex. Introducing .NET 4.0 with Visual Studio 2010. Apress. 2010.
Mueller, John Paul. Start Here! Learn Microsoft Visual C# 2010. OReilly Media,
Inc. 2011.
Northrup, Tony; Snell, Mike. Exam 70-515: Web Applications Development with
Microsoft .NET Framework 4.Microsoft Press. 2010.
Shepherd, George. Microsoft ASP.NET 4 Step by Step. Microsoft Press. 2010.
Stephen, Rob. Start Here! Fundamentals of Microsoft .NET Programming. OReilly
Media, Inc. 2011.
biblio
grafa
7/24/2019 Programacion de Aplicaciones en ASP.net
52/161
7/24/2019 Programacion de Aplicaciones en ASP.net
53/161
1
Fundamentos de
programacin en C#
1. MI PRIMERA PGINA EN ASP.NET....................................................3
2. SINTAXIS DE C#. DECLARACIN DE VARIABLES YCOMENTARIOS...............................................................................14
2.1. TIPOS PREDEFINIDOS...........................................................15
2.2. TIPOS DEFINIDOS POR EL USUARIO......................................19
2.3. DECLARACIN DE VARIABLES................................................21
2.4. COMENTARIOS.......................................................................21
3. SENTENCIAS CONDICIONALES, BUCLES Y OPERADORES.................21
3.1. SENTENCIAS CONDICIONALES...............................................22
3.2. BUCLES..................................................................................23
3.3. OPERADORES.........................................................................254. DEFINICIN E INSTANCIACIN DE CLASES....................................32
4.1. DEFINICIN DE UNA CLASE...................................................32
4.2. INSTANCIACIN DE UNA CLASE.............................................33
5. MANEJADORES DE EVENTOS...........................................................37
6. TRATAMIENTO DE ERRORES...........................................................37
7. MODIFICADORES...........................................................................39
7.1. MODIFICADORES DE ACCESO.................................................39
7.2. OTROS MODIFICADORES........................................................40
GLOSARIO...........................................................................................43
REFERENCIAS WEB..............................................................................47
BIBLIOGRAFA....................................................................................49
ndice
formacindigital
7/24/2019 Programacion de Aplicaciones en ASP.net
54/161
7/24/2019 Programacion de Aplicaciones en ASP.net
55/161
3
Fundamentos de
programacin en C#1. MI PRIMERA PGINA EN ASP.NET
El objetivo de este captulo es aprender los fundamentos del lenguaje que vamos a utilizar
en todo el curso, C#. Utilizaremos dicho lenguaje por ser de ltima generacin, pensado
para los desarrolladores web y que se adapta mejor a los estndares de C++ y Java.
Para aprender a conocer el entorno y la filosofa de trabajo con Visual Studio, vamos a
comenzar realizando una pgina ASP.NET sencilla, cuya funcin ser simplemente mostrar el
mensaje Hola Mundo cuando pulsemos sobre el botn incluido en la pgina. De esta
forma, adems de conocer Visual Studio, nos familiarizaremos con ASP.NET y el lenguaje
C#.
El proceso de creacin de la pginaes el siguiente:
1. Abrimos Visual Studio en nuestro sistema:
7/24/2019 Programacion de Aplicaciones en ASP.net
56/161
4
Fundamentos de
programacin en C#2. Si esta es la primera vez que ejecutamos el entorno, se mostrar una ventana de
configuracin en la que se escoge el entorno ms adecuado para nuestro trabajo. En
este caso elegimos Desarrollo web:
Esta configuracin no modifica la funcionalidad ni instala componentes adicionales,
simplemente transforma el entorno para optimizarlo a las labores que se realicen. En
cualquier caso, aprenderemos que la interfaz de usuario de Visual Studio es configurable
en cualquier momento.
Una vez seleccionada la configuracin, aparece la ventana inicial de Visual Studio, donde
podemos elegir la creacin de un nuevo proyecto. Esto tambin se puede realizar
navegando por el men Archivo.
7/24/2019 Programacion de Aplicaciones en ASP.net
57/161
7/24/2019 Programacion de Aplicaciones en ASP.net
58/161
6
Fundamentos de
programacin en C#4. A continuacin, nos encontramos en el entorno de desarrollo donde podemos crear
nuestro proyecto.
Como podemos observar en la imagen anterior, la pgina de inicio del proyecto se
denomina Default.aspx, la cual, si no indicamos lo contrario, ser la primera pgina
que se mostrar en el navegador al ejecutar la aplicacin.
Microsoft recomienda que para realizar la programacin dinmica se emplee el modelo
code-behind(cdigo trasero o cdigo oculto). Con esta tcnica se separa la parte del
cdigo C# de la parte visual que es la que se presenta al usuario, lo cual aporta grandes
ventajas en el desarrollo web pues supone diferenciar la interfaz del cdigo de
funcionamiento. La parte de cdigo (o lgica), se encuentra en un archivo con extensin.cs,en el que se encuentra ladefinicin de las clases con sus mtodos y atributos. La
interfaz de usuario, que es la presentacin de la aplicacin, est almacenada en un
archivo con extensin .aspx.
Por otra parte, mediante el men de vistas, podemos alternar entre las vistas Diseo,
Cdigoo Dividir. En esta ltima, se mostrarn ambas vistas de forma simultnea en la
pantalla.
7/24/2019 Programacion de Aplicaciones en ASP.net
59/161
7
Fundamentos de
programacin en C#Es interesante que practiquemos con las ventanas de la interfaz, pues son configurables
a nuestro modo de trabajar, pudindolas fijas, ocultar, cambiar de lugar o hacerlas
flotantes.
5.
Seguidamente, vamos a cambiar el nombre de la pgina para que, al ser cargada por el
navegador, tenga un nombre distintivo. En nuestro caso la llamaremos
HolaMundo.aspx. Para ello, seleccionamos en la Ventana Explorador de soluciones
el nombre del fichero y pulsamos con el botn derecho.
7/24/2019 Programacion de Aplicaciones en ASP.net
60/161
8
Fundamentos de
programacin en C#De esta forma, cambia el nombre tanto del fichero de cdigo como de la interfaz.
Sin embargo, para nuestro ejemplo vamos a eliminar este archivo, puesto que
queremos comenzar con una pgina en blanco. Para ello, seleccionamos el archivo en el
Explorador de solucionesy pulsamos Suprimir.
Una vez realizado esto, tenemos el proyecto vaco y creamos un nuevo archivo, que
llamaremos HolaMundo.aspx y que estar en blanco, eligiendo Agregar nuevo
elemento.
A continuacin, en el men que se acaba de abrir, seleccionamos Web Forms, adems
de darle el nombre deseado:
7/24/2019 Programacion de Aplicaciones en ASP.net
61/161
9
Fundamentos de
programacin en C#6. En este paso vamos a incluir una etiqueta Label y un botn Button en la capa de
presentacin H o la M u n d o .a sp x. Los controles mencionados se encuentran en el cuadro
de herramientas y solo tendremos que arrastrarlos a la vista Diseo de nuestra pgina
para insertarlos en ella.
Se puede trabajar en el modo Diseomodificando las propiedades de ambos elementos
(objetos), definiendo tamao, nombre, etc. Para ello, podemos utilizar la ventana
Propiedades:
7/24/2019 Programacion de Aplicaciones en ASP.net
62/161
10
Fundamentos de
programacin en C#7. Vamos a aprender a utilizar el cdigo. Para ello, pulsamos la vista Cdigoy observamos
el cdigo C# que utiliza nuestra primera pgina web:
8.
En este punto vamos a modificar el cdigo HTML para obtener el resultado deseado.Realizaremos pues las modificaciones que sealamos a continuacin en los siguientes
ficheros:
a.
Fichero HolaMundo.aspx, en el que se define la pgina web.
La etiqueta la renombramos a lNombre y le ponemos un texto descriptivo.
Cambiamos el nombre al botn por bSaludar, a su propiedad onclick, en la
que indicamos el mtodo responsable de gestionar el evento de pulsacin delratn, la denominamos pulsado, y a su propiedad Text, le asignamos el
valor Plsame.
HolaMundo.aspx
7/24/2019 Programacion de Aplicaciones en ASP.net
63/161
11
Fundamentos de
programacin en C#
b. Fichero HolaMundo.aspx.cs, donde se definen las clases y sus mtodos. En este
fichero, introducimos el siguiente cdigo:
HolaMundo.aspx.cs
usi ng Syst em;usi ng Syst em. Col l ect i ons. Gener i c;usi ng Syst em. Li nq;usi ng Syst em. Web;usi ng Syst em. Web. UI ;usi ng Syst em. Web. UI . WebCont r ol s;
publ i c part i al cl ass Hol aMundo: Syst em. Web. UI . Page{
pr otect ed voi d Page_Load( Obj ect sender, Event Ar gs e){
}
pr otect ed voi d pul sado( Obj ect sender, Event Ar gs e){l Nombre. St yl e[ " f ont - s i ze"] = "XX- Large" ;l Nombre. Text = " Hol a Mundo! " ;
}}
Seguidamente, guardamos los ficheros y pulsamos el botn Iniciar depuracino
F5, con lo que obtendremos nuestro primer formulario en ASP.NET.
7/24/2019 Programacion de Aplicaciones en ASP.net
64/161
12
Fundamentos de
programacin en C#Una vez probado, no debemos olvidar detener la depuracin para seguir
trabajando:
Otra opcin para ejecutar nuestro formulario es usar la opcin Ver en el
Explorador como muestra la siguiente imagen:
Resultado de la ejecucin de nuestra pgina holamundo.aspxen el navegador.
Como recordaremos, en el fichero HolaMundo.aspx nos encontramos con la
definicin de un Web Form (formulario web), que ser el que va a contener la
etiqueta y el botn. Podemos observar que la sintaxis es muy similar a la utilizadapara definir un formulario tpico HTML, la diferencia est en la inclusin de la
propiedad runat que posee el valor server, para indicar que se trata de un
formulario de servidor. Adems, la pgina HolaMundo.aspx incorpora la directiva
Pa g e, encerrada entre los signos la cual define los siguientes atributos:
Inherits. Es empleado para indicar la clase de la que hereda la pgina
HolaMundo.aspx.
7/24/2019 Programacion de Aplicaciones en ASP.net
65/161
13
Fundamentos de
programacin en C# CodeBehind. Sirve para indicar el archivo compilado que contiene la clase
asociada con la pgina.
AutoEventWireup. Indica si los eventos se deben generar de forma
automtica.
Language. Especifica el lenguaje utilizado por la pgina.
Tambin, dentro del formulario se encuentran dos controles web que pertenecen a
las clases Labely Button. Recordemos que estos dos controles web son los objetos
que utilizaremos en nuestro cdigo, siendo cada uno de ellos una instancia de su
clase correspondiente.
El objeto Labelrepresenta a la etiqueta que mostrar el mensaje en la pgina.
El objeto Buttones el botn que invocar al mtodopulsadocuando el usuario
haga clic sobre l.
Estos dos controles tienen un atributo id, que es el nombre que lo identifica y a
travs del cual podremos acceder a sus propiedades. As, en el mtodo pulsado
utilizamos el identificador etiqueta para acceder al objeto Label y modificar el
valor de su propiedad Text, que de forma predeterminada es una cadena vaca.
Adems, el control Buttonposee la propiedad onclick, en la que podemos indicar el
mtodo responsable de tratar el evento de pulsacin.
En holamundo.aspx.cs tenemos el mtodo void pulsado(object sender, EventArgs
e), que se ejecutar cuando el usuario pulse el botn que pertenece al Web Form.
Este mtodo trata el evento de pulsacin del botn (onclick=pulsado en la
definicin del control del fichero holamundo.aspx). Adems,
devuelve void, es decir, ningn valor, y recibe dos parmetros, el primero de tipo
objecty el segundo de tipo EventArgs, que ofrecen informacin acerca del evento
que se ha producido, aunque en este ejemplo no usamos dichos parmetros porque
no son necesarios para mostrar nuestro mensaje.
Dentro del mtodo pulsado accedemos al estilo de la etiqueta definida
(lNombre.Style["font-size"]) para darle un tamao determinado y, a continuacin,
establecemos el valor de la propiedad Text de la etiqueta con el mensaje Hola
Mundo!.
7/24/2019 Programacion de Aplicaciones en ASP.net
66/161
14
Fundamentos de
programacin en C#Por ltimo, podemos observar que el delimitador de sentencias en C#es el punto y
coma (;) y el de bloques de cdigo son las llaves {}.
2. SINTAXIS DE C#. DECLARACIN DE VARIABLES Y COMENTARIOS
El lenguaje C#presenta una serie de palabras bsicas reservadas para el propio lenguaje
que incluyen comandos, tipos, etc. Por este motivo, no podremos usarlas en nuestros
nombres de clases, variables, propiedades, funciones o mtodos. Estas palabras reservadas
son:
abstract as base bool
break byte case catch
char checked class const
continue decimal default delegate
do double else enum
event explicit extern false
finally fixed float for
foreach goto if implicit
in int interface internal
is lock long namespace
new null object operator
out override params private
protected public readonly ref
return sbyte sealed short
sizeof stackalloc static string
struct switch this throw
true try typeof uint
ulong unchecked unsafe ushort
using virtual void volatile
while
El objetivo de esta lista no es memorizarlas, tan solo tiene inters como punto de referencia,
las iremos utilizando segn avance el curso.
Es importante indicar que el lenguaje C#es sensible a maysculas y minsculas, en ingls a
esta propiedad se la denomina case sensitive. Debido a ella, hay que prestar atencin y
tener cuidado en su uso, puesto que no solo puede afectar a que durante la compilacin del
cdigo no sean reconocidas palabras reservadas del lenguaje, sino que pueden crear
confusin y graves prdidas de tiempo al cambiarse el nombre de las variables por uso
7/24/2019 Programacion de Aplicaciones en ASP.net
67/161
15
Fundamentos de
programacin en C#diferente de maysculas y minsculas. Esto puede crear desde errores en tiempo de
compilacin hasta errores durante la ejecucin, con comportamientos extraos al utilizar
diferentes variables pensando que son la misma, por ejemplo, lNombre y Lnombre en
nuestro ejemplo seran dos identificadores diferentes.
2.1. TIPOS PREDEFINIDOS
C#provee de 15 tipos predefinidos, los cuales se muestran en la siguiente figura:
Los tipos predefinidos simplesincluyen 11 tiposnumricos:
Ocho tipos enteros con distintas longitudes, con signo y sin signo.
Tipos de punto flotante -floaty double-.
Decimales de alta precisin llamados decimal.A diferencia de los tipos floaty double, el
tipo decimal puede representar nmeros fraccionarios decimales exactos. Se usa
frecuentemente para clculos monetarios.
sbyte byte short ushort int uint long ulong
bool char
No numricos Numrico
Entero
8-Bit 16-Bit 32-Bit 64-Bit
object string
Tipospredefinidos
Simple
float double
Punto flotante
decimal
7/24/2019 Programacion de Aplicaciones en ASP.net
68/161
16
Fundamentos de
programacin en C#Los tipos predefinidos simples no numricosson:
Un tipo carcter, llamado char.
Un tipo boolque representa valores booleanos y toman como valor trueo false.
Por otra parte, los dos tipos no simplesson los siguientes:
El tipo string, que es un array (vector o matriz) de caracteres.
El tipo object, que es el tipo en el cual est basado el resto de los tipos.
En resumen son:
Nombre corto Tipo Longitud bits Intervalo valores (decimal)
byte Entero sin signo 8 0 a 255
sbyte Entero con signo 8 -128 a 127
int Entero con signo 32 -2.147.483.648 a 2.147.483.647
uint Entero sin signo 32 0 a 4294967295
short Entero con signo 16 -32.768 a 32.767
ushort Entero sin signo 16 0 a 65535
long Entero con signo64 -922337203685477508 a
922337203685477507
ulong Entero sin signo 64 0 a 18446744073709551615
floatTipo de punto flotante de
precisin simple
32 -3,402823e38 a 3,402823e38
doubleTipo de punto flotante de
precisin doble
64 -1,79769313486232e308 a
1,79769313486232e308
char Un carcter Unicode 16 Smbolos Unicode
bool Tipo Boolean lgico 8 True o false
objectTipo base de todos los otros
tipos
string Una secuencia de caracteres
decimal
Tipo preciso fraccionario o
integral, puede representar
nmeros decimales con 29
dgitos significativos
128 1.0 10e28 a 7.9 10e28
A continuacin, vamos a describir un pequeo ejemplo donde definimos una serie de
variables y su uso:
1.
Creamos un nuevo proyecto, que denominamos SumaNumeros, el cual definimos en
C# como Aplicacin web vaca de ASP.NET.
7/24/2019 Programacion de Aplicaciones en ASP.net
69/161
17
Fundamentos de
programacin en C#2. Le agregamos un nuevo elemento que ser la pgina web aspx que vamos a crear,
eligiendo, por ello, Web Forms.
3.
En el formulario web creado, en modo Diseo, introducimos desde el cuadro de
herramientas, tres Label, tres TextBoxy un Buttom, resultando el siguiente diseo:
4.
Ahora hay que escribir el cdigo de nuestro pequeo formulario. Para ello, pulsamos
sobre la vista Cdigo y cambiamos la identificacin de los TextBox para referirlos
correctamente:
7/24/2019 Programacion de Aplicaciones en ASP.net
70/161
18
Fundamentos de
programacin en C#5. Seguidamente, abrimos el fichero de cdigo que definir los mtodos. Lo primero ser
definir nuestras variables de tipo entero:
public int vara= 25;
public int varb= 125;
Las definimos como pblicas pues deseamos que el mtodo sumar, que se ejecutar al
pulsar el botn, tenga acceso a ellas. Asimismo, definimos la variable resultado, cuyo
valor ser la suma de vara yvarb:
int result = vara + varb;
Por otra parte, podemos observar el funcionamiento de los eventos:
Page_Loadse produce siempre que se carga la pgina en el navegador. De esta
forma, podemos mostrar los valores de las variables.
Se utiliza el mtodo System.Convert.ToString (valor); para convertir los valores
enteros de las variables en cadenas de caracteres (string), pues es el tipo de la
propiedad Textde cada elemento TextBoxque tenemos insertado en la pgina.
El evento que se ejecutar al pulsar el botn es sumar. Al ser lanzado, suma los
valores de las dos variables pblicas varay varb, y los asigna a la variable privada
result, para posteriormente convertirla en cadena y asignarla a la propiedad Text
del control txtVarResultadode nuestra pgina.
7/24/2019 Programacion de Aplicaciones en ASP.net
71/161
19
Fundamentos de
programacin en C#Se obtiene finalmente el siguiente resultado:
2.2. TIPOS DEFINIDOS POR EL USUARIO
Adems de los 15 tipos primitivos que nos provee C#, tambin podemos crear los nuestros
propios. Estos tipos son estructuras de datos ms complejas, formados habitualmente por
otros tipos de datos. Son los siguientes:
Tipo e n u m: define enumeraciones de constantes de tipos bsicos.
enum di as {Lunes, Mart es, Mi rcol es, J ueves, Vi ernes, Sbado, Domi ngo };
Los enumer ador es t i enen una numer aci n predet er mi nada, comenzando por 0, de t i poi nt . As Lunes es 0, Mar t e 1, et c.
Est a numeraci n puede modi f i car se i ndi cando el val or de comi enzo del pri merenumer ador :
enum di as {Lunes = 1, Mart es, Mi rcol es, J ueves, Vi ernes, Sbado, Domi ngo };
Par a decl arar l a numeraci n de un t i po di f erent e a i nt , se escri be:
enum di as : byte {Lunes = 1, Mart es, Mi rcol es, J ueves, Vi ernes, Sbado, Domi ngo};
Los tipos primitivos permitidos en la enumeracin son byte, sbyte, short, ushort, int,
uint, longy ulong.
Tipo c l a s s : define las clases. Por ejemplo:
cl ass Cl aseTest {
/ / Se def i nen Mtodos, pr opi edades, campos, event os, del egados y ot r as/ / cl ases que se necesi t en
}
7/24/2019 Programacion de Aplicaciones en ASP.net
72/161
20
Fundamentos de
programacin en C# Tipo st ru ct: este tipo de datos se utiliza para encapsular pequeos grupos de variables
en una estructura relacionada.
publ i c str uct Al bum{
publ i c str i ng aut or; publ i c str i ng t t ul o; publ i c i nt anno; publ i c deci mal pr eci o;
}
Tipo d el eg at e: se utiliza para declarar la firma de un mtodo que ser definido en una
clase1.
publ i c del egate i nt t i poDel egado ( s t r i ng mensaj e, l ong val or ) ;
Tipo in t er fa ce: las interfaces contienen solo las firmas de mtodos, propiedades,
eventos o indizadores, no su implementacin. Posteriormente se pueden definir clases
que implementarn esa interfaz.
I nterf ace coor denadas
{
i nt x
{get ;
set ;
}
i nt y
{
get ;
set ;
}
}
Finalmente, una vez hemos declarado uno de los anteriores tipos, podemos usarlos para
crear objetos, como si fuesen primitivos.
1 El uso de estos tipos no es objetivo del presente tema. Puede obtenerse ms informacin en:
http://msdn.microsoft.com/es-es/library/900fyy8e(v=vs.100).aspx
7/24/2019 Programacion de Aplicaciones en ASP.net
73/161
21
Fundamentos de
programacin en C#2.3. DECLARACIN DE VARIABLES
Para declarar una variable (tanto si es una referencia a un objeto o a un tipo simple),
primero indicamos el tipo de la variable, es decir, el tipo simple o clase, y a continuacin el
nombre de la variable. No obstante, si la variable posee algn modificador de acceso (como
privateopublic) o de otro tipo, este modificador debe aparecer antes del tipo de la variable.
Ejemplo:
s t r i ng cadena;i nt num_al eat ori o;publ i c Dat eTi me f echaAct ual ;
2.4. COMENTARIOS
Podemos utilizar comentarios de lnea simple o de un grupo de lneas:
/ / Cdi go coment ado de l nea si mpl e
/ * Cdi go coment ado que ocupa var i as l neas.El cdi go coment ado no se ej ecut ar.
*/
Los comentarios resultan tiles para documentar el cdigo e incluir anotaciones. De esta
forma, se explica el porqu de algunas decisiones o sentencias. Tambin son tiles para
posterior mantenimiento del cdigo e, incluso, si trabajamos en grupo, el cdigo ser ms
accesible y entendible si tiene comentarios aclaratorios.
Por todo ello, la documentacin del cdigo se considera una buena prctica del profesional en
programacin.
3. SENTENCIAS CONDICIONALES, BUCLES Y OPERADORES
En el presente apartado, estudiaremos los conjuntos de sentencias bsicos en programacin,
incorporados en todos los algoritmos de programacin y lenguajes de programacin, excepto
algn extrao desarrollo creado para alguna solucin especfica.
Analizaremos estas sentencias explicando con ejemplos su sintaxis para, posteriormente,
desarrollar un caso prctico donde se aplique la mayora de ellas.
7/24/2019 Programacion de Aplicaciones en ASP.net
74/161
22
Fundamentos de
programacin en C#3.1. SENTENCIAS CONDICIONALES
Las sentencias condicionalesson las siguientes:
Condicional if else. Su sintaxis es la siguiente (la inclusin de la sentencia else es
opcional, por eso va entre corchetes).
i f ( expr esi n) {/ / cdi go para expr esi n "verdadera";
}[ el se {/ / cdi go para expr esi n "f al sa";
}]
/ / Veamos un ej empl o de su uso:
protected voi d pul sado( Obj ect sender, Event Ar gs e){
i f ( et i queta1. Text. Equal s( et i queta2. Text) ){
Response. Wr i t e( "Las et i quetas son i gual es") ;}el se{
Response. Wr i t e( "Las eti quetas no son i gual es") ;}
}
Condicional mltiple switch.
swi t ch ( expr esi n){
case expr esi n_const ant e1:/ / cdi gobreak;
case expr esi n_const ant e2:/ / cdi gobreak;
. . .def aul t :
/ / cdi gobreak;
}
Veamos un ejemplo de su uso:
protected voi d pul sado( Obj ect sender, Event Ar gs e){
s t r i ng r espuesta = TextBox1. Text;swi t ch (respuesta){
case "1":Response. Wr i t e ( "Ha el egi do l a respuest a 1") ;break;
case "2":Response. Wr i t e ( "Ha el egi do l a respuest a 2") ;break;
case "3":Response. Wr i t e ( "Ha el egi do l a respuest a 3") ;break;
7/24/2019 Programacion de Aplicaciones en ASP.net
75/161
23
Fundamentos de
programacin en C#def aul t :
Response. Wr i t e ( "Debe el egi r una de est as respuest as: 1, 2,3") ;
break;}}
3.2. BUCLES
Los bucles se utilizan cuando queremos repetir la ejecucin de unas sentencias un nmero
indefinido de veces, siempre que se cumpla una condicin.
Buclewhile. En este bucle se evala primero la condicin y si se cumple, se repetir la
ejecucin hasta que la condicin deje de hacerlo.
whi l e ( expr esi n){
/ / cdi go}
/ / Ej empl o de su uso:
protected voi d pul sado( Obj ect sender, Event Ar gs e){
i nt cont ador = 0;whi l e( cont ador 0) ;}
7/24/2019 Programacion de Aplicaciones en ASP.net
76/161
24
Fundamentos de
programacin en C# Bucle for. Es un bucle que permite ejecut