Category Archives: Just Rambling

Two nights, Two Montreal .NET User Groups

I had fun in Montreal! I presented at the GUVSM user group run by Guy Barrette and Eric Cote (who do a very great and fun Johnny Carson/Ed McMahon, Dave Letterman/Paul Schaffer kind of routine although Guy is definitely a straight man). There were 75 people at the meeting! But it was a special meeting. There were two presentations, the first being Mario Cardinal speaking about the Microsoft Application Blocks (in French so I sat in the lobby), my own WSE presentation and MSDN Canada had donated 20 sets of MS Press .NET Certification books to give away to attendees. So it was a great draw.

It was my first time doing this talk and I learned that I actually have two talks built into there, so in the future I will split them up and be sure that I have at least 2 hours of user group time available. The first part of my presentation is something like “everything you wanted to know about the tools of security – keys, encryption, signing, and the 4 tenets: authentication, authroization, integrity and confidentiality, etc. etc. – but nobody ever explained becasue they assumed you knew it and then you were too embarrassed to ask”. So that’s the long title. Anyway, I was so excited about presenting this information that it ended up being most of the talk. I will have to decide how to modify this entire presentation so I can cover a little more mileage with a little less detail at DevConnections and of course one of my demos tanked ugggh – isn’t that the way. However, the talk was really well received because people walked away with a much greater understanding of the foundations of security and I told them that they just MUST do the Hands on Lab that is on the msdn.microsoft.com/webservices/buildling/wse site.

It was a fun group and a fun night.

Since Sylvain Groulx requested that I stay to talk to his group, GUMSNET, on Tuesday, that group paid for a hotel room for me to stay overnight. Oooh I just LOVE the Omni Hotel especially that as a Select Guest you don’t have to check out until 4pm. So I just stayed there all day in my p.j.s working. What a huge luxury. Now if only they had SECURE wireless rather than unsecure…

The GUMSNET group was getting an updated version of my What’s new in the Whidbey Base Class Libraries talk. That just gets more and more fun every time I do it and I seem to do it right after a release and get to add new things into it all of the time. This time, one of the topics I added in was the BackgroundWorkerProcess class. Unfortunately, I had looked it over, looked through the online samples and though wow – very cool, I get what it’s doing, must add this in. However, it is such an interesting class that we all wanted to dig further into it, but I didn’t have enough knowledge of it at the time. So that’s on my todo list for a mod to this presentation.

There were two questions during this talk that I want to follow up on.

One: Do DebuggerVisualizers get used by classes derived from the classes they are targetted for? The answer is YES! (or should I say “Oui!”) Here is an excellent article by Scott Nonnenberg from Microsoft on the topic and a direct quote:

Multiple visualizers can be associated with one type, and a visualizer can be associated with multiple types. A class derived from a class with visualizers associated with it will inherit those associations, but visualizers cannot be associated with interfaces.

Of course, I still want to test this myself…

Two: Does Client-Side Caching persist across sessions? The logical answer is yes, of course, because it’s on the local machine. However I am going to get confirmation in case there is something wrong with my logic.

Merci, GUVSM et GUMSNET, pendant un temps merveilleux à Montreal!

Converting VB apps with generics to beta1 refresh

I just opened up a generics example I wrote in the tech preview of VS2005 in the Beta1 refresh. THe converter turned all of my VB generic declarations from this:

Dim JulieDate As New JuliesVBClass(Of Date)

to this

Dim JulieDate As New JuliesVBClass([Of] Date)

I’m sure it’s a known issue by now so I’m just sticking it here as a reminder to myself. The compiler picked up all the errors of course that the brackets around Of created.

Off to present at two Montreal User Group Meetings

It’s a great day for a drive and good thing as I am heading up to Montreal for a few days.

I am speaking at two user groups. Tonight I will be presenting at GUVSM, basically translates as Montreal Visual Studio User Group. They will be getting the first outing of my Web Services Security for Dummies with WSE2 presentation that I have been working on for quite some time. The group is run by Regional Director Guy Barrette and the ever-charming Eric Coté. Mario Cardinal will also be doing a presentation on the Microsoft Application Blocks tonight. Mario is slated to do an extended version of this talk for Vermont.NET in January, also.

Tomorrow night, I will be speaking at GUMSNET – this is the Microsoft Montreal .NET Architecture Group. At this meeting I will be presenting on What’s new in the .NET 2.0 Base Class Libraries for ASP.NET Developers (aka there’s more to asp.net than system.web). Thanks to user group leader Sylvain Groulx for the invitation and for covering my overnight stay since it is about a 3 hour drive each way.

Still dogfooding WSE2

Although I have learned plenty about WSE2 from reading, thinking, going through the Hands on Lab and creating demos, I knew that if I really wanted to sweat, really wanted to cut my teeth, I would have to implement WSE2 into an existing application. One that wasn’t designed in advance for WSE2 or to implement ws-security, etc. In addition, I have the greatly educational challenge of not having X509 certificates (for the moment) at my disposal on my client’s web server. One thing this means is that I cannot just click “make this a secure conversation” in the WSE2 Policy Configuration Tool and be done with it. I will have to implement symmetric keys for this as well as for encrypting the response from my web service.

Lots to learn in perusing the WSE newsgroup

I have been heading to the WSE Newsgroup lately to deal with some of my questions. Since I have a policy of trying to answer at least one question if I am asking a question, I  have been reading through lots of the questions. Of course, I haven’t found one that I could answer that hasn’t been tackled yet. And…even so, not many I could have answered anyway. Hervey Wilson seems to be mostly responsible for answering questions right now until there are more people with some expertise. But I am seeing a lot of really cool questions as people are digging into some interesting scenarios. I am definitely learning a lot by perusing this list. I recommend it.

Debugging, books and Wintellect, too

A number of things gelled together this morning that necessitated this post.

a) this post by Jeff Prosise of Wintellect about the conundrum he has when asked so many questions in an email that are already answered in one (or more) of his (and others’) books. But he is concerned (from experience) that suggesting the book as a reply, that the person would think he is only attempting to promote book sales. However, if you saw the email Jeff recieved, it is full of incredibly basic questions and way beyond what is reasonable to ask in an email to a stranger. Jeff is very generous with his time, but this person was basically asking for a personal education by email from Jeff.

b) I asked a question on the WSE newsgroup that turned out to be not about WSE but my own lack of good debugging knowledge. I haven’t read John Robbin’s (what I know is an) excellent book on Debugging in .NET. John is another one of the 3 founding partners of Wintellect. Also thanks to Hervey Wilson for his patience in answering my many recent questions in the newsgroups!

c) In July I had a conversation with Jeffrey Richter who was curious about how I found the experience of trying to work in C# when my real knowledgebase if coding in VB. The things that I found confusing astonished Jeff who (very politely) asked if I had ever read his book on programming with .NET.  I know that this book (Applied .NET Programming in  C# or VB version) book is a bible. I have had it here and passed it on to a vtdotnet member and had looked at bits and pieces but not read it. I actually have re-ordered it and am still awaiting my new copy (which I won’t give away this time). Jeff, of course is the 3rd of the Wintellect founding members.

So what am I getting at here? Clearly there is SO much excellent information out there. Clearly it is impossible to get to and digest it all. I wish I was able to find the time and energy (like the amazing devourer of .NET books, Jason Salas) to read all of these books that I have heard SO many wonderful things about. But I also wish I had time to take my dogs for longer and more fun walks, etc. etc.

I think it also gets back to the wonderful point made by Leon Bambrick that reminds me not to beat myself up that I am not an expert (or even 1/2 of an expert) at debugging in .NET. There are SO many things in .NET that are fascinating and important to know and leverage. I *do * know that in time, I focus on one thing after another and learn more and more and more — just not all at once. It’s been two years already! Eeek.

So I just suppose that this post is a reminder to myself and anyone else who could use it that you and I are not inadequate! <g>

When does an error message make me happy?

When it is due to the fact that my web service and client application really ARE reading my policy files!

“Microsoft.Web.Services2.Policy.PolicyVerificationException: WSE464: No policy could be found for this message.”

I’m still in the middle of wiring this up. I have to say that the refactoring process is definitely time consuming (and very educational). It is MUCH easier of course to implement WSE2 when you are working with new projects.

I am working with a client app that has MANY components and many different web services. Even though it is working already, and seems foolish to attempt to tackle this, I know that if I can get this working with wse2 then I have accomplished and learned a lot.