Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Announcements

Mono Ships ASP.NET server 407

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). "
This discussion has been archived. No new comments can be posted.

Mono Ships ASP.NET server

Comments Filter:
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @02:46AM (#4852021) Homepage
    People are working hard to get Windows.Forms to work. We initially planned to have a Gtk backend, but turns out that Windows.Forms sadly exposes bits from the Win32 API that would be very hard to emulate (or at least terribly painful to debug).

    The major problem is the Control.Wndproc method which effectively allows any control to hook up to the Windows message system. This is not a problem for most applications, but many special "effects" in widgets are created by hooking up here and processing the messages here.

    To avoid emulating Win32 ourselves, we chose to use WineLib as the foundation for implementing Windows.Forms. Later to match the native look of the linux desktop we will provide the Wine team with patches to use the Gtk rendering engine on Unix and the Cocoa rendering engine on MacOS.

    Far from ideal, but its the only way we can guarantee good portability with minimal pain to the developers.

    There is now a new momentum to get this work moving, and given that it is possible today to test the various controls in Windows against the real implementation, you do not have to fight the incomplete Windows.Forms code before testing your code.

    More details: http://www.go-mono.com/winforms.html (for the Windows.Forms plans and mailing lists)

    Miguel
  • by MAXOMENOS ( 9802 ) <mike&mikesmithfororegon,com> on Tuesday December 10, 2002 @02:51AM (#4852045) Homepage
    ...is that this version of Mono also comes with Mono Basic. Just like VB.NET, only Free-as-in-Speech.

    It doesn't sound like much, but for porting a lot of business logic to Linux, this is a potentially huge development.

    Another thing that's needed to get this project up to par with MS .NET is an IDE. Fortunately, the SharpDevelop [icsharpcode.net] folks are working on that...

    So far this project has been very impressive. Kudos to the Ximian folx.

  • by miguel ( 7116 ) on Tuesday December 10, 2002 @02:51AM (#4852050) Homepage
    Mono today works on LinuxPPC in interpreted mode, but does not work on MacOS X since the calling conventions are not the same.

    We started work three months ago on a new JIT engine whose main aim was portability (although the current JIT can be ported, most optimizations and coarse-opcodes had to be reimplemented over and over). The new JIT engine design has two intermediate level representations: a higher level one, and a low-level that can be as precise as required for a target CPU. The funny thing is that the new JIT is actually faster JITing code than the current JIT even with the added layer.

    The lower-level layer is actually something we are very proud of, Paolo architected a register allocator and instruction scheduler at the same stage, and we are using the PowerPC on MacOS X as the second platform to target to guarantee this time that the JIT is actually easy to port.

    We are hoping to release the new JIT engine in February/March.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @02:59AM (#4852082) Homepage
    An old version of the VB compiler is included in the release, but we did not have time to integrate the new VB compiler patches from Marco, but hopefully those will make it into the next release. There are screenshots of it in windows [sourceforge.net] and with Gtk# [go-mono.com].

    SharpDevelop does require Windows.Forms, if you are interested in getting this superb development environment running on Linux with Mono (it includes Intellisense), you could help with the Windows.Forms porting effort [go-mono.com]

    Miguel.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @03:17AM (#4852172) Homepage
    Software developed with Gtk# will run on Windows, you only need to install Gtk# in Windows as well .

    (I heard today on the irc channel for mono (irc.gnome.org, channel #mono) that the upcoming 0.6 release of Gtk# will distribute all the files you need for running on Windows as well).
  • IANAL, but don't you lose your rights to a patent if you don't aggressively defend it?

    No. You're thinking of trademarks. If you let a trademark get diluted in the marketplace, your claim to that trademark grows weaker, or even goes away entirely. Patents don't work like that.
  • Hidden message here (Score:3, Informative)

    by darkwiz ( 114416 ) on Tuesday December 10, 2002 @03:32AM (#4852239)
    Not to detract from Miguel and the Mono team here, but I can't help but think that there has to be a hidden message in the image he used for a screen shot... I can't quite put my finger on it...

    Oh well <whistles>
  • Re:ASP.NET or PHP (Score:5, Informative)

    by miguel ( 7116 ) on Tuesday December 10, 2002 @03:40AM (#4852268) Homepage
    The "contract" for language interoperability is called the Common Language Specification [microsoft.com] (CLS) and furthermore, languages are divided in CLS producers, consumers and consumer/producers.

    You can think of the "CLS" as a richer contract than say the CORBA IDL or the COM IDL: they define APIs. Now on top there is a virtual machine that allows you to run either native code or "CIL" code that executes on the common runtime [www.ecma.ch].

    There are plenty of CIL compilers (C, C++, C#, JavaScript, Fortran, Cobol, Eiffel, Ada, VB, Haskell) that can produce/consume CLS code.

    It is great if your language can produce and consume CLS classes, but its also good it it can consume them, because then a large body of code is available to you.

    Miguel.
  • by TummyX ( 84871 ) on Tuesday December 10, 2002 @03:52AM (#4852308)

    Please explain your point of view, because I just can't understand why people are running away from COM as if it were the plague


    Um. Because .NET is simply a better environement for writing componentised apps.

    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.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @03:55AM (#4852327) Homepage
    I am going to try.

    The .NET Framework is actually a new platform for software development, and incorporates many ideas that have been floating around before.

    The .NET Framework includes basically three components: programming languages, a common language runtime and a set of class libraries for acomplishing various kinds of tasks.

    The framework was designed so multiple programming languages could share the same set of class libraries with minimal effort, and also to allow a large set of programming languages to work together rather than having each one create its own "micro platform".

    Now, the .NET Framework offers a couple of ways of doing distributed computing with RPC calls: one is called the Remoting framework and the other one is called Web Services (its not exactly like this, but for now this will work).

    Remoting is the closest thing to a CORBA replacement, but its not a great replacement. I personally like CORBA more for plenty of reasons that I hope one day I will write down.

    Web Services is the "in" thing to do today, so the .NET Framework has some tools as well for making it easy for developers to write client and server applications using the web services protocols.

    Another things that .NET does is it simplifies the development of COM components and the use of COM components (there is plenty of literature on this subject on msdn.microsoft.com).

    Most COM developers I have talked to claim that .NET makes them more productive. You wont loose a lot by trying it out, you can always go back to your current tool set if you do not like .NET.

    Miguel
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @04:01AM (#4852342) Homepage
    Yes, I can explain.

    The menu reorganization was actually something that we took quite seriously. The issue that we were facing was that the contents of the menus on the default configuration of Gnome was hard to use, and the organization was the remainings of the work that had been done many years before.

    So we actually conducted usability tests on real users to try out Gnome, and perform a number of tasks. We observed them, we interviewed them, and we made changes to the software to reflect the needs of users.

    Our intention is to allow Linux to be used as a desktop solution.

    We tried our best to make it easy for newcomers, and am sorry to hear that you disagree. But at least you could use this experience to advise new users: depending on their needs maybe Ximian is right for them, or maybe not.

    Anyways, you can file a bug report against the problems that you found on bugzilla.ximian.com, they might be worth following up.

    Miguel.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @04:06AM (#4852362) Homepage
    No, it means that some of the dependency libraries (Gtk in this case) are native applications an not CIL applications, so you need to have the .so files in Linux compiled with C or the .dll files in Windows compiled with C.
  • by pVoid ( 607584 ) on Tuesday December 10, 2002 @04:23AM (#4852410)
    So can you explain to me the mechanics behind the 'self registration' that .NET promotes?

    Aside from that, CoCreateInstance might in a windows implementation look up the registry... but it might in a linux implementation look up a flat file, and on a BSD imp look in a sql db... it wouldn't change the behaviour of CoCreateInstance... And so, CoCreateInstance as a definition is not tied to any specific platform.

  • by jpmorgan ( 517966 ) on Tuesday December 10, 2002 @04:58AM (#4852539) Homepage
    ASP.NET is fundamentally a pretty different (and much more advanced) technology than ASP.
  • by g4dget ( 579145 ) on Tuesday December 10, 2002 @05:05AM (#4852562)
    All the Microsoft patents that have been identified as relating to C#/CLR so far are irrelevant. For example, the patent you reference has no bearing on the Mono project; if it applies to anything, it applies as much to Java and C++ programs.

    Sun's patents, if anything, look much more worrisome. For example, patent 6,477,702 [uspto.gov] patents the basic Java bytecode architecture and can be used by Sun to shut down any competing implementation. Furthermore, despite lots of cheery announcements, there is no indication that Sun has made a legally binding commitment to license this patent freely for open source implementations, let alone competing commercial implementations. The way it looks to me is that Sun is just stringing the community along with promises, and they will change their tune when they feel that they have established a secure enough market position. Sun has broken lots of Java-related promises; they are not to be trusted either.

  • by gunga ( 227260 ) on Tuesday December 10, 2002 @05:15AM (#4852604)
    You could start here:
    Oreilly Network ONDotNet [ondotnet.com]
  • by Otis_INF ( 130595 ) on Tuesday December 10, 2002 @05:22AM (#4852625) Homepage
    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.

    COM as a functionality is great, but it should have been more transparent for the developer, like VB did this: you just program classes and hey, check it out, they're COM objects now!. Using Visual Studio, creating COM objects was (at least using ATL) a bit painless, but don't try it using f.e. UltraEdit32 and no helper library.


    So if I understand you correctly, .NET is kind of like the enhancement of what automation was set out to be: a common way for any COM object abiding to automation rules and specifications to be able to use the environment (such as data, variables etc) of the application without doing 'marshalling conversions' when switching between languages? (for example: using variants and safe arrays to access data both in C++ and VB).

    No. .NET is the replacement for the VB runtime for VB programmers, the C(++) Runtime / STL / Win32 lib for C/C++ programmers etc. It's the general target platform for _ALL_ CLS compliant languages (C#, VB.NET, J#, JSCript.net etc. C++ is partly CLS compliant, if you want to use templates or multiple inheritance, you can't).

    The multi-language part is not a result of 'making it a better marshaller' or better 'automation platform', but simply a result because now all languages have the same API, the same functionality on board: it doesn't matter which language you pick, you can target the same API and use the same cool functions with ease in VB.NET as you can in C++.NET.

    As a result of this, the code you compile will run in a VM. This VM, the CLR, is the heart of .NET. The objects you create, run inside application domains, which is totally different than COM objects do, in relation to the SCM.

    Webservices is a term for a piece of 'logic' as I call it. Functionality. It's not 1:1 projectable on a piece of code, like 'that class can serve as the base class for all webservices'. This is due to the fact that a webservice, when you use SOAP f.e., depends on a lot of tiny building blocks to do whatever it should do. That's why it couldn't be another Interface. (I also doubt what that would have brought to the plate, you can create webservices using the new ATL extensions and using plain C++, thus not .NET, but its harder). Webservices is not a 'part' of .NET, you can build webservices WITH .NET. That's a different thing!

    About the productivity: Now people can use a language that suits their needs and preferences (f.e. I prefer C# over VB.NET, while I've developer a lot of COM objects for n-tier systems in VB) and use a much richer API than they ever could. It doesn't depend on MS' tools. Sure the new VS.net is great, but the rich .NET api is the key of its success. Add to that the wonderful ASP.NET functionality (which is really years ahead of anything else) and the very good documentation of the API and you're set.

    Also I don't see your kick in the balls towards IIS style security. To me this sounds like you really do not understand 1) the power of the strong typing inside .NET and the amazing security featureset available to a developer and 2) that COM IS one of the causes of security leaks and DDos attack possibilities, simply because people forgot to use smartpointers and kept memory nonfreed. This is over now.
  • Re:mono on windows95 (Score:2, Informative)

    by TummyX ( 84871 ) on Tuesday December 10, 2002 @05:40AM (#4852669)

    and one further note - about 'pure' .net applications (ones that don't call the win32 api and are thus potentially more portable) - the inability to do any multimedia stuff (even a simple beep) without resorting to win32 calls, makes it pretty much impossible for any reasonably large application :).


    Not necessarily true. You can make 'purer' .NET applications by doing P/Invoke calls to cross platform C apis instead of Win32 APIs.

    For example, if you use SDL instead of DirectSound your .NET application will run on Unix and Windows. .NET makes it easy to access traditionall DLLs with P/Invoke but that doesn't mean they have to be Win32 DLLs :).
  • Chilisoft (Score:2, Informative)

    by Epeeist ( 2682 ) on Tuesday December 10, 2002 @07:15AM (#4853073) Homepage
    You can use ASP pages on UNIX now if your really want to. Just look up Chilisoft on Google to see how.
  • by thasmudyan ( 460603 ) <thasmudyan@o[ ]fu.com ['pen' in gap]> on Tuesday December 10, 2002 @07:34AM (#4853121)
    Yes Mono itself also works on Windows! You can even use the compiler without Cygwin or other supporting environment stuff. There is even a Windows binary release available although it's a bit outdated. And compared to the .NET runtime it's a very small package to download (yet, Mono isn't complete). Only thing that's preventing true "crossplatform" GUI development on Mono is windows.forms, the ability to use the native Windows windowing objects and classes.
  • Re:.NET vs COM/COM+ (Score:5, Informative)

    by Glorat ( 414139 ) on Tuesday December 10, 2002 @09:36AM (#4853642)
    A very succinct explanation I got while on a .NET training course was that .NET reversed something that Microsoft got wrong:

    COM: A very lightweight wrapper for intra-machine communication. Low overhead and fast. Forces programmer to handle all other issues like memory management, implementing interfaces etc. etc.

    COM+: A heavyweight framework for inter-machine (remote) execution. Tries to do all things and as such suffers from being ghastly to set up and use

    In short
    COM: Light for local machine execution
    COM+: Heavy for remote execution

    Microsoft decided they got this completely wrong and have reversed it

    dotNET local machine: Uses a CLR and common type system. This handles all memory management etc. etc. inside a virtual machine making things easy for the coder (with overhead of course)

    dotNET remoting: Has become very lightweight. You just send XML soap messages over TCP. That's light and that's also what web services are based on. Can you imagine even considering web servicse with COM+ ?

    So that's what they've changed in terms of COM/COM+. Having used it, I'm glad I never have to touch COM+ again and I'm glad that Microsoft have realised that a java style CLR/VM works well for general programming
  • Re:Yay Mono team (Score:5, Informative)

    by jaavaaguru ( 261551 ) on Tuesday December 10, 2002 @10:15AM (#4853973) Homepage
    If we can get a better "forms" implementation on 'nix (windows-like without windows bugs), that would be awesome

    GTK+'s "forms implementation" is more advanced than Windows's. When you design a form, you can specify the size of cetain controls, and let GTK work out the sizes of other controls automatically on the fly. This gets round the problem that you see on Windows where if someone changes their display preferences to use "Large fonts", some text doesn't fit within the fixed sized label that the form has. With the GTK model, the label and other controls around it would resize automatically so the text fits in perfectly.

    Also, you can specify how controls on a form should be a aligned, and the alignment it handled by GTK, so you don't have to place controls on the exact pixel you want them to appear on (which is related the the previous problem). Yes, I know you can "snap to grid", but that still messes up with non-standard sized controls and in the scenario mentioned above with large fonts. I could just say "It's similar to the way Java handles GUI design", but I'd see all the Windows GUI designers respond with "but Java's UI looks horrible". On a system running only Gnome or similar, GTK is what all programs use, so they all look the same - none of this horrible inconsistency you see on Windows. GTK handles the themes or skins, so if the user doesn't like the look of your app, they can change the theme, and all apps still look the same as eachother. I know XP can do that, but dev tools on XP won't let you design a form in a GUI point 'n' click environment that follows GTK's ideas of automatically placing and aligning controls on the fly.

    As someone who's spent a bit of time creating programs with user interfaces in MFC, Java and GTK, that is my opinion. Now, do you still think that Windows has a better "forms implementation" ?
  • by bwt ( 68845 ) on Tuesday December 10, 2002 @10:53AM (#4854297)
    * A bunch of web pages do not constitute a legally binding contract.

    That is certainly true. A contract is a quid-pro-quot between two parties where each side assents to give up some form of consideration to the other.

    On the other hand, patents and copyrights do not require a contract to use -- they only require a licence. A licence is a unilateral grant of permission. Any unambiguous statement granting permission suffices, so while you are correct that their grant is not a contract, it is a licence and your point is offbase.
  • Laches (Score:2, Informative)

    by yerricde ( 125198 ) on Tuesday December 10, 2002 @11:35AM (#4854658) Homepage Journal

    If you let a trademark get diluted in the marketplace, your claim to that trademark grows weaker, or even goes away entirely. Patents don't work like that.

    It works for patents as well, just not as strongly. Look up the laches doctrine [google.com] and see how it applies to patent infringement lawsuits [google.com]. Quick summary (IANAL): If Alice harms Bob in delaying legal action for an infringement, then Alice loses the right to collect damages for infringements that happened before she filed the lawsuit.

  • Re:Worth the risk (Score:3, Informative)

    by twistedemotions ( 231376 ) on Tuesday December 10, 2002 @12:13PM (#4854973)
    *cough* *cough* BS!

    C# will be and ISO standard. To be published shortly:

    ISO/IEC 23270 (C#)
    ISO/IEC 23271 (CLI)
    ISO/IEC 23272 (CLI TR)

    "In late December, 2001, ECMA submitted the standards and TR to ISO/IEC JTC 1 via the latter's Fast-Track process. The subsequent 6-month evaluation and comment period resulted in two NO votes (Japan and UK) on the draft standards, and one NO vote (Japan) on the draft TR. All comments resulting from this review were considered at a ballot resolution meeting held in October, 2002. The two NO votes on the standards were resolved, making acceptance unanimous. However, Japan did not change its NO vote on the draft TR (Japan would like to see a formatted/readable rendering of the CLI class library as part of the standard, not as a TR; this will be considered for a future edition).

    The ISO/IEC standards and TR will be published in December, 2002, and will be known formally as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR). Equivalent specifications will be adopted as 2nd edition standards and TR by ECMA at its December, 2002, General Assembly."

    The full story is here [microsoft.com].
  • Re:WAKE UP (Score:1, Informative)

    by Anonymous Coward on Tuesday December 10, 2002 @01:18PM (#4855279)
    You have to understand that WinOS2 was a really really ugly hack.

    It basically inserted JMPs to OS/2 shims at specific hard-coded memory addresses that IBM had deduced by looking at the Win 3.1 source code.

    It worked for a while becuase the base Win3.1 system went updated for several years. However any update anywhere would break WinOS2. That's exactly what happened with the Win32s thing.

    And the whole "above 512MB" thing is really pathetic. OS/2 fell on it's ass there because IBM never made it fully 32-bit (which would give 2GB of address space), not because MS is Evil.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @03:53PM (#4856691) Homepage
    You will be glad to know that we are busily working on a version of Gnome2, but since Gnome2 is very good on its own, we wanted to make sure that there was a reason for people to upgrade to Ximian's version, so we are spending quite some time in addressing the needs from our users.

    The wait will be worth it. I can not talk about release dates. I can tell you that a number of previews has been sent to alpha testers for evaluation, and we will have to incorporate their feedback before we are ready to release the new version.

    Now the right person to talk about these things is Nat Friedman who is in charge of the desktop work. He has quite a few new tricks for the new release, but I wont spoil his debuting new desktop here ;-)

    miguel.
  • by miguel ( 7116 ) on Tuesday December 10, 2002 @04:15PM (#4856910) Homepage
    It is not an alternative to Chillisoft ASP, it is more of a complement.

    Chillisoft ASP implements the old ASP system for Unix systems. ASP.NET is radically different from ASP, pretty much the only thing they share is the name and the fact that they are web-related technologies.

    ASP.NET was originally a project inside Microsoft by a few guys that wanted to do ASP-like systems "right", and they called this system XSP. Later marketing came and figured `The right name for this technology is to reuse the old name, and stick a .NET at the end'. So they did.

    So if you have systems that you want to move to Unix/Linux that currently use ASP, you will go for Chillisoft. If you have systems that you want to move to Linux/Unix that use ASP.NET you go with Mono.

    ASP developers do have to learn this new technology, as it has almost no relationship with the old platform.

    Miguel.

UNIX is hot. It's more than hot. It's steaming. It's quicksilver lightning with a laserbeam kicker. -- Michael Jay Tucker

Working...