.NET for freebsd

Terry terry at mohimba.com
Wed Jan 29 20:55:58 GMT 2003

Quoting Paul Robinson <paul at iconoplex.co.uk>:

> I'll retract the "ridiculous and ancient" line, but if .NET wasn't coming
> over to FBSD, FBSD would not be found in any corporate data centres in 10
> years time. 

I'd replace ``ridiculous and ancient'' with ``philosophy and culture''. This is
what UNIX has. Also it has tens of years already devoted to it from a lot of
bright people. I have a different view on whether FBSD would be found in
corporate data cetres in 10 years time. Its very reliable, stable and if you
look at the direction of 5.0 there's significant work taking place in terms of
scalability and SMP support which is very important for large sites. Also total
cost of ownership is significantly lower when compared to proprietary solutions.  

> It's not .NET is just "another language", it's another
> archeitecture, and trust me, it makes a hell of a lot more sense than the
> PHP/Perl/Python methods we currently use. 

Yes, .NET is an application framework in general terms. Microsoft put a lot of
work on it and a huge marketing force to `push' it. Comparing it to
``PHP/Perl/Python methods'' doesn't make much sense to me; what is a ``PHP
method'' after all? Please have in mind that ActiveState has announced Perl.NET
and Python.NET. 
Lets attempt to demystify .NET using plain english starting with what one's eyes
immediately encounter, the IDE. It offers alot of `intelligent' features to the
developer but not anything that didn't exist before (Emacs).
Then there is the concept of a `virtual machine', code gets compiled to
byte-code  and can be run anywhere the `virtual machine' runs. Nothing new there
(Java). Next is probably the most important aspect of the framework in my
opinion, serialization of objects. Say I am developing an application and I want
your application to understand mine. Given that both applications understand the
same classes, an object my application instantiates gets serialized (gets
captured in XML notation) and sent to your machine where it gets `unpacked' and
your application makes use of it. This method of communication between processes
is not unique to .NET. It can be deployed in any framework that uses XML data as
its input/output. The protocols for this are open and governed by W3C (SOAP,
WSDL etc). One advantage Microsoft has in  .NET is that all these are tightly
integrated but only because they apply to _one_ platform, theirs. Based on this
framework Microsoft then develops all their additional services (Passport etc.)
which is the classic ``vendor lock-in'' technique. Arguing whether Microsoft
innovated is besides the point  (in my opinion they haven't). What people should
realise is that all the fundamental technologies in .NET are available to anyone
and more important  you can mix and match them in a great number of different
ways than Microsoft architects and software engineers did. Last, a word on web
services, which is essentially a way of capturing a piece of `logic' and
exposing it to the world. The concept is _not_new, look at CORBA and the likes.
What makes web services is a `hot thing' is the protocols used for
communication. The protocols used, a family of XML applications, are agreed upon
by all the major vendors and this is what makes web services such a popular
thing. You write your piece of logic (in _any_ programming language you like,
could be COBOL if that rocks your boat) and then you attach an interface to it
that describes it (using WSDL, an `XML application' or `XML language' if you
preffer) and make the interface public (eg. accessible over the network). To
this point you have an application, say a program that adds two integers, you
have its interface exposed on the network and you have a universal (universal
only because a great number of people/companies have agreed upon it) way to
describe to clients/consumers of this application what it does and how they
should use it.   Communication between your `web service' and its consumers
takes place using SOAP (yet another `XML application' or `XML language') which
is an open protocol again. Last, there must bea way for people or machines to
`discover' applications such as yours and the way most people have agreed upon
is using UDDI (think of it as online yellow pages) and its open to everyone to
set up a UDDI node etc. Microsoft has participated in the making of these
standards like many other companies have under W3C working groups. You can run
and consume web services using any platform/OS and .NET follows the above specs
so don't be affraid that you're being left out while using UNIX while the rest
of the world (victims of the hype) think that .NET is the revolution. .NET is a
semi-proprietary implementation of widely available standards, technologies etc.
There will be many of those. As a final note, you are well aware that there is
.mono and dotgnu. In my opinion .mono is not innovative, they are just
replicating the .NET development framework (which is not a bad thing since it
offers a free software alternative to .NET on UNIX platforms). DotGnu offers a
wider range of tools (including a C library), the developers seem more open
minded looking to support much more languages than C# and furthermore, has
performance advantages.    

> Those methods are great for smallish projects (say 2 man/years - please don't
> tell me that they are mythical, I know), but I have to manage a project now  >
where there is something like 4 man/years development to be completed by 1st >
July, and the development team is not particularly on-the-ball at the moment. >
Not one line of code is written.

Hmm...you don't provide enough info for a constractive conversation here :/

> Ask yourself - do the technologies Unix currently offers realistically
> allow for a low TCO, low maintenance, rapid development within that          >

I strongly believe so. Set a realistic example and we can discuss it in details.

> I've done the maths, and the answer, quite simply, is "no". And that, I can
> assure you, is frustrating.

Show us the math! ;p
> So, the current plan is to roll out a .NET framework on XP.NET which we
> will probably have live earlier than July 1st. We'll then wait for Ximian to >
get Mono polished off, maybe even get involved in testing and improving the
> ASP.NET parts of it all, and then move over to FBSD with Mono. I end up
> with a decent OS running a decent architecture, and to boot, I came in on    >
budget and on time.

In my opinion this sounds more like a desperate action than a plan.
> It's all very well saying "M$ is evil", but in the real world, they've
> produced a decent setup and right now, I'm glad they're around. I'm even
> happier that I get to drop the bits I don't like (their OS) sometime over
> the next year.
 M$ is not evil and yes they have produced a decent set-up (maybe because their
set-up works on standards and protocols deviced by W3C and a wide range of
engineers/developers). However, using .NET or any other application framework
for that matter is not a substitution for good design and sound software
engineering principles. I don't know what the project you are working on is but
I am sure that there are more than one ways to devise a solution.

thank you


More information about the Ukfreebsd mailing list