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.
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 Chiave + Parole 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 Predefiniti + Tipi Definiti Dall’Utente
Tipi e Uso della Memoria
Memoria Stack + Memoria Heap
Value-Type e Reference-Type
Allocazione dei Value-Type
Allocazione dei Reference-Type
Value-Type + Reference-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 Boxing + Conversioni 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 Primarie + Espressioni Void
Espressioni di Assegnazione
Precedenza degli Operatori
Associatività degli Operatori
Operatori Left-Associative + Right-Associative
Operatori Principali + Operatore Condizionale
Operatori Null + Operatore Null-Coalescing
Operatore di Assegnazione Null-Coalescing
Operatore Null-Conditional
Statement
Empty Statement + Declaration Statement
Variabili Locali
Expression Statement + Selection Statement
If Statement
La Clausola Else
Switch Statement + Switch Expression
Iteration Statement
Cicli while + Clicli do-while
Cicli for + Cicli foreach
Scope delle Variabili negli Statement For
Jump Statement + Break Statement
Continue Statement + Return Statement
Throw Statement + Using 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 Classe + Istanza 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 Statiche + Proprietà
Esecuzione di Logica
Proprietà ReadOnly + Proprietà 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 Parziali + Metodi 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 New + Metodi 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 Astratti + Classi Astratte
Classi Sealed + Classi Statiche
Extension Method
Structs
Structs
Le Structs sono Value-Type
Assegnazione a una Struct
Costruttore di Istanza + Costruttore 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
Delegate + Dichiarazione 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 Lambda + Uso 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
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
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
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.