# Sunday, March 28, 2004

Side by Side VS.NET 2003 and 2005 CTP

Just for grins, I tried installing VS.NET 2003 and VS.NET 2005 CTP side by side in a virtual machine. I was pleasantly surprised with the results. They both installed fine and seem to run well on their own. Haven't tried any heavy development with either yet, so the true verdict is still out.

Of course, the problem noted in my previous post about IIS management console being broken is even more pronounced in this configuration, because you can't run the integrated debugger for web projects either. You will get an error that says VS can't launch the debugger. I was still able to run the web app and attach the debugger manually though.

Obviously not a recommended approach for a production development box, especially if you are developing web apps, but it was still a much more seamless attempt than when I tried the same with the PDC bits.



.NET | Languages and Tools

Sunday, March 28, 2004 5:24:30 PM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 

VS.NET 2005 CTP Breaks IIS

Found an unfortunate little side effect of installing the Community Technical Preview (CTP) of Visual Studio.NET 2005 (Whidbey) - IIS management console goes stupid and can no longer display properties of web sites. Good thing Whidbey no longer uses IIS for debugging on the local machine...



.NET | Languages and Tools

Sunday, March 28, 2004 5:19:11 PM (GMT Daylight Time, UTC+01:00)
Comments [0]  | 


 # Saturday, March 27, 2004

VS.NET 2005 Tech Preview 2 Install Complete

I got VS.NET 2005 Tech Preview installed easily. The only hitch - you have to remove the 1.2 version of the framework that the previous tech preview installed.... and Yukon depends on that version of the framework. Hmmm. So no more working with Yukon until they come out with another beta?



.NET | Community | Languages and Tools

Saturday, March 27, 2004 7:11:13 PM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


 # Sunday, March 21, 2004

Code Expansion in VS.NET Whidbey - Good as QuickCode.NET?

I've been a big fan of QuickCode.NET since it first came out. At $29 a pop, well worth it for the amount of typing it saves me when coding. I have code expansion templates defined for common/tedious tasks such as defining type safe collection classes, adding event accessors to classes to encapsulate event members in C#, and even simple starter chunks of code like adding the block of code to declare an OpenFileDialog and check the return result before accessing the FileName property. I'd much rather type about 10 characters to do that than several lines of code, even with intellisense to help out with each of those lines.

For example, with QuickCode and one of my templates, I can type the following:

coll CustomerALT-Q

and I get a fully implemented type safe collection class with all the Add, Remove, IndexOf, Indexer, etc. members defined on it to only take Customer objects and store them through the CollectionBase class.

Likewise I can type

evtacc EventHandler MyEventALT-Q

And I get a member delegate of type EventHandler and a C# event accessor encapsulating it properly and exposing it as an event named MyEvent.

QuickCode has a nice little editor and runs within VS.NET as an Add-in, and lets you manage the individual templates and copy them to the clipboard as XML and import them from an XML file. You can also add modifiers to the template to help with camel or Pascal casing the emitted variables. All very sweet and easy to work with.

If you use QuickCode.NET and want me to send these to you by the way, just send me an email at brian.noyes@idesign.net.

Now (unfortunately for the vendor of that product), there will be Code Expansion as part of the refactoring support in VS.NET Whidbey. I like the idea of having it integrated with the other refactoring features in Whidbey, and it will be extensible to allow you to define your own expansions through XML files.

I haven't had a chance to use the code expansions a lot in Whidbey yet, and don't know what the final UI will be like for activating them and defining custom templates. Right now the templates all sit in a single XML file down under the VC#\ExTemplates folder, and as far as I can tell, there is no UI for defining your own. I don't know if this will change. If not, I guess the third party vendors still have an opportunity to add value by providing a nice UI for editing the templates and maybe import and export them for backup purposes (which I have found very important with QuickCode for when I rebuild my machine - a regular occurrence).

On one hand I like it when features like this are incorporated into VS.NET because I don't have to go locate and buy a bunch of additional tools once the product comes out to become fully productive in the environment. On the other hand, it is a little bit of a shame to see nice little niche's that vendors have filled with a product evaporate from under them.

As long as the implementation in VS.NET is as good or better, I'll be happy in the long run. But the jury is still out until I see what the final surrounding support set is.



.NET | Languages and Tools

Sunday, March 21, 2004 11:03:16 PM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


 # Wednesday, March 17, 2004

Prefer XPathNavigator

I spoke last night at the Central Pennsylvania Users Group in Harrisburg, PA. They have a great group and about 35 folks turned out despite snow and nasty weather. Judy Calla is the group lead and gave a nice little beginners talk on debugging and error handling in .NET applications. I then jumped in with a talk on querying XML data in .NET.

One of the key points I always try to draw out in that talk is to get people familiar with the XPathNavigator model and the differences between the various types of XML documents in .NET (XmlDocument, XmlDataDocument, XPathDocument).

It is a natural fit for people who have worked with MSXML before to settle in and use the XmlDocument class (the W3C DOM implementation in .NET), never going beyond the methods and properties exposed by XmlNode and its derived classes to do their work.

However, I try to get people familiar with the fact that the preferred model for working with XML data in memory in .NET is working through the XPathNavigator, since it can be used across all three of the document types, and especially since it will take on an even more significant role in .NET 2.0 with the introduction of the modifiable XPathDocument. More on that in a minute. I also point out that you can layer an XPathNavigator implementation on top of any hierarchical data that you control, giving it an XML like working model, even though it may have nothing to do with XML itself.

The XPathNavigator base class ( and the concrete implementations provided  by each of the document types) provides a consistent and clean model for navigating and querying XML data. To get one, you just call CreateNavigator on the underlying document instance. What you get back is effectively a cursor into the document nodes that you can move around with the various MoveXXX methods, or you can query the current node and all sub-nodes with XPath expressions. When you query through this model, you have the choice of just passing an XPath expression as a string to the Select or Evaluate method (the former returns a node set result, the latter returns a value result - bool, number, string - if that is what the XPath expression is expected to evaluate to), or you can pre-compile the expression for faster execution if the query will be made more than once.

The XPathDocument class in .NET 1.X is a lighterweight object model than the one in the XmlDocument class and will have less of a footprint in memory for the same XML document in most cases. The big decision point in which of those two document types to pick currently is whether you need write access to the nodes you are dealing with. If the answer is yes, you only have one choice currently, and that is to work with the XmlDocument class. You can and still should do so through an XPathNavigator, but the underlying nodes are still XmlNodes instead of XPathNodes, and are therefore write access. If you are just looking to query and navigate the data to perform processing, then XPathDocument is the better choice because of the lighter weight object model.

In .NET 2.0, the big thing to be aware of is that the XPathDocument class becomes read/write. But more important than that is that any changes you make to the document (modifying, inserting, or deleting nodes) are tracked by the document in a similar fashion to the way the DataSet tracks changes. This means that you can then use the XPathDocument to perform updates to the underlying data store from whence it came. That is huge.

So bottom line, if you are not using XPathNavigator today for working with your XML documents in .NET, you should be. Look into and get used to the model. It will give you better consistency and a migration path to move you XML document processing code from the DOM today to the XPathDocument in .NET 2.0 with minimal changes.



.NET | Architecture | Languages and Tools

Wednesday, March 17, 2004 12:54:29 PM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


 # Saturday, March 13, 2004

Rhapsody Rocks

I've been using Verizon Rhapsody for over a year now, and simply love it. Being able to dig through the archives and find classic stuff that I listened to growing up, like early Black Sabbath and Blue Oyster Cult albums, Frank Marino and Mahogany Rush, Robin Trower, UFO and so forth. The origins of my head-banging tendencies. Queue that up with other “angry music“ (as my wife calls it) like Rage Against the Machine, Disturbed, Limp Bizkit, Nickleback, and Evanescence, and I an a happy, head-banging, code-slinging idiot in my office.

These are all great albums that I can't see myself buying again these days, but love the opportunity to listen to them now and then online. Then also being able to discover new stuff, many different genres, including my latest mellow favorite, Angelique Kidjo. Works right in there with other mellow favorites like Wasis Diop, Ronan Hardiman, NuSound, Enigma, and others nicely.

Of course it helps to have a good sound card and a 5.1 surround system to really blow the walls down and annoy the neighbors...





Saturday, March 13, 2004 2:59:32 AM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


 # Friday, March 12, 2004

Busy, busy, busy - Speaking at TechEd, book/article writing, training, etc.

Spent the day working on my TechEd 2004 presentation on deploying .NET applications. It was very cool to get selected to speak at TechEd. I am really looking forward to it. Not that the other conferences I speak at (VSConnections, VSLive!, DevEssentials, etc.) and user group talking is not important too, but there is a whole different anticipation level to preparing for TechEd based on its size and visibility in the industry. Only about 30 of us non-MS folks picked to speak, so feels pretty exclusive to be selected. I'm wearing a leather strap around my head to keep it from expanding unbounded. OK, not really, but maybe I should... Ah, screw it. I used to fly fighters, everyone expects me to be arrogant and obnoxious. :)

Another chapter complete on my book this week - at least as complete as it can be based on the PDC tech preview bits, which is not very... This one is an introduction to WinForms programming, and includes coverage of some of the new WinForms 2.0 controls that are not specific to data binding. Since the rest of the book will be focused on data binding and will cover the new data bound controls in detail, I deferred talking about them until the later chapters. Which works well since they are all in implementation flux in Redmond still. I'm really looking forward to Beta 1 to get to play with the bits that will be a lot closer to production than what I have now from PDC.

Two more articles became available in published form this week. One is my article on configuring ASP.NET and IIS to protect resource and document files in your web apps using whatever ASP.NET security mechanisms the rest of your app is using. This one is in the April issue of asp.netPRO. Unfortunately it is locked to subscribers only. The other is my bi-monthly DataStream column in asp.netNOW, this one is on working with loading XML schemas and data  into DataSets and XmlDataDocuments.

Last week I completed another partial .NET Master Class in Chicago. Next week I start a dizzying sequence of travel that is sure to make me long for a nice stable week at home. In the next 12 weeks I will be traveling to York PA, Chicago IL, New York City NY, Roanoke VA, Tampa FL, San Jose CA, Orlando FL, San Jose CA, Redmond WA, Chicago IL, San Francisco CA, San Diego CA, and Kansas City MO for a combination of teaching, speaking, and consulting.

Needless to say, I will continue to NOT be one of those guys who finds time to blog every day... Not that there is anything wrong with that, I'm glad they are out there for our consumption, entertainment, and education. I just wish I could find more time for it.



Blogging | Community

Friday, March 12, 2004 10:51:02 PM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


 # Tuesday, March 9, 2004

Tablet PC Productivity boost

Despite the fatbody appearance that I sport due to an affinity for junk food, beer, and wine, I actually spend 40-60 minutes a day on cardio machines in the gym about 6 days a week to try to offset said affinity.

I typically have been spending the time reading MSDN or Code magazine or other books and tech materials. Now I have found a way to be even more productive, have more options, and save a few trees. It seems that my tablet fits perfectly in the plastic book/magazine racks they have for the machines.

Sure I get a lot of stares from people giving me that “now you've just gone too far” look. But hey, it works for me. My buddy Scott, prez of CapArea.net, says that is the geekiest thing he has ever heard. Well, gosh, at least I don't have a SPOT watch... yet.



Hardware

Tuesday, March 9, 2004 2:27:25 AM (GMT Standard Time, UTC+00:00)
Comments [0]  | 


















May, 2013 (2)
April, 2013 (2)
March, 2013 (2)
February, 2013 (2)
January, 2013 (2)
December, 2012 (3)
November, 2012 (1)
October, 2012 (1)
August, 2012 (2)
June, 2012 (2)
May, 2012 (3)
April, 2012 (1)
March, 2012 (2)
February, 2012 (2)
January, 2012 (1)
November, 2011 (4)
October, 2011 (1)
September, 2011 (2)
August, 2011 (1)
July, 2011 (1)
May, 2011 (5)
March, 2011 (4)
February, 2011 (2)
January, 2011 (3)
November, 2010 (4)
October, 2010 (1)
September, 2010 (5)
August, 2010 (5)
July, 2010 (6)
June, 2010 (8)
May, 2010 (2)
April, 2010 (2)
January, 2010 (1)
December, 2009 (3)
November, 2009 (2)
October, 2009 (3)
September, 2009 (3)
August, 2009 (2)
July, 2009 (3)
May, 2009 (3)
April, 2009 (2)
March, 2009 (1)
February, 2009 (2)
January, 2009 (2)
December, 2008 (1)
November, 2008 (2)
October, 2008 (5)
September, 2008 (4)
August, 2008 (2)
July, 2008 (1)
June, 2008 (2)
May, 2008 (2)
April, 2008 (3)
February, 2008 (6)
January, 2008 (3)
December, 2007 (1)
November, 2007 (1)
October, 2007 (5)
September, 2007 (1)
July, 2007 (3)
June, 2007 (8)
April, 2007 (2)
March, 2007 (4)
February, 2007 (1)
December, 2006 (2)
November, 2006 (9)
October, 2006 (5)
September, 2006 (3)
August, 2006 (2)
July, 2006 (4)
June, 2006 (5)
May, 2006 (10)
April, 2006 (4)
March, 2006 (2)
February, 2006 (12)
January, 2006 (7)
December, 2005 (2)
November, 2005 (15)
October, 2005 (6)
September, 2005 (7)
August, 2005 (3)
July, 2005 (10)
June, 2005 (11)
May, 2005 (7)
April, 2005 (8)
March, 2005 (6)
February, 2005 (2)
January, 2005 (6)
December, 2004 (3)
November, 2004 (5)
October, 2004 (2)
September, 2004 (5)
August, 2004 (13)
July, 2004 (6)
June, 2004 (14)
May, 2004 (17)
April, 2004 (12)
March, 2004 (8)
February, 2004 (10)
January, 2004 (14)
December, 2003 (9)
November, 2003 (13)
October, 2003 (3)

Sign In
Copyright © 2006-2012 Brian Noyes. All rights reserved.

designed by NUKEATION STUDIOS