DevDays Boston was FUN FUN FUN

Well – what a day. We had a HUGE attendance (neck and neck with Seattle I think) 600+. There was great energy. All of the speakers were totally ON today and had a great time. The attendees were great. I got to hop on stage during the keynote and talk about the koolaid at the PDC. Actually, Carl asked what was the best thing. I said seeing long lines in front of the men’s room and none at the ladies! ha ha. Then of course I oohed and aahed about WinFS, Avalon and Indigo. How easy Indigo will be for people who want to leverage it but not get under the hood (WSE2 will be able to give you a taste of that) and the coolness factor of all of those FAKE computer programs on CSI coming to real life in Longhorn.

There were a LOT of people in the web track. I loved doing my talk. I wish I could spend a whole day on that so that I can feel like I really was able to teach people the real details. It’s frustrating to have so much great content and not a lot of time. I will continue to blog about some things here.

I had a number of women tell me that it made them really happy to see a woman speaker at such a big event. (hip hip hooray) It’s still hard to explain – but to me it’s about not feeling like an alien when you go to these things.

The nicest surprise in Boston was discovering that Omar Shahine was there staying in the same hotel. So we hung out last night (I had had dinner with Carl Franklin and Rory Blyth and talked with Omar while he ate a yummy sushi dinner) then after today’s show, everyone bolted and I wanted to wait out the traffic and storm before heading north to Nashua, so I tracked Omar down and we had dinner. It was fun learning about his background and how he came to Microsoft by way of Apple and is, as they all seem to be, very passionate about Microsoft as an incredible place to work.

Speaking of Rory – I did not see his smart client talk (same time as mine) however he was SO funny and fun when demoing C# generics during the closing keynote. Carl and Pat Hynds are just the funniest team when doing the keynotes.

The only bad part was the nasty snowstorm at the end of the day. I whiteknuckled it all the way to Nashua only to find when I arrived a tthe hotel that all of the Leszynski people who are running the TabletPC workshop tomorrow were stuck in Denver. So the event had to be cancelled (the weather here is enough to justify that anyway) Bummer. I was going to show off the corporate application that I have been working on for tablets! But I have a nice hotel room and will swing by a client’s office tomorrow on the way back to Vermont.

A special thanks also to all of the folks who handled the DevDays event in Boston!!!

Handing out some books at DevDays

Amy Sorokas from SAMS sent me a bunch of ASP.NET books to give away at DevDays! Since there is no time really to do that after my talk (since there is the 4th session immediately) I will bring them to the User Group booth and we will be raffling them off. The booth will be a shared effort by the local Boston user groups and some outlying groups, like my own – Vermont .NET. I think the plan is that we will give the books away at the end of the day.

Getting ready for Boston DevDays

I’ll admit I was nervous going into my first DevDays talk in Hartford a few weeks ago. I just didn’t feel like I “owned” my material yet. Boston DevDays is 2 days away and I am REALLY looking forward to doing my talk. Since Hartford, there has been a plethora of output analysis and further digging into the DevDays content. I have learned a lot and also just had a chance to come to a much better understanding of the many areas that I cover in the Defenses and Countermeasures session. Also given the great volume of information that I am trying to present, I am also feeling more prepared about how to give some real value in the hour that I have rather than fly through the deck.

I will be using my TabletPC to give my presentation this time.

I will also be staying an extra day to talk about the possibilities with custom applications written to leverage the Tablet PC (in Tyngsboro) at this free event held by the folks who bring you www.tabletpctraining.com.

IIS6 Virtual Server, FrontPage 2002 Extensions and frontpg.lck

Since I could not find this on the web, I am putting it here for the next person.

When trying to upgrade a virtual server in IIS6 with the FP2002 extensions, I received an error message “unable to access frontpg.lck“.

Since I was logging into the process with an admin account, I needed to add that account to the permissions of the _vti_pvt folder (even if it is just temporary) for write access.

Extending this virtual server solved the problem I was having with not being able to edit an ASP site in Visual InterDev since I moved from Win2K server to Win2003 Server.

More on ValidateRequest: Don Kiely in ASPNetPro “safe by default comes at a cost”

I recently learned about the v1.1 ValidateRequest (on by default) feature and wrote about it (though the comments to that post are the most interesting part…). Don Kiely has more to say on ValidateRequest in this quick ASPNetPro article. If you are writing aspnet1.1 sites, you should really be aware of what’s going on in the background with this and take responsibility for your applications.

Q&A with VJ# and C# Team on Generics

From a conversation with Brian Keller, the PM on the VJ# team and some additional input from C# dudes, Dan Fernandez and Eric Gunnerson .

For further enlightenment, read Jason Clark’s introductory article on “what is generics…“ from Sept 2003 MSDN Magazine.

Q) I know I can’t code VJ# for beans, but why can’t I create generic classes in VJ# like I can in C# and VB.NET?

A) VJ# can consume generics but cannot create generics.

Q) But Generics is part of the CLR. Why is it acting like it is only a language enhancement for C#, VB.NET and C++.NET?

A) Generics is baked into the CLR as much as other data types are built into the CLR and IL. The way generics are implemented is that when you use a generic type, a “placeholder” is added where the generic value will be used in the resulting IL.  Only on first execution is a specific version of the specialized class created.  Once you get to the IL level, there is nothing language specific going on, it’s all the CLR.  The BCL has several examples of generics including collection classes available in the System.Collections.Generic namespace and ObjectSpaces, an object-relational mapping tool is using generics for their underlying data structures. Generics are present at the IL level – that is, if you declare a parameter as a List<int>, you will get that type if you use reflection on the parameter.

Q) So if it is in the CLR and I can’t fully use it in VJ#, does that mean it is up to the language developers to leverage it (or not)

A) Correct, generics were not added to the Common Language Specification because it puts a large onus on language developers that would then need to implement generic data types in their compilers. It will likely be added to the CLS in the Orcas timeframe (following Whidbey).

Q) Aha! This is definitely a point of confusion/contention because at first many people kept saying that generics is a C# language enhancement and suggesting that it did not exist in VB.NET, which pissed off a lot of VB people. Even Elden Nelson wrote something that was interpreted that way in an editorial for ASPNetPro. Then the word was “no no no – generics is part of the framework and therefore available everywhere…” But that statement doesn’t quite work as we see with the lack of the implementation in VJ#. So what we are really seeing is variations on implementation: C# does it one way, VB.NET does it another and VJ# does it another. The lack of the “consuming“ implementation in VJ# is not really any different than the language difference, for example, between how we declare a variable in VB.NET and how we do that declaration in C#.

A) You are correct, C#, Visual Basic, and C++ will support creating and consuming generics.  J# will only support consuming generics at this time, largely because the Java community has yet to start using generics.

Q) Let’s qualify “Consume generics” for our audience: does that mean if I have an assembly that I wrote in VB or C# and it contains some generic custom classes, then I can use those from a VJ# assembly just as I would access the system.collections.generic classes?

A) Correct, you can use these classes, you simply cannot create your own.

TechEd 2004 BOF – another Women Who Code BOF

Here’s the description:

This will be an opportunity to continue conversations begun at PDC as well as the TechEd 2004 Women in I.T. Luncheon. Meet other women who are programmers and discover that you are not, in fact, an alien! Chat about our visibility in the industry and other related issues that sometimes make us scratch our heads and wonder.

I tried to word this carefully so that nobody would start in on me. If you have any questions in that vein, just read this. The session is not intended to be some political bra-burning event. Do you know how expensive bras are, anyway? At PDC we had a cool discussion that involved also a lot of men who were curious about their daughter’s future in tech or trends they have noticed in university etc.

Personally I just love meeting other women at conferences who are programmers. I don’t feel quite so out of place. We have an abnormally high percentage of women in my user group, too.

There is also going to be a Women in Tech luncheon with a panel, similar to last TechEd. So I will pull some strings to ensure that this BOF is AFTER that luncheon.

Oh and go vote! It’s www.ineta.org/bof  then “proposed sessions”.

There are a bunch of other great sessions up there already, too.

code generation starting to show up on my own radar

For some reason, I have not been that interested in code generation up until recently. I have looked only briefly at some of the tools out htere and not at all at others. I guess I saw them as an all or nothing situation – rather than leveraging code generation for bits and pieces of my development and then going back to my old control freak usual self for the rest. However, recently two things have been turning my head. One is constant exposure to it through Kathleen Dollard and the other was seeing an example of code generation that Jason Beres showed in our user group meeting on Monday. I watched him, with a button, create pieces of code that I am writing by hand – the way I would write them. It was a “v-8” moment. Can’t drop everything and play with it at the moment, but it will happen – hopefully before the next time I start coding up a class full of properties that are more than 50% matching the structure of a table in my database.