|
Sam Gentile's Radio Weblog
 |
Tuesday, April 30, 2002 |
Mike Deem: We released Beta 1 of the Microsoft SOAP Toolkit version 3.0 today.
11:36:41 PM
|
|
In his post, Charles says
This C++ program compiled with /clr sums up what I don't like about Managed C++. It runs without complaint even though the buffer overrun is corrupting both allocated memory and unallocated memory, deallocated memory is accessed (admittedly the latter problem is trapped in the debug build but problems often occur only when running in released code), and an unitialized variable is used. A couple of people I've discussed this with are surprised that IL can access unmanaged types so I've included the output from ILDASM below.
void main(void) { char* buff1 = new char[16]; char* buff2 = new char[16]; for (int i = 0; i < 33; i++) buff1[i] = i; delete buff1; int x; *buff1 = x; }
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.
Do this and it won't run:
#include "stdafx.h"
#using <mscorlib.dll>
#include <tchar.h>
using namespace System;
// This is the entry point for this application
int _tmain(void)
{
// TODO: Please replace the sample code below with your own.
// char* buff1 = new __gc char[16];
char *buff1 = __gc new char[16];
char *buff2 = __gc new char[16];
for (int i = 0; i < 33; i++)
buff1[i] = i;
delete buff1;
int x;
*buff1 = x;
return 0;
}
11:12:15 PM
|
|
The saddest story in geekdom. Robert Cringley's latest Pulpit/ [The Wagner Blog]
Oh my God, this is terrible. I can't stop shaking and crying. How can he cope? As a parent, this is just beyond words. I don't know what to say. My prayers are with you Robert.
10:36:12 PM
|
|
Maintaining header files is often tedious and provides ample opportunity for mistakes. Thankfully, .NET assembly libraries erase the reliance on these files. This how-to article contrasts the new .NET assembly libraries with the older header files. Article. Apr 29, 2002.
10:17:32 PM
|
|
Third party vendors are already supporting .NET in a big way. This article takes a look at several components from leading .NET vendors. Review. Apr 29, 2002.
10:16:40 PM
|
|
Learn how to create your own file extensions and secure Web applications using HTTP Handlers and HTTP Modules. Article. Apr 29, 2002.
10:15:47 PM
|
|
The 2001 Nebula Award Winners were announced. I can live with them, allthough there were better candidates on the list. It is great to see Grandmaster Jack Williamson getting his due however with his win for his great novella "The Ultimate Earth" after his Hugo win last year. On the better candidates, for novels, "Mars Crossing", "The Collapsium" and "Declare" were all better.
9:04:49 PM
|
|
Peter reported on two things of interest to me.
- Thomas Restrepo posted a two-part series on his experiences building a formatter for .NET remoting, as part of this effort.
- Chris Sells posted audio and video for the WSDevCon talks. Since it's a commercial venture for him, I guess it's understandable that he's charging for access. The Don Box keynote (The Role of Virtualization in Web Services) is free, though - worth checking out. This was an inspiring keynote and well worth checking out.
[Peter Drayton's Radio Weblog]
8:37:37 PM
|
|
 |
Sunday, April 28, 2002 |
I'm trying to figure out the best ways to do this. I don't necccessarily want to have a dozen posts a day. Brain Jepson has a A Quick Look at the .NET Compact Framework. Meanwhile, the META Group reports "META trend: Global 2000 organizations will have heterogeneous application environments indefinitely, but .Net share will increase to 30 percent of enterprise development projects as J2EE use stabilizes at 40 percent by 2004."
here . With the advent of the .NET platform, writing code that pools objects and threads has become a simple task. By using the Threading and Collections namespaces, you can create robust object pooling applications.
You've created a Web service and now it's time to let others know where to find it and how to use it. See how to add a namespace to your service and publish it to a public directory using UDDI.
This article looks at how you as a developer and consumer of XML Web services can utilize caching. It takes a look at ways you can do application-level caching with ASP.NET, and also at HTTP caching and its application for XML Web services.
Whether you are provide an internal or external Web services or if you are an ASP, ISP, or e-sourcing agency some level of service-level agreement will be necessary to distinguish quality. This IBM developerWorks article take a look at how is would work for .NET apps. This article is the second piece of a multi-part series on using the DataGrid Web control that will span several weeks. The ASP.NET DataGrid Web control, which displays database information in an HTML table, is highly versatile. The basics of the DataGrid were discussed in Part 1. This article will examine how to perform custom formatting of the DataGrid.
8:44:33 AM
|
|
 |
Saturday, April 27, 2002 |
John Lam: "...attending the first ever Aspect Oriented Software Development conference......successfully demonstrated CLAW, my runtime aspect weaver...well received. The future is looking quite bright...posting a copy of my...presentation and the demos...until I get a security story...I won't be releasing any bits". Congrats, John! I hope you nail the security story ASAP so you can release bits, too. [Peter Drayton's Radio Weblog]
I have been watching John's AOP work with great interest. This is great stuff.
4:43:49 PM
|
|
Hugh Pyle provides an excellent description Edge Services:
In the edge services model there is no Big Central Server, just a whole lot of PCs (at the edge of the network: behind firewalls, on roaming WiFi connections, DHCP-assigned IP addresses, all the usual garbage - you generally can't find a simple IP address to call into these machines). By building SOAP interfaces to the services these PCs can implement - and there's a whole lot of interesting services they can provide - you get a new world of interop between Groove and Web. The magic sauce is somewhere in the middle, using well-known relay points (multiple, many) to be able to call these devices's services (and receive callback events from them) regardless where the endpoints are.
This is one of the ways that has made this project so challenging, and interesting. Most Web Services models are an extension of Client/Server architectures. The service lives in the center, and you call it from the edge. At Groove we are all about decentralization which leaves the power with the user. So I can have my information accessible from anywhere, but it is always under my control and on my devices. Of course, I do have to have a device connected somewhere to access it. But hopefully you get the concept. [John Burkhardt]
4:42:40 PM
|
|
Hmm, some really nice people out there, sending me emails. "...I hope you reconsider, but if you do quit I can respect that decision." and "I was sorry to hear about your decision to quit blogging. Your page was one that I regularly read because it seems like your views of .NET were very close to my own (There's too few public Managed C++ advocates in the world..)."
"I won't try to talk you out of the way you're currently feeling or try to minimize whatever it was that is causing you to feel this way but I wonder if you'd reconsider you decision to totally abandon something that (IMO) was resonating with people and helped educate them as well. If all the good guys leave town then only the bad guys will stay. And then this blogging thing _will_ be totally worthless....Anyway, I've said my piece. Even if you do stick with your decision to end your blog, know that it did have a positive impact and was valuable." Very nice!
4:41:56 PM
|
|
I wasn't going to write about this but I have a bunch of emails. About a week ago, after yet another online confrontation, I quit Radio. I stopped completly. Why? Because its not worth it. Despite Winer's hype, Radio and Blogs are nothing more than a glorified electronic diary. There is nothing earth-shattering here. What's worse, is a whole bunch of geeks (who have little social skills) unleashed in a public forum where they can show even worse behavior, attacking others and trampeling things. Where are the checks? Who checks the facts? There were and continue to be totally false things posted by people on a variety of things. Who watches the community? What if someone gets hurt? Well, the attitude is probably one of "obtaining a thicker skin." Is that what we really want? I don't think so. That's just an excuse for bad behavior.
Also, as Chris Sells pointed out many people get trapped up in the process of commenting on Radio and blogging in general. "Look, isn't this cool" and such just point out to the usual geek thing of crying for attention. I know. I was doing it too. Spending 4 hours a day with this. I'll tell you what I learned. I love my 4 year old son Jonathan and my wife a whole lot more than any of this. And that's what counts. Arguing with people endlessely here does little and creates a whole lot of distress, Loving my son a whole lot more and spending that time with him creates a whole lot more in life.
1:00:22 PM
|
|
 |
Sunday, April 21, 2002 |
I can't hold back anymore-). Peter encouraged me-)
7:01:27 PM
|
|
 |
Friday, April 19, 2002 |
Charlie's up for a Hugo!Charlie Stross got a Hugo .... Charlie's up for a Hugo! Charlie Stross got a Hugo Nomination for his brilliant story, "Lobsters." All hail Charlie! You gonna post the story, Stross?LinkDiscuss posted by Cory Doctorow at 09:27 [bOing bOing]
It's about time. Charles Stoss is the most brilliant Hard SF writer (well a mixture) working in the genre today. Lobsters is one of the best SF stories I have *ever( read. Its good to see good Hugo nominations this year after the Harry Potter fiasco last year. But I do see yet another Bujold nomination. Lets hope that she finally gets ignored and we get some real SF this time.
7:20:20 PM
|
|
This article explains the different models of threading — single, apartment, and free — and the use of each model. It also introduces a code sample in C# that uses threading to help you write applications that will take advantage of threading. The article also discusses important issues involved in multithreading code. Article. Apr 19, 2002.
8:14:02 AM
|
|
 |
Thursday, April 18, 2002 |
This article demonstrates how to call .NET web service from Pocket PC application. The Pocket PC application will pass data using Pocket SOAP (Simple Object Access Protocol) to the web service (therefore IIS with .NET framework is required on the server) and return result back to the Pocket PC application. Article. Apr 18, 2002.
An article using Simon's PocketSOAP
10:34:45 PM
|
|
Regular readers of this blog will notice that I don't generally repost other people's blog entries without commentary. However, since I'm involved in this effort, this is the exception to the rule: Ingo posted this as "Revealing the sources and calling for action!":
Peter Drayton, Simon Fell and I are proud to announce a set of open source .NET Remoting projects. We have planned this for some time now and after Simon created the CVS repository last week, I finally got the time to create a web site about them.
http://www.dotnetremoting.cc/projects
We have currently implemented a JabberChannel which allows .NET Remoting messages to be transferred via the Jabber protocol and an SMTP/POP3-channel which uses standard internet email to transport the requests and responses. Both channels come with full source code, sample clients and servers and are covered by a very liberal open source license.
One of the reason for kicking this off right now is that we want to provide a collaborative environment for remoting-related developments. At the current time we are about to implement the following (parts of them will be available in the CVS in a week or two)
* An XML-RPC Formatter for .NET Remoting * A bidirectional TCPChannel which avoids the problems with callbacks, events and sponsors which are used from clients behind NATs or firewalls. * A caching channelsink (based on this idea) * A framework for the development of feature complete custom channels * An MSN Messenger channel
Further ideas which we think about are * A document/literal encoding SOAP formatter * A DIME/TCPChannel * and finally, an implementation of the GXA-specs (WS-Routing, WS-Security)
This post is also a call for action!
If you already implemented channels or sinks or have some great ideas about doing so, please don't hesitate to contact me privately or - even better - post them to the project discussion forum. Also please check the licensing information before submitting any source code to this project as we definitely don't want to infringe of any existing copyrights.
Thanks for your support. I'd really like to hear your opinions on this. Please blog, email or post at them the forum!
Happy coding! [Peter Drayton's Radio Weblog]
9:54:28 PM
|
|
The .NET Compact Framework beta 1 is about to become available. This will finally bring C# and the rest of the .NET goodies to the Pocket PC crowd. If you are interested in signing up for the beta, check out the Microsoft GotDotNet website for more information.
6:40:08 AM
|
|
The SQL Server Notification Services beta is taking applicants. Notification Services is described as "A platform for developing and deploying highly scalable rich push applications" - basically it's a sophisticated publish/subscribe system that can deliver alerts via SMTP email, HTTP Posts, files in drop directories, and (more interestingly) MSN IM .NET Alerts. [Peter Drayton's Radio Weblog]
6:31:52 AM
|
|
 |
Wednesday, April 17, 2002 |
Shawn Wildermuth: The ADO Guy has an experimental(?) System.Data.XmlClient Managed Provider . He says "...This is my first attempt at writing a Managed Provider. The idea behind it was to allow users of the Managed Provider to be able to fill DataSets from XML in a homogenious way. This way you could mix XML and database data together without having to know exactly which is from which..." [The Wagner Blog]
8:10:32 PM
|
|
XML is becoming the ubiquitous data format on the Web, and XML support in SQL Server is evolving to meet the additional demand. Using XML, SOAP, HTTP, and SQL Server, you can now build powerful Web Services easily. To show just how simple it is with SQLXML 3.0, this article walks the reader through the process step by step, from setting up a virtual directory enabling data access via HTTP to executing queries and building Web Services.
I was introduced to this new feature with Bob Beauchemin's presentation at the Web Services DevCon. This is exteremly interesting.
8:21:06 AM
|
|
This example shows how to create a tiered app that transports the data between the business services and the presentation services using a DataSet. One advantage to passing the DataSet to the business services to make the data modifications is that ADO.NET allows for a DataSet to be passed to the SqlDataAdapter's Update method and have its modifications be applied directly to the database. Article. Apr 17, 2002.
8:15:18 AM
|
|
A couple of new .NET samples/widgets popped up recently:
- Jason Diamond posted a tool called Xml2CodeDom which turns an XML representation of a program into an in-memory CodeDOM that can be serialized as any language with an ICodeGenerator (out of the box, the .NET Framework includes generators for C#, JScript.NET and VB.NET).
- Craig Andera posted a tool called PopRouter for building POP3 message handlers, similar in spirit to the way the ASP.NET infrastructure lets one build HTTP request handlers. The usage model is dead simple: install the server, tell it what POP3 mailbox to monitor, and provide a class implementing a single, simple interface (IPopRouterHandler). When a message comes in, you get a crack at it. Nice.
[Peter Drayton's Radio Weblog]
8:05:22 AM
|
|
Dave and I share the goal that interop never be reduced to simply a statement to the effect of "works with the dominant vendor". That's why I have been delighted to find Keith, JHawk, and Mike to be joys to work with. The few times I have identified discrepancies between their early implementations and the specifications, my reports have been eagerly and cheerfully accepted and quickly addressed.
I can't help but contrast this with the reaction to Mark Pilgrim's report of discrepancies between the OPML specification and the actual documents that are being produced today. [Sam Ruby]
8:02:38 AM
|
|
 |
Tuesday, April 16, 2002 |
New drug keeps you awake 40+ hours Studies have shown that a drug called Provigil allows people to remain awake and attentive when their bodies normally crave shut-eye, without suffering the unpleasant side effects and risk of addiction associated with caffeine, amphetamines and other stimulants. [Los Angeles Times]
Will this save money on my StarBucks budget? -))
6:13:09 PM
|
|
If you want to design your own controls, the .NET Framework provides inheritable classes that take care of all the nasty stuff you want to avoid, including page lifecycle, maintaining state across invocations, and browser detection. This article discusses these concepts, as well as eventing, rendering, and client-side scripting. Article. Apr 16, 2002.
8:20:53 AM
|
|
You can use HTTP modules to extend your ASP.NET applications by adding pre- and post-processing to each HTTP request coming into your application. For example, if you wanted custom authentication facilities for your application, the best technique would be to intercept the request when it comes in and process the request in a custom HTTP module. Article. Apr 16, 2002.
8:19:31 AM
|
|
This article shows you how to use the .config file to store application settings.
8:17:25 AM
|
|
The article elaborates on ideas discussed by Tomas Restrepo in the March 2002 issue of Visual Systems Journal, which builds on the recommended practice for event handling described by Microsoft in the MSDN Library .NET topic, Design Guidelines for Class Library Developers. Article. Apr 16, 2002.
8:13:35 AM
|
|
 |
Monday, April 15, 2002 |
Goodbye, DamonDamon Knight was my teacher at the C .... Goodbye, Damon Damon Knight was my teacher at the Clarion Writers' Workshop in 1992. One of the fathers of science fiction, Damon founded the Science Fiction Writers of America, helped invent the writers' workshop, wrote much of the classic Twilight Zone canon. He edited the Orbit series of short story anthologies. He wrote brilliant stuff in his youth and his work got even better as he grew older, more controlled. His last two novels, "Why Do Birds?" and "Humpty Dumpty, An Oval," are two of the finest science fiction novels ever written. I have never had a teacher quite like Damon. His notes on the creative process are among the most lucid instruction on tickling your brain that I've ever received. Damon died last night, at the age of 80, after an illness. I feel privileged to have known him. I'll miss him, as will the thousands of writers and millions of readers that he touched. Goodbye, Damon. A plotted story has a skeletal structure that can be extracted and examined; the story makes sense if you just tell what happens in it. This is not true of unplotted stories. Consider, for example, Ernest Hemingway's "Big Two-Hearted River." It is easy to say what happens in this story. The narrator gets off a train in a deserted countryside and walks deep into the forest, where he makes camp and goes to sleep. In the morning he catches grasshoppers for bait, has breakfast, and fishes the river. He catches trout and cleans them. This account could be expanded by adding detail, but even if it included every least thing that happens, it would not tell you what the story means. The strength of "Big Two-Hearted River" lies partly in its symbolism (the river is the narrator's life, and he is fishing the upper part of it, which represents the lost paradise of his boyhood), but there are powerful unplotted stories in which symbolism plays no part. Tolstoy's "The Death of Ivan Ilych" is simply the chronicle of a man's life; the same can be said of Willa Cather's "Good Neighbor Rosicky." In these stories we are profoundly moved, not by drama, but by the inner meaning of a human being's existence. These are stories of illumination rather than of revelation; they take the form, "This is what life is." The story forms we have been discussing are not rigid little boxes, into which every work of fiction must be crammed; they are ideal categories. In practice, elements of these forms are mixed in all kinds of ways. The same story may be partly one of resolution, partly of solution, partly of illumination (see, for example, The Maltese Falcon, by Dashiell Hammett). When you understand the simple forms, you can mix and combine them to make more sophisticated ones. There is no end to the stories that can be written, because the possible combinations of old forms will never be exhausted, and because good writers keep on inventing new forms. Damon on plot: Link Damon's Hotwired chat: Link Damon's bibliography: LinkDiscuss posted by Cory Doctorow at 07:24 [bOing bOing]
9:17:23 PM
|
|
Groove 2.0 press release. Groove version 2.0 features significant enhancements and new features to both client and server software, including integration with Microsoft Office applications, new project and meeting management toolsets, and, most significantly for large corporate customers, the introduction of customer-hosted management and system integration capabilities. [Scripting News] [Pythoz.com] [The Wagner Blog]
9:11:19 PM
|
|
Groove 2 debuts. The collaborative styles woven into the Groove fabric, such as instant messaging and peer-to-peer sharing, can make IT departments nervous. Here Groove 2 shines. The product is embedded within a framework that strikes an ideal balance between users' need for freedom and spontaneity, and IT's oversight requirement. [read more at InfoWorld.com...] [Jon's Radio]
9:10:16 PM
|
|
A step-by-step tutorial which explains 2 ways of displaying data from an SQL Server database using ADO.NET in an ASP.NET page. Every step has been explained in detail. Online demo and source code available for download. Article. Apr 15, 2002.
8:00:13 AM
|
|
.NET Remoting provides a powerful and high performance way of working with remote objects. Architecturally, .NET Remote objects are a perfect fit for accessing resources across the network without the overhead posed by SOAP based WebServices. Article. Apr 15, 2002.
7:59:29 AM
|
|
 |
Sunday, April 14, 2002 |
Sam Gentile: "The trendy language of the week doesn't matter. Design and good engineering principles do. Interview someone today and ask them if they know what cohesion and coupling are. ...design is needed again. Make your software flexible and refactored. Give it Unit Tests. Become merciless in refactoring based on the faith you have in your Unit Tests and the fact that your code is well designed and factored." Soooo true. This reminds me of a quote from The Tao of Programming by Geoffrey James:
Thus spake the Master Programmer: "A well-written program is its own Heaven; a poorly-written program is its own Hell."
The full text of the Tao is available online. James also has two other books in the same vein: The Zen of Programming and Computer Parables: Enlightenment in the Information Age. Both are excellent reads. [Peter Drayton's Radio Weblog]
8:47:14 PM
|
|
Patrick Logan's Radio Weblog posts: Trouble Ahead for Programmers.
Trouble Ahead for Programmers: Choose Your Assembly Language Wisely
Java is dead. C# rules.
Or something like that. The message is to stop building software artifacts in Java, and to start building them in C# (Turbo Java) instead.
Or something like that. A recent author gives Java five years "if we don't get our act together".
We should be so lucky.
The lesson I learn from this is not to build software artifacts in either Java or C#. Instead we should think of these languages and their runtimes as assembly languages. Applications should be built at a higher level, in notations that will last beyond the latest Turbo languages.
Ward Cunningham suggests "If we are to have a [program] life cycle, let us make it long. One hundred years cannot be beyond reason." This is preceeded by his observation, "...flexibility is a property that programs still easily loose. And the loss is due to a failure of design."
Using the latest languages is not enough, and not even necessary in many cases. More important is good design.
You couldn't tell this by observing the transition over the last few months from shelves of Java books to shelves of C# and dotNET books. What if we had as many books at Barnes & Noble or Borders that addressed good design, independent of notation?
I am once again programming in Scheme, a 25 year old notation, now ported to the Java and C# "assembly language" platforms, and easily ported to the next ones that come along in five years. See you then.
[Patrick Logan's Radio Weblog]
Patrick is so right commenting on the recent trend from Java to C#. I agree with Ward (as usual) and with Patrick is that very little design is going on here. And I am certainly not (as Ward and Kent Beck) know talking about "Bing Bang" UML design here. I am talking about flexible code done with Extreme Programming concepts like Unit Tests, Maximum Refactoring and such. The trendy language of the week doesn't matter. Design and good engineering principles do. Interview someone today and ask them if they know what cohesion and coupling are. To a large extent. .NET solves the language issue. The big thing in .NET is that the language is irrelevant, right? Want to program in Scheme? You got it. Same model, same BCL. Want tp program in Python or Cobol or Lisp or Smalltalk or 21 others? Got the picture? Now that we have the language picture down and don't have to subscribe to the "one true language" story, I agree with Patrick that design is needed again. Make your software flexible and refactored. Give it Unit Tests. Become merciless in refactoring based on the faith you have in your Unit Tests and the fact that your code is well designed and factored.
10:22:41 AM
|
|
 |
Saturday, April 13, 2002 |
I thought this would change when I finished the book. Here I am on another Saturday (actually one in which its 70 degrees plus in April NH!!), working on writing again and not spending time with Sue or Jonathan. The only saving grace is that I am listening to an incredible live Gabriel/Genesis live 1973 at the Roxy (before Phil destroyed them) while I work. Comments came back from two reviewers on my Wrox Press UK article on "Doing Web Forms with Managed C++." Of course, the reviewers didn't even get the premise of the article: showing that it is possible and how with Managed C++ and not doing it in place of C# or VB.NET. Gosh darn it. C#, C#, C#. Chris Sells asked me something about limited audience for my Managed C++ book. So what? I do it because it is so darn hard and because everyone and their brother does C# books and articles (the current media darling). I can tell you this: I have done .NET work for 3 different places in 2 years and there is very tiny amounts of C# development being done in real production (as in products) projects. To be honest, most of the work guys is taking all these millions of lines of existing C++ or COM code and integrating it and working with it in the managed world. And there is only one way to do that folks: write a managed wrapper in Managed C++.
2:46:50 PM
|
|
Microsoft and IBM announce this general purpose XML Web services roadmap and together with VeriSign, the foundation specification, WS-Security. Learn how these will enable you to easily develop interoperable secure XML Web services. (April 10, Article) More...
Microsoft's site for the WS_SECURITY doc
8:26:21 AM
|
|
Peter: Anyone out there interested in testing a little late-night Google hack? Subscribe to my new RSS feed with the top 10 Google hits for the CLR
Methinks you need a better late-night social life-) Seriously though this is pretty darn cool, Peter. Now, if you just have it changed for the interesting part of .NET - Managed C++ -)
Microsoft .NET: Implement a Custom Common Language Runtime Host .... ... Rate this page: 26 users, 4.0 out of 5. Microsoft .NET: Implement a Custom Common Language Runtime Host for Your Managed App. ... [In the CLeaR]
8:12:08 AM
|
|
 |
Friday, April 12, 2002 |
I think I have something real cool now and something to soon write an article about (I am doing one for Wrox right now on Web Forms and Managed C++). I have been doing a lot of work on an advanced development environment that will become a part of VS.NET (not an add-in). As I talked about much earlier, there is VSIP and the Automation model. VSIP is a real complicated beast. I can't talk much about it because of the agreements other than to see its big and complex. Productivity in creating things with it has been low. So I decided to use the Automation model in VS.NET to do stuff that I could do. I originally was doing things in the automation model with VB.NET, port to C# and then port back to ATL/C++ COM because VSIP is all COM based still. That's the weird thing about VSIP. There is this wonderful. modern XML-everything, whizzy environment for users to develop managed (and unmanaged C++) code in but the guts of VS.NET are still years of accumulated COM and old code!
.NET (which I have been working in for 2 years) has made me forget just how hard and tedious all this COM stuff is. When I ported, the one line of C# that went through 4 objects down in the automation model become a couple dozen lines of ATL COM (yes thats with Smart pointers too). Unfornately, VSIP is not managed code in any way and you can't even create an RCW for the Interfaces either! So, I ended up leaving the VSIP code in the COM component that implements IDTWizard and it launches the C# or VB.NET wizard that creates a User Control project. Now I needed to add default implementations of methods for the thing I was creating and a custom toolbar and tools. Time for automation.
I ended up coding a VB.NET component that manipulates the VS.NET DTE model to find the right place in the UserControl1.cs file and stick in the code on the fly. Why VB.NET? Because, believe or not, the Automation model in VS.NET has problems too! The NewLine() method for instance works in VB.NET but "is not implemented for V1 in C#!" Then I wrote a C# component to grab the VS.NET Toolbox, add a custom tab and some tools. Now to call it from ATL/C++ COM unmanaged code. Here are the steps:
- Create a C# or VB.NET class
-
Generate a key for it - sn -k keyfile.snk
-
Put an assembly directive at top of file
[(Assembly: AssemblyKeyFile("keyfile.snk")]
-
Compile
-
regasm file.dll /tlb to generate the COM Type Library
-
gacutil -i file.dll to place file in GAC
-
Copy the generated typelibraries into the directory of your C++ project
-
#import file.tlb no_namespaces named_guids and one other I can't remember
-
Compile C++ code and you will have access to the CCW through the types in the imported tlb
Whew! After that, I now have a COM/ATL/C++ native component making calls to two different managed components in two different languages each handling the parts they are good in. Pretty cool?
10:57:20 PM
|
|
Dave: Imho, a fundamental rule of evangelism. So many people praise the efforts of software developers by trashing their competitors. [Sam Ruby]
Speaks for itself. Thanks Sam for your wisdom.
10:24:07 PM
|
|
Tablets and Smart Phones. TechED report #2: My favorite "cool new thing" here at TechED? Microsoft's Tablet computer and Smart Phone. I got a chance to sit down with the Tablet team here and get my hands on a prototype Acer device. Wow, is the ink good. This device will change how we all think of computers. No longer do computers need to be stuck with a keyboard. [Robert Scoble: Scobleizer Weblog]
Ahh...yah. We have a couple of prototype tablets in our group with some NDA stuff on them. They rock!
9:12:07 PM
|
|
Google created a new API. Now what? There in fact were two major announcements yesterday that will have a large impact on those interested in the commercial possibilities of turning Web Spiders into Web Services. The first was clearly Google API. No question this increases awareness. But the comparitively quieter announcement made yesterday will in all likelihood have at least a long lasting impact on making all this real [Sam Ruby]
That is indeed my point too. WS_SECURITY will have a much longer lasting impact on making all of this real, not displaying a thousand Radio pages with a Google search on he person's name
9:07:50 PM
|
|
Lets hope they don't morph this one into another VB magazine. I so miss Visual C++ Developer which they "assimilated" into Visual Studio Magazine promising a blend with their VB magazine. The C++ articles got less and less to none. The C# articles got less and less. The table of contents looks promising. Lets see.
9:21:14 AM
|
|
 |
Thursday, April 11, 2002 |
Simon Fell: "Microsoft, I.B.M. and VeriSign to Cooperate on Web Security. Microsoft, I.B.M. and VeriSign plan to announce a new technical approach that they hope will ensure greater security and thus stimulate commercial development of Web services. By Steve Lohr. [New York Times: Technology] Sounds like there's going to be a new version of WS-Security coming down the pipe."
IBM developerWorks
This is a new Web Services security proposal that combines the SOAP-SEC and WS-Security/WS-License stuff that was out before.
[Snell's Blog]
This is a very imortant spec for Web Services to be real, commercial products.
9:42:28 PM
|
|
I hate to quote the Inquirer, err Register, on anyhting but this does support what our group understood about the Lucovsky changes and group realignment. MS pulls the plugs on Hailstorm, pending rethink. Is it our imagination or in the .NET vision shrinking? [The Register]
But of course, the Inquirer, err Register, has to put an anti-end-of-of-Microsoft slant on it-) No, its because the market spoke and they listened and are changing their strategy from a more proprietary one to one based completly on standards: WS_SECURITY, etc - GXA
8:24:49 AM
|
|
8:20:25 AM
|
|
Simon says(-)): Microsoft, I.B.M. and VeriSign to Cooperate on Web Security. Microsoft, I.B.M. and VeriSign plan to announce a new technical approach that they hope will ensure greater security and thus stimulate commercial development of Web services. By Steve Lohr. [New York Times: Technology] Sounds like there's going to be a new version of WS-Security coming down the pipe. [Simon Fell]
Boy, is this ever needed. I see so many of these kind of blockers even within the company, never mind going outside. The VeriSign name is goodness for it too. Its a trusted name within many companies.
8:13:50 AM
|
|
 |
Wednesday, April 10, 2002 |
Peter says: My latest book, C# in a Nutshell, is now available on Amazon.com! O'Reilly just posted a sample chapter, too. Time to head over to AmazonScan and start tracking the sales ranking... :-) C# in a Nutshell [Peter Drayton's Radio Weblog]
Congrats Peter! Just ordered mine! Thanks for the pointer on AmazonScan! Now I can check obessively on my book too-))
10:25:33 PM
|
|
Web Services Have a Way to Go. Mark Lucovsky at Microsoft said today that Web services have a way to go. It's interesting that Microsoft is now taking such a stance. Did Microsoft use Web Services for the past two years to hide the fact that Microsoft didn't have a competitor to Java that was shipping? [Robert Scoble: Scobleizer Weblog]
No, I don't think so. The company where I work, works very closely with Lucovsky's HailStorm group. It was my understanding, that they grew to realize that they had not succeeded well initially with HailStorm because of some propreitary approaches and not based on standards. They re-organized around the GXA effort, which is a good thing. They also realized, based on feedback from people like us, that what they initially gave us was far from capable to develop real, production Web Services. To get there, Web Services need Security, Routing, Inspection, Robustness, etc. Thus GXA. And as far as I understand it, this is being done with IBM and is totally based on Industry standards. So when Lucovsky says "Web Services have a way to go" he is just speaking the truth.
8:18:53 PM
|
|
 |
Tuesday, April 09, 2002 |
At Your ServiceEvolving an Interface by Scott Seely Scott Seely shows how to update your Web service with new versions, adding new features to the implementations of the WSDL. (April 9, 2002)
10:41:39 PM
|
|
Back again at MSDN and writing on my favorite subject - Managed C++. Some tidbits:
Why this second fork? Because the .NET Framework is a big deal to Microsoft, yet Visual C++ on that Framework has received almost no compelling coverage from anyone. If you didn't look too closely, you'd almost think Microsoft® Visual Basic® and Visual C#™ were the only "real" languages for .NET that Microsoft provided. I quite nearly (and inadvertently) even promoted that ideology with the aborted C# project.
But after spending quality time with the Visual C++ team, I'm now thoroughly convinced that their product is vital to Microsoft and its developer customers, a.k.a. you. I'm also convinced of their deep and abiding commitment to both Visual C++ as a technology and Standard C++ as a language.
Well whadya know? These two interests serendipitously align with my column orientation. Such luck! And they say the universe is so big and improbable
To be sure, we are not close to fully realizing either of these interests:
- The existing Managed Extensions to C++ are passably useful but incomplete and often clumsy.
- While the standard-conformance in Visual C++ .NET exceeds that of Visual C++ 6.0, there are still significant parts of the standard left unimplemented.
10:40:33 PM
|
|
Peter reports on Saturn:
Cool! Here's something you don't see every day from Microsoft - an ASP.NET IDE and Web Server that fits on a floppy! Codenamed Saturn, the web site is giving a 403 right now (I'm guessing someone, somewhere's will have mirrored it :-) ), but you can still download a article about it from NeoWin.net. I wonder if they will release the source for the IDE, like SharpDevelop? Maybe under a Shared Source licence? (After all, it's not as if anyone's going to build a business selling IDEs competing against VS.NET) [Peter Drayton's Radio Weblog]
The .NET Mailing list adds:
Well, Scott Mitchell (of 4GuysFromRolla fame) wrote the whitepaper referenced in that article - isn't he on this list? Scott, is there anything you're allowed to tell us about this? Is it for real?
To sum up the document in question, Saturn is apparently going to be a stripped-down version of VS.NET, from MS, especially for doing ASP.NET development, and it's free.
With SharpDevelop for your back-end components and Saturn for the ASP.NET pages, you'd have a fairly complete ASP.NET development solution for zero dollars...
Here's somewhere to keep an eye on...
http://projectsaturn.net
8:23:44 PM
|
|
XML and P2P As XML becomes bigger in the P2P world, and elsewhere, its end-to-end security architecture is creating problems. This article discusses the XML emergence in the P2P world and how many of the security issues can be solved through Web services, possibly even the Global XML Web Services framework.
Some tidbits:
Today's peer-to-peer communications, however, call for an extra layer of sophistication. While programs like LapLink are designed primarily to push file-level information from one PC to another, P2P platforms seek to go further, sharing data and linking applications that might otherwise be incompatible.
The engine fueling P2P communications is driven by XML communications
The Jabber messaging framework is yet another example of XML use in emerging P2P environments
All messages in Jabber Inc.'s framework, including instant message content, presence changes, and configuration updates, are delivered as XML fragments. Commercial Jabber software makes both the server API and protocol environment, XMPP (XML-based Messaging and Presence Protocol), available to developers.
Jabber's reliance on XML allows it to integrate its client with Web page content. With the commercial version of Jabber, enterprises that embed the instant messaging WebClient into their page can change the content of that page via Jabber XML messages without downloading and refreshing the page. The XML contains a URL that points to a location on a content server
8:25:12 AM
|
|
Windows Forms FAQ Extensive coverage of several commonly asked Windows Forms questions. FAQ is maintained and updated on a regular basis by George Shepherd, a leading author (of "MFC internals" fame).
Boy, is this site ever needed! Nicely organized too.
8:22:04 AM
|
|
 |
Monday, April 08, 2002 |
Sam essay on Neurotransmitters was one of the most brilliant things I have read all year. I originally said in his comments that seem to go unread-):
I have spent the last hour reading this (and the paper "The Tao of e-business services" and I can't begin to tell you the impact this is having on me. I need to think more and I will write up something on my blog but this is bloody brilliant. Thank you very much for this.
8:38:25 AM
|
|
Reflector for .NET
Reflector is a class browser for .NET components/assemblies. It features hierarchical assembly and namespace views, type and member dictionary index search, type reference search, custom attributes view, IL disassembler and viewers for 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.zip - .NET Reflector Version 2.5.2.1 reflectorsdk.zip - Extension SDK examples
I already have this on my web site but I'll put in another plug for Lutz Roeder's fantastic and free tool. If you are doing any .NET development, this should be your first download!
8:10:27 AM
|
|
Writing a Simple C++ .NET Program In this sample chapter you will learn how to build a simple application with MFC, a managed application with the .NET Framework and you will study and understand the differences between the two types of applications. Article. Apr 8, 2002.
It's good to see an article on my favorite part of .NET - VC++ and MC++, but why use MFC - yuck!
7:58:05 AM
|
|
NET Remoting, A simple approach .NET Remoting provides a powerful and high performance way of working with remote objects. Architecturally, .NET Remote objects are a perfect fit for accessing resources across the network without the overhead posed by SOAP based WebServices. Article. Apr 8, 2002.
7:55:36 AM
|
|
Using ASP.NET Code-Behind Without Visual Studio.NET One of the things that keeps coming up as a benefit of switching to ASP.NET is the ability to use code-behind to separate display code from application logic. In Visual Studio.NET, this is 'automagically' done for you. So what if you don't have VS.NET? Here's how you can implement code-behind using just a plain old text editor and the tools included in the .NET Framework, no Visual Studio .NET required. Article. Apr 8, 2002.
Here's a neat little article on this. I am writing on article myself on Web Forms with Managed C++ and this is a nice help.
7:53:52 AM
|
|
Simon Fell: "I've got a growing pile of .NET books, but C# Essentials is the only one I try and keep within arms reach." Gee, thanks Si! Just heard from O'Reilly that C# in a Nutshell is about to hit stores - hopefully it will be a worthy successor to C# Essentials. [Peter Drayton's Radio Weblog]
I agree, but gee, what about my book? -))
7:49:05 AM
|
|
 |
Sunday, April 07, 2002 |
§ Washington Post Book World April 7, 2002 This week's Book World is a special SF and fantasy issue with numerous articles and reviews, including:
- Michael Swanwick on "A half-dozen fantasy classics perfect for the big screen", by Moorcock, Mirrlees, Gaiman, Eddison, Pratchett, and Mieville
- Charles Sheffield on hard SF, including a quiz and a list
- Several brief reviews by Michael Dirda
- Nick Gevers on SF's Great Author: Gene Wolfe
- Gregory Feeley reviews the latest books by Kim Stanley Robinson, Ursula K. Le Guin, and John Clute
- Elizabeth Hand on the feminizations of SF culture
- Favorite SF/F works of various eminent writers, editors and critics, including Michael Chabon, James Hynes, Daniel Handler, Daniel Pinkwater, plus Disch, Crowley, Gaiman, Datlow, et al
- Paul Di Filippo on SF from small presses
- And finally, Michael Dirda's report from the recent International Conference on the Fantastic in the Arts in Ft. Lauderdale, Florida.
11:29:28 PM
|
|
Tomas writes: Sam's musings on SciFi books made me think again about my all-time favorite SciFi books of all times. My personal favorites would be, after some hard choices, the entire Dune Saga (Frank Herbert) and Isaac Asimov's The End of Eternity
It's funny you should mention that. It so happens that recently I posted a list of my top 20 or so SF books of all time. I don't fancy Dune or Assimov at all but have a look. It may change a bit because I have been reading some seminal British "New Wave" SF of the 60's - Disch, Sladek, Christopher. Moorcock and they need to go in there somewhere. Most notably Disch's "Camp Concentration."
11:26:56 PM
|
|
I got the following. I am too busy writing a Wrox article to try them today.
I cannot post to the mailing so this way:
I had the same problem as you. My Solution:
Use linkd.exe from the resoutce kit to build a symbolic link.
change to c:program files
execute
C:Program Files> linkd msdotnet "Microsoft Visual Studio .NET"
then set your LIB and INCLUDE environment variables accordingly
That worked for me.
Alternatively
Copy your lib/include directory to a new place
then set your LIB and INCLUDE environment variables accordingly
Or
write a short program that sets the short name using the SetFileShortName API call (this one is new in XP)
1:20:27 PM
|
|
Ingo documents our work (via Messenger) from last night on my Rotor woes.
Info: Rotor needs short filenames!.
Sam's Rotor woes continue but we finally found the reason for his problems. Here's the thing everyone should check before playing around with Rotor .... else you might end up with some mysterious error messages.
[WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall Windows. Neither Microsoft nor I can guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. ]
Start RegEdt32.Exe and go to HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem. Check the entry NtfsDisable8dot3NameCreation. It should be set to 0 [zero]. If it has been set to 1 while installing Visual Studio.NET, you may be out of luck with Rotor.
To make sure, you should open a command prompt, go to C:Program Files (or wherever you installed VS.NET) and run "dir /x micro*". If a line like this is included in the output, everything should be ok: 20.01.2002 13:01 MICROS~1.NET Microsoft Visual Studio.NET
If you don't see anything that looks like "MICROS~1.NET" next to "Microsoft Visual Studio.NET" you might have the problem.
In this case you should change NtfsDisable8dot3NameCreation to 0 [that is: zero], reboot, de-install Visual Studio.NET, manually delete Program FilesMicrosoft Visual Studio.NET (if it still exists; but backup anything interesting before doing so). Then you can re-install it and the necessary short name (DOS-style 8.3 file name) will be created for this directory.
I'm currently looking for a better solution to this problem: Does anyone know any tool that allows to create a short filename for a file or directory that already exists?
[Ingo Rammer's DotNetCentric]
I got one suggestion:
did u try to boot into command prompt of xp?
u can install it via the xp cd.
I think it triggers the shortfile generation according to the local registry, I'm not sure. any way you could do a safe move command without the os locking files the vs.NET folder..
have fun,
yosi
10:39:41 AM
|
|
Peter picks up on the discussion:
Sam Gentile: "Is .NET COM Interop fundamentally flawed?" Not sure I agree that it's fundamentally flawed, but it's definitely substantially more complex than the commonly cited "just use TlbImp.exe" story. After all, how simple can it be if there's a 900 page book on the topic? Sam's been doing a lot more COM Interop work than I have, so I'm inclined to listen to him in this regard.
[Peter Drayton's Radio Weblog]
Ahh, but it's not a 900 page book, it's a 1608 page book-))) But that really isn't the main point I am trying to make. Certainly, one of the points to be made is that it is "definitely substantially more complex than the commonly cited "just use TlbImp.exe" story." I think we can all agree on that, right? But that is not the main point I am making. The main point is that the world of COM is determinstic, right? Interface pointers must be released at the right times or you will get memory leaks (at the least) and crashes (at the worst and more likely). My main point is all of this cruft should have been totally hidden by the tlbimp.exe/RCW/CCW mechanism and it isn't. We have had 3 very smart engineers (COM experts) on these problems for 2 months and we are facing things that Microsoft even has no idea on (i.e. things that are not even in that 1608 page book!. This leads me to think that COM Interop was designed for the "textbook" COM case and if you are doing anything else or non-trivial, you will have big, big problems. Microsoft says "You should never need to explicitly release anything unless keeping it alive would cause some sort of issue. Eventually the GC will collect the RCW and the underlying COM object will be released at that point." Wrong, oh so wrong. Major COM architectures don't work that way. There are custom marshalling schemes. There are callbacks and connection points. And on and on. By forcing us to do tons of Marshal.ReleaseComObject calls and UCOM calls, it goes away from what we think the Interop should be an do. I (and we) subscribe to this view that the RCW should do all of this. By making it act non-determinstically, it doesn't play well with others (in the COM world).
10:08:13 AM
|
|
 |
Saturday, April 06, 2002 |
Cory and Simon both pick up on the fact that Google will have an APIGoogle will offer an API! I .... Google will have an API Google will offer an API! I've known about this for a while, but I was sworn to secrecy. Now that it's hit Slashdot, though, I think all bets are off. Can't wait to see what apps people build on top of Google's citation database.LinkDiscuss posted by Cory Doctorow at 11:25 [bOing bOing]
and:
This could be the Web Services killer app we've been waiting for [via Slashdot] - Simon
I do think this is significant but I am not sure this will give us the Web Services killer app.
3:32:25 PM
|
|
Ingo reports: I'm on http://www.go-mono.net! Advanced .NET Remoting from Ingo Rammer is now available. Ingo helped us to implement the proxy support and the book is a valuable resource for anyone interested in remoting.
You're welcome and thanks for the link!
[Ingo Rammer's DotNetCentric]
Its clear, from his knowledge (and the chat yesterday), that this will be the definitive book on .NET Remoting. Now, if I could just get him to answer my Rotor problem -)
8:37:43 AM
|
|
Ingo posts: .NET Remoting chat - reprise.
Today morning (from 1:00 a.m to 2:00 a.m CET) Microsoft hosted a .NET Remoting chat.
The development team answered questions from users and told us about the features which are planned for future releases. The official chat transcript isn't online yet, so I quote from what I remember:
- Microsoft will release a sample application which provides authenticated Remoting for objects hosted outside IIS. In my opinion, this has been the missing feature #1 and some others in the chat agreed with this. Tomas and I therefore will focus on a different area and not implement the SSPI channel. Mike Woodring (who's been working on such a channel independently from us) also announced to stop the development of his channel.
- Microsoft will look into improving the performance of the HTTPChannel when hosted in IIS.
- The context implementation might be changed. This means that ContextBoundObject and things like context properties, context attributes and the interfaces like IContributeObjectSink, which aren't yet documented might be different in the next version.
This is not an official statement, it's just what I remember from the chat.
By the way, has anyone saved a log of this chat? If yes, could you please send it to me by email (rammer@sycom.at)? Thanks a lot! [Ingo Rammer's DotNetCentric]
8:25:04 AM
|
|
I met our "famous" Ingo Rammer [Ingo Rammer's DotNetCentric] yesterday. Well, virtually that is -) He was particpating in a .NET Remoting chat on MSDN with the .NET Remoting team. The scary thing was thet he was answering most of the questions. He seems to know more about Remoting than the team that wrote it -)
8:23:54 AM
|
|
Another 2 days of banging my head aggainst the wall with mixing managed C# components together with ATL COM native components. As I said earlier, in part one, I have been working on trying to give myself and my team a productivity boost. I have been working on a full blown tool development environment fully integrated with Microsoft Visual C++.NET. As I said earlier, VSIP is extremely difficult to grok and work with. So I have been persuing a strategy of mixing VSIP with pieces of the VS.NET automation model to do some things like adding tools to the toolbox, menus, adding custom code, etc easier.
The big thing I ran into the last two days and got stuck on, is that I was not able to step into the managed C# assembly from the native ATL/C++ COM component in the debugger. I have the assembly in the GAC so I thought it was some weird issue. The .NET mailing list was unhelpful. I finally found the solution yesterday.
I guess I can't paste in an image here but the answer lies in Project - Configuration Properties - Debugging - Debuggers, which is usually set to Auto. I changed this to "Mixed" and it worked. It seems that Auto will do managd or unmanaged debugging but not both. Mixed combines both.
8:19:45 AM
|
|
 |
Friday, April 05, 2002 |
Sam: "New essay for the day: Neurotransmitters. Identifies common themes in biology, messages to spaces, REST, and Tupl-Spaces and applies them to messaging."
This really is a powerful concept. Take a shared memory space, constrain the verbs to simple CRUD operations (Create, Read, Update, Delete), allow the type of data to be completely open but use XML as the canonical syntax. Provide an extensible query mechanism. Allow items written to the space to be directly URL addressable. Allow pub/sub triggers so that when one of the CRUD operations is called, any number of folks can be informed (folks meaning people or other applications). Allow spaces to discover and integrate with other spaces. Allow searches to crawl across multiple spaces. Add security so people who post data to the space can control who is allowed to read it, modify it, etc. Allow access to the space using SOAP, XML-RPC, etc.
RogueWave has already done one version of this (very nicely too) as a Web service. TSpaces and JavaSpaces pioneered it. The advent of SOAP, XML-RPC, WSDL, Jabber etc can take it to the next level. It would be very interesting to create an open network of such spaces. (Imagine a version of google that operated like a shared memory space!)
[Snell's Blog]
This piece and the associated article really struck me as brilliant. I have so many thoughts floating in my head to think about now, that I am finding it hard to coherently capture them into a form like above. Its clear that this made a big impact on me and I talked about several ideas with people at work (where we are in a lot of the same areas). I need to write something intelligent about this. Thanks Sam!
10:14:15 PM
|
|
Short-sightedness may be tied to refined diet. Increasing myopia could be explained by the higher levels of refined starches eaten by children [New Scientist]
Combined with: The food children eat might play as big a role as books and computer screens when it comes to causing short-sightedness. Books and computer screens too? What's left?
8:00:11 AM
|
|
The saga continues...Maybe I should re-title "A Week With Rotor"
1:13:26 AM
|
|
 |
Thursday, April 04, 2002 |
Use the (shared) source, Luke! --Yoda (kinda)
Peter Drayton put some cool code samples online which show how to extend the SSCLI [aka. Rotor] to implement new IL opcodes. [yes, I took the Yoda-quote from his slides ;)] [Ingo Rammer's DotNetCentric]
10:26:55 PM
|
|
Are you looking to make the switch from ASP 3.0 to ASP.Net? Here are ten great resources (books, web sites, tools) to get you on your way. Article. Apr 4, 2002.
8:24:02 AM
|
|
Page Output Caching, Part 1 ASP.NET page output caching makes your Web application faster. Using the page output cache is made easy by the factored design into both high-level and low-level APIs. ASP.NET is very efficient regardless of whether Output Caching is utilized or not. The possible performance gains are quite obvious. When output caching is used, ASP.NET is doing less work to satisfy a request, thus allowing the response to be served faster.
8:22:12 AM
|
|
Celine Dion's newest album, "A New Day Has Come", is crashing computers. I want to rant, but it's Celine Dion for Christ's sake. Wake me up when then screw up an album from an artist whose voice doesn't make me cringe. [Bryce's Radio Experiments]
8:10:13 AM
|
|
Web services group leaves Sun in cold [ZDNet] More whining from Sun. Yes, people are deploying Web Services on Java, but not with Sun's tools, everyone I know of doing Java Web Services is using Apache SOAP or GLUE. Perhaps I'd take them more seriously if they'd attended the WSDL F2F (They were invited), or were involved on SOAPBuilders, but of course its always easier to whine than to do. [Simon Fell]
1:34:50 AM
|
|
DIME and DimeSoapExtension Sample The DIME and DimeSoapExtension sample is built on the .NET Framework and provides a set of classes for encoding data into DIME message streams and for sending and receiving SOAP messages encapsulated in DIME messages.
This sample provides two core pieces of functionality:
- A set of classes for encoding data into DIME messages
- A SoapExtension for transmitting ASP.NET XML Web Service messages over HTTP using the DIME specification
12:53:45 AM
|
|
 |
Wednesday, April 03, 2002 |
Today, in the "real" world, I was working on a mechanism to allow us to write VS.NET Automation model code in C# and then call it, through .NET's COM Interop mechanism, from ATL/C++ COM unmanaged components which contain a VSIP code. Let me explain. I have been doing some work integrating an environment with Visual Studio .NET. There are really two major choices: use the automation model of VS.NET or pay $30,000 and join the Visual Studio Integration Program (http://msdn.microsoft.com/vstudio/vsip/default.asp) and get the code and COM Interfaces of VS.NET. There are many reasons why you have to choose option 2. The automation model allows you to have what is known as an "add-in" and can only do certain things. An add-in is actually a COM Component that implements the IDTExtensibilty2 interface. Using VSIP code, however, allows you to do just about anything. You become an actual "part" of VS.NET, through the use of what are known as Packages, or VsPackages. VSIP allows you to add your own splash screen or your own editor, or heck, even implement your own language. Its quite powerful but amazingly complex. It is hundreds of thousands of lines of code and based on tons and tons of COM Interfaces. The base example to just put up a new project type takes 66 files!!
I am using VSIP to have a COM component that implements IDTWizard. It turns out that lots of things in VS.NET are actually Wizards. My wizard calls one of VS.NET's wizards to launch a C# project that suppplies a WinForm and populates it with a base implementation of code for something. And I add toolbar tabs with custom tools and I add menus. A lot of this is of course better done through the Automation model. So I have been going through this laborious process of using C# to work out all the automation code I want, tweaking it, and then "porting" it all to C++/ATL COM code for inclusion in the ATL COM component that implements VSIP and IDTWizard. Yikes! I had forgotten how hard and time consuming COM was! I haven't done anything but Managed code for 2 years and had gotten used to how much easier it all is.
So what I wanted was a way to do my automation stuff in C# and then call the managed code through COM Interop. So I put everything in a C# class and then signed it. I then ran regasm /tlb on it to generate the CCW, register COM gunk in the Registry and generate the Type Library. I then imported the TLB into the C++ code and proceeded on to party on. Or so I thought. It turns out that, by default, COM Interop, does not expose type library information and worse than that, generates only IDispatch late-bound interfaces! I'll post why later but it's wrong, wrong, wrong. Late bound IDispatch interfaces are a legacy of VB3 and have no place other than Scripting languages in a modern world. I had to decorate the class with an attribute to "force" it to generate type info and generate a dual interface. Yeck.
Then it got worse. The DTE object in VS.NET Automation is full of bugs, missing functionality, and incomplete documentation. And there was still getting the types right across the boundary...More tomorrow...
10:13:51 PM
|
|
The amazing Ellen Datlow continues to stun with a ferocious schedule of posting high-quality SF stories faster and better than the magazines. This time, we have the absolutely brilliant British Adam Roberts with "Swiftly" and then in the Classics category, the mind-stirring Norman Spinrad, with a story from, argubally the best SF collection ever, Dangerous Visions. © 1967 by Harlan Ellison, with "Carcinoma Angels." Must-reads.
9:44:47 PM
|
|
While pundits and critics argue over the merits and disadvantages of SOAP, WSDL, and UDDI, a handful of companies have been quietly rolling out Web services and benefiting from the results. Rotech Medical, a home healthcare company based in Winter Park, FL, is a pioneer in this field, having deployed Web services throughout its business. Case Study. Apr 3, 2002.
9:30:22 PM
|
|
dotNetGenius shows you some cool things in VS.NET. This time it's using the Clipboard Ring.
9:29:11 PM
|
|
Sun Microsystems is crying foul over a key new Web services standards group created by IBM and Microsoft, accusing its two rivals of "political shenanigans" for not inviting Sun to join as an equal partner.
Is there no end to the lying and whining that Scotty and Sun will do? This is the Sun Microsystems that for the last 2 years as totally tried to ignore and derail the SOAP standard, trying to shove a proprietary Java RMI down people's throats and when that failed, tried to shove Corba down people's throats.
"most of the Web services today are being written on Java anyhow."
But not through any mechaisms of Sun. Most of this is Apache. Where was Sun a year ago? They have marganilized themselves out of the Web Servives game and they have no one to blame but themselves.
9:25:46 PM
|
|
 |
Tuesday, April 02, 2002 |
Summary: Details the construction of a Web-based customer service solution using the Microsoft .NET Framework, Microsoft SQL Server 2000 XML functionality, and XSLT documents. With Microsoft ASP.NET runtime support, forms authentication mechanism, and the system XML classes, creating high performance and scalable XML-based inquiry systems is greatly simplified. (34 printed pages)
8:30:28 AM
|
|
 |
Monday, April 01, 2002 |
Wrox Press releases Visual C++ .NET: a primer for C++ developers Visual C++ .NET is the only language that's capable of mixing managed and unmanaged code, offering ways to integrate your existing code base with new .NET development that no other language can match. Additionally, the expansion of ATL into web application programming brings with it the possibility of writing web services that outperform anything developed in ASP.NET. Mar 26, 2002.
10:14:26 PM
|
|
XML Encryption provides end-to-end security for applications that require secure exchange of structured data. XML itself is the most popular technology for structuring data, and therefore XML-based encryption is the natural way to handle complex requirements for security in data interchange applications. Here in part 1 of this two-part series, Bilal explains how XML and security are proposed to be integrated into the W3C's Working Draft for XML Encryption.
10:10:28 PM
|
|
With all the clamor around C#, a lot of people forget that Managed C++ is the only .NET language that allows you to mix managed and unmanaged code in the same assembly and even the same file! While C# is the media darling, MC++ is the real workhorse for many companies that have thousands of lines of existing native C++. It's good to see an article here.
Dr. GUI on Visual C++ .NET [ActiveWin]
6:58:09 PM
|
|
One of my favorite SF authors digs up all sorts of cool stuff daily on this SF zine.
8:18:41 AM
|
|
I posted this to a comment on The .NET Guy:
Here is a shocker. This morning I changed my 2 year opinion on this and decided I may start contributing to Mono. Why? Well, one great reason is the Miguel is a brilliant example of civility on the .NET list. When I answered one of his questions, he thanked me *personally*. That's class. And there ain't much of that to go around in the Engineering world.
I'm not big on Linux. I think you might all know that-). I still think its only for total geeks who want to rebuild the kernel every single time they add a device or sneeze. But I am big on .NET. So, I may be on board.
8:13:29 AM
|
|
There was a presentation, well a demo, well I'm not sure what it was with Keith Balinger http://www.keithba.com/blog/ and Don Box as his monkey on DIME at the Web Services DevCon. Funny moments came when Don stepped too far in the debugger into the .NET Core and exposed it and when Don let Keith go on while he flipped open my book and started reading my chapter -). Anyhow, here is an article on DIME.
8:08:55 AM
|
|
Web Services can be slow, but they don't have to be. by Juval Lowy
8:02:48 AM
|
|
CORRECTED LINK: Here are some notes from the Web Services DevCon. This was a blast!
7:57:30 AM
|
|
|