Time is never time at all
You can never ever leave without leaving a peace of youth
And our lives are forever changed
We will never be the same
The more you change the less you feel
Believe, believe in me, believe
That life can change that you're not stuck in vain
We're not the same we're different tonight
Tonight so bright tonight
-- Billy Corgan
HAPPY NEW YEAR 2006
On last Dec 22, I delivered another VSTS session at UGM, Yogyakarta. The event was VS 2005 Campus Launch. The event was great, the MC was such a crazy dude. :) The other sessions were delivered by Risman & Zeddy.
It is always great to do talking on campus.
One might notice in Visual Studio 2005 the autogenerated proxy class for refrerred Web Services no longer has BeginServiceMethodName and EndServiceMethodName methods for asynchronous usage scenarios of the Web Service (IAsyncResult Pattern).
The autogenerated proxy class now has ServiceMethodNameAsync method, ServiceMethodNameCompleted event, etc that supports an asynchronous programming pattern called: Event-Based Asynchronous Pattern.
This Asynchronous Pattern is not just applicable to web services proxy, but also RECOMMENDED as the DEFAULT Pattern to be used for asynchronous programming support in ALL kind of .NET applications (WinForms, Console, etc) rather than the IAsyncResult Pattern.
The Event-Based Asynchronous Pattern allows client code to use the familiar event based approach.
More details on this Pattern:
Yesterday (Dec 20) I delivered a VSTS session to students & some lecturers of the Budi Luhur Univeristy. It was a great event. Good job, Joule!
To Budi Luhur folks, nice meeting you!
Some people think LINQ is just a query language to query databases (especially Relational Databases). Some people think LINQ is just another ORM. This is the wrong view of LINQ.
No it is not! LINQ IS NOT ORM.
LINQ is language keywords (not a set of APIs like the others) that query anything. LINQ queries Relational Databases, XML files, other form of XML data, in memory objects, in memory collections object, in memory arrays, etc.
LINQ not just bridges program (OO) with Data (in Databases), but bridges program and data in ALL FORMS.
This one is COOL!
You can profile your code performance to find out the problematic area. The profiler will tell you which methods:
- Took longest time
- Did most individual work
- Called the most
So, you can start optimize your code for performance.
The profiler will also reports:
- The profile of ALL methods in the path (The elapsed time for each method, etc)
- Call Tree
- Object Life Time
How to use it? Damn simple, there's a wizard on the menu: Tools > Performance Tools. you can choose to Sampling or Instrumentation. All you got to do is point to an executable assembly, and launch the test. The profiler will generate the report for you.
However, this Code Profiler feature is only available for VSTS (Visual Studio Team Editions for Developer and Visual Studio Team Suite).
Again, this baby is cool. I will use it a lot! When it comes to Performance... MEASURE! MEASURE! MEASURE!