[Mono-osx] Basic Mono Question
Grant Young
gyoung at wwf.org.au
Tue Jun 28 19:33:48 EDT 2005
Hi Nik.
There doesn't seem to be a lot of activity on this list related to
ASP.NET - most posts seem focussed on System.Window.Forms and Cocoa#.
I'm not sure how many people on the list are working on ASP.NET on Mac
OS X. Perhaps they're all lurkers like you and me ;)
> 1. If I understand correctly, there was a problem with a web server
> component of mono (was it mod_mono?)
Afaik, mod_mono still doesn't work on Mac OS X. The lightweight XSP web
server does now work (there were issues with earlier mono versions, but
since 1.1.6 I haven't had any issues). XSP is not really suitable as a
live production server.
XSP also has some quirks that might affect your projects (for example,
all media types are affected with forms authentication security, meaning
that referenced external CSS, Javascript, and images etc. are not
permitted to be viewed on login pages etc. This is different to most
server setups (such as IIS, Apache) where, unless you configure them
otherwise, they will only apply forms authentication to the aspx pages.
> 2. I have a live web server, that is currently running on Windows
> 2000. On it, I have a few sites written in C#. Most of the code is
> compiled into dlls and user cotrols. They don't do anything amazing,
> just regular dynamic fare. How big are my chances, that these sites
> will function 1:1 on a Linux server running mono?
Theoretically dlls compiled on Windows should just work (and I have
success with such). One thing to be sure of though is using only
release dlls (not debug) as I have heard reports of problems with debug
dlls under mono.
I have run into various issues with running ASP.NET mono - some quite
basic (like setting the DataSource property on a DropDownList control
throwing a runtime exception) - some not so basic (HttpModules not being
correctly applied and URL rewrites failing unless you use a specific
overload). Some of these issues have been fixed in later releases - the
only way to know for sure is to test.
Also, I've had major problems getting charting components to work. Some
of the issues were related to unimplemented members in System.Drawing,
others just hang with no exception to work from. The specific
components I've tried are ZedGraph
(http://www.codeproject.com/csharp/ZedGraph.asp) and WebChart
(http://www.carlosag.net/Tools/WebChart/Default.aspx).
You will also run into issues with any code that references the file
system - for obvious reasons (paths and the path delimiter will be
different).
Just a bit of warning too - if you use the MySql Connector .NET
(http://dev.mysql.com/downloads/connector/net/1.0.html) - we've had some
major issues with this as well (again these may have been fixed).
Although this is not directly mono related, it is relevant as often mono
is used in conjunction with MySql. I've had most success with the, now
deprecated, ByteFX.Data dll (which is bundled with Mono).
All that said - I have successfully built a basic web application that
uses web controls, html controls, page inheritance, MySQL database
access, XML parsing, HttpModules, and forms authentication. The
problems listed above, along with the lack of an IDE and visual
debugger, did cause me headaches though. And the charting component
issues meant that I ultimately had to host on a win32 box (using code
compiled in mono on mac os x).
If you use NAnt or NUnit tests you may also run into issues.
> 3. Is there a basic tutorial for installing Mono + whatever else it
> takes to get going with asp.net on Mac OSX somewhere on the net?
I'm not aware of any step-by-step "getting ASP.NET on Mac OS X working"
kind of tutorials.
Getting mono onto Mac OS X is literally as simple as using the installer
on the Mono download pages. You will have to compile XSP from source -
the source is also on the downloads page. This will require that you
have the Mac OS developer tools installed. There used to be a note on
the wiki about installing XSP, but I can't seem to find it anymore.
> 4. Once mono is installed on Mac OSX, how can I compile dlls of .cs
> code files?
Yes. Theoretically. As you have probably determined from the above
your mileage may vary depending on the areas of the framework that you
require.
I would also recommend using NAnt to compile things as this takes a lot
of the pain away. There are very few IDEs that support Mono on Mac OS
X, so NAnt is probably a must anyway.
HTH. Grant
More information about the Mono-osx
mailing list