Har din virksomhed brug for ny viden om .NET, så kan Captator levere varen!
Vi afholder .NET kurser, seminarer, foredrag og workshops tilpasset din virksomheds konkrete og aktuelle behov. Kurser der spænder fra grundlæggende viden om sprogene C# eller VB.NET, over dybtgående gennemgang af .NET frameworkets tekniske aspekter, til softwarearkitektur eller hvordan komponentbaseret udvikling og brug af frameworks kan give genbrug og bedre applikationer.
Captator har udviklet en lang række dybtgående moduler, der kan sammensættes til konkrete kurser i forhold til jeres til jeres konkrete behov og forudsætninger. De fleste moduler holdes også som særskilte foredrag, hvis I ønsker at komme up-to-date eller måske få et kompetenceløft inden for udvalgte emner.
Vælg Captator - vi har mange års erfaring indenfor efteruddannelse
Har din virksomhed specielle ønsker så kontakt os og få en snak om jeres konkrete behov.
Vi har mange års erfaring i inspirerende og fagligt velfunderet undervisning indenfor it-systemudvikling, programmeringssprog, analyse, design, komponentbaseret udvikling, it-projektledelse og agile udviklingsmetoder.
Skræddersyede kurser
Vi kan stort set levere kurser om næsten hvadsomhelst - blot det på den ene eller måde handler om .NET eller softwareudvikling generelt. Vi har en lang række moduler, der kan plukkes og sammensættes ud fra. Har I ønske om et .NET relateret emne, der ikke dækkes af nedenstående moduler så spørg blot - måske har vi det alligevel, og hvis ikke kan vi formentlig lave det til jer - uden ekstra beregning!
Kontakt Captator for yderligere information
Kontakt Captator for et tilbud om et kursus målrettet til dig og dine kollegaers behov. Skriv til Henrik Lykke Nielsen lykke@captator.dk eller ring på telefon 2237 3311.
Et udvalg af vores kursusmoduler
.NET Fundamentals - generelt om .NET frameworket og sprogene
- Introduktion til .NET platformen
- Overblik over .NET platformen: Designfilosofi, bestanddele, standarder osv.
- Introduktion til C# syntaks
- Afpasset efter om udviklerne allerede kender til basal C-syntaks. I sådanne tilfælde vil dette modul kunne gennemgås ret kortfattet med fokus på de tilføjelser/ændringer, der er kommet til i C# i forhold til basal C-syntaks.
- Introduktion til VB.NET syntaks
- Afpasset efter om udviklerne har forudgående viden om og erfaring med VB6.
- Visual Studio .NET
- Gennemgang af de vigtigste features med specielt fokus på projektstruktur, intellisense og debugging.
- Introduktion til objektorienteret udvikling i .NET
- Et introduktionsmodel rettet mod de udviklere der kun har lidt (eller måske slet ingen) viden om objekt orientering.
- .NETs typesystem
- En helt fundamental del af .NET - og en forudsætning for al den udvikling, der sker i .NET.
- Parameteroverførsel
- Mindre modul der handler om udvalgte forhold (de lidt mere komplekse) vedr. parameteroverførsler.
- OO.NET - Klasser, objekter, interfaces og arv
- En kortfattet begrebsmæssig introduktion til objektorientering (afhænger af kursisternes eksisterende viden om og erfaring med emnet) samt en grundig gennemgang af de objekt orienterede faciliteter og mekanismer i .NET frameworket og C#/VB.
- Properties og indexers
- Mindre modul der handler om properties og indexers
- Exceptionhandling
- Fejlhåndtering i .NET - indbefatter en lang række best practices vedrørende exception handling i .NET.
- Generics, collections og nullable typer
- Generics er en yderst kraftfuld mekanisme, der giver både fleksibilitet og typestærk opførsel - såvel på designtidspunktet som run-time. Generics har mange anvendelser - heriblandt i forbindlese med nullable typer og generiske collections.
- Delegates og events
- Delegates er en basal og meget vigtig mekanisme i .NET, og events er en tynd abstraktion ovenpå delegates. Anonyme metoder og lambdaudtryk behandles også i dette model.
- Garbage collection
- En beskrivelse af ressource håndteringen i .NET. I de fleste tilfælde foregår ressourcehåndteringen automatisk, men i en del tilfælde kræver det en ikke ringe indsats fra udviklerens side at håndtere ressourcer i .NET korrekt.
- Database tilgang i .NET (ADO.NET)
- ADO.NET er tilgangsvinklen til databasetilgang i .NET, men kan også bruges mere generelt.
- .NETs komponentmodel
- Indeholder mange forskellige aspekter ved .NETs komponentmodel, men handler først og fremmest om assemblies og manifester samt .NET komponentmodellens indflydelse på deployering og sikkerhed.
- LINQ
- LINQ (Language INtegrated Query) teknologien har det overordnede mål at give udviklerne en ny måde at tilgå og manipulere data på - såvel data i simple objekter, som data i eksempelvis databaser, DataSets og XML dokumenter (se også kurset om Entity Frameworket).
Windows Presentation Foundation
Windows Presentation Foundation (WPF) er et moderne og avanceret API til konstruktion af såvel traditionelle Windows brugergrænseflader såvel som 2D og 3D grafik. WPF kan bruges til at lave såvel line-of-business applikationer som eksempelvis egentlige multimedieorienterede applikationer. Blandt fordelene ved WPF kan nævnes en fælles og ensartet tilgang til udvikling og brug af de forskellige brugergrænsefladeelementer, adgang til meget kraftfuld styling af applikationer samt let adgang til konstruktion og afvikling af animationer.
Kurset retter sig mod erfarne .NET udviklere, der har arbejdet med udvikling af Windows applikationer.
Captator afholder også et foredrag med en introduktion til Windows Presentation Foundation.
I et tredages dybtgående kursus omfatter emnerne, der dækkes, typisk:
- Introduktion
- Introduktion til WPF; WPF arkitektur, XAML, Styling, tools m.v.
- XAML
- XAML beskriver en objekt-graf, som mappes til .NET objekter på runtime. XAML er grundlaget for WPF’s ”design” notation. Der gennemgåes: XAML syntaks, type converters, markup extensions, XamlReader/XamlWriter m.v.
- Introduktion til værktøjer
- Introduktion til Microsofts XAML baserede design værktøj: Expression Blend.
- Fundamentals
- I dette modul gennemgåes de fundamentale principper og klasser i WPF, herunder: Application klassen, WPF applikationstyper, Dependency properties, Events, Commands og Threading.
- Resources, styles og triggers
- En af grundpillerne i WPF er adskillelse af grafisk udseende og forretningslogikken. I dette modul gennemgåes resources, styles og triggers - tilsammen fundamentet for grafisk udseende, animationer m.v.
- Layout og kontroller
- Omhandler hvordan de enkelte grafiske elementer i en WPF applikation placeres. Kort gennemgang af de væsentligste kontroller. Styling af lister / Items-kontroller. Styling af kontroller / grafiske elementer v.h.a. kontrol templates.
- Databinding
- Databinding benyttes bl.a. til at binde forretningsobjekters data til grafiske elementer. Omfatter basale begreber så som databinding retning, DataContext, binding source path samt multiBinding, binding til collections, validering og XAML understøttelse.
- 2D grafik
- Gennemgang af øvrige 2D grafiske elementer (udover kontroller gennemgået i modulet "Layout og kontroller") så som Shapes, Transforms, Brushes, BitmapEffects og Geometries
- Animationer, lyd og video
- Animationer bruges hyppigt i WPF til at skabe visuelle effekter som f.eks. highlighting af aktive kontroller og fading ud/ind. Modulet omhandler hvordan animationer laves såvel v.h.a. kode som deklarativt v.h.a. XAML og som Storyboards så vel som key frame animationer. Endvidere beskrives afspilning af lyd og video v.h.a. MediaElement kort.
Alt efter jeres konkrete behov kan eksempelvis følgende emner også dækkes:
- Dokumenter og udskrift
- 3D grafik
Windows 8 Metro udvikling
WinRT (Windows Runtime) er programmeringsmodellen, der bruges til at lave Metro applikationer i Windows 8. User interfaces kan i WinRT defineres v.h.a. en XAML-baseret model på lignende vis som kendt fra WPF og Silverlight (HTML understøttes dog også for WinRT). WinRT udvikling minder derfor på mange punkter om WPF/Silverlight udvikling, men adskiller sig dog også på en lang række punkter fra normal .NET udvikling. Kurset kan tilpasses efter om og i hvor høj grad kursisterne har forudgående viden om og erfaring med WPF/Silverlight.
I nærværende kursus, der retter sig mod erfarne .NET udviklere, beskæftiger vi os med XAML baseret udvikling i enten C# eller VB.
Captator afholder også et foredrag med en introduktion til Windows 8 Metro / WinRT.
Blandt emnerne der dækkes kan nævnes:
- Introduktion
- Introduktion til Windows 8 Metro / WinRT.
- Metro brugergrænsefladen
- Gennemgang af hvordan Metro brugergrænsefladen virker, og hvilke krav der er til brugergrænsefladen i en Metro applikation.
- XAML
- XAML beskriver en objekt-graf, som mappes til .NET objekter på runtime. XAML er grundlaget for WinRTs ”design” notation.
- Fundamentals
- I dette modul gennemgåes de fundamentale principper og klasser i WinRT applikationer og user interfaces. Asynkron eksekvering blandt andet med async/await.
- Resources, styles og triggers
- En af grundpillerne i WinRT er adskillelse af grafisk udseende og forretningslogikken. I dette modul gennemgåes resources og styles.
- Layout og kontroller
- Indeholder dels en beskrivelse af hvordan WinRTs layoutmekanismer virker dels en gennemgang af de væsentligste WinRT kontroller.
- Databinding
- Databinding benyttes bl.a. til at binde forretningsobjekters data til grafiske elementer.
- Grafik
- Gennemgang af grafiske elementer samt images.
- Animationer
- Animationer bruges hyppigt i WinRTtil at skabe visuelle effekter som f.eks. highlighting af aktive kontroller og fading ud/ind. Modulet omhandler hvordan animationer laves såvel v.h.a. kode som deklarativt v.h.a. XAML og som Storyboards så vel som key frame animationer.
- Data udveksling, settings og IO
- Sharing, søgning, pickers, settings, fil IO.
- Kommunikation
- Socket baseret kommunikation, web services, notifications.
- Sensorer og services
- Programmering mod blandt accelerometer, inclinometer og geolocation service.
Windows Forms
- Windows Forms
- Med fokus på essentielle pointer og emner vedr. Windows Forms-baserede applikationer så som Windows Forms programmeringsmodellen, layout af Windows Forms applikationer, Multiple Document Interface (MDI) applikationer, drag-and-drop, brug af BackgroundWorker i muti-threadede scenarier samt udvikling af egne kontroller.
- ClickOnce
- ClickOnce gør det let at distribuere og opdatere Windows Forms-baserede applikationer. Dette modul giver et over hvilke muligheder og begrænsninger der er i ClickOnce, samt hvordan ClickOnce fungerer i praksis.
ASP.NET MVC (Model View Controller)
ASP.NET MVC platformen adskiller sig først og fremmest fra den traditionelle ASP.NET WebForms platform ved, at tilskynde udvikleren til en lagdeling mellem kontrol, model/data og præsentation. Det betyder, at det er nemmere for udvikleren at foretage løbende test undervejs i udviklingsforløbet samt efterfølgende vedligeholde og udvide websitet.
Ligeledes giver MVC kombineret med den nye Razor syntaks en mere direkte sammenhæng mellem View-kode og den endelige HTML kildekode. Dette letter styling med CSS og klientside JavaScript integration.
Alt efter behov kunne følgende emner behandles:
- MVC – introduktion
- MVC introduktion, herunder forskelle mellem MVC og ASP.NET Webforms
- MVC – ViewHelpers og input forme
- Opbygning af et View, herunder gennemgang af de væsentlige Helper metoder samt input validering
- MVC – Action filters
- Sikkerhed, fejlhåndtering og outputcache
- MVC – test først og automatisk tests
- Test først og automatiske tests mod MVC Controller metoder ved brug af MS Test
- jQuery – introduktion
- jQuery er et javascript bibliotek, der baserer sig på at udvælge et antal DOM elementer via CSS selektion og efterfølgende manipulere disse
- jQuery - selektion og manipulation
- Selektioner baseret på CSS samt jQuerys udvidelser
- Wrapped element og DOM manipulationer
- jQuery command chain
- jQuery – events, animationer og extensions
- jQuery event model, event binding, event instans og trigger handlers
- Indbyggede animationer samt custom animationer
- jQuery extensions, eksempler bl.a. jQuery-UI. Udvikling af egne extensions
- jQuery og Ajax
- Html opdatering via Ajax
- Ajax requests bl.a.: get, post og getJSON
- Lagdeling og komposition i en MVC / jQuery app
- MVC overordnet komposition – Areas
- MVC sideopbygning – Partial, RenderPartial, Action, RenderAction
- MVC som ”motor” for jQuery Ajax kald
- Eksempel applikation
Web forms
- Introduktion til Web Forms
- Web Forms ideen
- Afvikling og idriftsættelse
- Events og eventregistrering
- Web Forms under overfladen
- En dybere forståelse af Web Forms opbygning, herunder viewstate samt den interne page- og kontrol træ- objekt model
- HttpContext, HttpRequest og HttpResponse
- Layout og server kontroller
- Master pages, themes og skins
- Gennemgang af udvalgte kontroller
- Valideringskontrollerne
- Opbygning af website ved brug af bl.a. Web UserControls
- Sikkerhed, deployment og konfiguration
- Authentication og authorization, herunder forms-baseret authentication
- Beskrivelse af Cross-site scripting samt hvorledes der beskyttes mod dette
- Konfiguration, herunder web.config opsætning
- Data i en web verden - state og caching
- Client side state; viewstate og cookies
- Server side state; Application og Session
- Caching; Url caching, fragment caching og data caching
- Providermodellen
- Provider baserede services; Membership, Role Management, Profile, Site Map, Web Parts, Health monitoring og Session State
- Registrering af provider og gennemgang af ProviderBase
- Eksempler på bruger definerede providere
- Web parts
- Framework til portal-style applikationer
- WebPartManager, WebPartZones
- Connections mellem WebParts og personalisering af WebParts
- Udvikling af egne WebParts
- Membership og Role Management
- Membership API og providere
- Login kontroller
- Role management; Roles klasse og caching
- Navigation og Site Maps
- Navigations kontroller; TreeView og Menu
- Site Maps; XML site maps, SiteMapDataSource control og Site Map API
- SiteMapPath kontrol
Multithreading
- Multithreading i .NET
- Introduktion; movitation og overblik
- Parallelafvikling; Threads, threadpool, asynkrone metode kald og TPL (Task Parallel Library)>
- Object integrity – ”safe” versus ”liveness”
- Race Conditions, synkronisering og deadlocks
- Avanceret Multithreading i .NET
- System.Threading namespacet, herunder klasserne: Thread, Timer, Mutex, Semaphore, Barrier og Interlocked
- Multithreading i Windows Forms og WPF UI; Invoke, SynkronizationContext og BackgroundWorker
- Threading I en COM verden. COM og .NET threading samspil
- Task Parallel Library (.NET 4.0+)
- .NET 4.0 Parallel extensions
- Task Parallel Library
- Task, Parallel og PLINQ
- Concurrent collections
- Visual Studio Concurrency Visualization
- Asynkron programmering med Async/Await pattern (C# 5.0)
- Multithreading mønstre
- Design patterns for multithreading med .NET eksempler
Windows Communication Foundation (WCF)
Som en del af version 3.5 af .NET frameworket er WCF en generel model, der gør det muligt med et og samme meget fleksible API at implementere kommunikationsløsninger baseret på mange forskellige teknologier og protokoller.
WCF bør i langt de fleste scenarier bruges frem for .NET platformens ASMX-baserede værktøjer til implementation af XML web services.
- Service orientering (SO) og service orienterede arkitekturer (SOA)
- Modul der beskriver de arkitekturelle principper bag service orienterede arkitekturer samt forkuserer på en række best practices ved implemention af service orienterede systemer.
- Introduktion til Windows Communication Foundation Blandt de dækkede emner kan nævnes:
- Overblik over WCF programmeringsmodellen
- Kontrakt definition og implementation
- Hosting
- Klient implementation
- Asynkrone operationer
- Data kontrakter
- WCF og REST
- WCF er en yderst fleksibel teknologi som blandt andet kan bruges ved udvikling af REST baserede services. Modulet gennemgår detaljeret de faciliteter WCF stiller til rådighed for implementation af REST baserede service arkitekturer.
Microsofts Entity Framework
Microsofts ADO.NET Entity Framework har som primær opgave at hjælpe til med mapning af data mellem en database og en tilhørende objektmodel. Blandt emnerne, der vil blive behandlet, er Entity Frameworkets grundbegreber, mapning mellem database og objektmodel, værktøjsunderstøttelse i Visual Studio og LINQ understøttelse i form af LINQ to Entities.
På listeform indbefatter emnerne blandt andet:
- Entity data modellen (EDM)
- Entity Client
- Entity SQL
- Object Services
- LINQ to Entities
- Loading af associerede objekter
- Manipulation af data & SaveChanges
- Komplekse typer
- Nedarvning
- Entities i WCF baserede scenarier
- Entity Frameworket i flerlagsarkitekturer
Alt efter kursisternes forudgående viden kan kurset med fordel kombineres med en dybtgående gennemgang af delegates, anonyme metoder, lambda expressions og Language INtegrated Query (LINQ).
Diverse .NET teknologier og APIer
- Reflektion
- Reflektion benyttes til udvikling af avancerede og fleksible løsninger på programmeringsmæssige problemstillinger.
- XML programmering i .NET
- Overblik over de forskellige muligheder med XML og hvordan de udnyttes fra .NET.
- Serialisering
- Beskrivelse af .NETs serialiseringsunderstøttelse.
- Streams, readers og writers
- Gennemgang af .NETs generelle stream-baserede IO-model.
- .NET Configuration
- Beskrivelse af hvordan APIet i System.Configuration namespacet kan bruges til at tilgå konfigurationsfiler.
- Brugerhåndtering i .NET
- Omhandler .NETs model for brugerhåndtering og dækker emner som: Principal og Identity objekterne, programmeringsmæssig så vel som deklarativ sikkerhed samt impersonation og sikkerhed.
- .NET Remoting
- Remoting er en af flere muligheder, dersom man skal lave kommunikation mellem .NET programmer.
- Generering af kode på runtime
- .NET besidder nogle avancerede muligheder for at generere kode på run-time tidspunktet. Dette modul ser på brug af CodeDOMen (Code Document Object Model), generering af dynamisk IL-kode og brug af LCG (Lightweight Code Generation).
- Visual Studio Extensibility
- Omhandler hvorledes funktionaliteten i Visual Studio kan udvides med egen funktionalitet. Omhandler udvikling af makroer, add-ins, visualizers, project templates, codesnippets og debugger-extensions.
- .NET compact framework udvikling
- Udvikling af programmer rettet mod eksempelvis Pocket PCere.
- SQL Server .NET
- Microsoft SQL Server har integreret .NETs CLR (Common Language Runtime) således, at det er muligt, at udvikle stored procedures, triggers osv. i C# og VB.NET.
- Message Queueing
- Beskrivelse af hvordan APIet i System.Messaging namespacet kan bruges til at implementere message queueing i .NET applikationer.
- Monitorering og management
- Beskrivelse af hvordan APIet i System.Management namespacet kan bruges til blandt at overvåge og forespørge på systemet, enheder og programmer.
- Regular Expressions
- Beskrivelse af hvordan man anvender regulære udtryk i .NET. Inkluderer en introducerende indføring i regulære udtryk som sådan.
- User Account Control i Windows (UAC)
- Indføring i hvordan User Account Control sikkerhedsmekanismen i Windows virker, hvordan den påvirker applikationer, og hvad man som .NET udvikler bør gøre for, at ens applikationer virker bedst muligt sammen med UAC.
- Windows Services
- Gennemgang af hvordan man i .NET implementerer Windows Services.
- .NET for administratorer
- En række forhold ved .NET har stor relevans for netværks-/Windowsadministratorer - det gælder specielt i forhold til distribution og sikkerhed. Dette foredrag handler om, hvad administratorer skal være opmærksomme på, og hvilke relevante faciliteter .NET stiller til rådighed.
Diverse .NET tools
- Systematisk test med MS Test (Visual Studio indbygget unittesting tool)
- Automatisering af tests samt test-først programmering ved hjælp af MS Test som test-værktøj.
- Systematisk test med Nunit
- Automatisering af tests samt test-først programmering ved hjælp af NUnit som test-værktøj.
- Brug af Visual Source Safe sammen med VS.NET
- Brug af Visual Sourcesafe samt integration til Visual Sourcesafe - anbefalinger og best practices.
Softwarearkitekturer og best practices
- Design Patterns i .NET
- Design Patterns er et vigtigt grundlag for udvikling af fleksible OO arkitekturer
- Udvikling af .NET baserede arkitekturer
- Få inspiration til og viden om state-of-the-art udvikling af softwarearkitekturer ved udvikling af software på Microsofts .NET platform.
- Systematisk frameworkudvikling
- Få viden om best practices for udvikling af udvikling af generiske frameworks og inspiration til udvikling af egne frameworks.
- Service orientering (SO) og service orienterede arkitekturer (SOA)
- Modul der beskriver de arkitekturelle principper bag service orienterede arkitekturer samt forkuserer på en række best practices ved implemention af service orienterede systemer.
- Captators Eifos framework
- Captator har udviklet et avanceret, generisk framework kaldet Eifos. Dette foredrag / workshop retter sig dels mod kunder til Eifos frameworket dels mod de, der selv skal til at udvikle et softwareframework og som ønsker at få inspiration der til.
- Opgradering af VB6 applikationer til VB.NET
- Best practices for .NET baseret udvikling
Objekt orientering
- Objekt orienteret analyse - Use Cases
- Kravspecifikationsteknikker med anvendelse af use cases
- Use case diagrammer, aktører, use cases m.v.
- Objekt orienteret analyse - Fra specifikation til klassemodel
- Fra specifikation til færdig klasse model; herunder hvordan man finder domæneklasse kandidater, udarbejder initielle klasse diagrammer, der i sidste ende bliver til en klassemodel også kaldet domæne model
- Objekt orienteret analyse - Klasser og objekter
- Introduktion til klasser og objekter
- UML (Unified Modelling Language) syntaks for klasser og objekter
- OO Principper: Indkapsling og den enkelte klasses ansvar
- Objekt orienteret analyse - Associationer og links
- Introduktion til associationer og links
- UML syntaks
- Multiplicitet, rekursive associationer, associationsnavn og rolle navne
- Aggregering og komposition
- Objekt orienteret analyse - Generalisering og specialisering
- Introduktion til generalisering og specialisering
- Superklasser og subklasser, abstrakt kontra konkret klasse
- UML syntaks
- Polymorfisme, multipel nedarvning
eXtreme Programming
- eXtreme Programming
- Handler om hvordan man opnår kvalitet i softwareudviklingen med denne agile udviklingsmetode
Visual Studio Application Lifecycle Management / TFS
- Introduktion til Visual Studio Application Lifecycle Management
- Filosofien bag Visual Studio ALM og introduktion til Team Foundation Server
- Visual Studio ALM – Opgavestyring og opfølgning
- Work item typer, søgninger, integration til Excel
- Tilpasning af work items
- Visual Studio ALM – Dokumenter og rapporter
- Projektportal med fælles dokumenter og projekt rapportering
- Windows Sharepoint Services
- Rapporter; default rapporter, brugerudvælgelse af data, opsætning af nye rapporter
- Visual Studio ALM – MSF for Agile Software Development
- Introduktion til metodeunderstøttelse I Visual Studio ALM
- MSF for Agile Software Development; team model, principper og værdier, projektforløb, roller, arbejdsgange og spor
- Online metodehåndbog og tilpasning af denne
- Visual Studio ALM – Versions- og konfigurationsstyring
- Team Foundation Source Control; get latest, check in, shelving etc.
- Check-in policies, herunder eksempler på egenudviklet check-in policy
- Visual Studio ALM – MS Build og Build Server
- Introduktion til MS Build med build script eksempler
- TFS Build server; Opsætning, build script opbygning og output i Visual Studio. Nightly builds og continuous integration
- Visual Studio ALM – Statisk kodeanalyse
- Opsætning og anvendelse af kodeanalyse
- Regelgrupper og regler
- Eksempel på oprettelse af egen regel
- Visual Studio ALM – Automatiske tests og testdækning
- Automatisering af tests samt test-først programmering ved hjælp af MS Test som test-værktøj.
XML web services
- Introduktion til XML web services
- SOAP headers og extensions
- WSE (Web Services Enhancements) og standarder