woensdag 6 mei 2009

Een super handige link

Het is mogelijk om in ms sql management studio een aantal standaard sql querys aan keyboard shortcuts te hangen. Bijvoorbeeld ctrl + 1.

http://sqlservercode.blogspot.com/2007/01/increase-your-productivity-with-query.html

woensdag 15 oktober 2008

VS.net shortcuts

Advanced VS.net keyboard shortcuts
Basic

Ctrl + shift + B of F6 Save all files and rebuild
Ctrl + s Save current file (*shift voor all files)
F5 Save all rebuild en start with debugging
F4 Open properties (werkt ook op solution files)
F7 Switch designer / code (met shift is terug)
Ctrl + F Search
Ctrl + i Type to search

Code Opmaak
Ctrl + K , D Auto layout code
Ctrl + K , C Plaats commentaar om geselecteerde regels
Ctrl + K , U Uncomment selection

Bookmarks etc
F12 Go to definition
Ctrl + - Go back (terug van definition of auto bookmark)
Ctrl + shift + - Go Forward (vorige auto bookmark)
Ctrl + B, T Plaats een bookmark
Ctrl + B, P Previous bookmark
Ctrl + B, N Next bookmark
Een autobookmark word aangemaakt als je een korte tijd een regel blijft bekijken.
Intellisense
Ctrl + spatie Forceer intellisense + auto complete bij 1 keuze
Ctrl + . Forceer smart tags menu (using/import etc.)
Door typen met intellisense Incremental search
Pijltje omhoog omlaag met intellisense Loop door opties
Met intellisense drop down open:
tab
spatie
any key
Auto complete zonder spatie
Auto complete met spatie
Auto complete met any key
Refactoring
Ctrl + R, E Encapsulate Field: maak property van private field
Extract Method: Ctrl + R, M
Promote Local Variable: Ctrl + R, P
Remove Parameters: Ctrl + R, V
Rename: Ctrl + R, R
Reorder Parameters: Ctrl + R, O
Surround With dialog: Ctrl + K, S
Debugging

F5 Save current file rebuild en Start met Debuggen
Shift + F5 Start zonder debuggen
Ctrl + shift + B Save all files and rebuild
F9 Insert breakpoint
F10 Step over
F11 Jump into function
Slepen aan de gele pijl Pas instructie pointer aan naar vorige regel
Code aanpassen bij een breakpoint Pas code aan (edit and continue)
Let hierbij wel op geen functies of try catch statements aan te passen, dat mag niet.
Snippets
Alle snippets werken door het invoeren van twee keer tab
Ctrl+ K , X Open snippets dropdown
Prop +tab tab Maak een nieuwe property met een simpele wizard, switch van veld naar veld met tab en stop de wizard met enter.
ctor
~
svm
Cw Constructor
Destructor
Static void main
Console.writeline
For
Foreach While
If Else
Switch Try
Tryf


Default
Copy paste, undo redo werken ook in visual studio.
Win + e -> windows explorer
Ctrl + shift + escape -> task manager
Win + 1 … -> quick start shortcut starts

R-alt + enter -> full screen vpc
R-alt + del -> ctrl alt del in vpc

maandag 6 oktober 2008

Live op de SDC

De software development nederland conference is in volle gang. Sessies van Silverlight tot TSQL, van het antieke delphi tot F#.

Ik ben begonnen met een sessie over annotations in silverlight, een rustige wake up.
Hierna een introductie F#, dat scheelt me weer flink wat onderzoek.
Verder aan de slag met een introduction entity framework
daarna zie ik wel weer wat er verder gebeurd.

Binennkort zelf maar een sessie regelen over design patterns.

F#

Met F# is het mogelijk om grote berekeningen op veel data te verwerken. Het tonen van een formpje met een button ed. is echter een stuk minder praktisch. F# is vooral bedoeld voor academici en statistischi.

Tijdens de sessie over F# een mooie introductie gehad over functioneel programmeren.
FP is het schrijven van functies met input en output parameters die zo min mogelijk side effects hebben. Door weinig side effects is het makkelijk om de functionele code parallel uit te voeren. F# is een taal met een compleet andere gedachte goed dan C#. F# heeft een heleboel functionaliteit aan de .Net Common Intermediate Language (CIL) toegevoegd. Technieken zoals generics, lamda expressies en linq zijn compleet aan F# (en andere FP talen) te danken.

Veel andere FP technieken zoals currying zijn ook in F# aanwezig en alleen met een omweg of bergen code mogelijk in C#.

maandag 16 juni 2008

MCP'er worden

Microsoft Certified Professional ben je zodra je een microsoft examen hebt gehaalt. Maar er zijn nog veel meer termen. De termen MCTS(technology specialist) en MCPD(professional developer) zij de opvolgers van de MCAD.net term (Microsoft Certified Application Developer). De MCAD.net term zal worden gediscontinued vanaf 31 mei 2009.

Over mijn complete .Net 2.0 certificatie heb ik 11 maanden gedaan. (dit is met tijd van mijn baas, niet alleen in eigen tijd)


Hieronder staat een korte uitleg over de .Net 2.0 certificaten. De drie grote developer groepen zijn:

Technology Specialist (MCTS)
.Net Framework 2.0: Windows Applications
.Net Framework 2.0: Web Applications
.Net Framework 2.0: Distributed Applications

De vervolgen hierop zijn de Pro's

Professional Developer (MCPD)
Windows Developer
Web Developer
Enterprise Application Developer

De examens die hierbij horen zijn:
526 TS: Microsoft® .NET Framework 2.0 - Windows®-based Client Development
528 TS: Microsoft® .NET Framework 2.0 - Web-based Client Development
529 TS: Microsoft® .NET Framework 2.0 - Distributed Application Development
536 TS: Microsoft® .NET Framework 2.0 - Application Development Foundation

549 PRO: Designing and Developing Enterprise Applications
547 PRO: Designing and Developing Web-based Applications
548 PRO: Designing and Developing Windows®-based Applications

Microsoft is sinds april 2008 bezig met de 3.5 certificatie. Die bestaat uit:

Technology Specialist (MCTS)
.NET Framework 3.5, Windows Presentation Foundation Applications
.NET Framework 3.5, Windows Communication Foundation Applications
.NET Framework 3.5, Windows Workflow Foundation Applications
.NET Framework 3.5, Windows Forms Applications
.NET Framework 3.5, ASP.NET Applications
.NET Framework 3.5, ADO.NET Applications

Professional Developer (MCPD)
Windows Developer 3.5
ASP.NET Developer 3.5

Hier hoort ook weer een flink pakket examens bij:
Exam 70-502: TS: Microsoft .NET Framework 3.5 - Windows Presentation Foundation
Exam 70-503: Microsoft .NET Framework 3.5 - Windows Communication Foundation
Exam 70-504: TS: Microsoft .NET Framework 3.5 - Windows Workflow Foundation
Exam 70-505: TS: .NET Framework 3.5, Windows Forms Application Development
Exam 70-561: TS: Microsoft .NET Framework 3.5, ADO.NET Application Development
Exam 70-562: TS: Microsoft .NET Framework 3.5, ASP.NET Application Development
Exam 70-563: Pro: Designing and Developing Windows Applications Using the Microsoft .NET Framework 3.5
Exam 70-564: Pro: Designing and Developing ASP.NET Applications Using the Microsoft .NET Framework 3.5

Deze examens hoop ik de komende 11 maanden te halen.

Naast microsoft zijn er ook nog andere examens waar ik aan werk. Ik ben nu druk bezig met een OMG examen. Het Object Management Group UML specification Foundation en Intermediate examen (www.omg.org) ook wel weer een uitdaging.

woensdag 4 juni 2008

Hoe haal het meeste uit een training

Het volgens van een cursus is zwaar en dagen lang scherp opletten is vermoeidend. Om het maximale uit de inzet te halen hier een aantal tips om het meeste uit een training te halen.

Voor de training:
Het klinkt als een inkoppertje, maar als je een training gaat volgens is het fijn om te weten waar de training over gaat. Ook verschillende onderwerpen van een training zijn ontzettend interssant. De brug tussen praktijk en theorie leggen voor de cursus zorgt ervoor dat de onderwerpen meer spreken en beter blijven hangen.

De meeste trainingen worden gevolgd om een bepaald doel te halen. Wat is het doel van de training? Word een training gevolgd om nieuwe technieken te leren, word er een training gevolgd om theorie bij de praktijk te leren of word de training gevolgd om voor de toekomst klaar te zijn. Zorg dat het doel bij iedereen bekend is en ga voor het halen van dat doel.

Naast het bekijken van de stof is fris uitgeslapen verschijnen altijd een goed punt. Zeker als het op het werk druk is of er een deadline naderd is even uitrusten voor de training een belangrijk punt.

Tijdens de training:
Bij het begin van de training word er altijd verteld wat de onderwerpen voor de dag zijn. Welke onderdelen spreken je het meest aan en wat zijn de belangrijke onderwerpen, schrijf deze gerust ook op als aantekening. Het notitie blok ligt niet voor niets klaar.

Worden er nieuwe woorden of technieken besproken maak dan een aantekening. Het is niet zo dat je de aantekening s’avonds of na de cursus nog door moet lezen (dat kan natuurlijk wel). Belangrijk is het voor de hersenen om te weten dat iets belangrijk is en dus onthouden moet worden.

Legt een docent een onderwerp uit dat belangrijk is, vraag dan gerust verdiepingsvragen aan de docent. De kern van leren en onthouden blijft herhalen en herhalen.

Neem de pauze’s en gebruik ze om even helemaal iets anders te doen. Een hele dag lang scherp blijven kost veel energie die af en toe bij geladen moet worden.

Als laatste nog een kleine tip, zorg ervoor dat je in de pauze niet te zwaar eet. Een hamburger, kroket of kaassoufle is soms heel erg lekker maar zorgt er wel voor dat rond een uur of 2-3 de vermoeidheid inzet. Beter is het om een stevig stuk bruinbrood met wat zoet beleg te eten en in de pauze’s nog een gezond hapje (neem gerust in de lunch een appel mee of een plak ontbijtkoek). Hiernaast is het natuurlijk belangrijk om voldoende te drinken zowel koffie thee en een beker water zorgen ervoor dat je makkelijker wakker blijft.

Er staat trouwens ook achter in het gebouw een cola automaat met goedkope blikjes fris.

Na een traningsdag:
Het laatste dat iemand leert op een dag blijft het beste bewaard. Een ander trainingsboek lezen na een cursus of urenlang tv kijken zorgt er niet voor dat de cursusstof blijft hangen. Probeer na de training nog iets te sporten, wat tijd voor jezelf te maken en lekker op tijd te gaan slapen.

Nog even de cursus stof doorlezen of iets uitzoeken is natuurlijk ook een goede manier om zoveel mogelijk te leren.

Na de training:
Bekijk na de training nog eens welke punten besproken zijn en wat de interessante onderwerpen zijn. Is er een onderwerp in de cursus dat je in het werk gebruikt? Zijn er technieken besproken die goed gebruikt kunnen worden in de praktijk? lees dan gerust de hoofstukken of de aantekeningen nog eens door en gebruik de opgedane kennis zoveel mogelijk.

De beste manier om de kennis te blijven onthouden is het uitleggen aan anderen van de geleerde technieken. Zijn er mischien onderwerpen besproken die ook voor collega’s interessant zijn?

Met deze tips en trucks kan het rendement van een training omhoog schieten.

Als laatste wil ik u nog veel leerplezier wensen bij de cursussen en/of trainingen die u volgt.

vrijdag 23 mei 2008

Blog live van de devdays's 2008

De devdays dit jaar zijn weer georganiseerd in de RAI. Een groot complex waarin makkelijk valt te verdwalen. Vorig jaar was de opmerking dat de zalen lastig waren te vinden en daarom hebben ze dit jaar de zalen nog beter verstopt.

Overal word vemeld dat je naar de foyer toe moet terwijl op de RAI borden over zaal 8 word gesproken. De forum zaal heet op de borden FO. Hilariteit gegarandeerd.

De oplossing van microsoft hierbij is om flink wat mensen/leuke dames neer te zetten die de weg kunnen wijzen. Helaas werkt dat niet ideaal. Verder is er bij de ingang een roltrap omhoog waar s'ochtends in alle drukte een beveiligings meneertje voor staat die niemand doorlaat ook niet als dat 10 minuten in de rij staan voorkomt. Yeah!

Wat ik zoek is een aantal grote borden waarin staat aangegeven hoe de zaal heet en welke zaal het dichts bijzijnde is. Binnenkort een aantal voorbeelden.

Er is ook goednieuws, de shows dit jaar zijn goed.
Ik ben naar de volgende shows geweest:

dag 1
Keynote why software sukcs
David Platt

Advanced debugging with VS2008
Ingo Rammer

Understanding Ado.net entity framework
Mike Taulty

Hierna wilde ik naar: Using WPF for good and not evil van David Platt helaas zat hierbij de zaal overvol. Dus ben ik naar WCF en WF van Ingo Rammer geweest.

WCF on the WEB: Using REST and JSON with wcf


dag 2
Daar zit ik nu nog live in: meer nieuws volgt

zaterdag 17 mei 2008

(de)evolutie

Distributed applications


Computers zijn zo’n 50 jaar geleden uitgevonden. Van die grote kasten met een klein schermpje.

Van deze terminals die een som tegelijk konden doen zijn er niet veel gebouwd. De eerste computers werden veel gebruikt voor complexe berekeningen en de mensen van de invoer via een toetsenbordje/printplaat ingang konden de verwerkings snelheid van computers amper bij houden. Zo’n super snelle computer was het grootste gedeelte van zijn tijd niets aan het doen.

Om de dure computers effiecienter te kunnen gebruiken waren er trucjes nodig om twee of meer processen tegelijk uit te voeren. De code die daarbij hoorde van toendertijd al ontzettend complex. Zodra de threads waren uitgevonden konden er meerdere processen tegelijk uitgevoerd worden op de mainframes en konder er verschillende invoer stationnen/ terminals gebruikt worden om de computer een groter gedeelte van de tijd aan het werk te houden.

Omdat computer steeds sneller werden kwamen er ook meer en meer terminals bij en ook steeds complexere software. De complexe software vroeg steeds meer van de mainframes die door de hogere load ook steeds trager ging reageren. Een brief typen met een IO output elke 3 secondes was normaal. (gelukkig hebben we nu 50 jaar later daar nooit last van met pc’s die miljoenen keer sneller zijn)

Omdat de mainframes steeds goedkoper waren was het mogelijk om meer computers te gebruiken en in de loop van de jaren is de verhouding tussen gebruikers en computers door gegroeid naar 1 op 1. Momenteel is het zelfs niet raar dat mensen meerdere computers voor zich hebben. (eentje thuis, eentje op het werk, in de auto)

Bedrijfs applicaties zijn minder snel gegroeid. Van centrale mainframes waar alle data op bewaard werd naar centrale servers waar clients hun data naar toe schrijven is de verhouding zo goed als gelijk gebleven. Een centrale computer die al de data bewaards. De clients zijn wel steeds slimmer geworden maar de centrale server is nog steeds de kern in het verhaal.

Omdat ook bedrijven complexer zijn geworden zijn bedrijfs applicaties zich ook gaan spreiden. Van een server met een losse database server naar complexere omgevingen waar de verschillende blokken data zoals personeels gegevens, salaris administratie en documenten bewaar server losse onderdelen zijn geworden die toch aan een bedrijfs proces werken.

De losse data servers en applicaties servers zijn los staande brokken functionaliteit. Ze werken regelmatig nog niet samen voor een vloeiend bedrijfsproces. Bij de gemeente zaanstad zijn er momenteel een 17 tal personeels gegevens servers. Denk hierbij aan:

Bewoners en huizen
Vuilnis
Mensen die mogen stemmen
Parkeer vergunningen
vergunning voor honden en katten
Bedrijven
Belasting systeem gemeente
Belasting systeem overheid Noord-Holland
Belasting systeem overheid nederland


En deze servers zijn dus regelmatig niet synchroon. Het synchroniseren van deze 17 systemen is super lastig, niet altijd wenselijk en extreem duur.

Al deze systemen werken natuurlijk op verschillende manieren, kunnen niet met elkaar communiceren, vallen onder de verantwoordelijkheid van verschillende ‘groepen’ en niet alle systemen werken met real time data updates.

Hoe kunnen deze problemen opgelost worden, hoe kan een stapel problemen zich wegwerken. Tegen deze problemen word er meestal met de term SOA gegooid.

Service Oriented Design zou dit woud van services moeten stroom lijnen tot een geheel.

Vervang de toegang tot een enkel dubbel uitgevoerde server die de berichter zelf verstpreid over het netwerk. Was het maar zomakkelijk gezegd als gedaan.

Ik kan me sinds kort goed voorstellen waarom het zo lang duurt bij de balie en waarom de medewerkers achter kogelvrij glas zitten.