Visual C# 2012 Einstieg und Praxis

29 mm Teil 1: Grundlagen der Programmierung • C# und das .NET Framework • Visual Studio • Prozedurale und objektorientierte Programmierung Teil 2: Fo...
Author: Jörn Kästner
3 downloads 0 Views 1MB Size
29 mm

Teil 1: Grundlagen der Programmierung • C# und das .NET Framework • Visual Studio • Prozedurale und objektorientierte Programmierung Teil 2: Fortgeschrittene Programmiertechniken • Generics, Delegaten, Ereignisse • Exceptionhandling • Lambda-Kalkül, anonyme Methoden, Expression Trees • Ressourcenmanagement • Dynamische Objekte • Collections • LINQ • Dateien und Verzeichnisse • Unit Tests mit NUnit und RhinoMock Teil 3: Oberflächenprogrammierung und Datenbanken • Konsolenanwendungen • Windows Presentation Foundation • Zugriff auf Datenbanken mit ADO.NET Teil 4: Parallele Programmierung und Windows Store Apps • Threads • Task Parallel Library • Windows Store Apps

Die Programmiersprache C# bietet sowohl unerfahrenen Programmierern als auch Umsteigern einen einfachen Einstieg in die Welt der Windows-Programmierung. Dabei gibt Microsoft dem Entwickler nicht nur die Sprache selbst, sondern mit der Entwicklungsumgebung Visual Studio und dem .NET Framework auch das richtige Werkzeug an die Hand.

Martel

ISBN 978-3-8266-9195-9

Christopher Martel vermittelt in diesem Buch einen Einstieg in Visual C# und das .NET Framework. Anhand verschiedener Beispiele erlernen Sie die Konzepte von C# sowie das Erzeugen einfacher Oberflächen und die Datenbankanbindung. Darüber hinaus geht der Autor auch auf die parallele Programmierung und auf das Erstellen von Windows Store Apps ein. Anhand von Übungsaufgaben am Ende der Kapitel kann der Leser das Gelernte überprüfen und festigen. Die Lösungen, Beispielprojekte, sowie die Express-Versionen von Visual Studio 2012 stehen auf der beiliegenden Begleit-DVD zur Verfügung.

ISBN 978-3-8266-5936-2

Dieses Buch ist vor allem für Ein- und Umsteiger in die Windows-Programmierung mit C# gedacht. Dennoch können auch erfahrene Entwickler Informationen für den Praxisalltag mitnehmen. Auf der DVD: • Express-Versionen von Visual Studio 2012 • Sourcecode zu den Beispielen und Übungen • Weitere Kapitel zu Windows Forms und GDI+

Christopher Martel

ISBN 978-3-8266-9240-6

Teil 5: Praxisbeispiel • Fallbeispiel: Filmausleihe

Einstieg und Praxis

Aus dem Inhalt:

Außerdem bei mitp:

Visual C# 2012

Oberflächenprogrammierung mit WPF, Datenabfrage mit LINQ, Datenbankanbindung mit SQL Server 2012 Express und ADO.NET Testen mithilfe von Unit Tests Parallele und asynchrone Programmierung mit Threads und der Task Parallel Library Windows Store App Programmierung

Auf der DVD: Express-Versionen von Visual Studio 2012

Visual C# 2012 Einstieg und Praxis

(D) € 24,95

ISBN ISBN978-3-8266-9440-0 978-3-8266-9440-0

978-3-8266-9440-0_umschlag_K3.indd Alle Seiten

Inklusive DVD-ROM

Arduino Praxiseinstieg – Softcover 170 x 240 mm – Reihe: Programmierung

11/6/2012 1:12:28 PM

Stichwortverzeichnis IsNull 297 IsTrue 297 That 297 Throws 299

A Abfrageausdruck 231 from 231 in 231 select 231 Abstrakte Klasse abstract 106 ACE 276 ACL 276 ADO 397 ADO.NET Entity Framework 419 O/R-Mapper 419 AggregateException 452 Anonyme Methode 149 Anonymer Typ 232 Ansichtstypen Filled 489 FullScreenLandscape 489 FullScreenPortrait 489 Snapped 489 App 336 Application 337 DispatcherUnhandledException 336 StartupUri 336 App.xaml 329 AppBar 465, 483 AutomationProperties.Name 484 BottomAppBar 484 TopAppBar 485 ApplicationView 489 ApplicationViewState 490 TryUnsnap 493 Array 196 IndexOutOfRangeException 198 Length 198 mehrdimensionale Arrays 202 as 112 Assembly 25 AssemblyInfo 32 Assert 296 AreEqual 297 IsEmpty 297 IsFalse 297

AST 247 Abstract Syntax Tree 247 async 455 Attached Event 336 Attached Property 332, 334 RegisterAttached 335 await 455

B Background 339 BackgroundWorker 347, 443 System.ComponentModel 443 Befehlszeilenargumente 309 BeginAnimation 384 Benannte Parameter 86 Bezeichner 41 Binärdatei 283 BinaryReader 283 BinaryWriter 283 PeekChar 284 Bindungsrichtung 371 Mode 371 BitmapEffect 382 BlurBitmapEffect 381 Border 345 BorderBrush 345 BorderThickness 345 CornerRadius 345 Boxing 69, 141 Button 343

C C# 21 Callback 149 CancellationToken 451 CancellationTokenSource 451 Canvas 352 Canvas.ZIndex 352 CheckBox 344

563 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

checked 47 CLS 24 CLSCompliant 24 Common Language Specification 24 Codeblock 57 Collections 193 ArrayList 221 BitArray 221 Collection-Initialisierer 205 Dictionary 210, 211 Hashtable 222 ICollection 194 IDictionary 194 IEnumerable 194, 214 IList 194 LinkedList 222 List 206 Queue 222 ReadOnlyCollection 202 SortedDictionary 222 SortedList 222 Stack 221 System.Collections 193 System.Collections.Generic 193 COM 37 Component Object Model 37 Common Language Runtime 22, 24, 25 CLR 24, 25 Compiler 33 ConcurrentBag 462 ConcurrentQueue 461 ConcurrentStack 460 Console 307, 309 Farbangabe 318 Main 307 Program 307 Console.ReadKey(true) 33 Console.ReadLine() 50 Console.WriteLine 33 const 47 Constraint 412 Constraints where 144 ContentControl 360 ContentPresenter 360 ContextMenu 130 Contracts 465, 498 Convert 46 CTS 24 Common Type System 24

D Das Application Manifest 470 Manifest Designer 470 Package.appxmanifest 470 DataAdapter 408 DataColumn 411 DataContext 369 DataGridView 426 DataRelation 412 ChildRelations 413 ParentRelations 413 DataRow 411 DataSet 408 DataRowState 408 DataTableReader 409 System.Data 409 typisiertes DataSet 417 DataTable 411 Columns 411 Rows 411 DataView 415 Find 415 RowFilter 416 Sort 415 Datei 262 Copy 268 CopyTo 268 Create 267 Delete 268 File 263 FileAccess 265 FileAttributes 270 FileInfo 263 FileMode 265 Move 268 MoveTo 268 Datenbank Constraint 395 CRUD 395 Fremdschlüssel 394 NO SQL 393 Primärschlüssel 394 Datenbank-Explorer 398 Datenkonsument 397 Datenprovider 397 Datentyp 41 bool 43 byte 42 char 43 decimal 43 double 43 float 42

564 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

int 42 long 42 object 43 primitiver Datentyp 41, 42 sbyte 42 short 42 uint 42 ulong 42 ushort 42 Debuggen 309 Debugger 33 default 246 Defensive Programmierung 112 Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301 Dependency Property 332 DependencyObject 333 GetValue 333 SetValue 333 Deserialisierung 285 Deserialize 285 Designer 34 Destruktor 184 DialogResult 286 Dictionary 196 Die Windows Runtime 465 DLR 187 Dynamic Language Runtime 187 DockPanel 351 Dock 351 DoubleAnimation 383 DrawingBrush 339 DriveInfo 274 DriveType 275 DropShadowBitmapEffect 381 dynamic 188

E Eager Evaluation 233 Effect siehe BitmapEffect Eigenschaften 92 automatische Eigenschaften 94 Properties 92 Eigenschaften-Dialog 35

Ein- und Ausgabe über Konsolen Read 319 ReadLine 319 Write 319 WriteLine 319 ElementName 370 #endregion 116 Entity SQL 419 EntityConnection 424 Entwicklungsumgebung 27 Eclipse 27 SharpDevelop 27 Visual C# 2012 Express 28 Visual Studio 27 Entwurfsmuster 154 Observermuster 154 Enumeration 47 enum 47 Equals 178 IEquatable 179 Ereignis 155 event 155 EventArgs 155 EventHandler 155 Eventhandler 154 Ereignis siehe Event Ereignisbehandlung 36 Erweiterungsmethode 175 this 175 Escapesequenz 172 EventTrigger 385 Exception 46, 160, 163, 165 catch 161 DivideByZeroException 161 Exceptionhandling siehe Ausnahme FileNotFoundException 160 finally 164 InnerException 163 Message 163 NullReferenceException 161 StackTrace 163 throw 164 try 161 Explizite Implementierung 110 Expression BinaryExpression 248 ConstantExpression 248 LambdaExpression 248 MethodCallExpression 248 ParameterExpression 248 Expression Tree 247 Expression 247

565 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

F F# 152 Farbangabe ConsoleColor 318 FIFO 222 FileShare 278 FileSystemWatcher 272 EnableRaisingEvents 272 NotifyFilters 273 Flyout 486 FocusManager 135 foreach 218 Foreground 337 Frame 479 GoBack 479 Navigate 479 NavigationCacheMode 483 NavigationEventArgs 481 NavigationMode 482 Navigationsstack 481 OnNavigatedFrom 481 OnNavigatedTo 481 Parameter 482 SourcePageType 482 Fremdschlüssel referentielle Integrität 394

G Garbage Collection 68, 183 Finalize 183 GC 183 SuppressFinalize 183 Generics 139, 148 Constraints 144 generische Klasse 143 generische Methode 143 Typsicherheit 142 Grid 353 ColumnDefinitions 353 Grid.Column 354 Grid.ColumnSpan 354 Grid.Row 354 Grid.RowSpan 354 GridLength 355 RowDefinitions 353 GridView 427 Guid 404

H Handle 183 IntPtr 183

Heap 69 HorizontalAlignment 359 HorizontalContentAlignment 360

I IComparable 180 CompareTwo 180 IComparer 181 IDisposable 183 Dispose 183 Dispose-Pattern 185 IEnumerator 215 Current 215 ildasm 25 Image 346 Source 346 ImageBrush 339 immutable 69 Include 424 Indexer 203 InitializeComponent 132 INotifyPropertyChanged 372 UpdateSourceTrigger 373 Instanz 82 IntelliSense 40, 158 Interface 107 IOException 257, 263 IProducerConsumerCollection 459 IronPython 187 IronRuby 187 is 111 IValueConverter 374

J JIT 22 Just-in-Time-Compiler 22

K Kapselung 72 Klasse 72 abstrakte Klasse 106 Basiskonstruktor 102 class 72 Member 72 static 95 statische Klasse 96 statischer Konstruktor 97 versiegelte Klasse 111 Klassenbibliothek 37 .dll 37 Klassendiagramm 99

566 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

Kommentare 39 einzeilige Kommentare 39 mehrzeilige Kommentare 39 Xml-Kommentare 40 Komprimieren 290 CompressionMode 290 GZipStream 290 Konsolenanwendung 31 Konstruktor 76 Konstruktorverkettung 79 Standardkonstruktor 76 Kontravarianz 205 Kontrollstrukturen 56 break 60 case 60 default 60 else 56 else if 58 if 56 switch 60 Kovarianz 204

L Label 340 Content 340 Lambda-Ausdrücke 150 Ausdruckslambda 150 Lambda-Kalkül 152 Lazy Evaluation 233 Lazy Loading 420 LIFO 221 LinearGradientBrush 338 LINQ 152, 215, 229 FirstOrDefault 245 Language Integrated Query 229 let 246 LINQ to Entities 231 LINQ to Objects 231 LINQ to SQL 231 LINQ to XML 231 OfType 244 Select 243 SelectMany 243 Where 242 LINQ to Entities 419 LINQ to SQL 420 List 196 Livekachel CreateTileUpdaterForApplication 495 GetTemplateContent 494 Tile 493 TileNotification 495

TileTemplateType 494 TileUpdateManager 494 Livekacheln 465 Logical Tree 327

M Main 32 Managed 24 Manifest 25 Margin 358 Math 96 Memory Leak 183 Menu 127 Header 128 MenuItem 128 MessageBox 36 Methode 83 Methodenparameter 86 return 85 überladene Methode 89 void 84 Monitor 443 Mono 22 MSIL 22 Microsoft Intermediate Language Code 22 Multiparadigmensprache 21, 152

N Namensraum 112 global 116 Namensraum-Alias 115 Namensraum-Alias-Qualifizierer 116 Namespace 112 Navigationseigenschaft 423 Navigationsmuster 477 Flaches Muster 478 Hierarchisches Muster 477 .NET 22 .NET Framework 23 .NET for Windows Store apps 475 new 103, 147 null 70, 112 Nullable 70 NUnit 293 ExpectedException 299 GUI-Runner 297 JUnit 294 nunit.framework.dll 295 SetUp 295 TearDown 295 Test 296 TestCase 298

567 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

TestFixture 295 Unit Testing 293

O Object 98 ToString 98 ObjectDataProvider 376 Objektinitialisierer 95 Objektkatalog 184 Objektkontext 420 ObservableCollection 373 Odbc 396 OleDb 396 Open-Closed-Prinzip 99 OCP 99 OpenFileDialog 286 Operatoren 49 arithmetische Operatoren 49 bitweise Operatoren 55 Dekrement 51 Inkrement 51 logische Operatoren 53 Postfix-Dekrement-Operator 51 Postfix-Inkrement-Operator 51 Präfix-Dekrement-Operator 51 Präfix-Inkrement-Operator 51 Rangfolge 55 ternärer Operator 59 Zuweisungsoperator 52 Operatorenüberladung 91 optional 77 OracleClient 396 out 89 OverflowException 47 override 98, 104, 107

P Padding 358 Page 475 Parallel 453 Invoke 454 ParallelLoopResult 454 Parallele Programmierung 439 Producer-Comsumer-Problem 440 Race Conditions 440 ParameterDirection 406 Parse 46 Partielle Klasse 75 partial 75 PasswordBox Password 342 PasswordChar 342 PasswordBox siehe TextBox

Path 279 PLINQ AsOrdered 457 AsSequential 458 ForAll 459 PLINQ 457 Polymorphie 104 Prism 361 Program 32 ProgressBar 347 Projekt-Explorer 113 Projektmappen-Explorer 31 Properties 31

Q Qualifizierer 80

R RadialGradientBrush 338 RadioButton 344 readonly 74 Laufzeitkonstante 74 ref 88 Refactoring 75 ReferenceEquals 179 Reflector 25 #region 116 Remove 426 RepeatButton 345 Resources 363 ResourceDictionary 363 RhinoMock 302 MockRepository 303 RoutedEvent 335

S Sandcastle 40 SaveChanges 425 SaveFileDialog 288 Schleifen 61 continue 62 do/while 63 Endlosschleifen 63 for 61 foreach 64 while 63 ScrollViewer 357 SecurityException 257 Serialisierung 285 BinaryFormatter 285 Serializable 285 Serialize 285

568 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

Simulator 476 SolidColorBrush 338 Solution 30 Sort 181 SQL Server 2012 Express 393 SqlClient 396 SqlCommand 403 ExecuteNonQuery 403 ExecuteReader 403 SqlCommandBuilder 411 SqlConnection 401 ConnectionString 402 SqlConnectionStringBuilder 402 SqlDataAdapter 409 SqlDataReader 403, 406 CommandBehavior 406 SqlParameter 405 Stack 69 StackPanel 349 Orientation 349 Standardabfrageoperatoren 241 Stored Procedure 405 CommandType 405 Storyboard 384 BeginStoryboard 385 Stream 280 CryptoStream 281 FileStream 280 GZipStream 281 IDisposable 281 MemoryStream 281 NetworkStream 281 StreamReader 280 StreamWriter 280 String 166 Format 170 ToString 170 StringBuilder 166, 173 Struktur 80 Struct 80 Style 361 DynamicResource siehe StaticResource expliziter Style 363 StaticResource 362 System.IO 256

T TableDataReader 413 Task 449 ContinueWith 451 System.Threading.Tasks 449 TaskCreationOptions 449

TaskFactory 449 TaskStatus 453 Wait 450 WaitAll 450 WaitAny 450 Task Parallel Library (TPL) 448 Work-Stealing 448 Tastaturabfrage 320 ConsoleKeyInfo 320 ConsoleModifiers 320 ReadKey 320 Template 365 ControlTemplate 365 DataTemplate 365, 368 ItemTemplate 365, 367 TemplateBinding 366 Test Driven Development (TDD) 298 TestCase Result 298 TextBlock siehe TextBox TextBox 341 Text 341 TextWrapping 341 Textdatei 281 ReadAllText 282 ReadLine 282 ReadToEnd 282 StreamReader 281 StreamWriter 281 Write 282 WriteLine 282 this 78 Thread 441 Deadlock 442 Join 442 ManagedThreadId 442 ParameterizedThreadStart 442 System.Threading 441 Thread.Sleep() 447 ThreadPool 443 QueueUserWorkItem 443 ToggleButton 345 Tombstone-Modell 465, 496 Resuming 497 Suspended 496 Suspending 497 ToolTip 348 Transaction 408 BeginTransaction 407 Transform 377 LayoutTransform 377 RenderTransform 377

569 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

RenderTransformOrigin 377 RotateTransform 379 ScaleTransform 380 SkewTransform 379 TransformGroup 380 TranslateTransform 378 Trigger 364 EventTrigger 365 MultiTrigger 364 TryParse 89 Typkonvertierung 44 explizite Typkonvertierung 45 implizite Typkonvertierung 44 Typsystem 67 Referenztypen 67 ValueType 68 Wertetypen 68

U Unboxing 69, 141 UniformGrid siehe Grid Unmanaged 24 using-Block 186

V ValidationRule 376 var 49 Typinferenz 49, 151 Variable 41, 44 Verbindungsoperator 71 Vererbung 98 base 102 Basisklasse 99 Unterklasse 99 virtuelle Methode 104 Vergleichsoperator 178 Verschlüsseln 288 CryptoStream 289 Decrypt 289 DES 289 Encrypt 289 ICryptoTransform 289 Versiegelte Klasse sealed 111 VerticalAlignment 359 VerticalContentAlignment 360 Verweise 31, 37 Verzeichnis 256 CreateDirectory 259 CreateSubdirectory 259 Delete 259 Directory 256

DirectoryInfo 256 GetCurrentDirectory 261 GetDirectories 261 Move 260 MoveTo 260 SetCurrentDirectory 261 ViewBox 357 Stretch 357 StretchDirection 357 virtual 103 Visibility 340 Visual Tree 327 VisualBrush 339 VisualStateManager 465, 491 GoToState 493 ViewStateChanged 493 VisualState 491 VisualStateGroup 491 Visual-Studio-Vorlagen Geteilte App 469 Leere App 469 Raster-App 469

W WCF 286 Werkzeugkasten 34 Window 133, 330 ClassModifier 331 Close 133 FieldModifier 332 Windows Loader 25 Windows Presentation Foundation 34 Windows Runtime 466 WinRT 466 Windows Store Apps 465 WPF 34, 325 MVVM 373 Windows Presentation Foundation 325,

326 WrapPanel 350

X XAML 326 XDocument 251 Element 251 XElement 251 XmlDataProvider 376

Y yield 219 yield break 220 yield return 220

570 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440

Stichwortverzeichnis

Z Zugriffsberechtigung 276 AuthorizationRuleCollection 277 DirectorySecurity 276 FileAccess 278 FileSecurity 276 FileSystemAccessRule 276 GetAccessControl 276

SetAccessControl 276 System.Security.AccessControl 276 Zugriffsmodifizierer 72 internal 73 internal protected 73 private 73 protected 73 public 73

571 © des Titels »Visual C# 2012 - Einstieg und Praxis« (ISBN 978-3-8266-9440-0) 2012 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9440