Forum OpenACS Q&A: Opening Up .Net to Everyone

Posted by David Kuczek on
What does the community think about this?

"Open-source developers, wanting to 'head Microsoft off at the pass,'
try to create a Linux version of the software company's .Net tools.",1282,44985,00.html

Posted by Andrei Popov on
Posted by Patrick Giagnocavo on
It is doomed to failure.

Since MSFT controls the specs, they will change the specs at
random to break the open source version.  Customers relying on
.Net will eventually get fed up and either go with MSFT ("it's more
compatible") or continue using the Linux version, which over time
will diverge from the MSFT version; thus defeating the original
goal of compatibility.

Remember, "DOS isn't done until Lotus won't run".

Posted by Adam Farkas on
What about Samba?  When M$ changes something to SMB, the samba team is usually on top of it, makes the appropriate revision, and poof -- all is well once more.  Will probably be more challenging for something as big as .NET, though.
Posted by Jerry Asher on
I'm really pleased to hear that Ximian is working on Mono, and I think they will be very successful.

One. Microsoft has submitted C#, and the Common Language Infrastructure to ECMA. If it is accepted, then while Microsoft may boast of being the reference platform, and while they may boast for awhile of being the highest performing platform, that move will make it harder for them to make nonconforming, inoperable changes to the specs.

Two. The CLI and CLR is basically a whole new operating system platform. It's neither WIN32 nor Linux. It is probably WIN32 biased. But it's not WIN32. So there is a relatively level playing field (modulo dollars, developers, testers, and partners)

Three. Microsoft has claimed that they want to see .NET spread to other machines. There have even been sightings of Microsoft's efforts to target Linux itself as a .NET base. (See excerpt below.)

Four. Ximian is the right organization to do this. I would never have thought GNOME or Bonobo would have ever been successful. Build a high performance CORBA system from scratch and open source? No way. Way. Folks love it. And coming from COM, DCOM, J++ and SOAP, much of .NET is about building a remote distributed computing architecture. In fact, the basic C# compiler takes source and turns it not into machine instructions but into a very enhanced IDL which gets compiled at the last minute for the specific platform.

I'll go so far as to claim that a .NET port is easier to put together than GCC, the C runtime, and CORBA, because after all, "we've" done this once already, and very successfully too.

I guess these days the two big market share C compilers are Visual C and GCC. Big market share and also good reputations for reliability, stability and high performing C code. (Is this right?) But that certainly wasn't always the case. For many years, gcc was thought to be buggy and produced slow code. I think there's a very strong chance that within a few years, an opensource C# and CLR will be known as the best performing implementation.

Five. Samba is a good example of this process. Samba may have started in a bedroom, but these days it's supported/funded/developed by VA Linux, HP, IBM, and at times, even Microsoft. Should these companies decide that an opensource .NET is a good thing, I would look to see them join up with Ximian in this effort. Already IBM does GNOME.

This is from Scobleizer, an expansion from Clemens Vasters, about the Visual Studio.NET help menu.

(a) Go to the "Help" menu, select "Edit Filters"
(b) In "List of Available Attributes and their Values" expand "Target Operating System (TargetOS)

Epiphany time! They were setting up the market. Building expectations. Forcing you to look one way, while they do the trick where you aren't looking.


> The "Target Operating System (TargetOS)" list is:
> Linux (kbLinux)
> Windows (Windows)
> Macintosh (kbMAC)
> Windows CE (WinCE)

All you marketing wannabees better study this. It's genius.

Let's say you're a company. You have a product coming out. How do you ensure that every press person will write about your new product coming out? That's right. Misdirection.

I'm pretty sure Microsoft will announce soon that it'll ship the .NET runtimes on Unix. (Update: Microsoft did make an announcement on Wednesday. See for the news). 

The problem is, how do you get everyone to pay attention? And, how do you get everyone to notice that they aren't supporting the GPL? And, how do you not look like you're attacking Java and Sun? (Which are the true targets of the .NET platform).

That's right. You have your executives go on a speaking tour. Attack away. Make it sound like Linux is going to ruin Microsoft.

Then, weeks later, provide the answer.

It is a strategy that guarantees every press person will write about it. And most "stories" will sound "suprised" that Microsoft is now putting .NET onto Linux and Unix. And, because Microsoft focused so much attention on the GPL, it'll counteract the truth, which is that .NET is aimed at making Java irrelevant to the marketplace.

Look, it's already working. Now Microsoft gets to go to the O'Reilly Open Source conference and they get to announce this strategy on stage. I've got to step back and say "I'm not worthy." Marketing mastery at work.

Posted by Talli Somekh on
Jerry, what you said makes sense, although I would *not* have included the last bit about msofts "genius" marketing.  That's dave winer-esque hyperbole.

I guess an open source .NET is cool. Then again, .NET is not even released yet and everyone is worry about its competition.

Hope it doesn't manage to clobber the open development community -- either by being successfully or such a bad idea that OSS developers waste countless years chasing mirages.


Posted by Adam Farkas on
Slightly off-topic, but MSN Instant Messenger has been down for about 7 days now, with no indication of reliable service being restored any time soon.

MS blames the problem on a failed disk controller (!!) I find this explanation most improbable. More likely this first major .NET experiment has hit a major snag.

At the very least, it might make one reconsider the notion of having a single point of failure (passport).

Posted by Jamie Ross on
I never cease to be amazed at the willingness of people to let themselves be screwed by Microsoft. You can write all the clients and applications you want for .NET but the whole thing is controlled by Microsoft through Hailstorm. Once you have helped get everyone to submit all there personal information to Microsoft, and encouraged net service provides to required Hailstorm authentication, then you have made the internet into Bill Gates personal playground. If you want to do anything on the internet, then you pay Microsoft.

Why am I not impressed.. folks look at the bigger picture besides writing another C+ client.!!

The key to .NET is centralized authentication through one souce, Microsoft and they will control all companies who want access to it . If you truly want an "open aource" .NET then you have to provide a robust secure authentication service as a complement to whatever client server structure you use. I believe that authentication should be decentralized, i.e. my personal information stays on MY server, not Microsofts and I have some registered encryption key which a online vendor can authenticate my information with.

So before you run off and help Bill Gates build yet another software Gulag like Windows, build a real open source system which protects our rights as individuals and developes and independent software companies

Posted by Jerry Asher on
Hi Jamie,

As a newbie to .NET, I am curious as to your belief that the key to .NET is centralized authentication through Hailstorm.

I understand how valuable Hailstorm would be to Microsoft (and could they have come up with a more frightening name for authentication what a great marketing concept that has been, didn't they know they were supposed to call it CreamPuff?), but I am not sure I understand why you can't have .NET services built that don't require Hailstorm at all.  At the trivial level, for instance, my silly xml-rpc searcher for the ACS (or ACS-like systems) is, I think, a perfect service for a .NET client to use, and offers much value (I think) and yet has nothing at all to do with Hailstorm.

Using the .NET distributed computing pieces (or their clones), or the CLI/CLR/JIT and their clones, why can't perfectly reasonable and valuable services be created that have nothing to do with Hailstorm?  And if we do use those parts, how are we contributing to Hailstorm or getting screwed by Microsoft?

I admit that when Java came out, it took me a great while to "understand" why it couldn't be just compiled down to bits.  I thought it was a language first, and "java the weltanschauung" second, and I gather that was Microsoft's argument too.

Would you clarify your point?


Posted by Jamie Ross on
Hi Jerry, I can summarize it as best I understand .NET and have a few reference links you can check out for more info.

.NET is built around the concept of user centric web services as opposed to machine centric applications. Whereas software is licensed by machine, a .NET web service is based around the user and as a result it is important to know who the user is.

Since .NET services are commerical in general, they will need a common way to authenticate the users identity and informtion. This provided by Hailstorm and more specifically by Miscrosoft's Passport servce. While client tools are open to development on any platform, the server side is less clear. It is clear that Passport will the ONLY authentication registry in the .NET system so both users AND service provides will pay for the pleasure. This is the basis for my suggestion for an independent authentication service protocol and software.

Microsoft controls all code and schema so you can get code but you cant modify it or make derivative works

.NET is a Microsoft scheme for controlling all transactions on the internet and making everyone dependent on MS... as they tries to do with Windows

If you are just looking at a web service infrastructure then you can use Java/EJBs, or C+/SOAP/WDL however you STILL have to deal how to authenticate users if you need to do any secure transactions. This is the central issue I think must be discussed.

My worry is people talking about .NET are talking about interacting with Hailstorm services which requires Passport authentication NO MATTER what your client tools are. If you want to provide a Hailstorm service, then you have to sign a license agreement with Microsoft which heavily restricts you.

My suggestion is boycott .NET and develop an alternative

References Hailstorm: Open Web Services Controlled by Microsoft

Who Is Microsoft Trying to Control

Posted by David Kuczek on
There is a little article on yahoo! about...

"New Microsoft Systems Erode Privacy, Groups Say"

Posted by Tom Jackson on
Second, you cannot use a non-Microsoft copyrighted schema to broker transactions within HailStorm, nor can you alter or build on existing schema without Microsoft's permission.

This was taken from the openp2p article referenced above. To me this sounds like MS expects developers to buy a database with the tables already setup and no way to change anything. How long is it going to take for a manager to ask for something he can't get and then realize the system is unuseable?

Posted by Talli Somekh on
From what I understand of the GPL and the MS position, I'm not entirely clear on whether it would possible to write an application in .NET (in C# or VB using SQL server) and then release that code as GPL.

Why couldn't we take the ACS (with the data model and page flow) and simply build it using the .NET architecture then release it? This assumes that someone would have the time and energy to do such a thing, of course.

We've lost jobs that were offered to us if we would only write them in a MS enviro. Looking back, we should have said, "Sure, if you're willing to pay us to rebuild OpenACS in VB we would be happy to do so." That might be a lot of money, but it sure would be nice to have afterwards, right?


Posted by Roberto Mello on
I'm not a .NET expert, so I'll digress on that point.

But why couldn't you have installed ACS on Windows, without the need to port it to VB?

A port to VB sure is possible, but technically it won't add any functionality that couldn't be added in the current framework. Maipulating COM objects and such are easily done with Python (which integrates with AOLserver).

The hardest thing would be maintaining such a port.

Posted by Talli Somekh on
I agree with you Roberto. There is no *technical* reason. But as the head of a consulting shop who has lost to (WHEREIS).NET and Zope (who doesn't even eat their own dogfood) I've learned that the technical argument is limited when it comes to acceptance. So I am completely admitting that I am making a marketing argument here.

I'm not sure that maintaining such a port would be so unreasonable, either. It may be difficult to find good Free Software people in the MS world who understand what a Free community is, but I imagine there would be many many people adopting such a system.

I must admit also that Philip convinced me of this point at the last social. There is absolutely no reason to be religious about the language we use. I agree with him that OpenACS' strongest point is a really great data model (although hundreds of thousands of lines of working code is nice too :)) which is pretty agnostic to what the underlying DB is. I don't have experience with VB, but I've heard great things about C# from smart people.

I think a Java version of the ACS is great. I think the Tcl version is better as an open source system because it's not as scary to learn (see to understand why I think this) but I look forward to its availability. I spoke with Dennis Gregoravic and a couple other guys at the OpenACS social who told me some cool things about it and how aD is developing it.

I'm really not asking the community to expend any energy on a MS ACS. I DO NOT WANT THAT TO HAPPEN AT ALL!!!! But I next time a customer comes to us begging that we build their system in Windows I would be inclined to listen to them. It would cost them 2-3x more than if they used Linux, but if they have the money who am I to argue?


Posted by Tom Jackson on

Talli wrote:

Why couldn't we take the ACS (with the data model and page flow) and simply build it using the .NET architecture then release it?

The openp2p article indicated that the datamodel must be approved and owned by MS! Otherwise you can't use the HailStorm/Passport network. The datamodel (or schema) must fit into MS's global data framework. If you are not a registered HailStorm developer, you don't even get to submit a request for an extension or change.

If this is true, I don't see this service being used for anything specialized or innovative. It might be useful for big market activities, whatever those happen to be.

Maybe I am missing something, or the article is misleading in some way, but the bottom line seems to be that although the client can be written with whatever technology you want, the result must still fit into Hailstorm/Passport and be approved by MS.

Posted by Talli Somekh on
Yeah, Tom, if that's true than they really are a crappy company and it's a bad system. I agree.

But I don't know if I'm necessarily talking about .NET or just the idea of building a system in a Windows environment. This may be all mute if the complete OpenACS tcl can work completely well in Windows, but there may be benefits of having some OpenACS VB, complete or otherwise.

Of course, ONLY IF A CLIENT PAID FOR IT is my attitude.


Posted by Don Baccus on
I must admit also that Philip convinced me of this point at the last social. There is absolutely no reason to be religious about the language we use.
There are, however, reasons to be religious about maintaining a single version of OpenACS rather than encourage multiple versions written in various languages. It's actually sound engineering management to discourage such efforts.

The result would be a maintenance nightmare, one that even a large, well-staffed company would find difficult to deal with. A relatively small, mostly volunteer-staffed project like ours couldn't cope.

Will that change? Well, maybe, but if the market for OpenACS is so strong that the consulting companies involved grow to the point where they could afford to maintain multiple language versions then the argument to do so evaporates, in a sense. The market, in other words, wouldn't be so small after all 'cause lots of money was being made, and the resulting funds would be better spent on added functionality, etc.

Integration with .NET is probably inevitable, at some level.

As far as losing business because you're not working in the Windows market, well, MS still only has 25% of the web server market, so you're on the 75% side of that fence. And of course OpenACS will run on Windows - it's just not VB-based. What is needed are some Windows success stories for those who are interested in that market. I realize the market you're interested in is much more Windows-centric than others, so I don't have a good answer. Someone has to be the first guinea pig and as you mention that person will probably have to pay a lot more for development in the Windows environment than in the Linux environment.

Now, something that *might* make sense would be an MS-SQL port of the toolkit, along with resurrection/completion of the IIS interface to OpenACS. Supporting another RDBMS certainly does increase maintenance and development costs, but not nearly as much as supporting multiple language versions of the toolkit.

Posted by David Kuczek on
Nice article about .NET hidden patents etc.