Sunday, November 17, 2002


The event I've been waiting all weekend to announce: Everett is out!

Visual Studio .NET 2003 Final Beta is here:

For MSDN members only:

download:

http://msdn.microsoft.com/subscriptions/resources/subdwnld.asp

site:

http://msdn.microsoft.com/vstudio/productinfo/vstudio03/


9:06:13 PM    

  Thursday, November 14, 2002


I just "found" another of my "lost" Radio stories from last July 1 - Introduction to .NET Com Interop. This is real basic and I have written much deeper stuff since then but it might be of use to people starting out.
9:42:18 PM    

John Giudice has started a weblog.  John is another Product Manager here at Groove.  He is in charge of the Groove Developer Kit and its various tools and utilities.  John says:

Over the coming days I will try and share ideas on what is involved with creating collaborative applications and making them succesful

[Matt Pope's Radio Weblog]

Cool! I worked with John a lot on the Toolkit. One of the very cool things that I always loved about John is he is one of the very few Product Managers I have ever seen anywhere that gets as dirty in the code as he does. He codes at home too. Cool!


6:32:44 PM    

WinForms Auto-Scaling. That cool auto-scaling that WinForms does when moving between system font settings baffled me 'til I sat down to really understand it. [sellsbrothers.com: Windows Developer News]
6:28:35 PM    

WinForms Data Validation. A little essay on the WinForms Validating event. [sellsbrothers.com: Windows Developer News]
6:28:17 PM    

C# and Java: The Smart Distinctions. Article by Dominik Gruntz from Journal of Object Technology (Nov-Dec 2002 Issue), this article shows some of the subtle difference between C# and Java. [sellsbrothers.com: Windows Developer News]
11:35:41 AM    

Distributed Programming Runtime Systems: Inside Rotor
Gary Nutt. University of Colorado

"This is a hands-on book that focuses on the internals of a CLI implementation on a UNIX platform"

Cool! This morning Google led me to this book.  There are several chapters online too. I only had time to glance at them this morning, but looks like good stuff. Check out chapter 3 for a nice overview of the VES.  

[Managed Space]
11:35:15 AM    

Writing Secure Code

This book provided a few new insights, but nothing earth-shattering.  It's a good read for newer programmers, but [good] seasoned programmers will have already run into a lot of the described issues and learned from their mistakes. [Paresh Suthar's Radio Weblog]

I agree that its quite basic. However, judging from the amount of buffer overruns that are seen in everyday C/C++ code, and the fact that Buffer Overrun checks had to be put into Everett C++, I don't at all agree that many programmers are writing C/C++ write code that doesn't have these problems (or even aware). Heck, to some extent Java and C#/.NET exist for large reasons because of the failure of C/C++ programmers to write good safe code.


9:30:16 AM    

  Wednesday, November 13, 2002


Jason has moved his Blog
2:08:42 PM    

Everett just made my day.... Sam Gentile on the new version of Visual Studio.NET: "Last, but certainly not least, there is now a Form Designer for Managed C++! You will be able to do everything you do with the C# or VB designer. You can visually design forms and work with Managed C++. This obviously opens powerful opportunities to do certain things like Direct/X without Interop penalities and much more. Its very exciting!" [Sam Gentile's Weblog] Damn straight it's exciting. Reading this paragraph just made my day. [StrangeCoding]

An important affirmation of the core strengths of C++: "Games are going to be written mostly in C++ for the next umpteen-thousand years. Even if MS comes through with their promise to make managed DirectX run at 98% performance, you won't be seeing C# games on the shelves. You're probably never gonna see any form of CLR running on a console." and now the new features of Managed C++ WinForms: "So I'm back to square one, working with the built-in Dialog Editor that has barely changed in the last 4 versions of Visual Studio -- and that means internal tools create frustration from having a poor UI. But now... a Managed C++ Form designer...

rock."


11:25:03 AM    

New C# features: whitepaper now available. The whitepaper (a Word file) is now available. And the Demo Files link, previously dead, now works. [sellsbrothers.com: Windows Developer News]
10:07:48 AM    

  Tuesday, November 12, 2002


I've been trying to stay on top of the hype, rumours, and news being released about the 'next' version of Windows. Just when I think I am getting a handle on it all, this type of news announcement is made: Microsoft to skip Longhorn Server Release [Andrew Law's .NET Radio Weblog]


2:32:14 PM    

Leaky Abstractions.

Joel has written a great piece on software development abstractions and complexity.

Ten years ago, we might have imagined that new programming paradigms would have made programming easier by now. Indeed, the abstractions we've created over the years do allow us to deal with new orders of complexity in software development that we didn't have to deal with ten or fifteen years ago, like GUI programming and network programming. And while these great tools, like modern OO forms-based languages, let us get a lot of work done incredibly quickly, suddenly one day we need to figure out a problem where the abstraction leaked, and it takes 2 weeks. And when you need to hire a programmer to do mostly VB programming, it's not good enough to hire a VB programmer, because they will get completely stuck in tar every time the VB abstraction leaks.

[The .NET Guy]
11:14:44 AM    

  Monday, November 11, 2002


Radio blogger #115946

I'm finally taking a foray into Radio after my friend Peter Drayton told me about it.  Lots of my friends are using RSS aggregators these days and I decided to get with the program.  Radio seems like a good fit if for no other reason than the jaunty Saguaro logo - plenty of those around my place ;)

[Jason Whittington's Radio Weblog]  Update: New Home

Jason's here! Welcome.


11:23:25 PM    

I have just been given a go-ahead (Visual C++.NET only so I won't talk about the rest) since a lot of this has gone public already. The Everett Visual C++.NET features, I feel, are the biggest changes to VC++ since 5.0 and have made me extremely happy. The features break into 4 main areas:

  • ANSI/ISO Compliance
  • Forms Designer for Managed C++
  • Security Features
  • Optimizer Improvements particuarly in floating point

The ANSI/ISO compliance is particularly exciting as Visual C++ finally does Partial Template Specialization, Partial Ordering, Member Template Definitions, and pretty much everything in the standard. Public statements have said 98% compliant. I have not been able to throw any Standard C++ at it that it couldn't compile and handle correctly yet. Very heavy users of advanced Standard C++ features, particuarly templates like Loki, Boost and Blitz now compile 100%!

Also, in the unmanaged arena, there have been significant additions for security, paticuarly in the area of buffer overruns. The new /GS flag, when code is recompiled with 71, will catch many buffer overruns. There are also Safe Exceptions which I won't go into here. Also, in the unmanaged area, there have been some outstanding improvements made in the optimizer, particuarly for floating point. The /G7 flag builds code optimized for the P4 and there are major gains. Also the new /arch:[SSE:SSE2] flags let you generate code for the Streaming SIMD and Streaming SIMD Extensions 2 instructions.

Last, but certainly not least, there is now a Form Designer for Managed C++! You will be able to do everything you do with the C# or VB designer. You can visually design forms and work with Managed C++. This obviously opens powerful opportunities to do certain things like Direct/X without Interop penalities and much more. Its very exciting!


3:45:10 PM    

DM'er Jason Whittington has written a hillarious song on the whole PetShop saga. It so rules-). I can just picture Band on the Runtime doing it now. Sing along....
2:50:26 PM    

I've found another .NET Blogger! -) He even has as his masthead "Another .NET Developer :)" Cool, cool, cool. Welcome Husein and RSS-subscribed!
12:26:54 PM    

The warmth and depth of this community never ceases to amaze me. I was just talking to Tomas down in Columbia, who has posted a very thoughtful reply to my essay), and Ingo at .NET One, (at the same time!) who are both encouraging me to go out on the circuit and speak on COM Interop. Since they asked, and Radio seems to have lost the pointers, here is the Is COM Interop Fundamentlaly Flawed (Parts 1 and 2) story which Radio has once again lost the links to, from last August. There is actually more detail in my slides on my web site. I will be updating this after talking to Don about it and with new insights but for now, Paresh, who worked heavily with me on this area during that period, has an excellent article on what we found in Connection Points in particular and how to write wrappers to fix some of the mess.
10:59:26 AM    

Dotfuscator in VS.Net Everett.

From Brian: As of today, I am finally allowed to talk publically about what I have been working on for the past six months. Here is the press release and an early article. In all fairness, I had really very little to do with this. Most of my contributions were related to getting Dotfuscator translated into all of the languages that Visual Studio ships in. We turned over our first feature complete version three weeks after I was hired, so most of my stuff won't be seen until a future version. Congratulations to everyone at PreEmptive Solutions for a job well done.[Brian Graf's Weblog]

Well, I couldn't say anything either until now (It seems like all the pieces of Everett are going public one by one!). Congrats Brian.


10:38:39 AM    

  Sunday, November 10, 2002


I want to step away from coding, talking about .NET altogether, and talk about abstraction, domain engineering, generic programming, and design paradigms for a bit. In 1999, I read a book by Jim Coplien, “Multi-Paradigm Design for C++”, which forever changed the way I looked at design paradigms. Lately, while reading Andrei Alexandrescu’s “Modern C++ Design: Generic Programming and Design Patterns Applied”, combined with doing a lot of “Modern C++”, I had several awakenings those shook up things for me even more.

            For years now, it seems to me, we have had many design “gurus” repeating a mantra “Object Oriented Design good, all other techniques  bad”, to the extent that for many developers and designers, that is the only paradigm that they use and even know. Abstraction is one of the key tools for managing the ever-increasing complexity of modern software. As Coplien says, “The common answer to what is abstraction usually has something to do with objects, thereby reflecting the large body of literature and tools that have emerged over the past decade to support object-oriented techniques.” Even more so, frameworks, languages and abstractions like .NET’s BCL and most of Java is only OO based (yes, I had been thinking about this for 2 weeks now, before Microsoft’s vapor announcement of future generic programming features in .NET). Java is touted, rightly or wrongly, as completely OO such that everything must be in a class. NET’s BCL is mostly only OO. Both of these, for the most part, wrap your abstraction and your way of thinking in object-oriented ways. Yes, there are exceptions (no pun intended!), but for the most part, most of the world thinks in objects. Well, that’s goodness, right? After all, it models the real world and builds abstractions much better, right? Well, yes and no. There’s no denying the vast benefits of OO but the key message in these books, and particularly Coplien’s book, is that Object Oriented Design is just one subset of the solution domain and not always appropriate for the problem at hand.  {READ MORE...}


3:03:16 AM    

  Tuesday, November 05, 2002


From the Rotor List:

On behalf of the entire Rotor team, I am pleased to announce the 1.0 release of Rotor. This release is available at the usual place http://msdn.microsoft.com/net/sscli.

The 1.0 release builds and runs on Windows XP, the FreeBSD operating system, and Mac OS X 10.2. In addition, the release contains many bug fixes, more documentation, new samples and additional test suites.

Please download it and let us know what you think.

Geoff Shilling

Rotor Project


7:38:12 PM    

Just entered chat below and right off start getting messages from all sorts of bloggers-) Ethan Brown, Greg, Matt Griffith, Ingo, Simon, Alexis, Jim

Don's talking about the overall architecture right now and putting in place all the pieces that other middleware stacks have had, and going for adoption...SOAP Preliminaries: SOAP message format described by envelope is pretty straightforward...In general, SOAP fairly silent about what goes on in body, some to say about header...exists so 3rd parties can augment. SOAP has always had this extensibility mechanism. AS SOAP has evolved more rigor has been applied to headers and thats what we rely heavily on in GXA specs... Two roles Ultimate Reciever and Next (predefined).

Drill into WS_ROUTING - gives transport independent way of sending SOAP. HTTP wonderful, until end of time but lot of people want to send over other transports. Tried to abstract away transport details.

Yikes! So many messages from bloggers, can't keep track of talk...WS_ROUTING - Action, Id, relatesTo, To, Source Routing in form of Foward and Reverse Paths...We need Intermediaries for things likes firewalls, proxies, may want to smear message over several locations. Another aspect is hard to build IP Router...Idea rebuilding IP Routing in User Mode...Application aware routing...All of specs are layered on SOAP 1.1 and 1.2 not replacement for. Though probably end of line for SOAP in 1.2, if we don't hold constant, pretty hard to get Interop.

Move on to WS-Coordination, Released as same time as WS-Tx, so didn't get a lot of attention - bizare to me. The real interesting innovation, unknown stuff in WS-Coordination. 3 people of 75 have read it. WS-c igives us lot of functionality that people expected when moved from classic RPC. Look at Corba, COM. Tended to want to build things that lasted more than one msg - COM+ - Contexts. Want to establish temporal, spatial relationship. Take bunch of messages and make sure the context has an id. Spec is org in most peculair way - two most interesting things in 2 appendicies. Context = collection of messages over time that share at least one property - identifier. May share others. When 2 or more WS are doing work together they may want to establish shared context. Basic Header Type - Context Header Block - Contains at least ID and maybe more info. Header blocks have distinct URIs.  WS-C pre-defines a Cordination Context. 2nd thing in Appendix - PortRef - contains bare minimum of address.

<CoordinationContext>
    <Identifier>uri</Identifier>
     <CoordinationType>uri</CordinationType>
      <RegistrationService>
            <Address>http://foo.com/mycoordinator.jsp<;/Address>
<PortReference>
    <Address>http://www.microsoft.com/foo.asmx<;/Address>
</PortReference>

WS-Tx really two specs - Part 1 2 Phase Commit and ACID. Part 2 Business Activities. ACID Txs - no one who worked on spec expected it to be used across trust boundaries. Part 1 exists to allow existing Tx apps to be able to do 2PC in a web context. Never intended to go across web sites and firewalls - across org boundaries. Tried to make that clear in the spec. Don't read Part 1 unless building Tx plumbing - codification of work done last 10-20 years in Tx. Part 2 really long-running transactions. Not strong isolation...No expectation of isolation or stability...BA is much simpler to understand - combine with WS-C an app dev could grok...So don''t wory about ACID, BA more interesting...

Reliable Messaging in next couple of months...Lots of plans...

Wow, I have to clean this up and get it in a story tonight...


3:33:20 PM    

Project Mono Does SQL / Windows / ASP.NET. Project Mono can now execute SQL statements on MS SQL Server through TDS and has a bit of Windows.Forms code running on both Linux and Windows as well as a good deal of ASP.NET support. Looks like things are coming along at a decent rate.
[sellsbrothers.com: Windows Developer News] COOL!!!!
2:21:55 PM