Sam Gentile's Weblog

  Thursday, May 30, 2002


In this article we will see how to write owner drawn ListBox control. Typically, Windows handles the task of drawing the items to display in the ListBox. You can use the DrawMode property and handle the MeasureItem and DrawItem events to provide the ability to override the automatic drawing that Windows provides and draw the items yourself.
Article. May 30, 2002


9:02:53 AM    

What is Sam Gentile's secret? Astute readers of my weblog comments know...[The .NET Guy]

What a desperate bid for higher ranking/ratings-)) However, I'm still beating ya-)




8:56:18 AM    

Brad Wilson: "We're all out here doing our part to further the sense of community. I consider people good acquaintenances and friends, even though I may have never met them in person, all because of this sense of community." -  YES! Thats exactly it! Its' almost how things used to be on the Compuserve Database forums. And instead of Fabian Pascal we now have Dave Winer. All kidding aside Brad you are right on the money as far as the community sense goes.[The Wagner Blog]

Agreed. I have never met Brad and yet I feel like he is a friend. Same thing with some of the other .NET Bloggers.




8:55:12 AM    

Extreme XML

XML Namespaces and How They Affect XPath and XSLT
by Dare Obasanjo
Dare Obasanjo makes his debut as the Extreme XML columnist and discusses the ins and outs of XML namespaces and their ramifications on a number of XML technologies. (May 29, 2002)

Cool! Dare has got a column.




8:35:52 AM    

cl.exe Episode XIII: Attack of the Standards [ActiveWin]

In this installment, I describe language features required by the C++ standard, missing or errant in Visual C++ 6.0, but working correctly (or at least better) in Visual C++ .NET.




8:05:10 AM    

  Wednesday, May 29, 2002


One of today's many tasks was trying to determine if a Primary Interop Assembly (PIA) is already in the GAC.

I have an installer program that needs to know whether PIAs are already installed in the GAC so that I won't install them twice. So the question is how can we programmatically tell whether the GAC contains a particular assembly?

References:

I found these articles:

Assembly.Load Method (AssemblyName)

ms-help://MS.VSCC/MS.MSDNVS/cpref/html

/frlrfsystemreflectionassemblyclassloadtopic1.htm

Assembly.LoadWithPartialName

ms-help://MS.VSCC/MS.MSDNVS/cpref/html/

frlrfSystemReflectionAssemblyClassLoadWithPartialNameTopic.htm

How the Runtime Locates Assemblies ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/

cpconhowruntimelocatesassemblies.htm

The third article says that if you want to load an assembly from the GAC as opposed to just from the app directory, you need to call Assembly.LoadWithPartialName rather than Assembly.Load.

This is the best answer I've found so far: try to load the assembly then if that fails, then the assembly isn't there. This is lame, however. We don't want to load the assembly, we just want to know whether it exists or not.

One answer is that because it is PIA, installing it to the GAC with the same name will simply over-write it.

Jason Bock crufted up some code for me that reads the assemblies in the GAC and does comparison.

But then I find this and it turns out Mattias has figured out how to use the undocumented Fusion APIs!!! He has a sample here.




10:18:56 PM    

There are currently 501 User Samples of .NET code at GotDotNet of all sorts.

NZipLib:

NZipLib is a Zip/GZip library written entirely in C# for the .NET platform. It is implemented as an assembly, and thus can easily be incorporated into other projects (in any .NET language). The creator of NZipLib put it this way: "I've ported the zip library over to C# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C#."

Mike Woodring has a whole bunch of very useful samples on Remoting, Reflection, Threading and more.

Reflector for .NET

Reflector is a class browser for .NET components and assemblies. It features hierarchical assembly and namespace views, type and member dictionary index search, type reference search, custom attributes view, an IL disassembler and viewers for C# XML documentations and MSDN help. Assembly dependency trees, supertype/subtype hierarchies and resources can be inspected as well. Function prototypes are displayed in C#, VB and Eiffel syntax. Windows XP enabled. In short: the swiss army knife for .NET programmers.

Reflector is the first thing I put on any .NET system. The site has some other very cool tools too!

Chris Sells: Genghis

Genghis is a set of extensions built on top of .NET and integrated with WinForms to provide application-level services in the same flavor as the Microsoft Foundation Classes. Genghis gets its name as the functional heir to Attila, a similar set of functionality built on top of ATL.

Chris Sells: .NET XsdClassesGen

XsdClassesGen is a Custom Tool Add-In to VS.NET to generate type-safe wrapper classes for serializing to and from XML documents. It takes as input an XSD and produces the C# or VB.NET code to do the serialization using the XmlSerializer. This is really just the output of running xsd.exe /classes, but integrated directly into VS.NET.

If you'd like to know more about what a custom tool is and how to build your own, check out CollectionGen.

CollectionGen is a Custom Tool Add-In to VS.NET to generate type-safe collections. As it turns out, I did almost none of the work. Jon Flanders figured out how to add a custom tool. Shawn Van Ness implemented the template for type-safe collections. I just put it together.

CollectionGen is an add-on to generate code for type-safe collections until we have templates in C# (likely) and VB (unlikely). The benefit of a type-safe collection, of course, is that you can use it without having to cast items to and from objects. Also, Shawn has been very careful to implement a collection class that is very efficient for both reference types and value types.

 




9:48:37 PM    

eInfoDesigns.com is proud to announce the general availability of dbProvider, the managed provider to the MySQL database. dbProvider provides a direct, native connection between .NET and MySQL, bypassing the slower and error-prone OLEDB and ODBC interfaces.
Product Release. May 29, 2002.


9:21:52 PM    

Endeavour countdown begins. The countdown towards Thursday's launch of the shuttle Endeavour started early Tuesday with weather... [spacetoday.net]


8:25:23 AM    

Social Networking. Social networking in Radiospace.  [Jon's Radio]

This is a really interesting article. On the one hand, this article itself points to a really important reason to have referers: I found this article through my referrers.

The strongest correlation connects Sam Ruby, Peter Drayton, and Gordon Weakliem... I'm sure none of those three would find this result surprising.

Doesn't surprise me that my channelroll would correlate me with Sam & Peter, they're 2 of the first sites I look at each day. Interestingly, I was at Chris Sells' Web Services DevCon where Peter was a presenter and Sam was in attendance. Maybe that's just when I started paying attention, but there seems to have been a huge burst of interest in blogging around WSDC. Sam Gentile, Jim Murphy, and Justin Rudd were also at the conference and have since started blogs (Jim's is a little sparse. Jim? You still there?). I'd never heard of Sam Ruby or Peter Drayton before the conference, but their sites gave me the impetus to write a little. Most interestingly to me, Chris Sells has even converted his homepage over to a /. like forum, which is kind of ironic, considering that his last post before DevCon was This is Not a Blog ...   [Gordon Weakliem's Radio Weblog]

Me too Gordon. My interest in blogging also became serious after the WSDC. It seems like that was a pivitol (sp?) event for our community.




8:24:05 AM    

Apparently, John Udell has written a nice Byte magazine article Personal RSS Aggregators that uses Thomas Wagner's post and my post on the discovery that Mono had made great progress on ADO.NET. Sweeeet!! [Sam Gentile's Radio Weblog]

He certainly did. Here it is! Hey Sam - we're famous! [The Wagner Blog]

Thanks, I forgot to link the article-). I'll correct my post too. Since we're so famous now, what should we do? -)




8:10:02 AM    

  Tuesday, May 28, 2002


Apparently, John Udell has written a nice Byte magazine article Personal RSS Aggregators that uses Thomas Wagner's post and my post on the discovery that Mono had made great progress on ADO.NET. Sweeeet!!


10:19:25 PM    

Scott Edelman, Science Fiction Weekly's editor-in-chief, wields his critic's lightsaber on both Spider-Man and Star Wars: Episode II—Attack of the Clones, and determines that "One Zings, the Other Doesn't."

I was present for the birth of both of this summer's cinematic blockbusters. I first saw Spider-Man in the pages of Amazing Fantasy No. 15, back when I was only 6 years old. I first encountered the Star Wars universe in 1977 (when I was a supposedly more mature 22) back during the first release of Episode IV: A New Hope. Both experiences changed and delighted me...

With this in mind, which of the two blockbusters truly delivered? There's a quick and simple way of determining this—just examine a couple of couples. Do that, and it becomes easy to see that, on the screen, the vibrant team of Tobey McGuire and Kirsten Dunst are everything that Hayden Christensen and Natalie Portman are not. One couple seems to have a history, to genuinely care for each other, to transcend their dialogue, while the other never connects; they say the lines, but never imbue them with life. No chemistry is ever created. (In fact, the whining, pouting Hayden Christensen even had me longing for the much-maligned Jake Lloyd.) Which is why though Clones had a gobs of cool, taking me to worlds of unimaginable beauty and dazzling me with strange vistas, it is Spider-Man that did more than merely wow me. It is Spider-Man that made me feel.




10:02:18 PM    

Casey Chestnut has just cranked out his demo and article on Integrating Compact .NET Framework and MapPoint .NET Web Service. Way cool!


9:00:09 AM    

Structured exception handling is a fundamental part of the CLR and provides .NET programmers a great way of managing errors. In addition to CLR exception system, the author explains how ASP.NET also provides ways of handling errors.
Article. May 28, 2002.


8:39:50 AM    

The author walks you through how to create a connection using the ODBC .NET Data Provider.
Article. May 28, 2002.


8:38:45 AM    

This article creates an editable GridView control that you can use similar to how you would use a spreadsheet. The GridView allows you to edit individual cells and change cell text and background colors.
Article. May 28, 2002.


8:37:24 AM    

Attributes in Visual C#.NET are items of declarative information in our code that can be declared by us. They can be attached to any elements in the code i.e, it can be attached with a class, a method, data members or properties.
Article. May 28, 2002.

Attributes rock! I am writing a lot of C# these days and one of the things I make the most use of is attributes. While I find this article too short and simple, it will at least provide a starting point.




8:35:33 AM    

The intent is to provide the reader with an introduction to the language that will facilitate the writing of early programs and the reading of later chapters.
Knowledge Base. May 28, 2002.

This is very useful as I still maintain that the language itself is so simple that all you need is the spec. Its the CLR and BCL that are the work.




8:33:39 AM    

Here is a C# struct byteset that implements the Modula-3 type SET OF BYTE. A set is a collection of values taken from an ordinal type that has a manageable number of possible values; which in this case are values of the range 0 to 255 inclusive.
Article. May 28, 2002.


8:31:34 AM    

Third Pakistani test missile fired. The trial adds further to tension between nuclear powers Pakistan and India over the disputed region of Kashmir [New Scientist]

It just keeps getting worse and scarier.




8:23:08 AM    

  Monday, May 27, 2002


May 20, 2002. XSP our ASP.NET .aspx page parser is now available on the AnonCVS servers. This is part of the ASP.NET support in Mono. Gonzalo is the developer on charge of it. Many updates to the ADO.NET implementation from Dan, Tim and Rodrigo. Radek got the Mono C# compiler running on Linux/PPC and compiling most of our regression test suite. Lawrence has been working really hard in fixing, improving and polishing the underlying network infrastructure. The Rafael and Chris have commited the beginning of the VisualBasic.NET runtime support to CVS. Jesus has contributed the beginning of the SoapFormatter [Mono Project News]




5:06:06 PM    

We took Jonathan to see Spirit.I'm glad we went. It is animated horse movie from DreamWorks. This movie is brilliant. Without the voices in the way, it leaves you actually in the viewpoint of the horse, soaring over the plains free. But this is not just a mere children's movie on other levels. When a Lakota (people I have worked with and have affection for) warrior is imprisonned like the horse at the hands of an agressive cavarlry general who quips something about everything can be broken, it becomes a powerful movie of the struggle for freedom. It parallels the fight of the Lakota to stay free and soar with the eagles and remain tribal with the horse's quest to stay with its "tribe." You see the diffrences between the white cavarlry people trying to beat and whip the horse into being broken and with the Lakota charachter becoming one with the horse, figuring out its character and working with it. One could not help being moved by the epic nature and beauty of the unspoiled land, animals and people. It was enjoyed by Jonathan on one level and Sue and I on a whole different level. I recomend it very highly.


4:34:58 PM    

Internet Alchemy: 

Eiffel for .NET part 2. Following up the first part of Bertrand Meyer's Eiffel.NET series detailing how the Eiffel.NET compiler shoehorns multiple inheritance into the .NET single inheritance model. As I suspected it's a complete hack. The base classes become interfaces with separate implementation and creation classes. The consumer of the classes has to rely on documentation rather than language features to understand how to instantiate one of the base classes. The method Meyer described implements polymorphism but does not allow for mixin functionality which I presume has to be done via aggregation.

What the common object model provides is not a stranglehold forcing all languages to support a single view, but a kind of language bus, enabling all languages to cooperate by agreeing on a basic set of common mechanisms. With the multiple inheritance example, we were able to present to the bus, and hence to other languages, a view that doesn't lose any essential property of the original model.




9:03:50 AM    

"NY Times: Fighting To Live As The Towers Died. " [Daypop Top 40] While we're all chowing down, on this day, it would do us all well to remember these people as well as the people who died protecting our freedom, as well as all those still out there protecting it.


8:48:14 AM    

Miguel: I am now generating an RSS feed for the Mono site. [Sam Ruby] I can't get it to come up in IE6 but I plugged it into my subscriptions.


8:41:00 AM    

Good Morning! Woke up to find that Jonathan had "plastered" his superhero figures and playthings in peanut butter. Ahh, the joys of parenthood...The Gentile family went down to MA yesterday to have a Barbecue cookout with the rest of the Gentiles. Jonthan had a blast on the lawn playing vaious games, sqeeling with delight as he leanned how to play frisbee for the first time. Like John Robb said, its a family weekend. We're off to the Nashua parade soon.




8:38:57 AM    

  Sunday, May 26, 2002


I can just imagine the discussions back home "hey, Marge, check this picture out. It's Larry Ellison's gate." Oh, boy. [Scobleizer Radio Weblog]

Bah, it'd be more interesting to visit Harlan Ellison's home than Larry Ellison's, anyway. :)

[The .NET Guy]

Hell, ya! Besides being one of the greatest authors alive, he's just a tad bit confrontational -)




11:22:02 PM    

kuro5hin has a great article in response to the usual complaints from people unable to master C++:

Space Monkey said C++ is an abomination to society, and is doubtlessly responsible for hundreds of millions of lost hours of productivity. While I don't agree with him, I understand very well why he and many others would feel that way, as much of the C++ source code that I have seen is indeed very poor.

I address this and other issues in some programming tips I have written over the years. Recently I completed a major revision to my article on C++ style that focuses on the storage and representation of data: Pointers, References and Values - Passing Parameters, Returning Results, and Storing Member Variables, with Musings on Good C++ Style.




9:49:19 AM    

Attack of the blogs -- The Washington Times [Daypop Top 40]

   We don't know exactly how many there are. But they number in the tens of thousands. They are everywhere among us. They intend to tear down the world as we know it. And there are more on the way. No, not al-Qaida; I'm talking about bloggers.




9:26:35 AM    

Keanu Reeves, who reprises the role of Neo in the upcoming sequel films The Matrix Reloaded and The Matrix Revolutions, told SCI FI Wire that his newly powerful character faces stiff challenges and continues his journey of discovery in the new films. "The brothers [writer-directors Andy and Larry Wachowski] have put up some great obstacles to test those powers, and the story kind of goes outside of the Matrix and starts to concern itself with the machines in Zion," Reeves said at a press conference at Fox Studios Australia in Sydney, where the films are currently in production.

....

For his part, producer Joel Silver promised to reporters that the visual effects in the two sequels will outdo anything seen in movies so far. "When we made the first movie ... we didn’t have an enormous amount of money to work with, and the boys had very strict ideas about a specific visual effect that they wanted to explore, and they ended up using it four times in the picture, and ... we called it ... bullet time. And it was during the Stone Age. It was a Stone Age effect. ... And immediately when the movie opened, we saw repetitions of that. ... Television commercials came first. They were the first out. And then we began seeing it in a few movies here and there. And then every movie. And it wasn’t just the visual effects that were being stolen.  ... It was the way the boys staged, shot, cut, moved the camera. It was pretty much everything they did began to be copied in every other movie." ...Were the Wachowskis flattered? "For a while ... I bet they thought it was flattering," Silver said. "But after a while, they kind of got angry about it. So they decided that, in these two movies, they would create visual effects that could never be copied. So we have done visual effects for the movie that, because of the time that we took to make them and the cost, will never be seen again. So I really think that the bar has been raised so high that, you know, there is no bar.

I can't wait for these!!! I'm wearing out my Matrix DVD!!




9:16:21 AM    

Why go through the hassle of creating the same components and event handlers for every C# Windows application? This article offers a template for quickly creating menus, toolbars, buttons and other Windows components.


9:01:03 AM    

The first article in this two-part series provides a basic understanding of the theoretical principles of database design and describe some key elements and rules of creating relational databases.


8:51:20 AM    

An article rom Wired News on Microsoft's attempts to enter the mobile phone market.  They are eyeing Nokia as their main target, and it sounds like Nokia has been worried for a while.  Are we looking at the beginning of a war between Windows CE and Symbian?

"We are running a startup inside of Microsoft," said Juha Christensen, vice president of Microsoft's mobile device division.  "We are focused on a separate set of competitors, different from the rest of our competitors..."

Its going to be an up hill battle for sure.  They have Samsung signed up for CE phones, which according to the article represents 7.5 percent of the mobile phone market, so that's not a bad start.

At the end of his spiel, Christensen drew a couple of business cards from a box to give away Compaq Ipaq Pocket PCs. To the audiences amusement, the first device went to a Nokia employee.

Lol![John Burkhardt]

See people, there are some markets they don't dominate! Games is another...




8:44:10 AM    

  Saturday, May 25, 2002


Bruce Sterling:

These guys campaign in a quixotic effort to let human beings see the stars without cosmos-obscuring light pollution.

http://www.darksky.org/ida/index.html

Check out 24-hour America, glowing from coast to coast like an abyssal squid.

http://www.darksky.org/ida/darksky/
index.html

http://www.novaspace.com/POSTERS/
PHOTO/Nam-nite.html




5:36:27 PM    

Demeanor applies many transformations to your .NET applications that makes them much more difficult to reverse engineer.Demeanor obfuscates the names of your types, fields, methods, properties and events by changing their names to meaningless symbols. Demeanor also obfuscates the metadata of your application, discarding all types and members that aren't needed during runtime. Demeanor also alters the control flow of your methods so that the resulting code is much harder to understand.
Product Release. May 24, 2002.

Brent is the very first one I gave an autographed copy of my book to because he just helped me so much in the difficult IJW and P/Invoke internals. This guy knows more about .NET than most anyone. I believe strongly in what he is trying to do with Demeanor. Some of the .NET list think protecting IP is not important or even a crime. I say the opposite. .NET has a problem here for us developers that believe in getting paid for our work and Microsoft has not addressed it. Brent does. Checkit out.




3:37:15 PM    

Jonathan (4 years old) and I just spent a delightful day playing outside. One of his new feats is take the baby seat and rocket down our big slide in it.


3:09:14 PM    

New Personal Best Run This Year: 3.25 miles in 42 minutes, 501 calories (beating last week's 468 cal, 3.1 miles)




9:14:55 AM    

Chris Sells had this item: " Have you ever wished you could explore the behavior of a component or some code without having to write any code? To watch events occur on any object and examine the history of events? To quickly try something and see how it affects the component? To look at the visual behavior of a component as you adjust not only its properties, but execute its methods? If so the nogoop .NET Component Inspector is the tool you have been seeking." [The Wagner Blog]


8:02:46 AM    

[Sam Ruby says:]However, having hit the big four-oh milestone last year, I'm with Burningbird.  Skippinging alternate birthdays sounds appealing - they are coming to darned fast these days anyway.[Sam Ruby]

I'm with you Brother. I'm hitting the big four-oh milestone in a couple of months.




7:59:04 AM    

At Tense Time, Pakistan Starts to Test Missiles. Pakistan risked setting off a new crisis with India on Saturday by beginning a series of missile tests. By Howard W. French with Raymond Bonner. [New York Times: NYT HomePage]

Nothing like escalating the crisis? It looks like Charles Stross's point is getting closer every day (--




7:56:35 AM    

  Friday, May 24, 2002


This article discusses some of the things you can learn from the source code facsimile of the CLR, like how JIT compilation works. It will also help you understand how to control execution along with debugging and loading classes. A walk through the steps involved in setting up the runtime will let you become familiar with the process.
Article. May 24, 2002.


9:59:24 PM    

Philippine researchers last fall created what they say is the first generic system for Grid computing that uses an industry-standard Web service infrastructure, according to a paper to be presented at the Second IEEE International Symposium on Cluster Computing and the Grid in Berlin, Germany next week.
Article. May 24, 2002.


9:57:44 PM    

Apparently one of my favorite sci-fi books of all time (for its deft multilayering that appeals to both children and adults) is coming to the big screen: Ender's Game. The director is Wolfgang Petersen, and apparently Orson Scott Card is going to writing the screenplay. Sounds like it might actually do the book justice. More news here.[The .NET Guy]

Finally, Big Media Hollywood is going to actually do a True Literary Science Fiction book. This is one of my top 20 SF books of all time. They're haven't been many outside of 2001, Blade Runner, A.I. ( based on Brian Aldiss great short story Supertoys Last All Summer Long, the British production of Ursula LeGuin's masterpiece "The Lathe of Heaven" (shown on PBS) and now another great Philip K Dick story Minority Report. Of course, many naive people wrongly equate Star Wars with Science Fiction. David Brin takes them to task here and here where he he talks about what we already know: A Joseph Cambell type myth fused with Lucas sense of morality: right & wrong shoved down your throat.




10:12:51 AM    

Happy Half Birthday Mark! You Youngster you-)


10:00:16 AM    

  Thursday, May 23, 2002


U.S. Army invades game business. The U.S. Army says it is developing two role-playing and strategy PC games that it will distribute in a free package to serve as recruiting tools. [CNET News.com]


9:01:26 AM    

Wow! Chris Sells has started a WinForms column on MSDN!!! Truly stand-alone applications are a dying breed. Users want the combination of the best of Web applications and the best of the UI conventions supported by their operating system. Web services, which provide only functionality and not UI, when married with Windows Forms clients to handle the UI and session state, are the perfect hybrid for your .NET-enabled users.
Article. May 23, 2002.


9:00:21 AM    

There are many real-world situations in which you may wish to read part of or an entire text file into a string variable in a Web page. To read a text file in classic ASP you would simply use the FileSystemObject. While you can use the FileSystemObject in an ASP.NET Web page it will impose some serious performance constraints. Rather you should use the classes provided by the .NET Framework to read files.
Article. May 23, 2002.


8:57:40 AM    

In Part 4 of the series, the author looks at how to easily allow the end user to dynamically sort the contents of the DataGrid.
Article. May 23, 2002.


8:56:43 AM    

I'm sick of having to add bloat to my web pages in order to support the out-dated, non-standards compliant Netscape 4.x browser. Many people argue that Netscape 4.x support is still needed. This article addresses those arguments, point-by-point. (Click for more)

A great rant.




8:24:13 AM    

In response to Charles Cook, I asked some questions. Stefin Wenig on the .NET mailing list provides a take on why const is not included in C# and the CLR. (Quoted with permission) while Jon Jagger had a creative suggestion. Richard Blewitt from DevelopMentor confirmed that there is no const parameters or methods in C# and CLR.


8:15:14 AM    

Netscape 7: Nice, but I'll stay with IE. Here's why [ActiveWin]


8:07:00 AM    

  Wednesday, May 22, 2002


Charles Stross points out that we may be on the brink of WW3:

Two regional superpowers with a combined population of 1.2 billion people -- half the Earth's population at the time of WW2, double the combined population of the USA and USSR -- are eyeball to hairy eyeball over Kashmir. Both sides have got nukes and delivery systems capable of hitting each other's cities. They've fought three wars in the past half century, and they're both pissed.

My guess is that if this goes nuclear, it will kill more people than the first world war -- possibly more than were killed directly during the second world war. The likely after-effects (famine, drought, and civil unrest) will do for many more.

We're teetering on the edge of this catastrophe, one so huge it makes 9/11 look like a storm in a tea-cup, and the most frightening thing to behold is how little attention it's getting in the navel-gazing west. I never thought the day would come when I'd be glad to see Jack Straw on the TV news ...




11:41:40 PM    

The solution presented in this column can be adapted to allow aggregation of data from several endpoints that implement the same WSDL. This could be used, for instance, to collect data from a factory floor, or to examine stock trends from NYSE, NASDAQ, and other markets. In other words, you can adapt the information here to any other situation where the Web service client needs to access identical Web services that provide different return messages and then aggregate those results.
Article. May 22, 2002.


9:18:33 PM    

The basic purpose of the Graphical Device Interface (GDI) is to abstract away the video and print sub-systems. It was based on the Windows C-style API; GDI+ adds a layer between GDI and your programs. The mechanism that implements this abstraction is the Device Context in GDI, and is encapsulated in the GDI+ Graphics class.
Article. May 22, 2002.


9:17:02 PM    

This article is intended for the application developer looking for a quick Step-by-Step on how to build XML Web Services and/or for the business decision maker looking to get a better understanding of what XML Web Services are and how they can be used.
Article. May 21, 2002.


9:16:12 PM    

The foreach is a powerful construct found in C# and Visual Basic.NET that allows you to iterate through a collection of objects. Managed C++ is missing this useful construct, and this article shows you how to add it to your programming arsenal.
Article. May 21, 2002.

Ahh, now this is good stuff from Steve, one of the co-authors on our book.




9:15:07 PM    

Top Sci-Fi Titles.

 Best Science Fiction Titles

"I recently read Wired's top Sci-Fi Movies and thought, hey, maybe it would be useful to have the same for books. I am sure I will leave off someone's personal favorite (to those individuals, my apologies), but at least it is a place for those new to sci-fi to start.

  1. Farenheit 451 by Ray Bradbury
  2. A Stranger in a Strange Land by Robert Heinlein
  3. I, Robot by Issac Asimov
  4. Foundation by Issac Asimov
  5. Dune by Frank Herbert
  6. The Ship who Searched by Anne McCaffrey and Mercedes Lackey
  7. The Hitchhiker's Guide to the Galaxy by Douglas Adams
  8. City of Golden Shadow by Tad Williams
  9. The Time Traders by Andre Norton (1958 ed.)
  10. Snow Crash by Neal Stephenson"

[It's All About Books!]

Good one, Teri! I'll have to think on this tomorrow after re-fueling the brain cells.

[The Shifted Librarian]

Not much overlap but here's mine




9:07:31 PM    

The ever impressive Charles Cook answers my questions on Strong Names and security.




8:24:22 PM    

Returning to the subject of the advantages MC++ has over C#, I was writing some unmanaged C++  like this yesterday - void Foo(const string& str) - which triggered the realisation that C# doesn't support either const parameters or const methods. Maybe this was something else that could quoted in MC++'s favour? However a test program revealed that although const parameters can be used in the methods of a managed class, methods themselves cannot be defined as const.

Classes with methods using const parameters compile as CLS-compliant, using a modifier to indicate that a parameter is const:

.method public instance void  Foo(int32 modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier) i) cil managed

So MC++ does have a slight edge on C# here. It would have been nice if the CLR supported the concept of const methods and parameters. Use of const may not prevent very many bugs but it may encourage a more disciplined approach to writing code.

[Cook Computing]

Yes, C# doesn't support either constant methods or parameters. It has the const keyword for constants and has readonly. Nice find on the above.




8:12:02 PM    

Yet again feeling like I'm bucking the trend... I'm unimpressed with Keith Teare's story. RealNames was an incredibly stupid business model. They rip off AOL's keyword system, and expect companies to not only pony up money up front, but also pay extra (per hit) when their RealName becomes very popular. Then they put all their eggs in the Microsoft basked. Hell, there are rumors of unsolicited phone calls to domain purchasers, telling them they'll really love their new and valuable RealName... all it'll take is, you know, a million dollars or so. I would've laughed in his face had he cold called me with that kind of ridiculous pitch.

Microsoft was right to cancel on these guys. Their product was a joke. They couldn't make money in a market that had corrected itself back to reality. The company was failing, and Microsoft bailed as quickly as it could. That's a good move in my book.

[The .NET Guy]

I agree with both you and Joel. And I agree with Joel that what he's doing on his Blog is highly unprofessional for someone at his level. Bad business model, deal with it. His Blog really makes him look pathetic and unprofessional. Further, by posting emails from Microsoft lawyers and executives, without their permission, is not only scummy, but probably illegal. I would imagine that some of this is priviledged legal communication.




8:07:28 PM    

WSindex contains lots of links relating to Web Services. The Weblogs category lists all the usual suspects. [Cook Computing]


8:01:17 PM    

  Monday, May 20, 2002


Don't know how I missed it, but Serdar Kilic has had a weblog up for a couple months now. Belated welcome! Us developer folk are taking over... :)[The .NET Guy]

Belated Welcome Serdar!




8:40:29 AM    

With all the fighting between .NET and J2EE its nice to see an article that shows that they can be interoperable. IBM WebSphere Developer Domains released "Developing Microsoft .NET Web Service Clients for EJB Web Services with IBM WebSphere Studio Application Developer and the Microsoft .NET Framework SDK". Thats a long name for an article that says J2EE and Microsoft can be nice on the internet playground.
Article. May 20, 2002.


8:37:19 AM    

Read a sample chapter from Francesco Balena's latest book: Programming Visual Basic .NET. Read Chapter 21 - ADO.NET in Disconnected Mode - to learn about advanced database programming techniques with VB.NET. The chapter is almost 100 pages long and covers many advanced techniques that aren't documented elsewhere.
Book. May 20, 2002.

Well, ADO.NET is always disconnected by default, unlike ADO.NET. Besides that point and being in VB.NET-), Francesco is a smart guy and this is a great chapter on ADO.NET DataSets. If you have not used them, you should! They are extremely powerful.




8:35:47 AM    

The KPD-Team has created a new SecureSocket class that transparently implements the TLS and SSL protocols. These protocols allow you to communicate with remote servers in a secure manner by encrypting the data that is sent over the Internet.
Product Release. May 20, 2002.


8:33:01 AM    

NET provides the System.Security.Principal namespace to programmatically check whether the user had the relevant permissions by accessing their windows account.This is illustrated via an example: if the user is not an administrator, the contents of a text file cannot be read and displayed in a list box.
Article. May 20, 2002.


8:31:41 AM    

  Sunday, May 19, 2002


We just back from seeing Star Wars 2 with Jonathan. In a sentence - This is really bad 1 and 1/2 stars out of 5). The dialogue is some of the worst I have ever heard in a movie - I actually groaned and cringed at many spots. Roger Ebert left a screening and said"I had not heard one line of quotable, memorable dialogue." Me neither. The acting is bad. I  felt like I was watching a bad Spy Kids or Power Rangers movie. I alternated between wishing I had a book to read (rather than listen), leaving the theatre (which I don't think I have ever done), or pining for Return of the Jedi (in the good old days). The movie didn't grab me at any time. I didn't feel like it was interesting or engaging. In all honesty. I got more excitement from the Minority Report trailer than virtually all of the movie combined.


6:07:42 PM    

Victor Ng's capsule review of Attack of the Clones: "I'd rather be chewing on tin foil."  [Scripting News]

Heh. We are taking Jonathan in about an hour. That's exactly how I feel right now-) Hope he'll enjoy it at least.




2:18:06 PM    

Here is an update reg. MONO : We are able to retrieve simple data from the database using our ADO.NET like functionality. Only string and integer data types are supported right now but more are in the works. You can find more information at The Mono ADO-NET Page

I don't think that the Mono contributors will have the equivalent of DataSets in their libs but you know, what they do have goes an awful long way.

[The Wagner Blog]

Whoa! This is great. They were able to do some of ADO.NET. I didn't think they were going to achieve anything outside the CLI, FCL and CTS. If they get DataSets, this will be huge. Good job guys!




10:53:37 AM    

Ray Kurzweil: Reflections on Stephen Wolfram's A New Kind of Science. [Hack the Planet]


10:51:04 AM    

So, Microsoft, when are you going to start explaining what you're doing to help people like me do things better? You've done a dreadful job of: 1) Coming out with new technologies that improve my life (at least in the past six months). 2) Explaining what you did come out with (does anyone really understand .NET?) [Scobleizer Radio Weblog]

Believe it or not, .NET is not directly for you. You don't write software. However, as is all too common in tech companies, the marketing people -- who are extremely smart at marketing, but generally technologically inept -- have attempted to spin the term ".NET" into anything and everything. I fully place the blame onto the marketing people, desperate for some way to justify their existence. We never saw this kind of stupidity with the Win32 API.

The bulk of what we call .NET -- that is, the .NET Platform -- is for developers only. It Anything else you may have heard is a rumor. Disregard it. :)

[The .NET Guy]

Yes, I agree with Brad. Very much like the COM and ActiveX days, the Microsoft Marketing folks have applied the .NET term to everything including all the BackOffice Servers and everything else. Never mind that none of these have any .NET "bits" in it. I just did a presentation on this for 50 people at my client. .NET breaks down into 4 pieces:

  1. The .NET Framework
  2. .NET Enterprise Servers
  3. HailStorm, .NET My Services -> morphing into something can't say yet
  4. Visual Studio.NET and Dev Tools

When we talk about .NET and what Brad and I all mean by .NET is number 1. The .NET Frameworks consists of the CLR and the BCL (Base Class Library). The runtime plus the incredibly rich OO class library are what we believe to enable quick construction and deployment of Web Services, rich Web apps (through ASP.NET + WebForms) and incredibly rich clients (via WinForms). This is all for programmers (and VS.NET). 2 is a bundled marketing term. I highly recomend David Chappell's most excellent 20,000 foot view on .NET for those wanting a non-technical view.




10:50:02 AM    

  Saturday, May 18, 2002


A fellow DM instructor, Jose Mojica, just wrote the C# & VB.NET Conversion Pocket Reference for O'Reilly, covering the syntactic and semantic differences between C# and VB.NET. They should get Chris Sells to do the Managed C++ & C# Conversion Pocket Reference... :-) [Peter Drayton's Radio Weblog] Or me-))


5:43:45 PM    

Simon Fell: "I thought that the test.exe manifest included the public key token of the version of real.dll that it got compiled against, and that this was verified at runtime". Actually, when an assembly is loaded from the GAC the signature isn't verified. Instead, the signature is verified when the assembly is put into the GAC. This is actually OK, since the GAC is a secured resource. By default, members of the Users group can't run gacutil -i - only members of Power Users or Adminstrators groups (basically, security principals in the ACL on %SYSTEMROOT%AssemblyGAC - thx to Si for decoding the ACL). If hackers are able to tamper with these ACLs, they can do what the original poster did. However, if they can touch DLLs in %SYSTEMROOT% at will, hacking a shared assembly in the GAC is probably the least of your concerns.

FWIW, if you want signature verification on *every* load, use a private strongly named assembly deployed along with the application.

As for what guarantees all of this strong naming gives us: the public key token in assembly extern reference in the client manifest serves to verify that the originator who signed the component assembly which is being loaded, is the same originator who signed the component assembly that the client was initially built against. Furthermore, the public key in the component assembly manifest lets us confirm that the signature could only have come from someone who has the matching private key, which is protected (right?) with the appropriate degree of pomp and circumstance. Note however that none of this lets us actually *identify* the originator (was it Microsoft Incorporated or Razorsoft Incorporated) - it merely let's us unambiguously bind against a component from the same originator as we were originally compiled against. FYI, it is also possible to use real certificates here, to give the assembly a digital signature that ties the originator to a real business entity (using signcode.exe), but that's another blog.

[Peter Drayton's Radio Weblog]

A good explanation. We are using strong names, signing and the GAC. I think I lost you on the part about to "identify" the originator. It was my impression that with marking the assemblies or Interops "promary", including a strong name, and fully signing it, we could gaurentee that one would know it came from our coporation. If I understand what you're saying it only ensures the signature in the assembly manifest when loaded is the same as the originator it was built with. Right?




5:42:26 PM    

Jason Whittington makes his print debut with an excellent lead article in the July MSDN Magazine: "Rotor: Shared Source CLI Provides Source Code for a FreeBSD Implementation of .NET". Jason's a fellow DM instructor and my coauthor on CLR Internals for Addison-Wesley. [Peter Drayton's Radio Weblog]


5:35:07 PM    

  Friday, May 17, 2002


In the .NET Framework, all objects are derived, directly or indirectly, from a common base class: System.Object. Remember that inheritance/derivation tell us that the derived class IS-A specialized version of the base class. That means every object in the .NET Framework IS-A(n) Object and therefore implements all of the functionality of System.Object. In other words, the methods of System.Object are available in any .NET Framework object.
Article. May 17, 2002.

Dr.GUI (.NET) hits it. Yes, start here, not in some C# book.




8:23:02 AM    

Scobleizer Radio Weblog] reviews Star Wars: Anyway, as an entertainment experience, it's worth the $10, but don't tell me this is a masterpiece or I'll get ill, OK? [Scobleizer Radio Weblog]




8:19:55 AM    

Thanks to all people who posted their well wishes for you anniversary. We had a great dinner last night.




8:17:26 AM    

  Thursday, May 16, 2002


Gentiles Celebrate Tenth Wedding Aniversery. On this day, 10 years ago, my lovely wife, Susan said I became husband and wife. [Sam Gentile's Radio Weblog]

Congrats! :) My wife and I will be celebrating our 2nd anniversary in just a couple weeks.

[The .NET Guy]

Ah, still newleyweds-)




6:05:28 PM    

Sam points us to an MSDN article about the C# XML comment system. It gives a great overview of what XML comments are available. Read it! :)

I just wanted to point to the tool that I use -- and love -- that turns those XML comments into MSDN-style HTML: NDoc. All my C# code gets XML comments, and it all gets run through NDoc to produce either public-consumption documentation (public and protected methods), and/or personal-consumption documentation (everything). It's integrated very well into NAnt, which I use for all my .NET builds.

[The .NET Guy]

Thanks Brad! Yes, I should have mentioned NDoc. Well worth checking out.




6:03:55 PM    

On this day, 10 years ago, my lovely wife, Susan said I became husband and wife. I can't say that the years have been easy but they certainly have been worth every minute of it. My love has grown and grown. Our 4 year old, Jonathan, is just a beautiful miracle that teaches me about life every day. Happy Anniversary to us!


8:26:50 AM    

Microsoft is finalizing plans for the next version of its Office business software, which will likely include new Web services, communication and collaboration features, said sources familiar with the company's plans. Moreover, many of the features once planned as part of Microsoft's .NET My Services consumer Web services strategy may now find their way into Office, sources said.
Article. May 16, 2002.


8:18:31 AM    

In this article, the author explores the System.Security.Cryptography namespace and the programming model used to apply cryptographic transformations. He discusses reasons why cryptography is easier in .NET than it was before, including the easy programmatic acccess developers have to the cryptography APIs and the difference between symmetric and asymmetric algorithms.
Article. May 16, 2002.

Another great MSDN articles. They seem to be rising in quality.




8:16:30 AM    

The author demonstrates how to set up your project to export your XML comments into convenient documentation for the benefit of other developers. He also shows how to use comments to generate help files.
Article. May 16, 2002.

This is an excellent article on one of the lesser known but great features of C#.




8:13:15 AM    

Windows XP Updates: More Trouble Than They're Worth?. For many users, downloading updates for Microsoft's latest and greatest operating system, Windows XP, means crashed systems, devices that do not work and and sometimes an inability to boot up at all. "That's always true with patches, generally," Meta Group vice president Steve Kleynhans told NewsFactor. [osOpinion] [Robert Scoble: Scoble's Windows XP News]

I really don't get this at all. I have been running XP for over a year. I have never seen a blue screen. I have rarely had to reboot - most with old software that did not use the new Installer format and have been up for more than 3 months now even though I do a lot of beta development with .NET. I don't understand what these people are doing with their systems or what hardware they have.




8:02:28 AM    

I was interested by this article at O'Reilly - Previewing Windows .NET Servers, in particular the enhanced process model in IIS 6.0. I've advocated for a long time that complex server applications should be partitioned into separate processes, wherever feasible, to isolate different components of the server into their own address space.  ...In IIS 6.0 inetinfo.exe is now a separate process with no apps running in its address space. This process controls multiple worker processes, each process running one or more apps. ... .NET App Domains are a method of partitioning .NET applications. An App Domain is the .NET equivalent of an OS process. [Cook Computing]

Cook gives an excellent description of the changes in IIS 6.0 and .NET App Domains.




7:58:51 AM    

  Wednesday, May 15, 2002


At a high level, the CLR is simply an engine that takes in IL instructions, translates them into machine instructions, and executes them. This does not mean that the CLR is interpreting the instructions.
Article. May 14, 2002.


9:14:03 PM    

Performance counters enable you to monitor and analyze the behavior of physical components such as processors, disks, and memory; system objects such as processes, threads, events, mutexes, and semaphores; and even aspects of your own running applications. They can help you identify system and application bottlenecks and fine-tune system and application performance.
Article. May 14, 2002.


9:12:09 PM    

Web services will likely gain adoption, but the fundamental question relates to the extent of their impact: Will they reshape technology processes, business processes, or even entire industries? What key events need to occur on both the supply side and the demand side to aid the business case for Web services? These 10 items help illuminate some of the hurdles Web services face, but it's up to natural evolution to determine their eventual success or failure.
Article. May 15, 2002.


9:10:31 PM    

Star Wars Gets Panned by Washington Post. Oh, oh. The Washington Post didn't like the new Star Wars movie.  [Robert Scoble: Scobleizer Weblog]

As I reported on Sunday, none of the early critics liked it. Most thought it was worse than the 1st. Bad news for the Star Wars fans.

§ The first reviews of Star Wars Episode II: Attack of the Clones [official site] do not bode well for those hoping for an improvement over the previous film...  Roger Ebert, who gave Phantom Menace 3 1/2 stars, gives this one 2 in Chicago Sun-Times:




8:44:15 PM    

Xbox prices go down. $199 apiece - PS2 cut triggers early Xbox price drop in US. Sony wins points for footwork [The Register] Glad I waited to buy an Xbox. [Scobleizer Radio Weblog]

Me too. Maybe my wife will let me have one now-)




8:35:50 PM    

Lobsters online. Charlie Stross's Hugo-nominated story, "Lobsters," is online. This is some powerful extropian singularity stuff, right here. Best read I've had online all week.
It’s a hot summer Tuesday and he’s standing in the plaza in front of the Centraal Station with his eyeballs powered up and the sunlight jangling off the canal, motor scooters and kamikaze cyclists whizzing past and tourists chattering on every side. The square smells of water and dirt and hot metal and the fart-laden exhaust fumes of cold catalytic converters; the bells of trams ding in the background and birds flock overhead. He glances up and grabs a pigeon, crops it and squirts at his website to show he’s arrived. The bandwidth is good here, he realizes; and it’s not just the bandwidth, it’s the whole scene. Amsterdam is making him feel wanted already, even though he’s fresh off the train from Schiphol: he’s infected with the dynamic optimism of another time zone, another city. If the mood holds, someone out there is going to become very rich indeed. Link Discuss (via Charlie's Diary) [bOing bOing]

Ok, stop everything and go read this story-). This story is one of the most brilliant pieces of SF ever done. I kid you not. If you like your SF hard fused with the cyberpunk style of Sterling and humor, you'll love this.




8:22:21 PM    

Happiness is coming home to an Amazon box filled with 28 (free) SF books-) Including just about the whole collection of Phillip K Dick.


8:15:08 PM    

  Monday, May 13, 2002


If looking for a collection object in .NET has left you scratching your head, you aren't alone. Get your bearings with a guided tour of the System.Collections namespace.
Article. May 13, 2002.


8:36:31 AM    

In Part I of this article, we discussed how to use LoadTemplate method to create templated columns at run time. In Part II we will see how to do that using ITemplate interface that provides more control on the process.
Article. May 13, 2002.


8:35:26 AM    

Typically one dataGrid is bound with one DataTable. However, consider the case of two tables both having a common key column called ID. Say one table contains personal information about employees and another table contains some official information. EmployeeID is the common in both the tables and both tables have same number of rows (equal to the no of employees). How to display such tables in one DataGrid? Read on to know more.
Article. May 13, 2002.


8:34:19 AM    

Thresher is an open source .NET IRC client library you can use to create IRC bots or an IRC GUI client in any .NET supported language.
Beta Software. May 13, 2002.


8:33:13 AM    

Sam Gentile for pointing me at this 1997 essay of Dave's. Hey, Sam, I appreciate your writing and ranting too. Keep on doing it. There are nuts out there who like to tear you down. ...Do it for the fun and if anyone tries to take the fun away from you, make them get their own weblog. Keep teaching me things. I appreciate it. [Scobleizer Radio Weblog]

Aww shucks, thanks Robert! That's very kind




8:28:11 AM    

  Sunday, May 12, 2002


Dave Winer sent me a beautiful message of support and this essay which says it all. What a brilliant essay and a kind man.


2:42:20 PM    

Refering to the last post by me: Well, my good friend, Peter Drayton, advised me to "live my life in public", posting original material and establishing an online identity and building. What he didn't tell me was how hard it was going to be (especially for me). When that site critiqued things, most people on the DM list clearly saw it as that. I always see it as a personal attack. That's been some of my problems on Radio too. I'm going to take a real chance here and bare the soul for a minute: I had a very negative childhood, beaten and always crtitized for everything. I have spent my life to be better than that but I sometimes slip. For those people who have gotten back harsh stuff, it wasn't personal. It's my defenses. I'm sorry for taking things personal. Anyhow, it's my responsibility as a Consultant and a Blogger to choose my words more carefully and be a valuable part of the online community and I intend to do that. Thanks.

Update: Dare Obasanjo turns out to be a very nice Microsoft employee who cares passionately about not insulting developers. He has given me some great tips on writing. Wow, this blogging thing is real. I have learned something today and we have found a way to work together.




11:01:43 AM    

  Saturday, May 11, 2002


One of the more interesting features of C# is the indexer. This article explains how it enables you to treat a class like an array. Meanwhile, Capturing and processing keyboard input from the user are still important tasks in various Windows programs. Depending on which keys you want to process, there are several techniques for capturing and processing keyboard input.  The questions I get asked most about in .NET have to do with the role (or lack thereof) of COM in .NET. Yes, while its true that traditional COM components do not play an role in .NET other than as legacy components, COM+ components and services still play the important role of creating Enterprise Applications using .NET involving transactions and such. In the article, aptly titled O COM+ Where Art Thou, Rocky Lhotka, explains it.

Being a good .NET Programmer requires a fundamental understanding of Garbage Collection.




3:00:31 PM    

The problem—or opportunity—is that C++ isn't just object-oriented. It's also imperative, functional, and generic. Learning what constructs to use when is what separates the masters from the neophytes.

Yes, exactly. What a lot of people (including myself for a number of years) fail to understand about C++ is that it is a multi-paradigm language, not an OO language. That does give C++ some very impressive capabilities and flexibilities once someone masters them. I do believe, for instance, that generic programming via Templates and the STL is extremely powerful. One of the most eye-opening books I have ever read is Jim Coplien's Multi-Paradigm Design for C++. C++ is a language that supports multiple paradigms: classes, overloaded functions, templates, modules, ordinary procedural programming and others. Bjarne Stroustrup, the creator of C++ intended it that way. Multi-paradim design looks at other useful ways of seperating what is common from what is variable (than OO). For example, we may want to select between a short and a long in an otherwise identical data structure; this is a suitable application for C++ templates - nothing object-oriented about that. Function overloading, function templates, and other C++ language features express other kinds of commonalities and variations that are broader than the object paradigm. Warning: Don't try to tackle this book if you don't have years of C++, particuarly template based Standard C++ under your belt!

 Unfortunately, because of C++'s C heritage, which it refused to repudiate, neophytes are likely to be bitten by "traps and pitfalls" that you have to have a level of mastery to avoid in the first place! I would actually recommend Stroustrup's Design and Evolution of C++ for those who find themselves asking "why?" about C++ a lot. Relative newcomers should seek Accelerated C++, which deals with C++ by treating important concepts first, rather than going feature-by-feature like a dictionary. Not-so-newcomers should seek Exceptional C++, More Exceptional C++, Effective C++, More Effective C++, Effective STL, and Modern C++ Design. That's a lot of books, so if you can only choose one, go for Modern C++ Design. [It's Like Déjà Vu All Over Again] Yes, those are the books that I would list that are teaching C++ in my prefered manner - without the C heritage and solely on Standard C++ and the STL.




2:23:13 PM    

Brad responds to stupid Peter Jackson proposal: : A mailing list I'm on (which shall remain nameless, because it's part of the shadowy underworld that actually runs this planet) alerted me to an unusually high level of stupidity. Today's example takes the form of a petition to Peter Jackson, director of the Lord of the Rings trilogy.Can't you just hear "you stupid damn idiots!" buried in-between the lines there? :)[The .NET Guy]

Is there no end to stupid Political Correctness?




2:05:41 PM    

Jon Udell: If the REST folks want to call the SOAP people architecture astronauts who don't appreciate the simple things that made the Web great, then they probably ought to play that RDF pedal a little more softly. [Sam Ruby] Yes!


2:00:56 PM    

Mike Deem:: I think I need to say this in an unambiguous way as possible: 

  • We (meaning the SOAP community as embodied on soapbuilders) have done a damn fine job working around and within these specifications to deliver an amazingly interoperable cross platform messaging infrastructure. It is an accomplishment that ranks very high on the all time list of truly wonderful things that have happened with computers. We should be very proud of this. [deem]

Bravo and 100% agreed. I'd like to see the arguing back and forth stop. SOAP is what the world is using, Period.




1:59:19 PM    

According to the Rotor Mailing list. Dave Stutz, will have a Rotor book:

I know of several books currently being written that will discuss Rotor either as explanatory material for the Microsoft commercial CLR, as a basis for academic projects, or as a CLI implementation.

Geoff Shilling (who leads the Rotor group), Ted Neward, Brian Jepson, and I are currently working on a book for O'Reilly that will have source code on CD and covers the CLI component model and how Rotor implements it. Here is a link to the pre-release info: http://www.oreilly.com/catalog/sscliess/

We're writing as fast as we can :)

-- David Stutz




1:49:11 PM    

§ The first reviews of Star Wars Episode II: Attack of the Clones [official site] do not bode well for those hoping for an improvement over the previous film...  Roger Ebert, who gave Phantom Menace 3 1/2 stars, gives this one 2 in Chicago Sun-Times:




1:44:41 PM    

  Monday, May 06, 2002


Bertrand Meyer is scheduled to speak for ELCA, a leading IT Services supplier, at its '5à7' seminar on J2EE and .NET. This conference will be held three times in mid-May in the Swiss cities of Zurich, Bern and Geneva.
Conference. May 6, 2002.


8:37:00 AM    

In Part - I of this article, we will discuss how to use LoadTemplate method to create templated columns at run time.
Article. May 6, 2002.


8:36:12 AM    

Complete Online Chapter "Data Access with .NET" from Wrox Press book "Professional C# 2nd Edition". Topics covered include "Connecting to the database", "Executing Commands", "Stored Procedures", "The ADO.NET object model" and "Using XML and XML Schemas".
Article. May 6, 2002.

Ok, I admit, my friends at Wrox really screwed up the 1st edition to rush it out. But the 2nd is quite good. I was one of the technical reviewers on this one.




8:35:32 AM    

searchdotnet.info is an Internet search engine of information on Microsoft .net and related technologies. The system gathers information by inviting end users to suggest URLs of web pages to include in the search index. The suggestions are subsequently reviewed by an administrator for relevance to .net, and those accepted are crawled and indexed by an automated "web bot". Search results of searchdotnet.info are ranked by keyword matches. The index is refreshed about once a month.
Web Site. May 6, 2002.

I know its good because it finds ten pages of posts by "Sam Gentile" on .NET -))




8:33:04 AM    

Ok, its Monday ((--. I guess my fliritation with posting non-tecnical things must stop -).

The TripleASP.TableEditor control builds onto the datagrid control that ships with ASP.Net. The key function of the TableEditor control is to allow the user to edit almost any Sql Server table with just one line of code. Key features: Parameterized update queries (typed), Dynamically built data entry forms (a vertical form, including larger textboxes for larger text columns), Validation(type, size, nullable, etc), and much more.
Product Release. May 6, 2002.




8:31:35 AM    

My first report on my trip into Unmanaged C++ is located here. [Justin Rudd's Radio Weblog]


8:15:23 AM    

Read a bunch of good books recently, Ken MacLeod's The Sky Road, Cosmonaut Keep and The Cassini Division, Eric Nylund's Signal to Noise, Vernor Vinge A Deepness in the Sky, Greg Bear The Forge of God and John Barnes The Merchants of Souls. I'll probably switch tracks, and start reading Ingo's .NET Remoting book this week. [Simon Fell]

All great books! I'm reading Ken MacLeod's newest Dark Light, which like last year's Cosmonaut keep, is set in his new "Engines of Light" series. I just finished Baxter's Manifold Origin, which I highly recomend.




8:14:07 AM    

  Sunday, May 05, 2002


Cool, Brad is migrating to Radio. Does this mean we'll loose the funky green & purple site ? [Simon Fell]

If you have color issues, you'd best take them up with my wife. :) Seriously, the migration is already done, and the site remains green and purple. There was significant work getting Radio to play nicely with ASP.net and the way I generate pages (with a page generation object that I wrote in C#). [The .NET Guy]

Wicked cool! Brad is one of my favorite persons online. We are going to have to work on Lisa though to get those ugly colors changed-)) Seiously, this is great.




5:24:47 PM    

What a day. Sue and I decided to take Jonathan for a ride over to the seacoast and Portsmouth, NH and we stumbled on "Children's Day. Jonathan had quite a day for himself on the fire trucks, trolleys and other things. Of course, Sue and I are ready to go to sleep.


5:21:23 PM    

In a sentence: Spiderman rocks! (more of a review later)


1:12:50 AM    

  Saturday, May 04, 2002


Justin Rudd on Spiderman: "2 thumbs up."  [Scripting News] Good news. Going to take Jonathan (who is mega pumped) at 4:40 today. Tickets already in hand. I was a huge Spiderman fan in my youth and now that JMS is writing them. I'm back on board. After Babylon 5, I read and watch every word JMS writes. Check out TopCow's Midnight Nation and Risng Stars for 2 very intelligent adult comics written by JMS.

 




1:59:01 PM    

"Fifty five gallons of goat semen found" [Daypop Top 40] No comment.


1:17:42 PM    

I'd mentioned that MC++ provides mode control over boxing and unboxing than C#. Here's an example of directly modifying boxed value types on the heap, without unboxing & reboxing them or resorting to adjustor interfaces:

<a href="//">// HeapMod.cpp: cl.exe /clr HeapMod.cpp 
#using  using namespace System; 
__value struct Universe { int Answer; }; 
void main() { 
Universe u; 
Object* po = __box(u); 
Universe* pu = __try_cast(po); 
pu->Answer = 42; 
Universe* pu2 = __try_cast(po); Console::WriteLine(pu2->Answer); }

[Peter Drayton's Radio Weblog]

Thans Peter for doing my work for me again-). I should be doing this as the author of a Managed C++ book, but there is so little time (especially when my wife wants to get my off the computer so much that she hides my keyboard! -))

 




8:54:33 AM    

Good Morning! Saturday mornings are such a chore fr me. See, Saturday morning is weigh-in time for my Weight Watchers (I've lost 40.8 pounds in 25+ weeks). So it becomes the elobrorate ritual of weighing myself over and over and picking the lightest clothes=). This morning, I got on the scale and freaked out. I had gained back most of the 2.9 pounds I lost last week because I had ate like a shithead this week. So like last week, I jumped on the treadmill and ran - 42 minutes = 3.21 miles = 487 calories burned off. Last week, I ran for the first time in many months and I did even better this week.


8:52:53 AM    

  Friday, May 03, 2002


Charles Cook was wondering about MC++-only features for doing 100% managed work (when verifiability doesn't matter, of course). Some examples of this are: exception filters, family-and-assembly member accessibility, and on-heap manipulation of boxed value types without adjustor interfaces. Although C# doesn't expose these features directly, there are reasonable workarounds, and these differences aren't meaningful enough to make me switch to MC++ for all my new, 100% managed coding. Productivity is a feature, too! [Peter Drayton's Radio Weblog]

Peter then has two examples.




9:32:40 PM    

C# striking a chord with programmers. Microsoft's new programming language is gaining in popularity, with usage nearly doubling in the last six months, a study shows. [CNET News.com]

I have been doing a lot of C# programming lately (as opposed to MC++). What a refreshing and enjoyable experience.




9:13:30 PM    

Did you ever need to call one function with the same name from more than a one class, or just make an object based on a class name which you got as an function parameter? Well, here's how.
Article. May 3, 2002.


8:21:38 AM    

Use a simple Windows form to verify .NET's capability to consume Apache, CapeClear, Delphi, and other rpc/encoded Web services. The Visual Basic .NET code is available for downloading.
Article. May 3, 2002.

I espeically liked:

Sun's Scott McNealy accused Microsoft of "hijacking XML" during his March 2002 JavaOne conference keynote. The accusation undoubtedly relates to Web services, where Microsoft and IBM have taken the reins with the SOAP, WSDL, UDDI, and, more recently, the WS-Inspection Language (WSIL) and the Web Service Interoperability Organization (WS-I). To see for myself whether Microsoft had nefarious intentions in the SOAP interoperability sector, I decided to write a simple Windows form app to exercise Web References from a few rpc/encoded sample Web service created by competitors' toolkits (see Figure 1).

...

My tests so far indicate that Microsoft is sticking to today's Web service standards and Scott's accusation isn't credible. No one can gain a monopoly on XML tag names and namespaces, regardless of their marketing and financial clout. My take is that McNealy made the claim in a fit of pique over a late invitation from Microsoft and IBM to join WS-I as a regular member, not a founder. (J2EE release 1.4's delay to January 2003 might be a contributing factor.) Hopefully, WS-I—with or without Sun as a member—will deliver soon on its promise of implement




8:19:36 AM    

Survey Finds .NET and J2EE Neck-and-Neck [ActiveWin]


8:11:35 AM    

Ok, I did it. I was playing around and I have an Instant Outliner. Pretty cool.


1:09:03 AM    

  Thursday, May 02, 2002


Finally!  1st May 2002

By far the best SF magazine in the world *Spectrum SF #8 has returned from the printers and will be mailed out tomorrow. It contains the second part (of three) of Charles Stross's serial (congrats to Charlie for making the Hugo finals with his Asimov's SF novelette Lobsters), novelettes by Neal Asher and Michael Coney & Eric Brown, and short stories by Colin P. Davies and Josh Lacey.
More news about Spectrum SF #9, soon.

I'll be tackling Greg Egan'snew book "Schild's Ladder which deals with such simple concepts as Decoherence and Spin Networks.

Sci Fiction, which picked up a Nebula and is nomianted for Hugos,  has a new story Jemima by A. R. Morlan and a Classic by the master R.A. Lafferty Land of the Great Horses  

New issue of The Spook is online

 

Locus Magazine New and Notable Books


11:18:40 PM    

Replacing ADODB COM objects with ADO.NET's SqlClient.Command and DataReader objects delivers a significant performance boost to XML Web services.
Article. May 2, 2002.


10:58:43 PM    

We (the people I work with) have managed to solve the huge .NET Interop flaws that I have detailed in 2 seperate outings here. As I detailed, COM Interop in .NET is fundamentally flawed as the PIAs (RCWs) do not determinisically clean up all the COM Interface pointers and this is a showstopper problem in non-trivial COM applocations. So our .NET code has become peppered with Marshal.ReleaseComObject calls and even UCOMxxx calls. I have detailed why this is wrong before.

We have come up with a solution. In a nutshell, we implement intelligent wrappers that implement IDisposable and the Dispose Pattern, and have the wrapper call ReleaseComObject and such. This is something Microsoft should have done automatically in generated Interops and frankly we can't understand why. The nature of their response has been something along the lines of having to use Late Binding to not break COM Versioning? Excuse me? There is no COM Versioning and if Microsoft is inventing it now, it breaks the rules of COM. When I need a new "version" of a COM interface, I make a ILoveCOM2 interface. That's the extent of COM versioning. Period. We think COM Interop is broken without this.




10:29:16 PM    

Agile Development: What, Who, How, and Whether. Agile Development guru Martin Fowler talks about how to pick methodologies, execute them, and fix what's broken. (Interview by Elden Nelson) [Pythoz.com] [The Wagner Blog]

I am a big fan of Extreme Programming and was pulled into the early development of it by Ron Jefferies and acknowledged in his book. Martin was a huge part of it and is an overall smart guy. Listen to every word he says-))




10:15:23 PM    

Yasser Shohoud has a good overview of WS-Security. I've also been enjoying reading his Building XML Web Services with VB.NET book, which is available online in draft form. [Peter Drayton's Radio Weblog]

Great link! The book is fantastic for us guys not soaking in the stuff-))




10:12:47 PM    

Sam Gentile replies to my previous posting:

Umm, there is nothing managed about this "Managed C++" program and thus you will not get any of the CLR benefits. I think you may be confused about Managed C++ and this is common. As I say in my book, in Chapter 7, compiling with /clr will not make *any* of your data managed. It just changes compilation to emit IL in an assembly. All of the data is *still unmanaged* and coming from the unmanaged heap. That's why you have the problems above. Only the types you specifically mark with __gc or __value will become managed and the problems will go away.

My understanding is that managed code and managed types are orthogonal to each other. Managed code (produced when using the /clr option) consists of IL and metadata - which is what I see when I compile this sample program and look at its assembly using ILDASM, I don't see any native x86 unmanaged code. ...

and wonder what it is I'm missing.
[Cook Computing]

All of it-)) You are incorrect. Just because it's in an assembly doesn't mean you have all managed code. Don't take my word for it? Lets see what Siva Challa and Artur Laksburg, two of the guys on the MC++ team, who wrote the bloody thing, at Microsoft Essential Guide To Managed Extensions... say: "Your classes do NOT automatically become managed when you compile your code with the /clr option. There are several reasons why this is the case. First, because the C++ object model is quite different than that of the CLR, not every unmanaged class can become managed. For example, templates and multiple inheritance cannot be expressed on the CLR. Second, some managed classes can only be created on the GC heap (these are called gc classes) while others can be created on the stack and, with some restrictions, on the C++ or global heap (these classes are called value types). If your managed class is being created both on the stack and on the heap, you cannot make it a gc class or a value type without limiting its functionality. Assuming your class meets all the requirements, you can make it managed by adding the __gc or __value keyword in front of the definition." Just what I said. I hope this is clear and you will correct the incorrect assertions you have on your site.

 




10:10:20 PM    

Dave:Outage update, 11AM: I was able to string some baling wire, with the help of lots of scotch tape, and now have a very temporary workaround to the outage. Details

Thanks Dave! Back up! And BTW, Happy Birthday!!!




9:50:27 PM    

  Wednesday, May 01, 2002


In this article the author discusses the event handling model in .NET using C#. The discussion starts with an introduction to the concept of delegates and then it extends that concept to events and event handling in .NET. Finally, he applies these concepts to GUI event handling using windows forms. Complete code is provided in each step of the discussions.
Article. May 1, 2002.


7:49:14 AM    

In this, the final article of the two part series relating to ASP.NET controls, the author teaches us about custom controls and components. He talks about creating them, as well as compiling them from the command prompt using the C# compiler. He also provides two ASP.NET examples that demonstrate how to both create and integrate custom controls and components into our ASP.NET pages.
Article. May 1, 2002


7:48:09 AM    

monograph is a visualization tool for Mono and .NET code. In this article, Brian Jepson uses monograph to examine some pieces of Rotor and Mono.
Article. May 1, 2002.


7:46:36 AM    

All Web development efforts require form validation, but Active Server Page technology hasn't made the task easy. Fortunately, ASP.NET addresses the need with validation controls. See how to put them to good use.
Article. May 1, 2002.


7:45:48 AM    

My favorite new Science Fiction author, Charles Stoss, who is up for a Hugo this year has a very intelligent weblog.

Also, the great British site Infinity Plus, is "reprinting" his classic novelette "A Colder War."




7:36:51 AM    

Message passing or distributed objects?. [Ingo Rammer's DotNetCentric]

Hm...do I currently work for a company that uses messages or distributed objects?  Ask marketing and they say messages (ask them why they believe that and I get a blank stare).  Ask engineering and I get a blank stare. :-)  What do I believe?  I believe that we are using a messaging system.  [Justin Rudd's Radio Weblog]

Found Justin in my Referal logs-). Some interesting stuff.




12:04:14 AM