vrijdag 21 september 2012

devNetNoord #3: Een succes

 

clip_image00120 September werd alweer het 3e devNetNoord event gehouden. devNetNoord is een platform voor en door de Noord Nerdelandse .NET developers. Er waren 3 sprekers te gast met een aantal interessante onderwerpen.

De eerste spreker was Kees Dijk die ons in een korte tijd het hele asynchrone dotNet landschap liet zien. Van de historische componenten uit dotNet 1.0 en 2.0 tot de relatief nieuwe toevoegingen in dotNet 4.5. Asynchroniteit is een onmisbaar component in moderne toepassing, dit heeft verschillende oorzaken: toegenomen belang van een responsive UI. Voor moderne applicaties, denk aan apps op een tablet, is het dodelijk als de UI niet vlot reageert op de user input. Dit heeft als gevolg dat alle operaties asynchroon afgehandeld moeten worden zodat de UI thread niet geblokkeerd wordt.

Een ander gebruik van asynchroniteit is het beter kunnen benutten van de meerdere cores van moderne CPU’s. Door je werk te verdelen over meerdere core’s kan er een behoorlijke performance winst behaald worden.

Gelukkig wordt het door verschillende toevoegingen aan dotNet steeds eenvoudiger om asynchroniteit in te bouwen. Vooral de introductie van Task<T>, async/await, Parallel Ling (plinq) maken het eenvoudig(er) om asynchroon/parallel te programmeren. Ook toevoegingen de Reactive Extensions (RX) maken het eenvoudig om bijvoorbeeld events van sensoren (denk aan GPS, touch input) eenvoudig af te handelen.

De tweede spreker, Pieter Joost van de Sande, had een heel ander, onderwerp: Command Query Responsibility Segregation (CQRS) architectural pattern. Een verfrissende kijk op het opzetten van een applicatie architectuur. De CQRS werd vergeleken met de traditionele drie lagen architectuur van Presentatie, Business logica en data acces. Bij CQRS is de architectuur opgesplitst in een lees kant, geoptimaliseerd voor het presenteren van de gevraagde data. De data wordt zoveel mogelijk hap klaar en ge-pre-rendered voor de UI klaargezet, voor maximale responsiveness en schaalbaarheid. De andere kant van de architectuur is de schrijf/actie kant, waar die de gebruikers acties afhandelt. De acties worden als commands door gegeven een command handler welke er events van genereerd. Al deze events worden afgehandeld door de domein laag en opgeslagen in een repository. Door verschillende ‘inspectors’ op de events worden lees data bijgewerkt .

clip_image002

Grote voordelen van de architectuur:

  • Schaalbaar en snel. De read kant is geoptimaliseerd voor presentatie en kan eenvoudig geschaald worden.
  • Doordat alles wat gebeurd door de applicatie geregistreerd is het ook achteraf mogelijk business logica en business value uit de data te halen. Er kan waardevolle marketing informatie uit de historische data gehaald worden!

Nadelen:

  • Specialistische hardware voor het afhandelen van de IO’s
  • Er moet veel data gemanaged worden

 

clip_image003Als laats liet Gerard van der Pol ons de nieuwe features van Visual Studio 2012 en TFS 2012 zien. Wat vooral interessant is zijn de nieuwe toevoegingen aan TFS om het werken in teams beter te ondersteunen. De scrum dashboard hebben bijvoorbeeld een update gekregen zodat deze ook goed te gebruiken zijn als vervanger van het vertrouwde papieren scrum dashboard met de gekeurde post-its. Vooral handige als je team fysiek over meerdere locaties verdeeld is.

Als met al weer een geslaagd event! Tot de volgende devNetNoord.

woensdag 22 augustus 2012

Compiler warning: There was a mismatch between the processor architecture of the project being

I recently created a new SharePoint 2010 development machine. Since Visual Studio 2012 is out now I decided to use this version of Visual Studio. Everything works fine, but I receive a compiler warning:
There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

Since I do not want to change the deployment target platform, the most simple solution is to suppress the error message.

Unload the project en edit the project file.
Add the following to the  (first) propertygroup element

<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>

maandag 20 augustus 2012

No ULS log for web applications with a custom application pool account

When recreating a new SharePoint  I noticed no ULS for a web application. When creating a new managed account in the new web application wizard the user is not added to the "Performance Log Users" group.

When adding the used to this group, and a IIS reset, ULS log started to appear for the web application.