Latest news

Formazione aziendale: linguaggio C#, WPF, Multithreading e corsi di sviluppo

Aggiornare le conoscenze e le competenze formative dei collaboratori aziendali e dei nuovi assunti. Ecco una lista degli argomenti e dei corsi di formazione in ambito sviluppo utili e sempre in linea con le richieste del mercato e degli obiettivi di business. 

L’obiettivo dei corsi di formazione in ambito sviluppo e linguaggio C# è quello di gestire in maniera efficiente il processo di crescita interno. Tra le aree di attività: la programmazione tramite Visual Studio, c# e wpf di applicazione desktop. 

linguaggio c#, wpf, multithreading e corsi di sviluppo

Come trasferire le conoscenze con in corso di sviluppo informatico 

La formazione tecnica si prefigge di trasferire le basi per sviluppare le effettive conoscenze del personale con differenti livelli di esperienza in materia, in modo da renderlo autonomo nello svolgere i task in autonomia in continua progressione in base al livello di nozioni acquisite. 

Il fine è favorire il processo di sviluppo delle competenze del personale interno per accompagnarlo nella gestione delle tecnologie aziendali in maniera rapida ma proattiva ed efficiente. 

Vediamo nello specifico le tre principali aree di attività tecnica di attività formativa. 

FASE 1 CORSO DI LINGUAGGIO C# 

Il corso di formazione in ambito Linguaggio C# nello specifico supporterà i tecnici nella gestione dei fondamenti di C# e .net framework, nel lavorare con tipi primitivi e le espressioni, nella gestione di classi, strutture dati, flusso dei programmi, istruzioni condizionali, Collection e LINQ e modelli di programmazione asincrona. 

Il corso sarà quanto più possibile tarato e personalizzato in base alle effettive conoscenze in entrata dei partecipanti e in relazione agli obiettivi operativi dell’azienda cliente. 

Il corso verrà erogato da un Trainer Esperto in Linguaggio C#  

Il corso avrà durata totale complessiva di 4 giorni (suddivisi in sessioni di mezza giornata in caso di formazione online). 

PROGRAMMA DETTAGLIATO DEL CORSO LINGUAGGIO C# 

C# Language Basics 

Il Nostro Primo Programma 

Identificatori 

Parole ChiaveParole Chiave Contestuali 

Il Metodo Main 

Valori Letterali 

Punteggiatori 

Operatori 

Commenti 

Programmi e Tipi C# 

Un Tipo è un Template 

Istanziare un Tipo 

Tipi: Membri Dati e Funzione 

Tipi PredefinitiTipi Definiti Dall’Utente 

Tipi e Uso della Memoria 

Memoria StackMemoria Heap 

Value-Type e Reference-Type 

Allocazione dei Value-Type 

Allocazione dei Reference-Type 

Value-TypeReference-Type 

Variabili 

Dichiarazione di una Variabile 

Inizializzazione di una Variabile 

Dichiarazioni di Variabile Multiple 

Tipi Nullable 

Variabili Locali con Tipo Implicito (Var) 

Tipi e Conversioni 

Conversioni Numeriche Integrali 

Conversioni Numeriche Floating-Point 

Conversioni tra FP e Integrali 

Conversioni tra Tipi Nullable e Non-Nullable 

Conversioni BoxingConversioni Unboxing 

Boxing e Unboxing: Considerazioni 

Tipi e Operatori Booleani 

Tipi e Operatori Condizionali 

Tipi e Operatore Ternario 

Il Tipo String 

Concatenazione di Stringhe 

Interpolazione di Stringhe 

Array 

Initializzazione Predefinita degli Elementi 

Value-Type contro Reference-Type 

Indici dell’Array 

Index Type 

Range 

Array Multidimensionali 

Array Rettangolari 

Array Jagged 

Rappresentazione in memoria 

Array e Bound Checking 

Metodi 

Parametri di un Metodo 

Modificatori di Parametro 

Passaggio di Argomenti “Value-Type” By Value 

Passaggio di Argomenti “Reference-Type” By Value 

Passaggio di Argomenti “Value-Type” By Reference 

Passaggio di Argomenti “Reference-Type” By Reference 

Passaggio di Argomenti By Input Reference 

Parametri di un Metodo 

Passaggio di Argomenti By Output Reference 

Parametri Opzionali 

Espressioni e Operatori 

Espressioni PrimarieEspressioni Void 

Espressioni di Assegnazione 

Precedenza degli Operatori 

Associatività degli Operatori 

Operatori Left-Associative + Right-Associative 

Operatori PrincipaliOperatore Condizionale 

Operatori NullOperatore Null-Coalescing 

Operatore di Assegnazione Null-Coalescing 

Operatore Null-Conditional 

Statement 

Empty StatementDeclaration Statement 

Variabili Locali 

Expression StatementSelection Statement 

If Statement 

La Clausola Else 

Switch StatementSwitch Expression 

Iteration Statement 

Cicli whileClicli do-while 

Cicli forCicli foreach 

Scope delle Variabili negli Statement For 

Jump StatementBreak Statement 

Continue StatementReturn Statement 

Throw StatementUsing Statement 

Namespace 

La Direttiva Using 

Classi 

Cos’è una Classe 

Dichiarazione di una Classe 

Campi della Classe 

Inizializzazione di un Campo 

Campi ReadOnly 

Costanti 

Metodi della ClasseIstanza di Classe 

Membri dell’Istanza di Classe 

Campi Statici 

Modificatori di Accesso Private / Public 

Altri Modificatori 

Accesso ai Membri di Classe 

La Direttiva Using Static 

Costanti VS Campi Statici ReadOnly 

Funzioni StaticheProprietà 

Esecuzione di Logica 

Proprietà ReadOnlyProprietà WriteOnly 

Proprietà VS Campi Pubblici 

Proprietà Computed ReadOnly 

Auto Properties 

Proprietà Statiche 

Proprietà e Modificatori di Accesso 

Overloading dei Metodi 

Costruttori 

Costruttori con Parametri 

Costruttore di Default 

Costruttori Statici 

Inizializzatori di Oggetti 

La Keyword “this” 

Classi ParzialiMetodi Parziali 

Classi ed Ereditarietà 

Ereditarietà di Classi 

Accesso ai Membri Ereditati 

Derivazione dalla Classe Object 

Mascheramento dei membri di una Classe Base 

Accesso alla Classe Base 

Reference alla Classe Base 

Metodi NewMetodi Virtual e Override 

Override VS New 

Esecuzione dei Costruttori 

Inizializzatore del Costruttore 

Modificatori di Accesso alla Classe 

Ereditarietà tra Assembly 

Modificatori di Accesso ai Membri 

Accessibilità dei Membri 

Membri AstrattiClassi Astratte 

Classi SealedClassi Statiche 

Extension Method 

Structs 

Structs 

Le Structs sono Value-Type 

Assegnazione a una Struct 

Costruttore di IstanzaCostruttore Statico 

Inizializzatori di Proprietà e Campi 

Structs: Return Value e Parametri 

Structs Vs Classes 

Enumerations 

Enumeration 

Impostazione del Tipo Sottostante 

Numerazione Implicita dei Membri 

Bit Flag 

Delegates 

DelegateDichiarazione di un Tipo Delegate 

Come usare un Delegate 

Creazione dell’Oggetto Delegate 

Assegnazione a Variabili Delegate 

Combinazione di Delegate 

Aggiunta di Metodi ai Delegate 

Rimozione di Metodi dai Delegate 

Invocazione dei Delegate 

Metodi Anonimi 

Tipo del Valore di Ritorno 

Scope di Variabili e Parameteri del Metodo Anonimo 

Variabili Esterne al Metodo Anonimo 

Durata di una Variabile Catturata da un Metodo Anonimo 

Espressioni LambdaUso delle Espressioni Lambda 

Interfacce 

Interfacce 

Dichiarazione di un Interfaccia 

Implementazione di un’Interfaccia 

Utilizzo delle Interfacce 

Esempio #1: IUserDataStore 

Esempio #2: IDevice 

Un Interfaccia è un Reference-Type 

Implementazione di Interfacce Multiple 

Implementazione di Interfacce con Membri Duplicati 

Implementazioni Esplicite dei Membri dell’Interfaccia 

Implementazione di un Membro Ereditato 

Interfacce che Ereditano da Altre Interfacce 

Interfacce VS Classi Astratte 

Generics 

Generic 

Classi Generic 

Dichiarazione di una Classe Generic 

Istanza di una Classe Generic 

Esempio di Uso di una Classe Generic 

Vincoli sui Parametri di Tipo 

Metodi Generic 

Inferenza dei Tipi 

Struct Generic 

Delegate Generic 

Interfacce Generic 

Collections 

Collection 

Collection Generic 

List<T> 

  • Creazione della Lista e Aggiunta di Valori 
  • Aggiunta di una Collection alla Lista 
  • Accesso agli Elementi di una Lista 
  • Inserimento di Elementi in una Lista in una data Posizione 
  • Controllo della presenza di Elementi nella Lista 
  • Aggiornamento degli Elementi della Lista 
  • Rimozione degli Elementi dalla Lista 

Dictionary<TKey, TValue> 

  • Creazione del Dictionary e Aggiunta di Valori 
  • Accesso agli Elementi di un Dictionary 
  • Accesso tramite Chiave Inesistente 
  • Controllo della presenza di Elementi nel Dictionary 
  • Aggiornamento degli Elementi del Dictionary 
  • Rimozione degli Elementi da un Dictionary 

Hashset<T> 

  • Creazione dell’HashSet e Aggiunta di Valori 
  • Accesso agli Elementi dell’HashSet 
  • Controllo della presenza di Elementi nell’Hashset 
  • Aggiornamento degli Elementi dell’HashSet 
  • Rimozione degli Elementi dall’HashSet 

Queue<T> 

  • Creazione della Queue e Aggiunta di Valori 
  • Accesso agli Elementi di una Queue 
  • Controllo della presenza di Elementi nella Queue 
  • Rimozione degli Elementi dalla Queue 

Stack<T> 

  • Creazione della Stack e Aggiunta di Valori 
  • Accesso agli Elementi dello Stack 
  • Controllo della presenza di Elementi nello Stack 
  • Rimozione degli Elementi dallo Stack 

Enumerators & Iterators 

Enumerable & Enumerator 

L’interfaccia IEnumerator 

Esempio IEnumerable 

Esempio IEnumerable Generic 

Iterator Block 

Esempio Iterator Block 

Uso dell’Iterator Block per creare un Enumerable 

Uso dell’Iterator Block per creare un Enumerator 

Linq 

Linq 

Provider Linq 

Method Syntax e Query Syntax 

Variabili Query 

Struttura delle Query Expression 

  • From Clause 
  • Join Clause 
  • From Clause 
  • Let Clause 
  • Where Clause 
  • Orderby Clause 
  • Select…group Clause 

Operatori Query Standard 

Parametri Delegate 

Tipi Delegate Predefiniti LINQ 

Exceptions 

Cosa sono le Exception 

Lo Statement Try 

Gestione delle Exception 

Le classi Exception 

La clausola Catch 

Il blocco Finally 

Lancio delle Exception 

Covariance and Contravariance 

Compatibilità di Assegnazione 

Covarianza 

Controvarianza 

Covarianza e Array 

Controvarianza e Array 

Covarianza e Delegate 

Controvarianza e Delegate 

Covarianza e Delegate Generic 

Parametro Tipo Covariante 

Controvarianza e Delegate Generic 

Parametro Tipo Controvariante 

linguaggio c#, wpf, multithreading e corsi di sviluppo

FASE 2 FORMAZIONE WPF 

Il corso di formazione in ambito WPF sarà quanto più possibile tarato e personalizzato in base alle effettive conoscenze in entrata dei partecipanti e in relazione agli obiettivi operativi dell’azienda cliente. 

Il corso WPF verrà erogato da un Trainer Esperto in Sviluppo e programmazione  

Il corso WPF avrà durata totale complessiva di 3 giorni (suddivisi in sessioni di mezza giornata in caso di formazione online). 

PROGRAMMA INDICATIVO DEL CORSO WPF 

Introducing WPF 

Introduction

XAML 

Understanding XAML 

XAML Basics 

Properties and Events in XAML 

Using Types from Other Namespaces 

Loading and Compiling XAML 

Layout 

Understanding Layout in WPF 

Simple Layout with the StackPanel 

The WrapPanel and DockPanel 

The Grid 

Coordinate-Based Layout with the Canvas 

Dependency Properties 

Understanding Dependency Properties 

How WPF Uses Dependency Properties 

Property Validation 

Routed Events 

Understanding Routed Events 

Event Routing 

WPF Events 

Keyboard Input 

Mouse Input 

Controls 

The Control Class 

Content Controls 

  • The Button 
  • The ToggleButton and RepeatButton 
  • The CheckBox 
  • The RadioButton 
  • Tooltips 
  • The Popup 

Specialized Containers 

  • The ScrollViewer 
  • The GroupBox 
  • The TabItem 
  • The Expander 

Text Controls 

  • Multiple Lines of Text 
  • Text Selection 
  • The PasswordBox 

List Controls 

  • The ListBox 
  • The ComboBox 

Range-Based Controls 

  • The Slider 
  • The ProgressBar 

Date Controls 

The Application 

The Application Life Cycle 

  • Creating an Application Object 
  • Deriving a Custom Application Class 
  • Application Shutdown 
  • Application Events 

Application Tasks 

Single-Instance Applications 

Assembly Resources 

Localization 

Element Binding 

Binding Elements Together 

  • The Binding Expression 
  • Binding Errors 
  • Binding Modes 

Creating Bindings with Code 

Multiple Bindings 

Binding Updates 

Binding to Objects That Aren’t Elements 

Commands 

Understanding Commands 

The WPF Command Model 

Executing Commands 

Controls with Built-in Commands 

Advanced Commands 

Resources 

Resource Basics 

The Resources Collection 

The Hierarchy of Resources 

Static and Dynamic Resources 

Accessing Resources in Code 

Application Resources 

System Resources 

Resource Dictionaries 

Styles and Behaviors 

Style Basics 

Creating a Style Object 

Setting Properties 

Attaching Event Handlers 

Triggers 

Behaviors 

Data Binding 

Binding to a Database with Custom Objects 

Building a Data Access Component 

Building a Data Object 

Displaying the Bound Object 

Updating the Database 

Change Notification 

Binding to a Collection of Objects 

Displaying and Editing Collection Items 

Improving Performance in Long Lists 

Virtualization 

Validation 

Data Providers 

The ObjectDataProvider 

Formatting Bound Data 

Data Conversion 

List Controls 

List Styles 

Data Templates 

The ComboBox 

Data Views 

The View Object 

Filtering, Sorting, and Grouping 

Grouping and Virtualization 

Lists, Trees, and Grids 

The ListView 

  • The View Class 
  • The View Styles 
  • Using the ListView 

The TreeView 

The DataGrid 

Windows 

The Window Class 

  • Showing a Window 
  • Positioning a Window 
  • Saving and Restoring Window Location 

Window Interaction 

  • Window Ownership 
  • The Dialog Model 

Common Dialog Boxes 

Programming the Windows Taskbar 

Menus, Toolbars, and Ribbons 

Menus 

  • The Menu Class 
  • Menu Items 
  • The ContextMenu Class
  • Menu Separators 

Toolbars and Status Bars 

  • The ToolBar 
  • The StatusBar 

Ribbons 

Multithreading 

Understanding the Multithreading Model 

The Dispatcher 

The DispatcherObject 

The BackgroundWorker 

  • Creating the BackgroundWorker 
  • Running the BackgroundWorker 
  • Tracking Progress 
  • Supporting Cancellation 
linguaggio c#, wpf, multithreading e corsi di sviluppo

FASE 3 FORMAZIONE MULTITHREADING 

Il corso di formazione in ambito Multithreading sarà quanto più possibile tarato e personalizzato in base alle effettive conoscenze in entrata dei partecipanti e in relazione agli obiettivi operativi dell’azienda cliente. 

Il corso Multithreading verrà erogato da un Trainer Esperto in Sviluppo e programmazione  

Il corso Multithreading avrà durata totale complessiva di 3 giorni (suddivisi in sessioni di mezza giornata in caso di formazione online). 

PROGRAMMA INDICATIVO DEL CORSO MULTITHREADING 

Getting Started 

Introduction and Concepts 

  • Join and Sleep 
  • How Threading Works 
  • Threads vs Processes 
  • Threading’s Uses and Misuses 

Creating and Starting Threads 

  • Passing Data to a Thread 
  • Naming Threads 
  • Foreground vs Background 
  • Thread Priority 
  • Exception Handling 

Thread Pooling 

  • Thread Pooling via TPL 
  • Thread Pooling Without TPL 
  • Optimizing the Thread Pool 

Basic Synchronization 

Synchronization Essentials 

  • Blocking 
  • Blocking Versus Spinning 
  • ThreadState 

Locking 

  • Monitor.Enter and Monitor.Exit 
  • The Synchronization Object 
  • When to Lock 
  • Locking and Atomicity 
  • Nested Locking 
  • Deadlocks 
  • Performance 
  • Mutex 
  • Semaphore 

Thread Safety 

  • .NET Framework Types 
  • Application Servers 
  • Rich Client Applications 
  • Immutable Objects 

Event Wait Handles 

  • AutoResetEvent 
  • ManualResetEvent 
  • CountdownEvent 
  • Creating a Cross-Process EventWaitHandle 
  • Pooling Wait Handles 
  • WaitAny, WaitAll, and SignalAndWait 

Synchronization Contexts 

  •   Reentrancy 

Using Threads 

Event-Based Asynch Pattern 

BackgroundWorker 

  • Using BackgroundWorker 
  • Subclassing BackgroundWorker 

Interrupt and Abort 

  • Interrupt 
  • Abort 

Safe Cancellation 

  • Cancellation Tokens 

Lazy Initialization 

  • Lazy of T class 
  • LazyInitializer 

Thread-Local Storage 

  • [ThreadStatic] 
  • ThreadLocal of T class 
  • GetData and SetData 

Timers 

  • Multithreaded Timers 
  • Single-Threaded Timers 

Advanced Threading 

Nonblocking Synchronization 

  • Memory Barriers and Volatility 
  • Interlocked 

Signaling with Wait and Pulse 

  • How to Use Wait and Pulse 
  • Producer/Consumer Queue 
  • Wait Timeouts 
  • Two-Way Signaling 
  • Simulating Wait Handles 
  • Writing a CountdownEvent 
  • Thread Rendezvous 

The Barrier Class 

Reader/Writer Locks 

  •   Upgradeable Locks / Recursion 

Suspend and Resume 

Aborting Threads 

  • Complications with Thread.Abort 
  • Ending Application Domains 
  • Ending Processes 

Parallel Programming 

Parallel Programming 

Task Parallelism 

  • Creating and Starting Tasks 
  • Waiting on Tasks 
  • Exception-Handling Tasks 
  • Canceling Tasks 
  • Continuations 
  • Task Schedulers and UIs 
  • TaskFactory 
  • TaskCompletionSource 

Working with AggregateException 

  • Flatten and Handle 

Concurrent Collections 

  • IProducerConsumerCollection 
  • ConcurrentBag 
  • BlockingCollection 

SpinLock and SpinWait

Asynchronous Programming 

Async / Await 

formazione aziendale: linguaggio c#, wpf, multithreading e corsi di sviluppo

Scopri tutti i corsi di formazione per sviluppatori 

Nexsys società di consulenza informatica di Verona è un’azienda specializzata nella gestione della formazione tecnica e informatica per esperti sviluppatori, tecnici ICT, sistemisti. Scopri anche i corsi sul secure coding. 

Contattaci per maggiori informazioni e per verificare il progetto formativo più adatto alle tue esigenze. 

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!

Teniamo alla tua privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare. Inoltre, questo sito installa Google Analytics nella versione 4 (GA4) con trasmissione di dati anonimi tramite proxy. Prestando il consenso, l'invio dei dati sarà effettuato in maniera anonima, tutelando così la tua privacy.