You are on page 1of 14

C# 6 y Visual Studio 2015

Los fundamentos del lenguaje

La plataforma .NET

1. Introduccin 15

2. Historia 17

3. El Common Language Runtime (CLR) 22

4. La Base Class Library (BCL) 24

5. El Dynamic Language Runtime (DLR) 25

6. Evolucin de la plataforma 26

6.1 .NET Core 27


6.2 .NET Compiler Platform: Roslyn 28
6.3 .NET en el mundo open source 28

7. Una primera aplicacin con Visual C# 29

7.1 Creacin 29
7.2 Compilacin 31
7.3 Anlisis del ensamblado 33
7.3.1 Estructura 33
7.3.2 Exploracin con ILDASM 34

Visual Studio

1. Instalacin y primera ejecucin 39

1.1 Requisitos previos 39


1.2 Ediciones de Visual Studio 40
1.2.1 Visual Studio Express 41
1.2.2 Visual Studio Community 42
1.2.3 Ediciones comerciales 42

www.ediciones-eni.com Ediciones ENI 1/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

1.3 Instalacin 43
1.4 Primera ejecucin 49

2. Descripcin de las herramientas 54


2.1 Barras de herramientas 59
2.2 Explorador de soluciones 60
2.3 Examinador de objetos 61
2.4 Explorador de servidores 62
2.5 Ventana de propiedades 65
2.6 Ventana de edicin de cdigo 68
2.6.1 Navegacin 68
2.6.2 Seguimiento de las modificaciones 68
2.6.3 Resaltar referencias 69
2.6.4 Refactorizacin 70
2.6.5 IntelliSense 72
2.6.6 Snippets 72

La organizacin de una aplicacin

1. Las soluciones 75
1.1 Presentacin 75
1.2 Creacin de una solucin 76
1.3 Organizacin 77
1.4 Acciones disponibles para una solucin 78
1.4.1 Agregar y eliminar un proyecto 78
1.4.2 Creacin de una carpeta de soluciones 79
1.4.3 Carga y descarga de un proyecto 80
1.4.4 Creacin de un archivo 81
1.4.5 Compilar la solucin 81
1.5 Configuracin de la solucin 82
1.5.1 Establecer proyectos de inicio 82
1.5.2 Dependencias del proyecto 84
1.5.3 Configuracin de anlisis de cdigo 85
1.5.4 Depurar archivos de cdigo fuente 86

www.ediciones-eni.com Ediciones ENI 2/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

1.5.5 Configuracin 87

2. Los proyectos 88
2.1 Creacin de un proyecto 88
2.2 Propiedades de un proyecto 96
2.2.1 Aplicacin 97
2.2.2 Compilar 100
2.2.3 Eventos de compilacin 103
2.2.4 Depurar 105
2.2.5 Recursos 106
2.2.6 Parmetros 107

Las bases del lenguaje

1. Introduccin 109

2. Las variables 109

2.1 Nomenclatura de las variables 110


2.2 Tipo de las variables 111
2.2.1 Tipos valor y tipos referencia 111
2.2.2 Tipos integrados 112
2.3 Declaracin de variables 116
2.4 mbito de las variables 116
2.5 Modificadores de acceso 117
2.6 La palabra clave var y la inferencia de tipo 118

3. Las constantes 119

4. Los operadores 119

4.1 Los operadores de acceso 120


4.1.1 Acceso simple: . (punto) 120
4.1.2 Acceso indexado: [ ] 120
4.1.3 Acceso con nulidad condicional: ? 120

www.ediciones-eni.com Ediciones ENI 3/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

4.2 Los operadores aritmticos 121


4.3 Los operadores de comparacin 122
4.4 Los operadores condicionales 122
4.4.1 Operador ternario: ? ... : 122
4.4.2 Operador de fusin de valor nulo: ?? 123
4.5 Los operadores lgicos 124
4.5.1 Negacin: ! 124
4.5.2 Y lgico: & 124
4.5.3 O lgico: | 124
4.5.4 O exclusivo: ^ 125
4.5.5 Y condicional: && 125
4.5.6 O condicional: || 125
4.6 Los operadores binarios 126
4.6.1 Y binario: & 126
4.6.2 O binario: | 126
4.6.3 O exclusivo: ^ 127
4.6.4 Negacin: ~ 127
4.6.5 Desplazar a la derecha: >> 127
4.6.6 Desplazar a la izquierda: << 128

5. Las estructuras de control 128

5.1 Las estructuras condicionales 128


5.1.1 if ... else 128
5.1.2 switch 129
5.2 Las estructuras de iteracin 131
5.2.1 for 131
5.2.2 while 132
5.2.3 do ... while 133
5.2.4 foreach 133
5.2.5 Controlar la ejecucin de un bucle 134
5.3 Otras estructuras 135
5.3.1 using 135
5.3.2 goto 136

6. Las funciones 137

www.ediciones-eni.com Ediciones ENI 4/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

6.1 Escritura de una funcin 137


6.2 Parmetros de funcin 139
6.3 Procedimientos 143
6.4 Sobrecargas 144

7. Los atributos 145

Programacin orientada a objetos con C#

1. Principios de la programacin orientada a objetos 147

2. Clases y estructuras 150

2.1 Clases 150


2.1.1 Declaracin 151
2.1.2 Constructor y destructor 153
2.1.3 Clases parciales 157
2.2 Estructuras 158
2.3 Creacin de un mtodo 159
2.3.1 Creacin 159
2.3.2 Mtodos parciales 161
2.3.3 Mtodos de extensin 162
2.3.4 Mtodos operadores 163
2.4 Creacin de propiedades 165
2.4.1 Lectura y escritura 165
2.4.2 Solo lectura 166
2.4.3 Solo escritura 167
2.4.4 Propiedades automticas 167
2.4.5 Inicializacin de propiedades automticas 168
2.4.6 Propiedades automticas de solo lectura 168
2.4.7 Propiedades indexadas 169
2.5 Miembros estticos 170
2.6 Uso de clases y estructuras 171
2.6.1 Instanciacin 171
2.6.2 Inicializacin 172

www.ediciones-eni.com Ediciones ENI 5/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

2.6.3 Tipos annimos 173

3. Los espacios de nombres 176


3.1 Nomenclatura 176
3.2 using 177

4. La herencia 179

4.1 Implementacin 179


4.2 Las palabras clave this y base 180
4.3 Sobrecarga y ocultacin 182
4.3.1 Sobrecarga de mtodos 182
4.3.2 Ocultacin de mtodos 183
4.3.3 Diferencias entre sobrecarga y ocultacin 183
4.4 Imponer o prohibir la herencia 186
4.5 La conversin de tipo 187

5. Las interfaces 190

5.1 Creacin 190


5.2 Uso 191
5.2.1 Implementacin implcita 192
5.2.2 Implementacin explcita 194

6. Las enumeraciones 196

7. Los delegados 196

7.1 Creacin 197


7.2 Uso 197
7.3 Expresiones lambda 198

8. Los eventos 199

8.1 Declaracin y produccin 199


8.2 Gestin de los eventos 201

9. Los genricos 202

www.ediciones-eni.com Ediciones ENI 6/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

9.1 Clases 203


9.1.1 Definicin de una clase genrica 203
9.1.2 Uso de una clase genrica 204
9.2 Interfaces 204
9.2.1 Definicin de una interfaz genrica 204
9.2.2 Uso de una interfaz genrica 205
9.3 Restricciones 207
9.4 Mtodos 210
9.4.1 Definicin de un mtodo genrico 210
9.4.2 Uso de un mtodo genrico 211
9.5 Eventos y delegados 211

10. Las colecciones 213

10.1 Tipos existentes 213


10.1.1 Array 214
10.1.2 ArrayList y List<T> 214
10.1.3 Hashtable y Dictionary<TKey, TValue> 218
10.1.4 Stack y Stack<T> 221
10.1.5 Queue y Queue<T> 221
10.2 Seleccionar un tipo de coleccin 222

11. Programacin dinmica 223

12. Programacin asncrona 225


12.1 Los objetos Task 225
12.2 Escribir cdigo asncrono con async y await 228

Depuracin y gestin de errores

1. Los distintos tipos de errores 231


1.1 Errores de compilacin 231
1.2 Errores de ejecucin 233

www.ediciones-eni.com Ediciones ENI 7/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

2. Uso de excepciones 234


2.1 Creacin y generacin de excepciones 234
2.1.1 La clase Exception 234
2.1.2 La palabra clave throw 235
2.1.3 Excepciones especializadas 235
2.2 Gestionar las excepciones 236
2.2.1 La estructura try ... catch 237
2.2.2 Los filtros de excepcin 239
2.2.3 El bloque finally 240

3. Las herramientas proporcionadas por Visual Studio 242


3.1 Control de la ejecucin 242
3.1.1 Arranque 243
3.1.2 Detencin 244
3.1.3 Pausa 244
3.1.4 Reanudar 245
3.2 Puntos de interrupcin 245
3.3 Visualizar el contenido de las variables 252
3.3.1 DataTips 252
3.3.2 Ventanas de inspeccin 253
3.3.3 Ventana de inspeccin rpida 254
3.3.4 Ventana de variables locales 256
3.4 Compilacin condicional 256

Desarrollo de aplicaciones Windows

1. Presentacin de WPF 259

1.1 Estructura de una aplicacin WPF 260


1.2 XAML 261
1.2.1 Plantillas 263
1.2.2 Espacios de nombres 264
1.3 Contexto de datos y binding 265

www.ediciones-eni.com Ediciones ENI 8/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

2. Uso de controles 269


2.1 Agregar controles 269
2.2 Posicin y dimensionamiento de controles 273
2.3 Agregar un controlador de eventos a un control 276

3. Los principales controles 278

3.1 Controles de ventanas 279


3.1.1 Window 279
3.1.2 NavigationWindow 282
3.2 Controles de diseo 284
3.2.1 Grid 284
3.2.2 StackPanel 287
3.2.3 DockPanel 287
3.2.4 WrapPanel 289
3.2.5 Canvas 291
3.3 Controles de representacin de datos 292
3.3.1 TextBlock 292
3.3.2 Label 293
3.3.3 Image 294
3.3.4 ScrollViewer 295
3.3.5 ItemsControl 296
3.3.6 StatusBar 299
3.3.7 ToolTip 300
3.4 Controles de edicin de texto 301
3.4.1 TextBox 301
3.4.2 RichTextBox 301
3.4.3 PasswordBox 303
3.5 Controles de seleccin 304
3.5.1 RadioButton 304
3.5.2 CheckBox 305
3.5.3 ComboBox 305
3.5.4 ListBox 306
3.5.5 ListView 307
3.5.6 TreeView 310

www.ediciones-eni.com Ediciones ENI 9/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

3.5.7 Slider 315


3.5.8 Calendar 315
3.5.9 DatePicker 316
3.6 Controles de accin 316
3.6.1 Button 317
3.6.2 Menu 317
3.6.3 ContextMenu 320
3.6.4 ToolBar 320

4. Interacciones de teclado y de ratn 322

4.1 Eventos de teclado 322


4.2 Eventos de ratn 324
4.3 Arrastrar y colocar 326

5. Ir ms all con WPF 329


5.1 Introduccin al uso de Blend 330
5.1.1 La interfaz 330
5.1.2 Agregar y modificar controles visuales 338
5.2 Introduccin a MVVM 340
5.2.1 Presentacin 341
5.2.2 Las interfaces INotifyPropertyChanged e INotifyCollectionChanged 341
5.2.3 Comandos 342
5.2.4 Implementacin 343

Acceso a datos

1. Principios de una base de datos 359


1.1 Terminologa 359
1.2 El lenguaje SQL 360
1.2.1 Bsqueda de registros 361
1.2.2 Agregar registros 363
1.2.3 Actualizacin de informacin 363
1.2.4 Eliminar informacin 364

www.ediciones-eni.com Ediciones ENI 10/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

2. ADO.NET 364
2.1 Presentacin 364
2.2 Los proveedores de datos 365
2.2.1 SQL Server 366
2.2.2 Oracle 366
2.2.3 OLE DB 367
2.2.4 ODBC 367

3. Utilizar ADO.NET en modo conectado 368

3.1 Conexin a una base de datos 368


3.1.1 Cadenas de conexin 368
3.1.2 Pool de conexiones 371
3.1.3 Gestin de la conexin 373
3.2 Creacin y ejecucin de comandos 375
3.2.1 Definicin y creacin de un comando 375
3.2.2 Seleccin de datos 376
3.2.3 Acciones sobre los datos 377
3.2.4 Parametrizacin de un comando 378
3.2.5 Ejecucin de procedimientos almacenados 381

4. Utilizar ADO.NET en modo desconectado 382


4.1 DataSet y DataTable 383
4.1.1 Descripcin 383
4.1.2 Llenar un DataSet a partir de una base de datos 384
4.1.3 Llenar un DataSet sin base de datos 387
4.2 Manipulacin de datos sin conexin 390
4.2.1 Lectura de datos 390
4.2.2 Creacin de restricciones 391
4.2.3 Relaciones entre DataTables 394
4.2.4 Estado y versiones de un DataRow 396
4.2.5 Modificacin de datos 398
4.2.6 Eliminacin de datos 399
4.2.7 Validar o anular las modificaciones 399
4.2.8 Filtrado y ordenacin mediante un DataView 400

www.ediciones-eni.com Ediciones ENI 11/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

4.2.9 Bsqueda de datos 403


4.3 Validar las modificaciones en la base de datos 405
4.3.1 Generar los comandos de actualizacin automticamente 406
4.3.2 Comandos de actualizacin personalizados 408
4.3.3 Gestin de los accesos concurrentes 408

5. Utilizar las transacciones 411

LINQ

1. Presentacin de LINQ 415

2. Sintaxis 416

2.1 Una primera consulta LINQ 419


2.2 Los operadores de consulta 421
2.2.1 Proyeccin 422
2.2.2 Filtrado 424
2.2.3 Ordenacin 425
2.2.4 Particionado 427
2.2.5 Unin y agrupacin 428
2.2.6 Agregacin 431

3. LINQ to SQL 432


3.1 El mapeo objeto-relacional 433
3.1.1 Uso de SQLMetal 433
3.1.2 Uso del diseador objeto/relacional 440
3.2 Uso de LINQ to SQL 449
3.2.1 Recuperacin de datos 449
3.2.2 Actualizacin de datos 451
3.2.3 Gestin de conflictos 453

XML

www.ediciones-eni.com Ediciones ENI 12/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

1. Presentacin 457

2. Estructura de un archivo XML 458


2.1 Componentes de un documento XML 458
2.2 Documento bien formado y documento vlido 462

3. Manipular un documento XML 463

3.1 Uso de DOM 464


3.2 Uso de XPath 469
3.3 Uso de LINQ to XML 472

Despliegue

1. Introduccin 477

2. Windows Installer 478

2.1 Instalacin de InstallShield Limited Edition 479


2.2 Creacin de un proyecto de instalacin 481
2.2.1 Informacin relativa a la aplicacin 482
2.2.2 Requisitos previos de instalacin 483
2.2.3 Archivos de la aplicacin 484
2.2.4 Accesos directos 487
2.2.5 Valores del registro 488
2.2.6 Cuadros de dilogo 489

3. ClickOnce 490
3.1 La tecnologa ClickOnce 490
3.1.1 Principios de funcionamiento 491
3.1.2 Mtodos de despliegue disponibles 491
3.1.3 Actualizacin de aplicaciones con ClickOnce 493
3.2 La publicacin ClickOnce 494

www.ediciones-eni.com Ediciones ENI 13/14


C# 6 y Visual Studio 2015
Los fundamentos del lenguaje

Glosario

www.ediciones-eni.com Ediciones ENI 14/14

You might also like