Slashdot Mirror


Mono Ships ASP.NET server

Miguel de Icaza writes "We have just released the new version of Mono the new version includes a working version of ASP.NET. The release includes a sample web server that "hosts" the ASP.NET runtime (it can be hosted anywhere, for instance in Apache, with mod_haydn). The web features of ASP.NET would not be very useful without the support of a backing database. The new version of Mono includes database providers for Oracle, MS SQL, Sybase, ODBC, OleDB, Gnome Data Access, SqLite, MySQL and of course, Postgres. The C# compiler is now 37% faster due to some nice optimizations on the JIT engine and in our class libraries. You can use it to develop GUI applications using Gtk#. Screenshots for mPhoto and the GUI debugger (which can debug both JITed apps and native applications). "

28 of 406 comments (clear)

  1. /home/linuxuser$ mint myapp.exe by MagPulse · · Score: 5, Insightful

    It's a weird experience to run the same exe in Windows and Linux with the .NET or Mono runtimes. When Mono supports WinForms (by translating them to Gtk#), so GUI apps written with Visual Studio .NET's GUI builder work on Linux, that will be significant.

    1. Re:/home/linuxuser$ mint myapp.exe by Anonymous Coward · · Score: 2, Insightful

      Would it be possible for the Gnome people to consider the needs of people who aren't newcomers occasionally? It's distressing when functionality is removed because it might confuse newbies. I installed RH 8.0 recently and was surprised at how bad the new window manager and panel are compared with the Gnome 1.x versions. I really don't want a huge panel all the way across the bottom of the screen when I really only use it for launching apps, but I am no longer allowed to have a smaller centered one that hides when I don't use it. I don't want little animated boxes when I minimize a window, but there's no way to turn them off that I've found; and why is there a seperate fonts preference box but no WM control box. Why can't I change that stupid hat icon to something else by right-clicking on it? Why can't I access most of the (actually readable) bitmap fonts that come with X? Why do I have to put up with this shit just because I want to get the twenty-year-old version of Python off of my RH 7.3 setup?!?!

  2. Re:That's nice by Anonymous Coward · · Score: 4, Insightful

    .NET Doesn't need to match up with J2EE in terms of features or performance, all that will matter will be whether Microsoft's marketing department can outspend Sun/IBM/Bea.

    All signs point to yes.

  3. Yay Mono team by litui · · Score: 2, Insightful

    I think this is terrific. I know very little about the fine details of coding for .NET, but I understand the significance of this project to the community of open source and non-windows users. Good job folks. Keep it up. =)

    --
    I send you this message in order to have your advice.
  4. Bravo! by telstar · · Score: 2, Insightful

    Further proof that more is accomplished through innovation than through litigation.

    1. Re:Bravo! by AlXtreme · · Score: 2, Insightful

      I would call it immitation, not innovation. But then again, 99% of all innovations are just immitating ones that someone else already had thought up.

      I hope for Miguel and the rest that Mono works out nicely, but imo it's just a workaround, and not a solution, to the evil empire (if ya can't beat em, don't join them, just hit harder ;o)

      --
      This sig is intentionally left blank
  5. Dangerous Because of Microsoft Patent Claims Trap by NZheretic · · Score: 5, Insightful
    Microsoft's CEOs have made it "patently" clear that they intend to restrict competing .Net implementations by cultivating Microsoft's patents, such as United States Patent Application #20020059425 "Distributed computing services platform" [uspto.gov] which covers the design and inter-operation of .NET based implementations.
    Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents. This remains true even for the Microsoft specs submited to standard

    In comparison, Sun has granted the Apache and all open source developers FULL access to the specs, test kits and granted the full rights to develop competing products under the JSPA . Sun has also fully pened up the Java development standards process under the new Java Community Process (JCP). Even to the point of granting full open source re-implentations of J2EE such as JBoss...

    JBoss received the green light last week, after Sun told ComputerWire that it would allow all of the APIs contained in J2EE 1.4 to be open sourced. Fleury had expressed concern that certain critical APIs, including Enterprise Java Beans (EJB) 2.1, would be not be made available to open source organizations.

    However, Java Community Process director Onno Kluyt said: "Sun's plan with 1.4 is that although it started before JCP 2.5, by the time it ships it will allow the creation of independent implementations. I don't think the APIs are that interesting, because the license that sits on top of J2EE will allow that [independent implementations]".

    There those that claim that .NET is open to re-implementation, but until Microsoft make a simliar public legal declaration to Sun's JSPA, any .NET reimplementation represents a pending legal mindfield.

  6. Re:That's nice by jonabbey · · Score: 5, Insightful

    Just like Microsoft is outspending the Apache Foundation?

    Sun/IBM/BEA/Oracle/Apache.. Microsoft may well pull it off, but it's hardly a foregone conclusion.

  7. COM, CORBA, J2EE, .NET... by pVoid · · Score: 4, Insightful
    Can someone please explain why .NET is so good?

    Microsoft isn't really good at explaining itself in a rational manner because Bill has his head up his ass, and will not let his technical team talk. Instead his marketing team is in charge of explaining to the world what they do. As a result, .NET to me is something as low-level and small as a binary format specification (similar to COM objects), and as high-level and strategic as 'the end of non-distributed computing, and the emergance of <ooooh>Web Services</ooooh>'. Something that is so broad in breadth is not a clear definition in my books.

    Is there anyone out there that knows why .NET should supercede COM or CORBA? Why the functionality of Web Services isn't merely provided as an implementation in COM model?

    COM is a beautiful specification and model (so is CORBA - and the two are almost identical in fact)... they are compact enough to actually be usable in kernel mode (WMI providers in Windows are COM interfaces). So what is our eternal ass rash that makes us want to get the better suped up version of the same old shit?

    I don't know about other programmers, and how they feel of all of this, but a new standard evolving every 5 years is way to much for me. And as such, I have yet to be convinced I should start learning anything in .NET. What have you, comrades, to say about this? Have you started using .NET, and have seen fundamental differences in principle that make obsolescence for COM a MUST?

    On a side note, kudos to Mono for doing this work.

    1. Re:COM, CORBA, J2EE, .NET... by awitod · · Score: 3, Insightful

      I'll try to hit the high points I've found without mentioning any of the stuff you're likely to have heard of in the marketing materials.

      There are two fundamental differences between .Net and COM that I think are pretty compelling.

      1.) COM is interface oriented and .Net is object oriented. True, you can do COM with OO languages like C+, but at the COM layer you're still fairly restricted in terms of what you can easily pass between processes. IDL is not very friendly when it comes to complex data types and creating interfaces that require the marshalling of them has some nasty side effects in terms of dependencies between components, not to mention the need for custom marshallers.

      As a result, most distributed app's based on COM usually work by passing simple data between tiers instead of passing objects. Each tier winds up implementing code that consumes that data into a redundant object model.

      In contrast, .Net objects are fairly easy to manipulate between tiers. There are three basic serialization technologies in the framework, (XML, Binary, and SOAP) as well as support for a variety of protocols (remoting channels include SOAP, HTTP, and TCP) and rolling your own is not that hard to do.

      Admittedly, the client and server bits still need to understand the type definitions, but passing an object around that encapsulates data and enforces business rules is very straightforward. With .Net you can be OO and avoid the expense of chatty interfaces that cross physical and process boundaries.

      For example, I just did an app that sends and receives objects that are serialized and deserialized to and from XML between a Windows Service and a mainframe using MQ-Series.

      2.) .Net assemblies, by default, are local to the project path instead of being global to the machine and do not depend on the registry. In terms of time savers, this one is huge (no more DLL hell!) and it makes both versioning and deployment a lot easier.

      Because of this, you can run two versions of the same application side-by-side, you can deploy an application with XCopy or from a web server (with the right security policy you can place a WinForm app on a web server and .Net will download it to a cache and execute it just like it was insatlled on the machine), and because .Net supports code signing, you can (if you want) ensure that referencing bits will only load specific versions (and protect yourself from Trojans).

      Finally, these are complimentary technologies. If the application is truly distributed between diverse environments, there is no reason not to mix-and-match RPC models. However at the boundaries, .Net really shines. And if it is a 100% .Net implementation, you're left wondering how you ever put up with the headaches inherent in COM in the first place!

  8. Re:What, no COM support? by pVoid · · Score: 4, Insightful
    COM relies too much on windows APIs, it's not cross platform, it relies too much on the system registry and it only works on windows

    Hmmm... Have you used COM before?

    STDAPI CoCreateInstance( REFCLSID rclsid, //Class identifier (CLSID) of the object

    LPUNKNOWN pUnkOuter, //Pointer to controlling IUnknown

    DWORD dwClsContext, //Context for running executable code

    REFIID riid, //Reference to the identifier of the interface

    LPVOID * ppv //Address of output variable that receives

    // the interface pointer requested in riid

    );

    Can you tell me where you see the registry in there? Even malloc is shielded behind an IMalloc interface for crying out loud. The implementation of the runtime happens to use the registry, but that is COMPLETELY hidden to the actual spec of what COM is.

  9. Re:Amazing! by Binarybrain · · Score: 3, Insightful

    I really don't think Miguel and friends are motivated at the prospect of "over throwing the evil empire." Of course you would have to ask them though.

    I don't think this project should be considered a counter attack. It should be considered an advancement in open source and nothing more. Just my opinion

  10. Re:same problem exists with Sun by e_n_d_o · · Score: 4, Insightful

    A bunch of web pages do not constitute a legally binding contract.

    IANAL, but in the case of Sun making these statements regarding open source Java and J2EE implementations, I believe those who make investments (both in time and/or money) do have a fairly solid guarantee that Sun will be held accountable for these statements even if they decide to "go back on their word."

    I'm very curious to know whether these pages could constitute a legal contract. They have consideration, in that Sun receives more developers and more implementations of its frameworks in exchange for more liberal licensing. The pages makes an offer that is accepted by parties developing implementations. The documents are official and exist for the purpose of informing developers of their rights.

    As far as I'm concerned, both Sun and Microsoft are greedy and untrustworthy, and the open source community would be foolish to throw their lot in with either company.

    I don't think any open-source developer in his right mind would "throw their lot in with either company." However, open-source developers are more than willing to support open technologies, even if they are backed by big mean corporations whose executives vacation at retreats where they club baby seals, if they know they are developing on an open platform and they can develop software to provide benefit to themselves and others.

  11. Tell me, where is the innovation? by Otis_INF · · Score: 4, Insightful

    Mono implements a piece of technology offered by Microsoft. There is no innovation there, at least not on the Mono part. Nothing wrong with that, but please, stop briinging the 'innovation' term into the discussion, since Mono is not about innovation.

    It CAN be about innovation by implementing generics into the Mono runtime before MS does this (MS will release the updated 2.0 .NET when Yukon (SQLServer 2003) comes out, late 2003, which will have generics support). However I don't see this happen soon.

    --
    Never underestimate the relief of true separation of Religion and State.
  12. Re:What, no COM support? by Otis_INF · · Score: 3, Insightful

    .NET assembly names match the actual assembly file name. .NET searchs the exe dir and bin sub dir.

    No. You create references to assembly filesnames in your own assembly and with that also a version of the assembly so you can install multiple assemblies with the same filename. I can call my assembly FOO and the assembly file bar.dll. The compiler creates a reference to 'bar.dll' with a certain version. When I start the program with that reference, the CLR will look in the current directory for bar.dll to load the assembly objects I try to instantiate. If bar.dll is missing it will consult the GAC (Global Assembly Cache). If bar.dll is not found there, it's not loaded.


    Mono is designed to be cross platform.

    No. _.NET_ is designed to be cross platform, since the platform a class talks to, uses and consumes is .NET, using the CLR, not the platform where the CLR and the implementation of the .NET api are located on. So running Rotor on FreeBSD will run my C# programs as good as the .NET CLR, as long as the necessary assemblies of the .NET API are there with Rotor. The same goes for Mono.

    Supporting COM in .NET was a wise decision. Leaving it out of Mono will developers limit to use DCOM enabled execution of COM objects on windows servers from Linux servers running Mono. True, this will take a big effort and it might not be a big advantage, but it can be a limit on Mono's acceptance among windows developers. That last part is the main issue here: attrackt windows developers to use Mono on linux instead of .NET on Windows. Your point about supporting CORBA and bonobo is therefor missing the point completely: a windows developer doesn't care about CORBA nor will he do that in the future. He does care about code he already wrote and want to reuse f.e. Can he do that on Linux with Mono? If so, perhaps Mono is an alternative. If not, Mono is nice but not an alternative and the windows programmer will stay where he is: on windows.

    --
    Never underestimate the relief of true separation of Religion and State.
  13. Re:ASP.NET or PHP by Corrado · · Score: 3, Insightful
    Well, having ASP.NET is very convenient to move applications and components from Windows and deploy them on Linux or Unix systems. So I think that this is a plus on its own.


    Do you honestly think that Microsoft will allow this? Sure, they say it's great now, but what about in a couple of years? What are they going to sell?

    Desktops? No, Windows is now just a dumb terminal front end to .Net servers. Might as well use Mozilla & Mono.

    Oh, ok then, they will sell servers. No, all the .Net stuff will run on Linux/Solaris/OS390/etc.

    So, Microsoft wont be selling desktops and they wont be selling servers. That makes sense. What is the angle here? What money making scheme am I missing? Are they holding back on some prime APIs or maybe all the .Net classes are under some patent.
    --
    KangarooBox - We make IT simple!
  14. Love it by GCP · · Score: 3, Insightful

    It is superb technology: a combination of many of the best features of Java, Delphi, C++, and Perl. It doesn't "reek" of anything. (Well, maybe of Java, if you think Java reeks.) Mono will make it possible to use the excellent ISO C# language, the excellent ASP.Net, and the excellent .Net class libraries, without ever leaving the excellent Linux platform or having to use any product from MS.

    On the other hand, if you are less of an ideologue and more practical about technology, Mono makes it "safe" to use MS technologies when they are the best choice, because you don't have to make everything MS. You can order a la carte.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  15. Re:Time for the crackers to come by WWWWolf · · Score: 2, Insightful
    soon we will see the real juice of these new technologies. And, soon, we will see how they can whitstand against serious attacks, exploits and break-ins.

    The strength of the .NET is directly proportional to the strength of the implementation of the .NET. Just because .NET comes on UNIX doesn't mean that all exploits against Microsoft's runtime magically start to work on these platforms - barring, of course, exploits that exploit design flaws in the platform rather than bugs.

    Microsoft may have bugs in their platform that lets it execute arbitrary code - well, that bug likely may not be in Mono runtime. Or, the other way around!

  16. EVERYONE TAKE HEED OF THIS!!! by Anonymous Coward · · Score: 5, Insightful

    This guy is 100% correct.

    I talked to my high school buddy who was a patent attorney, but who quit the business because he hated the whole business of IP law because he was morally against it.

    I asked him what could happen, and theoretically, depending on the strength of the patents, Microsoft could sit back and wait for Mono to be developed, wait until a critical mass of applications gets developed on it, and then start charging royalties to anyone using that technology.

    Unless someone clarifies the legal status of Mono in regards to Microsoft's patents, this is 100% definitely the situation that will occur.

    Think about it, it is exactly what Rambus tried to do with SDRAM. Microsoft is a business and looks to Linux as a major threat. It is a jackpot for Microsoft in two ways:

    1) They get the Open Source schmucks to do their work for them
    2) Once a bunch of businesses have implemented their business on .NET/Mono, Microsoft turns around a sues them for royalties.

    We need to get a legal clarification of Mono before any real development starts occuring. My guess is that it is stepping on a whole shitload of Microsoft patents, and it is the onus of the implementors (ie. Ximian) to make sure that they develop around those patents, or 1) be prepared to try to quash the patents or 2) pay whatever royalties Microsoft charges.

  17. Re:Someone tell me: What's the big deal? by rbolkey · · Score: 2, Insightful

    Well, I'll chime in on ASP.NET a bit. I've been mainly a Java and PHP developer, but have been working with ASP.NET for the past few weeks (I never used ASP).

    From what I can gather, ASP.NET is leaps beyond ASP. It's nearly a completely different creature. First off, it separates presentation and logic layers cleanly. I've generally used PHPLib templates in the past, and the ASP.NET method is very nice (however, presentation is more than just html ... in development, they have their own components with a psuedo event-model ... ie when you click a button it can call a method on the server, but it renders to html when sent to the client).

    Another interesting thing about ASP.NET is that the logic layer is compiled code, which should make it scale infinitely better than ASP (I don't really have the environment to quantify the improvement though).

    One of the reasons I was iffy about ASP was that I don't like VB all that much. But with ASP.NET, I've been using C#, which comes very naturally. It'd take less than a day to be comfortable with C# from a Java background.

    One last caveat though, the VS.NET IDE makes a world of difference, and save a lot of time (I've used emacs for php and java coding in the past). Without the IDE, I don't think I'd be much more productive in .NET than any other environment, and .NET as a framework doesn't really have many features that you can't get elsewhere (tomcat, j2ee, axis). But, it is a quite an impressive architecture nonetheless.

  18. Re:No buffer overruns - offtopic trollfodder by StrawberryFrog · · Score: 2, Insightful
    do keep C out of the story as I didn't brought it up


    *shrug* you started out discussing (in a loose sense of the word) C libraries etc. Go read what you posted. I did, just to check. What I brought up is buffer overruns, as I think it's a most important security topic. Of course you seem to think that the equivalence of code and data is *far* more important. Why? BTW, can you name one major recent exploit in software in the wild that involved this 'flaw' in processor architecture but was not a buffer overrun fo some kind?


    C, Basic, Java or even .NET have nothing to do with the main reason for buffer overflows


    Well, here's the thing. AFAIK, buffer overruns happen a lot in C programs but very seldom if ever in Java, python or .NET programs, and then unsually with the help of C extensions. Coding in these languages would (despite other non-security-related drawbacks) make internet software a lot more secure, as the single most common flaw would be mostly eliminated. The fast that the real machine under the virtual machine is still theoretically vulnerable is true but irrelevant.


    And while we are at it, do you feel that the presnece of mere JNI makes Java as insecure as C? Bear in mind that unmanaged .NET code amounts to the same thing.


    Can you comment on how the .NET and Java virtual machines require that those interested in security study x86 processor architectures? Can you comment on how these virtual machines share this flaw or not?


    Or not, as you don't seem to be making any coherent points anyway.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  19. Re:Someone tell me: What's the big deal? by IPFreely · · Score: 4, Insightful
    Yes, ASP Sucks.
    Yes, People Should be doing new development in something else.

    That said, there are a couple of reasons to support .NET on other platforms via mono::
    1. There is already some old code out there for .NET (hard to imagine with it being so new).
    2. There are plenty of developers who will go ahead and develop in .NET anyway for business reasons or lack of knowledge about other options. That same codebase may not be ported to other platforms by the authors or others, so the only way to get it outside of windows is to move the entire environment out.

    Mono makes it possible (or will eventually make it ppssible) to take complete .NET applications and run them on something other than Windows. This will end the Windows Lock-in factor for a lot of one-platform applications.

    A Lot of business decisions are based on the application software, not the OS platform. The software is chosen first, then the platform is brought in to support it. By making the platform choice wider, businesses can opt for something other than Windows to support their .NET applications.

    The ultimate goal is to simply have all developers develop for something other than windows. But it's a long slow process to change that mindset and technical merit often has an alarmingly low priority in that process.

    --
    There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
  20. WAKE UP by e40 · · Score: 4, Insightful

    From a technical perspective, .NET might be a very nice platform. I'm certaining hearing that it is. The speed with which the Mono team formed and started executing was impressive.

    People, you need to wake up. Stop being technophiles and think. This is Microsoft we are talking about here. They do NOTHING for the benefit of their customers. They do EVERYTHING to gain market share and ensure the domination of their operating system.

    MS is playing "nice" now by not serving legal injunctions based on their patents. Will they continue?

    Let's say some of the people that reply to this post say "The patents are irrelevant blah blah blah blah". OK, fine. Let's say they are. That doesn't even matter, here's why:

    MS defines .NET. Mono copies that design. If Microsoft's patents were not enough to stop people using .NET apps on non-MS platforms, all MS has to do is CHANGE THE DESIGN.

    Remember when OS/2 had win32s compatibility? Remember Microsoft's response? IBM took the win32s distribution from MS and binary mapped it into a valid set of OS/2 libraries and programs. Within a very short period of time, MS released a NEW VERSION OF WIN32S TO BREAK IBM'S USE. Analysis at the time showed that the changes, which were few, were gratuitous and the only conclusion was as I've stated it. I did some googling and this is a good summary.

    If Mono is too successful, this will happen again. "Too successful" means that .NET apps will be TRULY portable, something MS DOES NOT WANT because it makes their platform inconsequential. In fact, if they did not defend their platform, this would be the death of MS.

    Let me put it another way:

    Microsoft is enabling, for the first time in their history, users to write portable programs and that portability could kill or severely damage Microsoft. Microsoft knows that they will be able to prevent this, if need be, and they will only show that card if they need to. After all, no need to give the conspiracy theorists ammo, right?

    1. Re:WAKE UP by Anonymous Coward · · Score: 2, Insightful

      So, Microsoft breaks compatibility at some point. We're no worse off. The compatibility break doesn't kill the usefulness of Mono on the other platforms it runs on.

      OS/2 had a small enough application base that win32s compability was important to its success. Linux and Mac OS X do not, and never have, relied upon Windows compatibility.

      If Microsoft changes their implementation in such a way that it is strongly coupled to the underlying Windows implementation, they'll be divorcing their platform from the developers who've come to depend upon a cross-platform solution. With Linux use undeniably on the rise and anecdotal evidence suggesting that OS X really is causing some Windows defections, that could turn out to be a miscalculation for Microsoft... especially if competitors know how to spin it for all it's worth.

      So I'm not too worried about breakage, OS/2 style.

      That's not to say that I trust Microsoft not to pull some legal rabbit out of their hat to try and subvert Mono... on the contrary, I expect it. They don't need a case they can win, all they need is enough money to bankrupt their opponent with legal fees, and I suspect that Ballmer has that much change in his pocket.

      I've read the assurances on Mono's site, but I've also seen a convicted monopolist get off with a weak hand-slap, so I don't put much faith in "justice" being served by the U.S. legal system...

  21. Re:What a tremendous waste of time by jimmy_dean · · Score: 2, Insightful

    You obviously don't get the point that this Mono initiative is Open Source. .Net and C# are open standards now, Microsoft released it out into the wild. I am not sure if Microsoft hired this guy just to create C# or whether he works as MS full-time, but the creator of Turbo Pascal and Delphi also created C#. It isn't a replacement for C/C++, but instead it serves it's own purpose, and quite well I might add. It is very easy and intuitive to base business components on the .Net structure because that's what it was designed to do from the ground up. I might be a little more leary if Microsoft had never opened up the language to the public to use kind of like Sun with Java. Be open minded about it and take a look at mono, I think you'll be very surprised.

    --
    -> Sometimes, you just gotta break free from the shackles of proprietary code.
  22. Haskell.. by 198348726583297634 · · Score: 3, Insightful

    Just so people know, there's been much concern that the CLS will take languages that are paradigmatically different from the C/C++/C# family of langauges (like Haskell, which is a functional language) and strip away the syntax that makes them powerful in their own way (closures, continuations) until they're basically C/C++/C#, differing in syntax only.

    At which point, the CLS would no longer be a good thing.

  23. Re:No, read on to know why: by pVoid · · Score: 3, Insightful
    First off:

    To me this sounds like you really do not understand

    Be good. Instead of trying to win the argument by accusation, try to see what I'm talking about.

    C++ is a strongly typed language. Yet it can be horribly prone to errors.

    COM is *not* a source of security leaks. That's like saying DLLs and EXEs are a source of security leaks. Destroy them.

    As I said earlier in anther post, all of what you mentionned above could have been achieved by simply enhancing/creating the two languages you mentionned: C#, VB. VB up till now didn't support proper object orientation. And it's compiler was pretty much crap (internals weren't thread safe etc.etc.etc)...

    All the new Good Things (tm) you are talking about here have already been done with Java. Why not just use Java then?

    And this comes back to a secular war between Java and C++ people. About how some people defend their right to use C++, which has templates, and some other people don't know what templates are and say C++ is a hack job.

    Whatever your choice, you have to respect the others too... and saying "well, sorry, STL is gone, and templates supports are gone... because now you have an object model for your entire API" isn't gonna cut it for me.

    What I mean by the kick in the balls towards IIS style security: it's quite a simple engineering concept really... the more complex your system, the easier for there to be bugs, flaws. It's that simple.

    COM, is in it's essence, as broad and neutral a specification as PE, or ELF. It basically defines binary entry points in a binary file, defines method calling conventions, and memory allocation conventions through those method calls.

    Last of all, if you've used ATL, and do not realize what a beautifuly useful library it is, I don't think we should be talking here... Have a good time using your .NET objects that you created via UltraEdit.

  24. Re:No, read on to know why: by Ayende+Rahien · · Score: 3, Insightful

    > Let me start by saying that programming COM objects is the most retarted way of programming functionality. True, using VB or Delphi, it is easy, but using f.e. C++, it's not. Read Don Box' book Essential COM to see what I mean.

    No, it's not.
    First off, COM is a great way to combine parts of programs together. And if you want to have COM in C++, yes, you've to do quite a bit yourself, because in C++ you *don't* have things done under-the-scenes for you.

    COM itself is quite simple, IUknown and nothing much beside it. The interfaces are complex, because you do quite a lot with them, and with combinations of them.
    That is why you can have a lot of stuff automated for you by librarys, ATL is a good example, but certainly not the only one.

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?