rwandering.net
The blogged wandering of Robert W. Anderson
Author Archive
September 14, 2005 at 1:23 pm · Filed under .NET
I forgot to mention the LINQ project yesterday. Integrating query into the language is such an incredible productivity enhancement. Of all of the new technologies I have seen at this PDC, this is the one that resonates the most with me as a developer. The ability to create strongly typed data representations and queries integrated into the compiler for ensuring language semantics is huge. I think of all the code that we have written in .NET for which we have to translate data in and out of SQL; all of the queries that we have written that cannot be effectively validated until runtime; and the numbers of places in our code where changes must be kept in sync. With LINQ, the initial development time will be greatly reduced, but almost more important, the future maintenance cost will also greatly reduced.
I got into a discussion with Dan about the posting by Paul Mooney about the Google/Microsoft judgment was bigger news then the Bill Gates keynote (as indicated by the relative placement of these news items in a newspaper). This doesn’t really surprise me (everyone wants to know if Ballmer really threw that chair). Seriously, though, I think that a lot of the technologies that are being unveiled at PDC05 fall into two camps:
1. Vista and Office 12. I fear that the delays in Vista and perception of Office (see my earlier post) may make these stories not “sexy” to the mainstream press.
2. Really cool technology for developers. The typical business person has heard this story a million times already. In fact, above I post that LINQ will allow me to develop better software more quickly and that it will be easier to maintain. That is an obvious cost benefit to companies of all kinds. But is saving money with better tools an interesting story? Hasn’t the press written thousands of stories just like this before? I’m not arguing that it isn’t cool or that it isn’t revolutionary technology. I’m just arguing that your typical reader doesn’t get it.
Tags: linq, Microsoft, PDC05
September 13, 2005 at 11:53 pm · Filed under Grid Computing
Windows CCS is the Compute Cluster Solution that the Microsoft HPC group is working on. This is a collection of tools and prescriptions for reservation-based clustering on the 64-bit Windows platform. Windows CCE (Compute Cluster Edition) is a version of the Windows Server 64-bit Operating System tailored to clustering.
One of my posts yesterday mentioned Windows CCE (regarding a talk at PDC05). I expected to hear about that in today’s talk by Kyril Faenov. So far, though, I have heard no mention of it. There is still time for this tomorrow (there will be a Windows CCS (or CCE?) demo on stage with Bob Muglia at tomorrow’s keynote).
Kyril’s talk on CCS today was a good primer for people unfamiliar with MPI and message passing in general. It is interesting to see how many parallels there are between the work we have done at Digipede and the work being done by Kyril’s group. This will ease the integration points between our systems.
I’ll post more on this another time – now, sleep is beckoning.
September 13, 2005 at 11:43 pm · Filed under .NET
I spent a little bit of time trolling around the Expo today at PDC05. My company, Digipede, has a booth at #123. Come by and say hello.
Check out the JetBrains booth. I didn’t get a chance to talk to them today. Apparently, they came out here all away from Czechoslovakia. My whole team uses their product Resharper. It does refactoring for C#. Refactoring is cool. But what I really like about the product is its searching capabilities. It allows you to enumerate / list exact references to classes, types, members, etc. No more “Find in Files” to try to determine how a particular item is used. I was amazed at how much this boosted my productivity. It helps in refactoring, obviously, but also in code audits (where was this defined?), debugging (where is this field being set?), and just straight coding.
MSDN Universal subscribers: don’t forget, always bring your ID card to these events. They always have something special to give out to subscribers. Or maybe it is just to Universal subscribers. Anyway, go talk to them. I got a cool rollup keyboard (that I think we’ll go nicely with my new JASJAR).
I was interviewed today by Doc Holladay at isvchalktalk.com. They told me I did a good job. But I think they get paid to tell me that. They are all really nice and I think they have the giveaways (those blinky spiky balls) that will be the biggest hit with my kids. I have rarely been interviewed in that way (i.e., in one take with no editing). I certainly enjoyed it, but went away feeling I could have been crisper. Next time!
September 13, 2005 at 2:05 pm · Filed under .NET
Bill Gates gave the keynote today at PDC05. I like hearing him talk about the software industry – here’s a guy who truly loves software, calling it is the biggest agent for change in the world. Addressing the question of whether the best days of software development are behind us, he rightly says that this is one of the most exciting times in the future looks very interesting. The development of the Internet and the boom and bust cycle that we all witnessed was certainly an exciting time (mostly the boom). But the advent of truly connected devices and systems makes this an interesting time regardless of the platform on which you are developing. And the Microsoft platform is getting more interesting all the time.
I loved the Bill Gates / Napoleon Dynamite video. IMHO, the very best part is the dance bit at the end.
I was impressed with Office 12 (and I understand there’s more to come tomorrow). I did not expect to be. I suspected that the world didn’t need a new Office. For example, I think that the improvements in Office 2003, while significant, and did not make for a compelling upgrade from Office XP for a significant set of users. With Office 12, though, it is immediately apparent how they have made great strides in helping users get their work done faster. Of course, there are all sorts of other interesting features for sharing, workflow, etc. but I can see how your average user will look at Office 12 and say, “I’ve gotta have that.”
The Vista demos looked very good. I have played around with some of this already, so it didn’t feel particularly new, but it sure is cool. It will certainly do a much better job of helping users work with the data on their machines. And I don’t mean in a Google Desktop kind of way, but with an extensible file edge view should model that allows for slicing and dies in your files in arbitrary, useful ways.
September 13, 2005 at 8:36 am · Filed under .NET
It turns out we aren’t in one of the conference hotels. No shuttle service for us, but it did give us the chance to ride the LA metro. Pretty much door to door from the Wilshire Radisson to PDC05. I wish we were carrying a camera, because it was kind of cool to get off of the Metro and see the south hall of the LA Convention Center with the big Microsoft PDC sign.
The other bonus of the Radisson is the free upgrade to the Ambassador suite. While we will be scrambling for the shuttle to the Universal Studios party tomorrow night, at least there is a nice room to come back to.
Sweet suite.
Tags: PDC05
September 12, 2005 at 7:25 pm · Filed under Miscellaneous
I posted that we were having trouble with our VPN and SSH clients. I was right – in principle, there is no problem using these services at PDC05.
Unfortunately, our VPN doesn’t support NATT so we won’t be getting our email while were here. And one of our remote SSH boxes won’t reply to us if we run SSH2, but SSH1 works OK. Not ideal, but it will have to do.
I hope. Otherwise we’re going to make a grid out of four laptops. That might be cool anyway.
Thanks to Chris Craig in network support for helping us diagnose the problem.
Tags: PDC05
September 12, 2005 at 4:34 pm · Filed under .NET
After my last post on some of the cool Microsoft technologies at PDC05, I started thinking about acronyms and product names, and product positioning. Specifically, I started to miss some of the old Microsoft code names.
Indigo is now WCF.
Avalon is now WPF.
Longhorn is now Vista.
It feels so generic, so corporate, and so stodgy. While never having talked to anyone in Microsoft branding / naming, it seems like this is intentional. Microsoft is making a terrific push into the breadth of the enterprise. No longer is Office the solution to every problem and C++/VB the only tool. Microsoft is serious about serving this market beyond the OS/Office and, I think, the products names reflect this.
Of course, Microsoft doesn’t have an easy job on their hands – I don’t mean to imply that they do.
But, I miss the old names. At the very least, I wish Longhorn had kept its name. Or had taken the name of Indigo. Now that is a cool name.
Tags: Indigo, office, Vista, WCF, WPF
September 12, 2005 at 3:24 pm · Filed under .NET, Miscellaneous
Microsoft is presenting on and / or announcing a lot of new technologies at PDC05 that are interesting for us:
Windows Communications Framework (was Indigo) The more integrated the communications services are with Windows and the more transports-independent they are, the better. I look forward to giving our customers more options on how our components communicate (regarding protocols, transport, and security) to best fit their specific operating environment. Of course, a lot has already been written on WCF. I look forward to hearing more about future directions.
Windows Workflow Framework and Windows Workflow Services (was Windows Orchestration Engine): while we plan the enhancements in the workflow capabilities of the Digipede Network, integrating with existing systems is always a requirement. A no-brainer for us was/is to build a BizTalk adapter. WWS looks interesting (as it looks to replace the existing BizTalk Orchestration services) – it will allow us to integrate with BizTalk 2006 as well as Office 12. This means that Microsoft has just reduced the number of integration points we need while increasing the flexibility of the entire solution. Very cool.
Windows Server Compute Cluster Edition (CCE) This product is going to make a big splash in the growing 64-bit clustering market. The work that that team is doing to improve the platform for distributed computing is all good. As Dan said in a recent post, this is a critical move. I look forward to Kyril’s talk and to catching up with him on their plans.
And more. I’ll blog on that later . . .
Tags: .NET, PDC05, WCF, WF
September 12, 2005 at 2:50 pm · Filed under Miscellaneous
I am sitting in the cab on the way to the LA convention center for PDC05. Dan is there now having some issues with network connectivity from our booth (#123). SSH and VPN ports blocked? Can’t be – I’m sure he’ll figure it out.
A few weeks ago, I was at the Santa Cruz Beach Boardwalk with my family. I found out that my 4-year old has a stronger stomach than I do.
And I’ve just realized I cannot blog while in the back of an LA taxi.
Tags: PDC05
September 11, 2005 at 10:45 am · Filed under .NET
I don’t know if many people have run into this problem: a .NET assembly referencing another assembly in its manifest, though the referenced assembly isn’t used at all.
I don’t believe this is possible under normal conditions, but it is possible with an application that post-processes the assembly. Specifically, this can happen when using Dotfuscator 3.0. When obfuscating .NET 1.1 assemblies, it supports custom obfuscation attributes defined in a .NET library that they ship. Depending on the way you configure Dotfuscator, these attributes can be stripped from your obfuscated assembly. This is reasonable as the attributes have already served their purpose. There is a confirmed bug (that I’m sure they’ll fix soon) that leaves a reference in the manifest though all the attributes have been removed.
In most cases this doesn’t effect the use of your assembly. The CLR won’t try to load the referenced assembly (as there are no actual references to any types in that assembly). The one problem that I have found, though, is if your assembly is a library that others (e.g., your customers) will reference in their own projects. The assembly still functions properly, but undesirable warnings will be emitted by the compiler. And of course, this only applies if you are not shipping the unreferenced assembly.
As an interim solution, they (i.e., Preemptive support staff) suggest disassembling to il with ildasm, manually editing the il, and then reassembling with ilasm. Of course, this approach doesn’t work in an automated release environment. Understandably, they leave that as an exercise for the reader.
Here is what we did. Since all of our release builds are done with nant,
we made use of the built-in ildasm and ilasm tasks. Then we added a custom task that removes the reference from the il. The following code shows an example target assuming that the name of the library is ‘MyLibrary.dll’:
<?xml version="1.0" ?>
<project name="Hanging reference Example" default="rebuild" xmlns="http://nant.sf.net/release/0.85-rc3/nant.xsd">
<target name="assembleobf">
<!-- fix the Preemptive.ObfuscationAttributes.dll hanging reference bug -->
<ildasm rebuild="true" output="MyLibrary.dll.il" rawexceptionhandling="true" quoteallnames="true"
utf8="true" linenumbers="true" input="MyLibrary.dll" />
<!-- define a task that takes an IL file as an input, removes the Preemptive.ObfuscationAttributes.dll, and
writes the file out again -->
<script language="C#">
<imports>
<import namespace="System" />
<import namespace="System.IO" />
<import namespace="System.Text" />
</imports>
<code>
<![CDATA[
[TaskName("removeRef")]
public class RemoveRefTask : Task {
private string _obfuscatedLibrary;
[TaskAttribute("obfuscatedLibrary", Required=true)]
public string SomeProperty {
get { return _obfuscatedLibrary; }
set { _obfuscatedLibrary = value; }
}
protected override void ExecuteTask() {
StreamReader inFile = new StreamReader(_obfuscatedLibrary + ".il");
string inContents = inFile.ReadToEnd();
inFile.Close();
StringBuilder sb = new StringBuilder(inContents.Length);
StringReader stringReader = new StringReader(inContents);
string line;
while ((line = stringReader.ReadLine()) != null) {
if (line != @".assembly extern 'PreEmptive.ObfuscationAttributes'") {
sb.Append(line + '
');
} else {
for (int i=0; i < 4; i++) {
stringReader.ReadLine();
}
sb.Append(stringReader.ReadToEnd());
}
}
StreamWriter outFile = new StreamWriter(_obfuscatedLibrary + ".il");
outFile.Write(sb.ToString());
outFile.Close();
}
}
]]>
</code>
</script>
<removeRef obfuscatedLibrary="MyLibrary.dll" />
<ilasm rebuild="true" output="MyLibrary.dll" resourcefile="MyLibrary.dll.res" target="dll">
<sources>
<include name="MyLibrary.dll.il"></include>
</sources>
</ilasm>
</target>
</project>
They’ll fix it soon, I’m sure — but for now this will work just fine.
Tags: .NET, clr, dotfuscator
« Previous entries ·
Next entries »