One more thing. I am all for using mono to embrace .Net
and c#. I believe we should take this opportunity to
"embrace and extend" .net and c#. We should add features to
.net and to c# to make it better, faster and more useful for
the world at large. We should make these features available via
GPL. What better way to take away Microsoft market share than by
using their own tactics against them. Plus if we add features
we can be sure they really do work in cross-browser/platforms,
and they are …
[View More]the features that we really want and are useful.
[View Less]
> -----Original Message-----
> From: Charles, Joshua Micah (UMKC-Student)
>
> ... of the two I've seen more professional C# code than I
> have PHP. I should probably take a look at these two projects and see
> if there are any organizations tricks I can pickup from them.
Well this would make sense since there are likely many many more people
coding for Windows than Linux and PHP is probably more used by Linux/Unix people
than Windows people.
> Another thing is that C# …
[View More]doesn't force any specific organizational
> scheme; it just provides more mechanisms to do so. This is probably a
> by-product of being compiled however.
>
> Although I've heard you can compile PHP as well; I've never had any
> experience with it.
Be careful there, it is my understanding that C# is compiled to bytecode.
This is like calling java a compiled language. When I think compiled, I think
c, Pascal, COBOL, assembly, etc. Compiling to bytecode certainly has advantages, but it is still interpreted. The nice thing about compiling to
byte code is being able to transfer "compiled" code across platforms. You
still need to have interpreters compiled to the machine code for every platform.
<tangent>
Also a byte code compiled language may or may not be as fast
an "interpreted" language. Also different programs may perform differently
based on coding style. Long ago on a planet far, far away, I wrote an interpreted VB program that ran faster than a compiled c program. This was a proof of concept demonstration, and I would never put such an app into a live system. It was what you might call extreme code reuse (it had 1 text box that pretended to 50, the c program actually had 50 text boxes). It was a real ugly VB program.
</tangent>
[View Less]
>Well it is really up to the developer to compartmentalize the code.
That is
>what we get paid the big bucks for. As far as scaling, take a look at
>squirrelmail and phpgedview. Both of these PHP apps are quite
professional >and phpGedView is considered the best genealogy web
viewing app on the >"market". They are around 8 and 4 MB of code
respectively and are quite >well compartmentalized if you ask me. I have
done some tweaking to the code >on phpGedView on my site, and …
[View More]have not
had any problem understanding the >organization of the developer. In
fact the hardest programs I have ever had >to debug and understand were
those that were "compartmentalized" by a >program for the developer
rather than by the developer. So, I consider a
>language that predefines where to compartmentalize things to be a
downside.
>To each their own though.
Oh I agree. All I was speaking for was my personal experience, which
was that C# is easier to organize that PHP. Both languages I learned
from books, and of the two I've seen more professional C# code than I
have PHP. I should probably take a look at these two projects and see
if there are any organizations tricks I can pickup from them.
Another thing is that C# doesn't force any specific organizational
scheme; it just provides more mechanisms to do so. This is probably a
by-product of being compiled however.
Although I've heard you can compile PHP as well; I've never had any
experience with it.
[View Less]
>I haven't tried ASP.NET yet. Did Mono write their own implementation of
the
>ASP library that you build the assembly against or are you supposed to
use
>the ASP.NET libraries from a Windows platform?
They've reimplementation their own libraries. Like from the original
post, if you want to try to run ASP.NET applications on Linux, monoForge
is the place to go. I was also successful in getting it to run on my
local development machine, but it was a pain.
I do think it's possible …
[View More]to just copy the Microsoft assemblies over, but
I'm not sure of the legality of the whole thing. Also, Microsoft has
been known to take shortcuts in their framework and merely wrap their
.Net libraries around the old COM libraries. I'm not sure if any of the
ASP.NET libraries would have this problem, but the System.Data libraries
might. These would not run on Linux, of course. Mono has done this to a
limited equivalent extent on Linux, but always with the plans to
implement a completely managed version in the future.
Mono has implemented or is working on implementing two different stacks
of libraries. The first is the complete Microsoft stack, and the second
is their own stack (GTK# etc.). For a while, they were not planning on
implementing the Web Services stack, but then a company paid them to do
so, so now that's possible on Mono now as well. I'm not sure if there
are other similar situations.
Josh
[View Less]
> -----Original Message-----
> From: Charles, Joshua Micah (UMKC-Student)
>
>
> ... It's been my experience that php doesn't scale up to larger projects
> very well when compared to .Net/C#. It quickly becomes an
> organizational nightmare. With C# and .NET(which includes
> mono), it is very easy to compartmentalize your code any number of ways. For
> example, put you entire data access layer in one assembly( shared
> library), you business objects into …
[View More]another, security and
> permissions in
> another, etc. etc. You can use a different namespace for each one to
> make your code more readable. And namespaces can be shared across
> assemblies.
>
Well it is really up to the developer to compartmentalize the code. That is
what we get paid the big bucks for. As far as scaling, take a look at squirrelmail and
phpgedview. Both of these PHP apps are quite professional and phpGedView is
considered the best genealogy web viewing app on the "market". They are around
8 and 4 MB of code respectively and are quite well compartmentalized if you ask me.
I have done some tweaking to the code on phpGedView on my site, and have not had
any problem understanding the organization of the developer. In fact the hardest
programs I have ever had to debug and understand were those that were "compartmentalized"
by a program for the developer rather than by the developer. So, I consider a
language that predefines where to compartmentalize things to be a downside.
To each their own though.
I'm not saying that PHP is a magic bullet. I just like things that I can display
on my browser at home and in the office and not have strange things happen. Something
I notice happens quite frequently with .Net.
JMHO,
Brian
[View Less]
>Also, just for kicks, try compiling your code
>with monoc. The resulting assemblies might be more... agnostic.
I did forget to mention this. If you are building a solution with
visual studio, it is a good idea to recompile the solution with the mono
compiler. The way build numbers are used in visual studio sometimes
messes up the mono runtime, and compiling on mono eliminates this issue.
This also demonstrates one of the real strengths of .NET / Mono. It is
fun to write an …
[View More]application in C# on either Linux or windows, and
compile it, then copy the executable over and run it on the other
platform. Or just copy the source code over and compile it on the other
platform, and then copy it back and run it. Or any other combination
you choose.
This isn't limited to Web applications either. Command line based
applications work the same way. Applications using the Windows.Forms
library will run, although you may run into problems, I'm not sure.
Mono was depending on wine to correctly display the windows.forms
controls, but now they are implementing a completely managed
implementation. The gtk bindings (GTK#) runs on Windows, Linux, and Mac
OSX. So now you can write applications that run on all three platforms
*without* recompiling.
But what about dependencies?
In both the .Net framework and the Mono Framework, any custom libraries
you depend on can either be loaded into the GAC (Global Assembly Cache)
or merely reside in the same directory as the executable. Or any other
predefined location. Come to think of it, you could probably define
this location at runtime using Reflection...
But now I've wandered a bit from the originally reply (Sorry Jason).
Josh
[View Less]
>>|Well, with ASP and PHP, you can generate all the HTML manually, so
you >>can control how closely to
>Can is the operative word here. How many actually do?
My point was that this is a developer issue, not a language issue.
>| The biggest advantage ASP.NET has over classic ASP and PHP is the
ideas of Code-Behind, where you
>| have a clean separation of your code and the presentation code. You
have to do quite a bit to
>| approach this in PHP or ASP. Also, managed …
[View More]post backs / page states
are quite nice.
>The question we should be asking here is why is this necessary?
>I'm not an advanced PHP coder (something I hope to fix soon) so I
really >can't speak to
>how easy it would be to do.
The biggest advantage I've seen is in maintenance. These make your
program a lot easier and cleaner to maintain.
>Well I guess that depends on what you think a webscripting language
should >do.
True. For extremely small projects, I would say that php is just fine.
Larger projects require something more, I think.
>How do you figure the .Net debugger is cheaper than the PHP debugger? I
>don't use a PHP debugger,
>at least not yet. So I'm completely ignorant of costs. But if there is
a >cost difference, it is
>most likely only there so Microsoft can kill off all competition to
.Net so >they can start
>charging through the nose for the .Net debugger. Typical M$ attack
pattern >(ref: Sun Tzu's Art of War :: Microsoft Press).
I was comparing Visual C# Standard ($109 US) to the Zend Studio ($249
US). Both include debuggers. Although, technically, The Zend Studio
debugger has problems because it can't connect to the database backend.
>Overloading functions is taken from c/c++. Something that could be done
>most likely with java code.
My point was that you can do this using ASP.NET / C# and you can't in
PHP. Not sure about PHP 5 though. Overloading Constructors can be very
helpful sometimes. C# also has cool things like delegates, templates /
generics (in version 2.0) and a larger framework that is easily
extensible.
It's been my experience that php doesn't scale up to larger projects
very well when compared to .Net/C#. It quickly becomes an
organizational nightmare. With C# and .NET(which includes mono), it is
very easy to compartmentalize your code any number of ways. For
example, put you entire data access layer in one assembly( shared
library), you business objects into another, security and permissions in
another, etc. etc. You can use a different namespace for each one to
make your code more readable. And namespaces can be shared across
assemblies.
[View Less]
Of course! The Abacus was probably around during Sun Tzu's time.
For the low, low price of $19.95 I can sell you the Sucaba computer. It runs off of kinetic energy and is self-charging. It is environmentally friendly and will not put nasty lead back into the environment when it is recycled. It's user viewing interface is easy on the eyes and the keyboard is designed to reduce RSI. It's lighter than the average laptop and more durable. Compute like the ancients, get a Sucaba today!!
…
[View More]Brian Kelsay
>>> Gerald Combs <> 02/16/05 01:25PM >>>
Jason Clinton wrote:
> On Wednesday 16 February 2005 10:49, Brian Densmore wrote:
>
>>Tzu's Art of War :: Microsoft Press). Overloading functions is taken from
>>c/c++. Something that could be done most likely with java code.
>
>
> Actually I believe it comes from LISP or possibly Smalltalk or its predecessor
> Simula.
Next you'll be telling us that there were personal computers before the
IBM PC. Sheesh.
[View Less]
|-----Original Message-----
|From: Charles, Joshua Micah (UMKC-Student) [mailto:jmcqk6@umkc.edu]
|Sent: Wednesday, February 16, 2005 9:57 AM
|To: Brian Densmore; kclug(a)kclug.org
|Subject: RE: Test Hosting Recommendation
|
|
|Well, with ASP and PHP, you can generate all the HTML manually, so you can control how closely to
Can is the operative word here. How many actually do?
|
| Correct me if I'm wrong, but isn't the cross browser experience pretty good for XHTML (Strict)
| pages?
Don't …
[View More]know, haven't tested it.
|
| The biggest advantage ASP.NET has over classic ASP and PHP is the ideas of Code-Behind, where you
| have a clean separation of your code and the presentation code. You have to do quite a bit to
| approach this in PHP or ASP. Also, managed post backs / page states are quite nice.
The question we should be asking here is why is this necessary?
I'm not an advanced PHP coder (something I hope to fix soon) so I really can't speak to
how easy it would be to do.
| I'm working on a PHP project after spending most of my time recently on ASP.NET, and while I used
| to think PHP was great, after working with C# and the .Net framework, PHP looks rather primitive.
Well I guess that depends on what you think a webscripting language should do.
| Not being able to overload functions, or having strongly typed variables, or any number of other
| things has been a pain. Not to mention that the Debugger for the .Net framework is a lot better
| than the debugger available for PHP (and cheaper, I think).
How do you figure the .Net debugger is cheaper than the PHP debugger? I don't use a PHP debugger,
at least not yet. So I'm completely ignorant of costs. But if there is a cost difference, it is
most likely only there so Microsoft can kill off all competition to .Net so they can start
charging through the nose for the .Net debugger. Typical M$ attack pattern (ref: Sun Tzu's Art of War :: Microsoft Press). Overloading functions is taken from c/c++. Something that could be done most likely with java code.
| When it comes to the speed differences on your machine between Firefox and explorer - that is
| something I've never understood. This is not related to the server at all, right? It's a
| rendering engine issue, right? The server serves up the pages at the same speed no matter what,
| right? Like I said, I'm not sure, and I've always wondered about this issue.
Microsoft would like you to believe this. No it doesn't have anything to do with the server.
It has to do with code coming from the server based on browser information reported from the
client. In other words, the server creates *different* pages based on the browser. The IE browsers
get extra code/data so that some functions run locally on the client machine. Whereas, all other
browsers have to retrieve that information from the server, in a separate request. Hence slower performance.
[View Less]
Well, with ASP and PHP, you can generate all the HTML manually, so you
can control how closely to standards the HTML sticks, and which
standards you will stick to (xhtml, html, etc.). Unfortunately, ASP.NET
does not generate strict XHTML, though there are aftermarket solutions
to fix this. I've not tried this personally, however.
Correct me if I'm wrong, but isn't the cross browser experience pretty
good for XHTML (Strict) pages?
The biggest advantage ASP.NET has over classic ASP …
[View More]and PHP is the ideas
of Code-Behind, where you have a clean separation of your code and the
presentation code. You have to do quite a bit to approach this in PHP
or ASP. Also, managed post backs / page states are quite nice.
I'm working on a PHP project after spending most of my time recently on
ASP.NET, and while I used to think PHP was great, after working with C#
and the .Net framework, PHP looks rather primitive. Not being able to
overload functions, or having strongly typed variables, or any number of
other things has been a pain. Not to mention that the Debugger for the
.Net framework is a lot better than the debugger available for PHP (and
cheaper, I think).
When it comes to the speed differences on your machine between Firefox
and explorer - that is something I've never understood. This is not
related to the server at all, right? It's a rendering engine issue,
right? The server serves up the pages at the same speed no matter what,
right? Like I said, I'm not sure, and I've always wondered about this
issue.
Josh
________________________________
From: kclug-bounces(a)kclug.org [mailto:kclug-bounces@kclug.org] On Behalf
Of Brian Densmore
Sent: Wednesday, February 16, 2005 9:33 AM
To: kclug(a)kclug.org
Subject: RE: Test Hosting Recommendation
Ok. So how good are the pages on cross-browsers? I've seen a number of
issues with .net web pages rendering very differently on Explorer and
Opera or Firefox/Mozilla. I've also noticed some major speed differences
between Explorer and Firefox running on the same machine. I have no
problem supporting ASP as a server side page generator, as long as it
is usable by all browsers equally. For this reason I use PHP for now.
-----Original Message-----
From: Charles, Joshua Micah (UMKC-Student)
[mailto:jmcqk6@umkc.edu]
Sent: Wednesday, February 16, 2005 9:16 AM
To: kclug(a)kclug.org
Subject: Test Hosting Reccomendation
Hello All.
This post is concerning ASP.NET hosting on Linux. There is a
service out there:
http://www.monoforge.com/
I have a simple application running on my space. Here is an
example of the power of this setup.
I developed my solution on Windows XP using Visual Studio 2003
.NET. I compiled it on windows using the Microsoft .NET C# compiler.
Then I simply copied my files over using an FTP client and it ran, on
Linux, without recompilation. It has a MySQL backend. When I first
uploaded my app, the MySQL connector was not installed on the server
machine. So I simply copied the dll into the execution directory ( bin/
) and my custom app found it and used it automatically - problem solved.
The hosting is free for the moment, because this is currently a
beta test. Once it goes live, beta testers will get some money off the
final product. If nothing else, this is great for experimenting with.
Have fun!
Josh
[View Less]