10
Christopher Martel Visual C# 2012 Einstieg und Praxis Inklusive DVD-ROM Auf der DVD: Express-Versionen von Visual Studio 2012

Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Christopher Martel

Visual C# 2012Einstieg und Praxis

Außerdem bei mitp:

Aus dem Inhalt:

Teil 1: Grundlagen der Programmierung• C# und das .NET Framework• Visual Studio• Prozedurale und objekt-

orientierte Programmie-rung

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 ächenprogram-mierung und Datenbanken• Konsolenanwendungen• Windows Presentation

Foundation• Zugriff auf Datenbanken

mit ADO.NET

Teil 4: Parallele Program-mierung und Windows Store Apps• Threads• Task Parallel Library• Windows Store Apps

Teil 5: Praxisbeispiel• Fallbeispiel: Filmausleihe

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 Spra-che selbst, sondern mit der Entwicklungsumgebung Visual Studio und dem .NET Framework auch das richtige Werkzeug an die Hand.

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.

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+

ISBN 978-3-8266-9195-9

(D) €

24

,95

Oberfl ächenprogrammierung mit WPF, Datenabfrage mit LINQ, Datenbankanbindung mit SQL Server 2012 Express und ADO.NETTesten mithilfe von Unit TestsParallele und asynchrone Programmierung mit Threads und der Task Parallel LibraryWindows Store App Programmierung

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

Mar

tel

Visu

al C

# 20

12Ei

nstie

g un

d Pr

axis

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

29 mm

Inklusive DVD-ROM

ISBN 978-3-8266-5936-2

ISBN 978-3-8266-9240-6

Auf der DVD: Express-Versionen von Visual Studio

2012

978-3-8266-9440-0_umschlag_K3.indd Alle Seiten 11/6/2012 1:12:28 PM

Page 2: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

563

Stichwortverzeichnis

AAbfrageausdruck 231

from 231in 231select 231

Abstrakte Klasseabstract 106

ACE 276ACL 276ADO 397ADO.NET Entity Framework 419

O/R-Mapper 419AggregateException 452Anonyme Methode 149Anonymer Typ 232Ansichtstypen

Filled 489FullScreenLandscape 489FullScreenPortrait 489Snapped 489

App 336Application 337DispatcherUnhandledException 336StartupUri 336

App.xaml 329AppBar 465, 483

AutomationProperties.Name 484BottomAppBar 484TopAppBar 485

ApplicationView 489ApplicationViewState 490TryUnsnap 493

Array 196IndexOutOfRangeException 198Length 198mehrdimensionale Arrays 202

as 112Assembly 25AssemblyInfo 32Assert 296

AreEqual 297IsEmpty 297IsFalse 297

IsNull 297IsTrue 297That 297Throws 299

AST 247Abstract Syntax Tree 247

async 455Attached Event 336Attached Property 332, 334

RegisterAttached 335await 455

BBackground 339BackgroundWorker 347, 443

System.ComponentModel 443Befehlszeilenargumente 309BeginAnimation 384Benannte Parameter 86Bezeichner 41Binärdatei 283

BinaryReader 283BinaryWriter 283PeekChar 284

Bindungsrichtung 371Mode 371

BitmapEffect 382BlurBitmapEffect 381Border 345

BorderBrush 345BorderThickness 345CornerRadius 345

Boxing 69, 141Button 343

CC# 21Callback 149CancellationToken 451

CancellationTokenSource 451Canvas 352

Canvas.ZIndex 352CheckBox 344

Page 3: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

564

checked 47CLS 24

CLSCompliant 24Common Language Specification 24

Codeblock 57Collections 193

ArrayList 221BitArray 221Collection-Initialisierer 205Dictionary 210, 211Hashtable 222ICollection 194IDictionary 194IEnumerable 194, 214IList 194LinkedList 222List 206Queue 222ReadOnlyCollection 202SortedDictionary 222SortedList 222Stack 221System.Collections 193System.Collections.Generic 193

COM 37Component Object Model 37

Common Language Runtime 22, 24, 25CLR 24, 25

Compiler 33ConcurrentBag 462ConcurrentQueue 461ConcurrentStack 460Console 307, 309

Farbangabe 318Main 307Program 307

Console.ReadKey(true) 33Console.ReadLine() 50Console.WriteLine 33const 47Constraint 412Constraints

where 144ContentControl 360ContentPresenter 360ContextMenu 130Contracts 465, 498Convert 46CTS 24

Common Type System 24

DDas Application Manifest 470

Manifest Designer 470Package.appxmanifest 470

DataAdapter 408DataColumn 411DataContext 369DataGridView 426DataRelation 412

ChildRelations 413ParentRelations 413

DataRow 411DataSet 408

DataRowState 408DataTableReader 409System.Data 409typisiertes DataSet 417

DataTable 411Columns 411Rows 411

DataView 415Find 415RowFilter 416Sort 415

Datei 262Copy 268CopyTo 268Create 267Delete 268File 263FileAccess 265FileAttributes 270FileInfo 263FileMode 265Move 268MoveTo 268

DatenbankConstraint 395CRUD 395Fremdschlüssel 394NO SQL 393Primärschlüssel 394

Datenbank-Explorer 398Datenkonsument 397Datenprovider 397Datentyp 41

bool 43byte 42char 43decimal 43double 43float 42

Page 4: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

565

int 42long 42object 43primitiver Datentyp 41, 42sbyte 42short 42uint 42ulong 42ushort 42

Debuggen 309Debugger 33default 246Defensive Programmierung 112Delegate 145

Action 153Comparison 154delegate 148Func 153Predicate 153

Dependency Injection 300Mocks 301Stubs 301

Dependency Property 332DependencyObject 333GetValue 333SetValue 333

Deserialisierung 285Deserialize 285

Designer 34Destruktor 184DialogResult 286Dictionary 196Die Windows Runtime 465DLR 187

Dynamic Language Runtime 187DockPanel 351

Dock 351DoubleAnimation 383DrawingBrush 339DriveInfo 274

DriveType 275DropShadowBitmapEffect 381dynamic 188

EEager Evaluation 233Effect siehe BitmapEffectEigenschaften 92

automatische Eigenschaften 94Properties 92

Eigenschaften-Dialog 35

Ein- und Ausgabe über KonsolenRead 319ReadLine 319Write 319WriteLine 319

ElementName 370#endregion 116Entity SQL 419EntityConnection 424Entwicklungsumgebung 27

Eclipse 27SharpDevelop 27Visual C# 2012 Express 28Visual Studio 27

Entwurfsmuster 154Observermuster 154

Enumeration 47enum 47

Equals 178IEquatable 179

Ereignis 155event 155EventArgs 155EventHandler 155Eventhandler 154

Ereignis siehe EventEreignisbehandlung 36Erweiterungsmethode 175

this 175Escapesequenz 172EventTrigger 385Exception 46, 160, 163, 165

catch 161DivideByZeroException 161Exceptionhandling siehe AusnahmeFileNotFoundException 160finally 164InnerException 163Message 163NullReferenceException 161StackTrace 163throw 164try 161

Explizite Implementierung 110Expression

BinaryExpression 248ConstantExpression 248LambdaExpression 248MethodCallExpression 248ParameterExpression 248

Expression Tree 247Expression 247

Page 5: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

566

FF# 152Farbangabe

ConsoleColor 318FIFO 222FileShare 278FileSystemWatcher 272

EnableRaisingEvents 272NotifyFilters 273

Flyout 486FocusManager 135foreach 218Foreground 337Frame 479

GoBack 479Navigate 479NavigationCacheMode 483NavigationEventArgs 481NavigationMode 482Navigationsstack 481OnNavigatedFrom 481OnNavigatedTo 481Parameter 482SourcePageType 482

Fremdschlüsselreferentielle Integrität 394

GGarbage Collection 68, 183

Finalize 183GC 183SuppressFinalize 183

Generics 139, 148Constraints 144generische Klasse 143generische Methode 143Typsicherheit 142

Grid 353ColumnDefinitions 353Grid.Column 354Grid.ColumnSpan 354Grid.Row 354Grid.RowSpan 354GridLength 355RowDefinitions 353

GridView 427Guid 404

HHandle 183

IntPtr 183

Heap 69HorizontalAlignment 359HorizontalContentAlignment 360

IIComparable 180

CompareTwo 180IComparer 181

IDisposable 183Dispose 183Dispose-Pattern 185

IEnumerator 215Current 215

ildasm 25Image 346

Source 346ImageBrush 339immutable 69Include 424Indexer 203InitializeComponent 132INotifyPropertyChanged 372

UpdateSourceTrigger 373Instanz 82IntelliSense 40, 158Interface 107IOException 257, 263IProducerConsumerCollection 459IronPython 187IronRuby 187is 111IValueConverter 374

JJIT 22

Just-in-Time-Compiler 22

KKapselung 72Klasse 72

abstrakte Klasse 106Basiskonstruktor 102class 72Member 72static 95statische Klasse 96statischer Konstruktor 97versiegelte Klasse 111

Klassenbibliothek 37.dll 37

Klassendiagramm 99

Page 6: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

567

Kommentare 39einzeilige Kommentare 39mehrzeilige Kommentare 39Xml-Kommentare 40

Komprimieren 290CompressionMode 290GZipStream 290

Konsolenanwendung 31Konstruktor 76

Konstruktorverkettung 79Standardkonstruktor 76

Kontravarianz 205Kontrollstrukturen 56

break 60case 60default 60else 56else if 58if 56switch 60

Kovarianz 204

LLabel 340

Content 340Lambda-Ausdrücke 150

Ausdruckslambda 150Lambda-Kalkül 152

Lazy Evaluation 233Lazy Loading 420LIFO 221LinearGradientBrush 338LINQ 152, 215, 229

FirstOrDefault 245Language Integrated Query 229let 246LINQ to Entities 231LINQ to Objects 231LINQ to SQL 231LINQ to XML 231OfType 244Select 243SelectMany 243Where 242

LINQ to Entities 419LINQ to SQL 420List 196Livekachel

CreateTileUpdaterForApplication 495GetTemplateContent 494Tile 493TileNotification 495

TileTemplateType 494TileUpdateManager 494

Livekacheln 465Logical Tree 327

MMain 32Managed 24Manifest 25Margin 358Math 96Memory Leak 183Menu 127

Header 128MenuItem 128

MessageBox 36Methode 83

Methodenparameter 86return 85überladene Methode 89void 84

Monitor 443Mono 22MSIL 22

Microsoft Intermediate Language Code 22Multiparadigmensprache 21, 152

NNamensraum 112

global 116Namensraum-Alias 115Namensraum-Alias-Qualifizierer 116Namespace 112

Navigationseigenschaft 423Navigationsmuster 477

Flaches Muster 478Hierarchisches Muster 477

.NET 22.NET Framework 23

.NET for Windows Store apps 475new 103, 147null 70, 112Nullable 70NUnit 293

ExpectedException 299GUI-Runner 297JUnit 294nunit.framework.dll 295SetUp 295TearDown 295Test 296TestCase 298

Page 7: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

568

TestFixture 295Unit Testing 293

OObject 98

ToString 98ObjectDataProvider 376Objektinitialisierer 95Objektkatalog 184Objektkontext 420ObservableCollection 373Odbc 396OleDb 396Open-Closed-Prinzip 99

OCP 99OpenFileDialog 286Operatoren 49

arithmetische Operatoren 49bitweise Operatoren 55Dekrement 51Inkrement 51logische Operatoren 53Postfix-Dekrement-Operator 51Postfix-Inkrement-Operator 51Präfix-Dekrement-Operator 51Präfix-Inkrement-Operator 51Rangfolge 55ternärer Operator 59Zuweisungsoperator 52

Operatorenüberladung 91optional 77OracleClient 396out 89OverflowException 47override 98, 104, 107

PPadding 358Page 475Parallel 453

Invoke 454ParallelLoopResult 454

Parallele Programmierung 439Producer-Comsumer-Problem 440Race Conditions 440

ParameterDirection 406Parse 46Partielle Klasse 75

partial 75PasswordBox

Password 342PasswordChar 342

PasswordBox siehe TextBox

Path 279PLINQ

AsOrdered 457AsSequential 458ForAll 459

PLINQ 457Polymorphie 104Prism 361Program 32ProgressBar 347Projekt-Explorer 113Projektmappen-Explorer 31Properties 31

QQualifizierer 80

RRadialGradientBrush 338RadioButton 344readonly 74

Laufzeitkonstante 74ref 88Refactoring 75ReferenceEquals 179Reflector 25#region 116Remove 426RepeatButton 345Resources 363

ResourceDictionary 363RhinoMock 302

MockRepository 303RoutedEvent 335

SSandcastle 40SaveChanges 425SaveFileDialog 288Schleifen 61

continue 62do/while 63Endlosschleifen 63for 61foreach 64while 63

ScrollViewer 357SecurityException 257Serialisierung 285

BinaryFormatter 285Serializable 285Serialize 285

Page 8: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

569

Simulator 476SolidColorBrush 338Solution 30Sort 181SQL Server 2012 Express 393SqlClient 396SqlCommand 403

ExecuteNonQuery 403ExecuteReader 403

SqlCommandBuilder 411SqlConnection 401

ConnectionString 402SqlConnectionStringBuilder 402

SqlDataAdapter 409SqlDataReader 403, 406

CommandBehavior 406SqlParameter 405Stack 69StackPanel 349

Orientation 349Standardabfrageoperatoren 241Stored Procedure 405

CommandType 405Storyboard 384

BeginStoryboard 385Stream 280

CryptoStream 281FileStream 280GZipStream 281IDisposable 281MemoryStream 281NetworkStream 281StreamReader 280StreamWriter 280

String 166Format 170ToString 170

StringBuilder 166, 173Struktur 80

Struct 80Style 361

DynamicResource siehe StaticResourceexpliziter Style 363StaticResource 362

System.IO 256

TTableDataReader 413Task 449

ContinueWith 451System.Threading.Tasks 449TaskCreationOptions 449

TaskFactory 449TaskStatus 453Wait 450WaitAll 450WaitAny 450

Task Parallel Library (TPL) 448Work-Stealing 448

Tastaturabfrage 320ConsoleKeyInfo 320ConsoleModifiers 320ReadKey 320

Template 365ControlTemplate 365DataTemplate 365, 368ItemTemplate 365, 367TemplateBinding 366

Test Driven Development (TDD) 298TestCase

Result 298TextBlock siehe TextBoxTextBox 341

Text 341TextWrapping 341

Textdatei 281ReadAllText 282ReadLine 282ReadToEnd 282StreamReader 281StreamWriter 281Write 282WriteLine 282

this 78Thread 441

Deadlock 442Join 442ManagedThreadId 442ParameterizedThreadStart 442System.Threading 441Thread.Sleep() 447

ThreadPool 443QueueUserWorkItem 443

ToggleButton 345Tombstone-Modell 465, 496

Resuming 497Suspended 496Suspending 497

ToolTip 348Transaction 408

BeginTransaction 407Transform 377

LayoutTransform 377RenderTransform 377

Page 9: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

570

RenderTransformOrigin 377RotateTransform 379ScaleTransform 380SkewTransform 379TransformGroup 380TranslateTransform 378

Trigger 364EventTrigger 365MultiTrigger 364

TryParse 89Typkonvertierung 44

explizite Typkonvertierung 45implizite Typkonvertierung 44

Typsystem 67Referenztypen 67ValueType 68Wertetypen 68

UUnboxing 69, 141UniformGrid siehe GridUnmanaged 24using-Block 186

VValidationRule 376var 49

Typinferenz 49, 151Variable 41, 44Verbindungsoperator 71Vererbung 98

base 102Basisklasse 99Unterklasse 99virtuelle Methode 104

Vergleichsoperator 178Verschlüsseln 288

CryptoStream 289Decrypt 289DES 289Encrypt 289ICryptoTransform 289

Versiegelte Klassesealed 111

VerticalAlignment 359VerticalContentAlignment 360Verweise 31, 37Verzeichnis 256

CreateDirectory 259CreateSubdirectory 259Delete 259Directory 256

DirectoryInfo 256GetCurrentDirectory 261GetDirectories 261Move 260MoveTo 260SetCurrentDirectory 261

ViewBox 357Stretch 357StretchDirection 357

virtual 103Visibility 340Visual Tree 327VisualBrush 339VisualStateManager 465, 491

GoToState 493ViewStateChanged 493VisualState 491VisualStateGroup 491

Visual-Studio-VorlagenGeteilte App 469Leere App 469Raster-App 469

WWCF 286Werkzeugkasten 34Window 133, 330

ClassModifier 331Close 133FieldModifier 332

Windows Loader 25Windows Presentation Foundation 34Windows Runtime 466

WinRT 466Windows Store Apps 465WPF 34, 325

MVVM 373Windows Presentation Foundation 325,

326WrapPanel 350

XXAML 326XDocument 251

Element 251XElement 251

XmlDataProvider 376

Yyield 219

yield break 220yield return 220

Page 10: Oberfl ächenprogrammierung mit WPF, Datenabfrage mit ... · Delegate 145 Action 153 Comparison 154 delegate 148 Func 153 Predicate 153 Dependency Injection 300 Mocks 301 Stubs 301

Stichwortverzeichnis

571

ZZugriffsberechtigung 276

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

SetAccessControl 276System.Security.AccessControl 276

Zugriffsmodifizierer 72internal 73internal protected 73private 73protected 73public 73