Blog Home  Home RSS 2.0 Atom 1.0 CDF  
CoolTechU Blog - .NET
Technology, .NET, and Why It Rules My World
 
 Wednesday, June 14, 2006

Microsoft's Somarsegar announced that Microsoft has officially named WinFX to be the .NET Framework 3.0.  There has been a tremendous backlash on his blog, but I think that people are completely missing the point and mixing apples and oranges.

Some people are complaining that it should be the .NET Framework 2.x (2.5, etc.), but I think it is way too significant, and warrants a major version number change.  After all, they are folding in WPF, WCF, WF and WCS (formerly "InfoCard").  That is huge.

Some people are complaining that they should come out with the CLR 3.0 and C# 3.0 at the same time.  Absolutely not!  These are completely different products.  The framework is a utilitarian type library assisting in writing applications.  That's all it is.  It's huge and indispensable, but it is just that.

C# is a language.  That's it.  Sure, it makes essential use of the framework, but it's been rumored you can write (albiet very simple) programs without the framework (not sure I believe that, though).  Either way, you can easily use it with other versions of the framework.  Saying that C# should be 3.0 is the same as saying VB should come out with version 3.0.  Didn't that happen over a decade ago???  The first VB .NET was really VB version 7.0.

And the CLR is just the runtime environment, and independent from the framework and the language.  Sure, they all have pieces that take advantage of each other and have some built-in hooks that take advantage of one another, but it is quite clear that you can have a mix of versions running together.

Sure, you can look at Microsoft Office, and point out that they release new versions of Word, Excel, Outlook, etc. together -- but that is packaged as a suite.  It's a different animal.

I, for one, agree with Microsoft, and it will help eliminate the confusion between WinFX and the .NET Framework -- because WinFX is really just more namespaces within the framework, and adds to our type library choices.

6/14/2006 3:28:31 PM (GMT Standard Time, UTC+00:00)  #    Comments [2]   .NET  |  Trackback
 Friday, April 07, 2006

Well, last night we did the Disney thing again, since the sessions ended pretty early.  We're into the calm rides -- you know, Spaceship Earth, It's a Small World, etc.  Our rollercoaster days are long gone.  We did want to do the new hang gliding (?) simulation at The Land in EPCOT, but the wait was too long.

Today was the final day at DevConnections, and it was a full day course that was worth the cost of the whole thing.  Juval Lowe taught the "Master C# and Visual Studio 2005" session, and who else but the master should teach this?  Wow.  Juval exudes confidence at a level some people may take as arrogance.  But that would be misinterpreted.  He is no-nonsense, get directly to the point, take no prisoners sort of guy, and I find it extremely refreshing.  And damn if he doesn't know his stuff!

I learned more about generics than I wanted to know, tips about VS that are great to know, more about iterators than you should be allowed to know, on top of delegate inference, anonymous methods, C# refactoring, and much more.  It is amazing how much this guy squeezed into a single day.  I can only imagine how I'd feel after taking a full week of IDesign (his company) master training.  Oh, and if you want to download a free, full version of "My" for C# ("That"), go to their site at www.idesign.net.  And you can download dozens of other great tools and examples.  These guys (and gals) are the masters.

I have not seen an entire class so transfixed for an entire day.  The concentration on every word Juval spoke was intense.  And you knew everyone was at full attention, because of the breakout of laughter just when Juval would sneak in a joke.  He has a wicked sense of humor that catches you off guard.

At the end of the session, not a soul moved.  When Juval asked if we had any questions, everyone sat transfixed, hoping someone would ask a question so the session wouldn't end.  After several questions, we finally did end, and a few of us went up to speak to him a while longer.  One guy asked him how we could learn to be better architects; what books he recommended, websites, anything.  Juval's answer could have been taken as a sales pitch for his company's courses, but it was very truthful -- he stated that the best way today that he could think of becoming a top-notch architect is to learn from a master.  He said that it was how he got to where he is today.  Earlier in his career, he had reached a plateau.  And only when he found a job where he found himself a mentor, did he begin to gain the knowledge and experience he has today.  I thought it was a nice contrast to his obvious current expertise that he admitted to needing a mentor himself.  He also made it a point to say that in order to become a successful architect, you must not be introverted.  You must become an extrovert, and excude the confidence you need to project in order to get to the next level.  I agree with him wholeheartedly.

Juval also made another interesting point, and again I'm paraphrasing here -- he said that his editor at O'Reilly told him that a book with the word "design" in its title is the kiss of death, and that's why there is very little material on architecture.  The money is in specific programming (read: coding) specialties.  He also has a strong opinion about the Microsoft Enterpise Library and their code blocks, in general (and he has a point).  He's not a fan because the people who wrote them don't work in real world apps.  He thinks that there's a lot of smart people at Microsoft who do a lot of things right when it comes to many of the tools, but that when coming up with real-world design solutions, they are the wrong people to be doing it.

I should have asked him why they haven't asked him to help.  He's worked closely with them, so why not help them come up with real-world tools?

Anyway, Yuval is a big reason why I look forward to taking an architecture course from his team.  In my opinion, nobody else in the world qualifies.  It's the next best thing to having him as a mentor.  Now, back to reading his book...

4/7/2006 3:25:48 AM (GMT Standard Time, UTC+00:00)  #    Comments [1]   .NET  |  Trackback
 Thursday, April 06, 2006

Another big learning day on Day 4.  I started with Michele Leroux Bustamante's "Patterns for ClickOnce Deployment and Versioning."  ClickOnce always seems so cool, and I learned things I hadn't from a few other prior demos.  I like the option where you can require the user to download the new version before running the application again.  This is especially useful in an enterprise environment in situations such as breaking changes to a database schema.  Keep in mind that this option nullifies the "revert to prior version" option when uninstalling, for obvious reasons.

There's a question I asked which Michele didn't know the answer for (she considered it a "blonde moment" -- her words, not mine -- she is very funny), so I have to try it out, myself.  You can publish an update that only updates selected components.  So my question was, if a user accidentally deletes required components of an app (even the EXE), would the updating technology automatically re-download the missing components, or only the newly published components.  I have a hunch we'd need a separate "full install" option that the user can use to back-fill.

Michelle is one of Juval Lowe's partners, and despite that fact they are both very funny (in completely different ways), they are as different personality-wise as you can imagine.  I'm looking forward to taking an architecture course from their company, IDesign, later this year.

The next session was Rocky Lhotka's "Disconnected Windows Forms Application Architecture."  I wanted to take this session to learn some alternative approaches to asynchronous processing; each strategy has its obvious and not-so-obvious applications.  This was definitely interesting.  I was considering MSMQ as an approach, and was also going to look into Microsoft's code block for this, but now I'm having second thoughts.  Web Services seems like a better approach, but I want to read up on this in more detail before taking on this challenge.  I also have to check out Rocky's updated book on his framework.  I've heard a lot of great things on .NET Rocks! about it.

Next came .NET Rocks! Live!, with guest Kathleen Dollard.  And like I mentioned after her session, she definitely rocks!  We had a relatively small crowd for such a hugely popular show, but when I reviewed the list of speakers for the same time period (Dino Esposito, Brian Noyes, Juval Lowe, Dan Appleman), it made total sense.  The scheduling gods screwed this one up.

But I just had to go to this session, considering that the show has had a huge impact on me over the past few years.  It was great finally meeting Richard Campbell.  Now I loved Rory Blyth as a host (he's bleeping insane), and Mark Dunn was great, also, but Richard is perfect, in my opinion.  He fits perfectly with Carl Franklin, his questions are on target, and he has a tremendous knack for being extremely explicit and clear in his questions and explanations.  I think the show has risen to a new level since he became co-host.

This episode was mainly to "catch up" with Kathleen, about what she was thinking about lately in the industry, code generation (her specialty), TDD, and several other topics.  This show flowed great (as everyone will hear soon when the download is available).  I also made my second (although unannounced) "appearance" on this episode with a comment about TDD at the start of the second half (if they don't edit it out, of course).  My first time was on episode 67, when I was in the studio for that recording, and all of a sudden Carl wanted my and my former business partner's opinion on pair programming.  I won't go into much detail about this session, because you'll be able to download it shortly.

I finished the day out with Microsoft's Stephen Toub's session on "Multithreading Changes in the .NET Framework 2.0."  Multithreading is a fascinating subject, but it can be overwhelming.  One day, I'd like to post some entries here to try to explain it very clearly.  But I have a lot to learn myself before I "grok" it.  He did a fine job, but there was a hell of a lot to cover, and the best way to learn this topic is through experimentation.  But the addition of the BackgroundWorker capability in 2.0 is enormous.  If nothing else, you MUST read up on this.  There is no more excuse to take chances with UI processing across a worker thread.

4/6/2006 1:45:41 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Tuesday, April 04, 2006

Day 3 was the best day overall, so far.  I started with Dan Wahlin's "Migrating from Web Services to SOAs".  He focused on the fact that SOA is an architecture strategy rather than a tool.  I think a lot of people equate SOA to Web Services, and that is a limited point of view.  WS may be the best way to implement SOA today, but we need to think of it like that -- just an implementation.  The more I consider SOA, the more I appreciate the need to look at this as an option for many enterprise solutions.  Like any other technology getting a lot of focus, though, I'm afraid that many people will try mapping everything to SOA solutions, and that would be a mistake.  I'll write about this more in the future.  Anyway, Dan had a lot to cover, and 75 minutes just doesn't cover it.

Next was Juval Lowe's "Programming Windows Comminucation Foundation - A Developer's Primer", which help define the latest generation of WS, remoting, etc., building upon Dan's talk.  Juval is one of the official "legends", and again he proved why.  He has a knack for clearly explaining complex topics, transcending any issues some people may have understanding him through his accent.  Each time he was on .NET Rocks!, I started out afraid he would be talking above my head, but each time I came away with a definite understanding of the topics he discussed.  I had the same experience with his articles.  My co-worker recommended taking a seminar of his for the past year, and ironically he paged me for help on a production issue exactly at this time.  I'll never let him live this down ;).

Next up was another legend, Dan Appleman, for "Tracing and Logging in .NET."  Wow -- I cannot believe I never made use of this stuff before.  My head is spinning with all the things we could have done on our last project.  This must get in next version.  But this is definitely one of those technologies you have to play with after the seminar to get a grasp on all the options (and idiosyncrities).  I highly recommend looking at the tracing technology in 2.0.

In a day of legends, Kathleen Dollard was next with "Improve Your .NET and Visual Studio 2005 Debugging Skills."  She clarified at the top of the session that this is not an advanced topic, and that a lot of it was teaching us how to think, instead of using the tools.  But it remained a standing-room-only session.  Kathleen rocks!  She goes 100 mph, and is very intense.  She pointed out several non-obvious tools.  Especially helpful was the Exceptions dialog available from the Debug menu.  I'm looking forward to seeing her on .NET Rocks! live, tomorrow.

Finally, there was the whacked-out Mark Miller and his "Extending Visual Studio" session, where he was showing off how you can easily add plug-ins to VS through his company's free tool, which name escapes me for the moment.  I'll post it as soon as I find it.  Within the last 20 minutes of the session, he added a drop-down in the code editor for displaying graphics in comments.  Between his hyperactive coding, and the use of his amazing CodeRush tool, you had to focus 100%, otherwise you'd miss it.  He'll make the code available for anyone who wants to play around with it.  Very cool stuff!

4/4/2006 10:26:56 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback

Day 2 was a mixed bag.  The keynote given by Prashant Sridharan was entertaining, and I have got to check out the rest of the VS 2005 ad campaign he gave us a glimpse at.  The stats of downloads and popularity of 2005 is impressive.  I hope we continue to see the widespread acceptance of .NET in the field.  There will always be detractors, but there have been a LOT of converts.

The first session I was to attend was "Deep Dive into ObjectDataSource", and was supposed to be given by Stefan Schackow.  Unfortunately, there was a last minute change of speakers.  I don't remember his name, but he was very hard to understand, and rushed through the material.  He seemed to know his stuff, but I started nodding off way too often (even more than usual for me).

Adding insult to injury, when I got to the second session, which I was looking forward to ("Creating Dynamic Web Sites with ASP .NET 2.0 Web Parts", I discovered that it was swapped with the first session, so I missed it.  If I only knew -- I would have skipped the ObjectDataSource session for this.  Oh, well.  So instead, I went to Keith Smith's "Web Application UI Integrating Master Pages".  Keith was very good, with a lot of enthusiasm.  I wish he had time to cover everything he wanted; he seemed rushed in the second half.  I learned a lot from this.  I didn't realize how powerful this is.

I was pleasantly surprised when I realized Keith was also giving the next session I went to after lunch -- "Using Visual Studio Team System to Build Enterprise ASP .NET Web Applications."  My company is seriously considering TS, and this session definitely gave me incentive to look at this sooner rather than later.  I had bought the "Open Source .NET Development" book a day earlier (amazing selection of books being sold here, by the way), because I wanted to compare some of the incredible looking open source tools for agile .NET development as a possible alternative to some of the TS tools.  I had heard that MS's first try with TS was "nice try, but not quite there yet."  That may be true, but I still think it's worth diving into.

Next was Mike Hernandez's "The Power of Office Development in Managed Code".  I wanted to see MSTO in action, because we do some integration with Excel.  Mike was also enthusiastic, and MSTO is definitely something worth looking into if your company makes a lot of use of MS Office.  I just wish Outlook support looked more mature.  I'd rather hook into Outlook from outside it than creating plug-ins.  It's already overflowing.

I just had to check out Mark Miller and CodeRush at the DevExpress exhibitor booth.  He is amazing, a workaholic (claims he hasn't had a vacation in over 10 years), and a maniac!  He's also brilliant, and so seems CodeRush and Refactor.  I hope I didn't bug him too much with all my questions.  Probably not -- he recommended I come to his presentation later this week, which I planned on, anyway ;-).  I know what I want for my birthday!

Finally, I attended Scott Guthrie's session, "Tips & Tricks for ASP .NET 2.0 and VS 2005."  He is a legend, of course, and he has a great presence and delivery.  A lot of cool stuff -- and all the sample code and slides are already linked to on his blog (http://weblogs.asp.net/scottgu/archive/2006/04/03/441787.aspx).  He comes prepared!

4/4/2006 1:31:42 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Monday, April 03, 2006

Well, I'm actually a day late posting this.  My wife and I got in on Saturday to do the Disney thing, as per obligation for being in Orlando ;-)  I'm basically Disneyed-out from past trips.  I used to be addicted to Disney...but maybe that was tied to our daughter growing up a fan.  Anyway...

I attended the pre-conference all-day ASP .NET 2.0 hands-on session given by Paul Litwin.  I don't think he was on top of his game today.  He seemed perhaps jet-lagged and not as prepared as I've seen him in the past.  Dino Esposito was in attendance, and helped out a bit.  I did benefit from it, though.  Since I haven't been hands-on as I'd like these days, it's always a confidence boost when you can fly through all the labs.  Maybe there's still something left in the programming tank after all ;-)

The focus was on 2.0-specific data controls, master pages & navigation, and login controls.  These are core 2.0 topics, but they aren't very challenging.  But it was still a good refresher.

The free wireless connection supposedly supplied by the conference did not work at all.  We're still a couple of years away from true, reliable hotpoints, IMO.

4/3/2006 1:21:33 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Thursday, March 30, 2006

Well, not that many people know who I am, yet...

But this is something I've looked forward to for years.  The people presenting at this conference are stars to us .NET fans.  I mean, Scott Guthrie, Dino Esposito, Billy Hollis, Nick Landry (who I had the pleasure of meeting at the NY Code Camp recently), Julia Lerman, Michele Leroux Bustamante, Juval Löwy, Kimberly Tripp, the legendary Dan Appleman, Kathleen Dollard, Carl Franklin (who gave me a couple of minutes of fame with a short interview on episode 67 of .NET Rocks!  Ok, nobody remembers that ;) ), Rocky Lhotka, Mark Miller, Bill Vaughn -- I mean the people popping out of the front covers of our favorite books and .NET Rocks! episodes...you can't get much better than that, even at the Oscars!

Anyway, I hope to perhaps blog about it while I'm there.  Now I need some sleep (and to empty my mind for a lot of learning).

3/30/2006 1:28:34 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Monday, October 31, 2005

I'm looking to start a .NET User Group in upper Westchester, NY (or anywhere in Westchester, if there isn't enough interest in upper Westchester / Putnam).

I occasionally go to the meetings in NYC or Stamford, CT, but quite frankly, it's a trip after a long day's work.

If you are interested, please post a comment here.  I'm currently researching the steps I need to take to do this successfully, so any additional help would be greatly appreciated.  I visited the ineta site for info, but found surprisingly little about how to start a UG.  Maybe I'm looking at it the wrong way, but the site seems a bit disjointed.

Thanks.

10/31/2005 7:35:01 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Wednesday, July 20, 2005

We have a system which was written in VB6 way back when.  Several cooperative components are involved.  A couple of years ago, we rewrote the core components in .NET.  A couple of the driver modules remained as VB6 applications due to time constraints, etc., as is typical in migration.  But because these were the "calling" components, we had to resort to "reverse" interop.  Basically, we have COM calling a .NET component.

As you probably already know, this requires us to mark the .NET project with Register for COM Interop.  We mainly do xcopy deploys of our .NET applications, so call me slow or whatever, but the last step of the deployment was to run RegAsm.exe to register the generated .TLB file.  This required me to copy that utility to the destination machine (dumb, I know).  I think we got into this mode due to lack of time to research things correctly.  Installation and deployment (like documentation) always seems to be an afterthought in a fast-moving business.  Excuses, excuses...

Anyway, I finally took the time to read up on RegAsm.exe, and discovered that you can use the /regfile switch on the build machine to generate a .REG file that you can run on the destination machine to apply the required registry settings to register the .NET component for COM usage.  Very cool, and allows me to just add it to the deployment script (we're moving away from simple xcopy deploys) using FinalBuilder (a future article, by the way).

7/20/2005 3:49:30 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Saturday, April 30, 2005

I just got done with training this past week.  And now my whining starts...

Hey, it's my blog, and I'll cry if I want to...

1) A one month course squashed into one week.

2) Although I understood the topics, and got a lot out of it, I suffered an inferiority complex when it came to the labs.  I NEED TO CODE MORE!

3) The instructor -- brilliant and arrogant.

Ok...I made myself buy a VB .NET tutorial book when I was in NYC.  And I will follow it step by step.

4/30/2005 4:32:58 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET | Career  |  Trackback
 Friday, March 25, 2005

Why do experts insist on making things so hard for others to understand?  Is it a fear of losing their "expertise" label?  Do they throw around buzzwords just to feel part of the "in" crowd?

Isn't there joy in being able to help the less enlightened person's eyes light up with understanding?  Isn't it worthwhile to help another person share your appreciation and understanding for what you know so well?

Well, then why does so much of the teaching material available today suck?  Why do I have to read explanations about a topic from five different books before I can really grok something?  Is it that hard for people to remember how they felt when first learning something?

Yes, the situation has improved.  There are some excellent technical writers these days, such as Mark Minasi, and Charles Petzold has always been clear.  But the situation is still inconsistent at best.  And way too many writers write like it hurts them to do so -- obviously they're in it to capitalize on being the first ones out with a book on a topic.

Where am I going with this?

I want to change this.  I have an idea for a website that will attempt to teach without being condescending or obtuse.  I grabbed the URL a few years ago, but never used it.  It may take me another six months to a year to start it, though.  You see, I'm procrastinating again.  But I know why -- a few reasons:

  1. I want to learn ASP .NET enough to write the site using that.
  2. I didn't want to start the site with just a topic or two.
  3. I wanted to start this site initially to help me learn .NET -- it was going to be one of my tools for learning it.  But it would require me to actually learn a topic or two inside-out.

Obviously, these are lame reasons for not starting the site:

  1. Uh, DUH -- how do I think I'm going to LEARN ASP .NET??
  2. Who cares?  Do I think I need to document everything in the framework before I start?
  3. Double-DUH -- see # 1.

Like I warned you -- this blog is for helping me to kick my own ass.

3/25/2005 5:44:50 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET | Career  |  Trackback
 Thursday, March 24, 2005
Between Microsoft's online bug reporting page, their employee blogs, channel9.msdn.com videos, etc., the openness and responsiveness of Microsoft over the past couple of years has been absolutely unprecedented in the history of the software industry.  Here's an online chat transcript with MS about VS2005:

http://channel9.msdn.com/ShowPost.aspx?PostID=49356

3/24/2005 8:17:17 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
 Wednesday, March 23, 2005

For the past few years, I have fallen in love with this technology...from a distance.  You see, I normally don't have time to make use of it myself.  I do a lot less coding than I used to (which still pains my soul), but I know that if I really wanted to, I could force myself to use it more.

Maybe I'm being lazy...

Maybe I'm just overwhelming myself with all I know I need to learn.

.NET is HUGE -- the framework, especially.  And I still have not grokked it.  I have over 75 (yes, 75) books on .NET.  And if you saw my bookshelves, you'd see a bookmark about 20% into each book.  I'm all over the place on this stuff.

I've learned a lot by osmosis.  But my biggest problem is that I'm not learning by DOING.  There are so many programs I want to write -- utilities to make my job easier.  But I don't know which to do first.  I'm rarely undecided in my job -- but when it comes to things I want to do on my own time, I'm very undecided.  I want to do it all.

Isn't it strange how a discussion about .NET turns into a rant on my failings?

Like I said, this blog is for kicking myself in the ass.  Join in if you'd like.

3/23/2005 4:56:07 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]   .NET  |  Trackback
Copyright © 2008 Mark Freedman. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: