Vous êtes sur la page 1sur 10

nº 72 julio-agosto 2010 6,50 € Visual Basic • C# • ASP.NET • ADO.NET • AJAX • Silverlight • .

NET Framework

dotNetManía
www.dotnetmania.com

dedicada a los profesionales de la plataforma .NET

Silverlight 3D
Logrando efectos tridimensionales en Silverlight

Principio Open/Closed • Un ORM portable, ligero y eficaz • Silverlight PlaneProjection • Plataforma Android. Introducción al desarrollo • Migración
de código de SharePoint 2007 a 2010 • Desarrollando con Data Tier Application Component (DAC) • dnm.ux#12: Libertad, opciones y decisión
72
Eventos 08
VI SQLU Summit 2010 y Lanzamiento SQL Server 2008 R2

Principio Open/Closed 10-14


Este es el segundo de una serie de cinco artículos que describen los principios SOLID y su aplicación
en la Programación Orientada a Objetos. Después de examinar en nuestra entrega anterior el
Principio de Responsabilidad Única, este mes nos adentramos en otro de los principios, que además
guarda una estrecha relación con el primero: el Principio Open/Closed.

Un ORM portable, ligero y eficaz


Para desarrollo en entornos de escritorio y movilidad basados en .NET Framework 16-22
Actualmente existen múltiples tecnologías y disciplinas orientadas a recuperar y almacenar datos en
una base de datos. Sin embargo, no todas ellas están disponibles en dos mundos tan diferentes
como escritorio y movilidad, ni tampoco ofrecen soluciones que se adapten al 100% de nuestras

seminarios necesidades. El ORM que presentamos aquí es fácil de embeber en nuestros desarrollos, sencillo de
utilizar y nos brinda prácticamente toda la potencia de los grandes ORM.

Silverlight 3D. Logrando efectos tridimensionales en Silverlight 24-30


Gracias a la agrupación de
Silverlight incorpora para los programadores de aplicaciones Web una buena parte de las riquezas
alumnos entre los lectores
declarativas de su hermano mayor, Windows Presentation Foundation (WPF). Esto incluye facilidades
de dotNetManía, podemos tales como animaciones, enlace a datos y plantillas, que superan en expresividad, por la
compartir costes y ofrecerle declaratividad de XAML, a otros entornos imperativos como Flash.

formación presencial a un Silverlight PlaneProjection 32-35


precio realmente pequeño. Con la versión 3.0 de Silverlight vio la luz lo que conocemos hoy en día como Plane Projection ó 2.5D:
Comparta cara a cara sus la capacidad de proyectar un elemento 2D de Silverlight sobre un plano base, dando lugar a un
pseudo3D. Esta técnica también se conoce como Perspective 3D, ya que nos permite simular una
experiencias y dudas con transformación de manipulación de un elemento en el espacio, si bien no es un 3D real.
profesores de una gran
Plataforma Android. Introducción al desarrollo 36-41
experiencia de campo, como
El sistema operativo Android está basado en el kernel de Linux y ha sido desarrollado bajo el amparo
Eladio Rincón, Miguel Egea, de Google. En principio, nació como un sistema operativo para móviles; hoy en día lo tenemos
Daniel Seara y Alejandro también en tablets y en Google TV. Desde su presentación en noviembre de 2007, estamos
actualmente en la versión 2.2 (también conocida como Froyo), una versión que quiere dar un punto
Leguizamo, en estos
de madurez hasta la siguiente versión: la 3.0 o Gingerbread. Pero para nosotros, como
seminarios de un día desarrolladores, la esencia de Android seguirá siendo la misma. Este artículo pretende introducir al
durante el mes de lector en el mundo del desarrollo para esta plataforma, adentrándonos en el entorno Eclipse y la
programación con Java.
septiembre.
Migración de código de SharePoint 2007 a 2010 42-45
En este artículo repasamos las principales dificultades que los desarrolladores podrán encontrar a la
hora de migrar de SharePoint 2007 a 2010, y veremos cómo hacer frente a las mismas para
conseguir que nuestros desarrollos y personalizaciones funcionen a la perfección.

Desarrollando con Data Tier Application Component (DAC) 46-51


En este artículo vamos a ver cómo con la llegada de SQL Server 2008 R2, Visual Studio 2010 y uno
de sus nuevos componentes (DAC), se nos simplifica la gestión del ciclo de vida de las aplicaciones
de base de datos.

dnm.ux 52-53
Libertad, opciones y decisión

dnm.q&a 54-57
Integración del CLR con SQL Server

dnm.desvan 58
Seminarios Solid Quality Mentors
Duración: 8 horas +complemento a distancia* • Precio: 150 €
Horario: 10:00 a 14:00 y de 16:00 a 20:00 • Ciudad: Madrid
Formación bonificable 100% por la Fundación Tripartita

Optimización Avanzada de Consultas SQL


para desarrolladores y DBA
Profesor
Eladio Rincón. MCT y MVP en SQL Server. Eladio es Mentor
y Director de Tecnologías de Bases de Datos para Solid Quality
Mentors en España y Portugal.
Objetivo
La optimización de las consultas SQL de nuestras aplica-
ciones y gestores de BBDD es uno de los puntos claves para
la satisfacción de nuestros clientes y para el éxito de los proyec-
tos de desarrollo de software. En este curso de 8 horas se Optimización y Buenas Prácticas en Aplicaciones PowerPivot en Profundidad
plantea en profundidad el diseño y la optimización avanzada de Inteligencia de Negocios con SQL Server Profesor
de las consultas SQL de acceso a gestores de BBDD. Se uti- Profesor Alejandro Leguizamo. MVP en SQL Server, Mentor y Director
lizará el gestor de BBDD Microsoft SQL Server. Miguel Egea. MCT en SQL Server. Miguel es Mentor y Director Comercial para Solid Quality Mentors en España y Portugal.
Audiencia de Tecnologías de Business Intelligence para Solid Quality Objetivo
Dirigido a analistas programadores, programadores, admi- Mentors en España y Portugal. El objetivo del presente seminario es el de mostrar en pro-
nistradores de BBDD (DBA) e incluso jefes de proyecto que nece- Objetivo fundidad cuáles son las características más provechosas del
siten estos conocimientos técnicos avanzados. El objetivo del presente seminario es el de mostrar a los asis- nuevo PowerPivot, tanto en su versión para Excel, como en el
tentes las mejores prácticas y trucos de optimización para el complemento para SharePoint. Conocerás la arquitectura inter-
Fecha: 7 de septiembre de 2010 na que permite a Excel trabajar con millones de filas, apren-
diseño de soluciones de Inteligencia de Negocios utilizando
tecnología Microsoft. Se mostrarán ejemplos de técnicas reales derás a escribir expresiones DAX para potenciar los informes
que facilitarán la resolución de problemas de negocio comunes. y verás cómo compartir todo eso en SharePoint 2010.
Introducción a SharePoint 2010 Audiencia
Audiencia
Profesor El seminario está dirigido a programadores y analistas de solu-
Este seminario está dirigido a profesionales con experiencia
Daniel Seara. MCT y MVP en SharePoint. Daniel es Mentor y ciones de inteligencia de negocios, principalmente en tec-
en el diseño, desarrollo y despliegue de soluciones de
Director de Formación para Solid Quality Mentors en España nologías Microsoft. También será de utilidad para usuarios de
Inteligencia de Negocios utilizando tecnología Microsoft.
y Portugal. negocio avanzados con perfil técnico.
También será de utilidad para profesionales que, teniendo expe-
Objetivo
riencia en otras plataformas, quieran obtener los conocimien-
Este seminario introduce a las nuevas características de la Fecha: 28 de septiembre de 2010
tos específicos de la plataforma Microsoft.
plataforma SharePoint 2010, tanto desde un punto de vista de
profesionales de tecnología, como de desarrolladores de solu- Fecha: 21 de septiembre de 2010
ciones.
Audiencia
• Analistas de negocio que deseen más información sobre Los seminarios son impartidos por mentores de Solid Quality Mentors y coorganizados con Aula Vulcan.
SharePoint Server 2010.
Para inscripciones y más información, vaya a http://www.dotnetmania.com/aulavulcan o contacte por telé-
• Usuarios finales que deseen aprender a usar SharePoint
Server 2010 y ser productivos con las nuevas funciona- fono al 916667477 o en formacion@netalia.es
lidades.
• Profesionales de TI que deseen conocer las nuevas carac- * El complemento a distancia consiste en 2 horas de LiveMeeting en directo con el profesor y 8 horas para la recepción de dudas
terísticas disponibles en la administración de SharePoint
Server 2010.
• Desarrolladores que deseen conocen las nuevas capaci-
dades de desarrollo en SharePoint Server 2010.

Fecha: 14 de septiembre de 2010


Plataforma Android
Introducción al desarrollo

El sistema operativo Android está basado en el kernel de Linux y ha sido desarrollado bajo el amparo de
Google. En principio, nació como un sistema operativo para móviles; hoy en día lo tenemos también en
tablets y en Google TV. Desde su presentación en noviembre de 2007, estamos actualmente en la ver-
sión 2.2 (también conocida como Froyo), una versión que quiere dar un punto de madurez hasta la siguien-
te versión: la 3.0 o Gingerbread. Pero para nosotros, como desarrolladores, la esencia de Android seguirá
siendo la misma. Este artículo pretende introducir al lector en el mundo del desarrollo para esta plata-
forma, adentrándonos en el entorno Eclipse y la programación con Java.

B uena parte del éxito de la plataforma


Android se debe a su aceptación por parte los pro-
gramadores y la venta de aplicaciones en el Android
Market, la tienda de aplicaciones de Android, en la
que se permite a los desarrolladores publicar, sin
ningún tipo de filtro, aplicaciones tanto gratuitas
como de pago. En el caso de que nuestras aplica-
ciones sean de pago, nuestra remuneración, a través
de Google Checkout, es del 80% de las ventas.

Diferentes versiones
Antes de comenzar, debemos tener claro cómo está
actualmente el mercado de los dispositivos. Goo- Figura 1. Diferentes versiones de
gle realiza estudios quincenales, como el mostra- Android a fecha 16 de junio de 2010
do en la figura 1, analizando qué versiones de
Android se están utilizando.
Debemos tener en cuenta para qué versión que- disposición de los programadores varias herra-
remos desarrollar, ya que si usamos el SDK de la mientas de desarrollo para todas las plataformas:
versión 2.1 estaríamos bloqueando el acceso a nues- Windows, Mac y Linux. Por un lado, tenemos el
tra aplicación a más de la mitad de los dispositivos Android SDK, que nos permite desarrollar con Java,
actuales. contiene los distintos emuladores, las Google API
y permite empaquetar nuestras aplicaciones.
Además, como entorno oficial tenemos a Eclipse,
Las herramientas de desarrollo y para él existe el Android Development Tools (ADT)
Plugin for Eclipse.
Otra de las cosas que debemos saber antes de Pero a mayores, tenemos la posibilidad de escri-
ponernos es de qué herramientas disponemos para bir código nativo; para ello se ha puesto a disposi-
Eugenio Estrada
trabajar con Android. El equipo de Android pone a ción de los desarrolladores el Native Development
Programador especializado en
tecnologías Microsoft y diseño de
interfaces de usuario
Toolkit (NDT). Éste está sobre todo pen- • OpenGL | ES. Esta librería está pensa- Los principales tipos de componen-
sado para juegos, ya que permite traba- da para el uso en juegos 3D. tes son los siguientes:
jar con OpenGL sin necesidad de la • SGL. La podemos usar para manejar
máquina virtual de Java, pudiendo así gráficos en 2D, ya sea para crear nues- • Activity. Al desarrollar una aplicación
tener un mejor rendimiento. tra propia interfaz o para juegos sim- para Android, al menos deberemos
ples en 2D. tener un Activity. Es el encargado de
Instalando el Android SDK • WebKit. Con él, podemos integrar el gestionar la interfaz de usuario y se apo-
motor de renderización Web que usan ya en una colección de rectángulos, lla-
Para instalar el SDK, debemos por un Safari, Chrome y el propio Android. mados View, que interactúan con el
lado tener instalado Eclipse 3.4 ó 3.5 con • Media Framework. Para poder hacer usuario.
el Java Development Kit 5 ó 6. Una vez lo uso de audio y vídeo, debemos usar • Service. Los servicios se ejecutan total-
tengamos instalado, debemos seguir los estar librería. mente en segundo plano; en nuestro
siguientes pasos: • FreeType. Con ella podremos renderi- ejemplo de reproductor de audio, será
zar textos usando diferentes fuentes. el que reproduzca el sonido. Otras apli-
1. Descargar el Android SDK para la plata-
forma que deseemos desde la dirección
http://developer.android.com/sdk, y
descomprimirlo en la carpeta que crea-
mos oportuno.
2. Instalar el ADT Plugin for Eclipse.
Para ello, debemos ir a la opción de
añadir nuevo software de Eclipse y aña-
dir el siguiente repositorio: https://
dlssl.google.com/android/eclipse.
3. Establecer la ubicación del Android
SDK en las preferencias de Eclipse, en
la nueva opción “Android". Aquí debe-
mos indicar la ubicación exacta donde
hemos descomprimido el SDK.
4. Instalar los componentes de desarrollo.
En el menú “Window" | “Android SDK
and ADV Manager", debemos instalar
los distintos paquetes de las diferentes
versiones de Android. En la opción “Avai-
lable Packages" instalaremos las dife-
rentes versiones del SDK, la documen-
tación, las Google API, las ROM de la ver- Figura 2. Arquitectura de Android
sión que instalemos para los dispositi-
vos virtuales y los distintos ejemplos.
Una plataforma basada caciones se pueden subscribir a él, si
Una vez seguidos todos los pasos en componentes conocen su interfaz, para comunicarse
anteriores, ya tendremos instaladas las con él.
herramientas necesarias para poder tra- El software de Android está basado en com- • Broadcast receivers. Estos componen-
bajar con Android. ponentes independientes que interactúan tes se ejecutan en segundo plano y reci-
entre sí. En una aplicación con audio, ten- ben datos de cambios en el sistema: lla-
Librerías del Android SDK dremos al menos dos componentes: uno mada recibida, llamada finalizada, nue-
ejecutándose en segundo plano reprodu- va posición en el GPS, etc. En el ejem-
Como podéis ver en la figura 2, el Android ciendo el audio, y otro en primer plano ges- plo del reproductor de audio, estos com-
SDK trae de serie un conjunto de librerías tionando la interfaz de usuario. Es impor- ponentes se utilizarían para pararlo en
que podemos usar en nuestras aplicaciones. tante destacar que estos componentes son caso de llamada o de batería baja. Las
Entre ellas, las más importantes son: independientes, ya que podría haber una comunicaciones se hacen mediante
aplicación de terceros que también ges- unos mensajes llamados Intent.
• SQLite. Nos permite tener una base de tione ese componente de audio en segun- • Content provider. Este componente es
datos local con la que gestionar todos do plano, o nosotros usar un componen- necesario para la compartición de datos
dotNetManía

los datos de nuestra aplicación. te que exponga un tercero. entre los distintos componentes de

37
nuestra aplicación. Debe exponer una en correspondencia con el API Level; por Es importante señalar que para todos
estructura de datos que se vaya a com- ejemplo, la versión 1.6 corresponde al los ficheros que guardemos en la carpe-
partir entre ellos. nivel 4 de la API, y la 2.1 al nivel 7. ta de recursos se nos va a crear un iden-
Pulsando el botón “Siguiente" podre- tificador único por el cual poder obtener-
mos generar un proyecto para testeo, algo lo; por ejemplo, en caso de tener un fiche-
Creando nuestra primera que queda fuera del ámbito de este artí- ro main.xml en la carpeta layout, que se
culo; en nuestro ejemplo no lo crearemos. genera por defecto, podremos acceder a
aplicación él mediante R.layout.main. Si abrimos
Para crear una aplicación para Android el fichero R.java de la carpeta gen, podre-
en Eclipse, debemos ir a “File" | “New" | Mientras Android 1.x continúe tenien- mos ver todos los identificadores gene-
“Project" y seleccionar “Android Project". do una cuota de mercado tan grande, rados.
Veremos el diálogo que se presenta en la si no necesitamos nada específico de
figura 3. alguna API posterior deberíamos desa-
El manifiesto de la aplicación
A la hora de crear un nuevo proyec- rrollar para la versión 1.5, API Level 3.
to, debemos tener en cuenta diferentes Toda aplicación de Android debe expo-
aspectos en cuanto a la nomenclatura. ner un fichero de manifiesto, AndroidMa‐
Por un lado, tenemos el Project Name, Los recursos de la aplicación nifest.xml (listado 1). Es, quizá, uno de
que es un identificador para Eclipse; de los elementos más importantes de nues-
él dependerá la carpeta en nuestro espa- La carpeta de recursos, res, es don- tro desarrollo, ya que en él es donde se
cio de trabajo (workspace). Por otra par- de debemos guardar los ficheros de solo deben especificar un montón de cosas
te, tenemos el Application Name, que lectura que nuestra aplicación deba usar. para nuestra aplicación.
será el nombre de nuestra aplicación, En la tabla 1 podemos ver qué tipos de En este fichero, por un lado, tenemos
cómo aparecerá en el dispositivo, etc. ficheros podremos guardar en las carpe- todas las configuraciones que establecimos
Luego tenemos el Package Name, que tas de recursos. al crear nuestro proyecto: package, Min SDK
se rige por los mismos criterios que los
proyectos en Java: el namespace inicial Directorio Recurso
de nuestro proyecto será com.empre-
sa.NombreProyecto. Por último, tene- anim Ficheros XML que definen animaciones.
mos la versión mínima del SDK para indi- color Ficheros XML que definen listas de colores.
carnos qué dispositivos pueden abrir
nuestra aplicación; para ello, la versión drawable Imágenes de mapa de bits (PNG, JPG o GIF) o ficheros XML
debe ser igual o mayor al build target que que definan figuras como shapes, animation drawables, color
hayamos seleccionado. Este número está drawables, etc.
layout Ficheros XML que definen la interfaz de usuario.
menu Ficheros XML que definen menús.
raw Permite almacenar ficheros arbitrarios.
values Ficheros XML que almacenan valores simples, como string,
integer y color. Existen convenios para algunos nombres de
los ficheros: arrays.xml, colors.xml, dimens.xml, strings.xml
y styles.xml.
xml Permite almacenar ficheros XML arbitrarios.

Tabla 1. Carpetas de recursos

Opcionalmente, podemos tener Version, Activity Name, etc. En principio, en


una segunda carpeta de cada una de las este fichero no deberíamos tocar nada a
anteriores terminada en -land, como por mano, ya que el ADT Plugin permite edi-
ejemplo layout-land. Si la tenemos cre- tarlo a través de una serie de diálogos, como
ada, será la que se use en caso de que se puede ver en la figura 4.
el dispositivo esté de forma horizontal La parte más importante del mani-
dotNetManía

Figura 3. Nuevo proyecto de Android (landscape). fiesto es aquella donde establecemos los

38
El elemento Action indica las accio-
<?xml version="1.0" encoding="utf‐8"?> nes disponibles para la aplicación, como
<manifest xmlns:android="http://schemas.android.com/apk/res/android" por ejemplo podrían ser: compartir, ver,
package="com.dnm.Helloworld" editar, etc.; por otro lado, están las cate-
android:versionCode="1" gorías (Category) que indicarán desde
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
dónde se van a lanzar las acciones. Por
<activity android:name=".HelloWorldActivity" ejemplo, si estuviéramos desarrollando
android:label="@string/app_name"> una aplicación para compartir vídeos,
<intent‐filter> tendríamos un Intent Filter que indique
<action android:name="android.intent.action.MAIN" /> en su Action que queremos compartir, y
<category android:name="android.intent.category.LAUNCHER" />
</intent‐filter>
en su Category indicaríamos qué datos
</activity> queremos capturar, mediante el nodo
data.
</application>
<uses‐sdk android:minSdkVersion="7" />
Permisos
</manifest>
A la hora de descargar una aplicación
en Android Market, se nos pregunta qué
Listado 1. AndroidManifest.xml recursos utiliza nuestra aplicación. Ello no
es solamente un formalismo; la aplicación
debe definir todos esos recursos que va a
utilizar y solicitar un permiso, que se mues-
tra de esa forma en el Android Market. Entre
estos permisos se encuentran algunos que
seguramente vayan a incluir la mayor par-
te de nuestras aplicaciones, como por ejem-
plo el de acceso a Internet, y otros como
poder realizar una llamada o gestionar las
cuentas del sistema operativo.

Views
Comentábamos antes que cada Acti-
vity estaba formado por uno o varios
View, que son la pieza básica para los
componentes de nuestra interfaz. Todo
componente de la interfaz de usuario debe
derivar de la clase View. Existen princi-
palmente dos grupos de controles: por
un lado, tenemos los que derivan de View‐
Group, que son los que definen el layout
de nuestra aplicación: LinearLayout, Fra‐
Figura 4. Editando las opciones del manifiesto
meLayout, RelativeLayout, etc., que se
usarán como contenedores de elemen-
tos; por otra parte, están los que no deri-
componentes de nuestra aplicación, como <action android:name= van de ViewGroup, entre los que podemos
los Activity. En las aplicaciones podemos "android.intent.action.MAIN" /> encontrar TextView, ListView, Spinner,
definir tantos Activity como queramos; Button, EditText, TimePicker, etc.
cada uno de ellos será visible como un Y por otro lado, debemos indicar que Nuestro proyecto, en la carpeta de
icono en nuestro terminal. Pero para cada esta actividad queremos que esté dispo- recursos layout, debería tener un fiche-
terminal debemos definir su Intent Filter. nible desde el menú de aplicaciones: ro main.xml que será el que "pinte" nues-
Como dijimos antes, un intent es un men- tro Activity por defecto. Como podéis ver
saje interno del sistema operativo. <category android:name= en el listado 2, debemos definir un layout,
Por un lado, debemos indicar cuál es en nuestro caso LinearLayout, y luego
dotNetManía

"android.intent.category.LAUNCHER" />
el Activity principal de la aplicación: introducimos el resto de componentes en

40
package com.dnm.Helloworld;
<?xml version="1.0" encoding="utf‐8"?>
<LinearLayout
import android.app.Activity;
import android.os.Bundle;
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
public class HelloWorldActivity extends Activity {
android:layout_width="fill_parent"
/** Called when the activity is first created. */
android:layout_height="fill_parent">
@Override
<TextView
public void onCreate(Bundle savedInstanceState) {
android:layout_width="fill_parent"
super.onCreate(savedInstanceState);
android:layout_height="wrap_content"
setContentView(R.layout.main);
android:text="@string/hello" />
}
</LinearLayout>
}

Listado 2. Interfaz de nuestra aplicación: main.xml Listado 4. HelloWorldActivity

él. En este caso tenemos un TextView, que es un con- Desde Java podemos también referirnos a un con-
trol que simplemente muestra un texto, que toma su trol y controlar sus eventos. En el listado 5 podemos ver
valor de la clave hello de los ficheros de recursos. En la cómo obtener el botón que añadimos a nuestra interfaz
carpeta de recursos values hay un fichero llamado y controlar su Click. El método findViewById nos per-
string.xml; lo que el sistema hará será buscar en todos mite obtener los View a través del id autogenerado en
los ficheros de recursos un recurso de tipo string con el fichero R.java. Y para controlar el evento debemos
la clave hello. crear un Listener para él, que le pasamos como pará-
Para añadir, por ejemplo, un simple botón a nues- metro al método setOnClickListener. Cuando ocurra
tra aplicación, debemos ponerlo debajo del TextView, el evento Click, se ejecutará el método onClick del Lis‐
como se muestra en el listado 3. tener que hayamos suministrado.

<Button Button button1 = (Button) findViewById(R.id.Button01);


android:text="helloWorld" button1.setOnClickListener(new View.OnClickListener() {
android:id="@+id/Button01" public void onClick(View v) {
android:layout_width="wrap_content" // Código a ejecutar en el evento Click
android:layout_height="wrap_content" /> }
});
Listado 3. Añadiendo un Button
Listado 5. Gestión de los eventos de nuestros componentes

Como seguramente vamos a querer controlar el even- Conclusiones


to Click del botón, debemos asignarle un id, sin el cual
no podremos referirnos a él desde el código. Resumiendo todo lo que hemos visto en este artículo:

Añadiendo lógica a nuestra aplicación • Debemos tener en cuenta para qué nivel de la API que-
remos programar, de forma de poder abarcar el mayor
A lo largo de todo el artículo hemos visto un montón mercado posible.
de cosas, pero hasta el momento no hemos hablado de • El manifiesto de la aplicación es el que indica todo lo
cómo programar nuestra aplicación. Como hemos dicho referente a ésta: qué expone, qué necesita, etc.
desde el primer momento, se programa con Java, y el • Los ficheros que necesite la aplicación deberán ser
código de nuestra aplicación, que está por defecto en la guardados en las carpetas de recursos.
carpeta src, tan solo contendrá el código de nuestro • El fichero R.java es el que sirve de puente entre los
Activity, como se puede ver en el listado 4. recursos y el código.
En el listado 4 se puede observar cómo nuestra acti- • Toda aplicación debe tener un Activity principal.
vidad deriva de Activity y lo que hace es sobrescribir el
método onCreate para definir, mediante el método set‐ Con esta introducción hemos querido abrir la puerta
ContentView, nuestra vista principal. Lo que se debe a una tecnología que ofrece una forma de programar un
pasar a este método es el id del recurso, que es auto- tanto extraña para los que leemos esta revista. Una vez
generado por Eclipse; por lo tanto, debemos usar el fiche- la puerta esté abierta, procuraremos en próximos artícu-
dotNetManía

ro R.java para obtener su valor. los abordar temas más específicos de la plataforma. t

41
/*ESTÁ EN TODAS PARTES*/

El código se utiliza para crear las cosas que nos rodean.


Prácticamente mires donde mires, ahí está. Y ofrece infinitas
posibilidades a los desarrolladores. Mediante Visual Studio 2010
podrás hacer realidad tu sueño gracias a nuevas herramientas
que cambiarán tu forma de trabajar de forma espectacular,
desde el diseño del proyecto hasta su puesta en marcha.

LIFE RUNS ON CODE.


Y TÚ, ¿QUÉ HARÍAS CON VISUAL STUDIO 2010?

Empieza en VisualStudio.com

Vous aimerez peut-être aussi