Monday, November 12, 2007
OK.. I have built a foundation of .NET v2.0 competence. I have passed the exam so I'm quite chuffed.
I'm not sure what more I can say after agreeing to so many non-disclosure-type conditions prior to the exam!!
Watch this space for more .NET developments!!

posted on Monday, November 12, 2007 10:17:27 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
 Sunday, November 11, 2007
Ended up re-scheduling last weekend following some dismal test marks after covering the relevant chapters on Security. Have spent last week covering Services, Threading, Application Domains, Configuration, and the weekend covering Debugging, Tracing, Event Logging, COM interop and Reflection.

Have taken most of the MeasureUp tests now, all without reference to materials. When I've been thorough things have gone OK (high 70%s), blotting the copybook have been Security (sub 40%) and COM Interop / Reflection (50%). The main thing now is concentrating on review of the test exam questions. Reviewing areas I haven't looked at for ages i.e. Collections, Generics, Eventing. Areas that have received minimal attention are not going to be revisited now (i.e. Regular Expressions, Graphics)

I've got a couple of spare hours in the morning and then exam is mid-afternoon. I'm feeling that I'm not quite as solid as I'd like to be but it is definitely worth a shot now.

posted on Sunday, November 11, 2007 9:58:22 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
 Sunday, October 28, 2007
I've not made the kind of progress I had hoped for this weekend, even with the help of an extra hour with the clocks going back. The upshot is I've re-scheduled for a week later than anticipated, on 7th Nov.

I could point to domestic responsibilities: 4 year olds who refuse to go to bed, the need to mow the gardens before the weather takes a more autumnal turn. Let's be honest here though - there's also the learning of some quite unfamiliar material found in the objectives of 70-536 which has taken more time than I'd expected. For instance, I've sought some additional resources on Code Access Security here and here. It's not something you can just read and absorb first time around. I found some consensus within the comments of the latter CodeProject article.

Also, I've made some efforts to continue with working examples where applicable which can consume time. It's one thing I've done more of compared to preparing for 70-315 which was more taking notes like for a University exam. Below is a code snippet from my tour of 'globalization'. Some things do get overwritten but I've tried to preserve the extent of the exploration. Also, I've never used the code coloriser within DasBlog's admin pages. I've had to do some manual indentation to get things looking more readable.

using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Threading;

namespace GlobalizeThis
{
class Program
{

static void Main(string[] args)

{

Console.ReadKey(true);
}

static void AlreadyTested()
{
//CultureInfoExample1();
//Thread.CurrentThread.CurrentCulture = new CultureInfo("es-VE");CultureInfoExample1();

//FormattingExample1(); CultureInfoExample2(); CultureInfoExample3();

//RegionInfoExample();
//Thread.CurrentThread.CurrentCulture = new CultureInfo("es-VE"); RegionInfoExample();
//Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); RegionInfoExample();

//DateTimeExample1();DateTimeExample2();

//NumberFormat();

//CompareInfoExample1();
//CompareInfoExample2();CompareInfoExample3();

}




static void CompareInfoExample3()
{
string s1 = "Coté";
string s2 = "coté";
CompareInfo demoInfo = new CultureInfo("fr-FR").CompareInfo;

w("if zero then equal. non-zero values indicate differences", demoInfo.Compare(s1, s2, CompareOptions.IgnoreCase).ToString());

}

static void CompareInfoExample2()
{
string s1 = "Coté";
string s2 = "coté";
CompareInfo demoInfo = new CultureInfo("fr-FR").CompareInfo;

w("if zero then equal. non-zero values indicate differences", demoInfo.Compare(s1, s2).ToString());

}

static void CompareInfoExample1()
{
CompareInfo demoInfo1 = Thread.CurrentThread.CurrentCulture.CompareInfo;
w("name of compareinfo", demoInfo1.Name);
w("LCID of compareinfo", demoInfo1.LCID.ToString());

CompareInfo demoInfo2 = new CultureInfo("en-US").CompareInfo;
w("name of compareinfo", demoInfo2.Name);
w("LCID of compareinfo", demoInfo2.LCID.ToString());
}



static void NumberFormat()
{
CultureInfo usersCulture = new CultureInfo("es-VE");
w("Venez Currency", usersCulture.NumberFormat.CurrencySymbol);
w("Number decimal separator", usersCulture.NumberFormat.NumberDecimalSeparator);
}

static void DateTimeExample2()
{
CultureInfo myCulture = Thread.CurrentThread.CurrentCulture;
CultureInfo usersCulture = new CultureInfo("es-VE");

int i = 0;
//string[] months = usersCulture.DateTimeFormat.MonthNames;
string[] months = usersCulture.DateTimeFormat.AbbreviatedMonthNames;
foreach (string venezMonth in months)
{
w(myCulture.DateTimeFormat.MonthNames[i++], venezMonth);
}

w("no of months", months.Length.ToString());
}

static void DateTimeExample1()
{
CultureInfo myCulture = Thread.CurrentThread.CurrentCulture;
CultureInfo usersCulture = new CultureInfo("es-VE");

int i = 0;
string[] days = usersCulture.DateTimeFormat.DayNames;
foreach (string venezDay in days)
{
w(myCulture.DateTimeFormat.DayNames[i++], venezDay);
}
}

static void RegionInfoExample()
{
CultureInfo usersCulture = Thread.CurrentThread.CurrentCulture;
RegionInfo demoRegion = new RegionInfo(usersCulture.LCID);
w("English Name", demoRegion.EnglishName);
w("Display Name", demoRegion.DisplayName);
w("Currency Symbol", demoRegion.CurrencySymbol);
w("Is Metric", demoRegion.IsMetric.ToString());

}

static void CultureInfoExample3()
{
foreach (CultureInfo userCulture in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
w("Culture", userCulture.Name);
}
}

static void CultureInfoExample2()
{
CultureInfo usersCulture = Thread.CurrentThread.CurrentUICulture;
w("The current culture of this application is", usersCulture.Name);

}

static void FormattingExample1()
{
w("Salary is", (100000).ToString("C"));
}

static void CultureInfoExample1()
{
CultureInfo usersCulture = Thread.CurrentThread.CurrentCulture;
w("The current culture of this application is", usersCulture.Name);
w("The display name of this application is", usersCulture.DisplayName);
w("The native name of this application is", usersCulture.NativeName);
w("The ISO Abbreviation of this application is", usersCulture.TwoLetterISOLanguageName);
}

static void w(string p, string s)
{
Console.WriteLine("{0} : {1}", p, s);
}
}

}



posted on Sunday, October 28, 2007 9:11:59 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
 Saturday, October 27, 2007
I've decided to throw caution to the wind and book in my exam. I read this blog post about a week ago and was inspired to take advantage of the free second shot. I had a certain amount of pride at passing 70-315 on the first time, but on reflection I probably studied a little too intensively and left the self-testing a little too late before the exam. This time, I've decided to iterate more rapidly through the material with testing sessions after each block.

The appeal of second shot is I can accurately assess areas of weakness using the actual exam first time around. Agreed that not many examination formats allow for this but it seems nonsensical to pass up the opportunity. There remains the possibility that I might even pass (!), although with this weekend and a couple of work days remaining I'm pessimistic of covering enough ground in sufficient detail, although the intention is that I will at least read through everything.

My approach has been to cover the material according to the 7 individual exam objectives. I've used the 70-536 book and its lesson review questions, along with the eLearning material I've been using. I much prefer the style of the book and I alternate freely between the book and the .pdf so its not an online-phobic thing. After covering each objective, I've used the MeasureUp tests and selected the module in question to fire back all the specific questions in the bank. Then, on review I'll focus in on the incorrect answers and refer back to the information sources. I jumped the gun last night on serialization having missed out the XmlSerialization side of things and paid the price (58% and failure!). I'm keeping screen-dumps of all incorrectly answered questions just for later review closer to the exam.

Anyway, must get back to the grindstone.

posted on Saturday, October 27, 2007 10:33:30 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
 Wednesday, September 26, 2007
I've been working with Microsoft's eLearning packages on and off for a few months now. The Collection 5160 covers 7 Courses considered as part of a 'Core Development' skill set. In a sense, I find these courses useful as a starting point, but they really only serve to whet the appetite for more information. Anyway I've always found that reading around a subject is necessary for reinforcement and as a matter of course I've done some googling as well as referring to my Safari bookshelf and MSDN. Writing some console applications and getting them working really helps cement the ideas in place and are also good for later referral.

For example, last night I was working on delegates and events. I worked through the eLearning material but found some of the examples either too brief or simply error-strewn and poorly explained. A quick search on EventArgs on my Safari bookshelf and some really useful examples are described in Donis Marshall's C# book and some advanced stuff to get to grips with in Bill Wagner's Effective C#. This morning I've quickly followed up on the eLearning environment's online forums, however not a lot of peer review goes on here and the moderators are non-existent bar the obligatory 1st post explaining how happy they are to help!

In summary, my overall approach to learning new technologies is based on knowing that passing the exam is not really going to be the end of the road. Especially with v3.0 and v3.5 to learn on top. There is no substitute for really understanding your stuff. Microsoft eLearning could do with putting this approach into practice.

posted on Wednesday, September 26, 2007 10:04:00 AM (GMT Standard Time, UTC+00:00)  #    Comments [3] Trackback
 Monday, June 11, 2007
I've persuaded my employers to allow me to undertake some online learning instead of a traditional lecture/tutorial-style course. I've opted to take the Core & Advanced Development for .NET 2.0. The pluses for me are: flexible study pattern and that it has plenty in common for the 70-536 exam.

I have decided to go for this exam first to firmly cement the enhancements to C# in my conciousness. With a better background of the fundamentals I think 70-528 will be a more natural progression. I was influenced by others on this matter.

posted on Monday, June 11, 2007 3:56:21 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
 Monday, May 07, 2007
I recently bought the Microsoft exam preparation books from Amazon.com, taking advantage of both the $/£ exchange rate and a 15% exam discount voucher for each of the 3 exams which comes with the books.

posted on Monday, May 07, 2007 11:43:26 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback