Mono 1.0 and what that means
-
We can write .NET software today that can run on both Windows and Linux, with very little effort. But almost all .NET developers (including myself) carry on developing as if Windows is the only platform in the world. We write code specifically for SQL server (stored procedures), or invoke Windows-specific calls, or any number of other platform-limiting choices. .NET is built upon some of the same foundations as Java. One of the biggest selling points for Java is that programs can be written to work on multiple platforms. Why should we .NET programmers artificially limit ourselves to just one? Opinions?
Steven Campbell wrote: Java is that programs can be written to work on multiple platforms And where are the multi-platform apps? The great success of Java seems to be on the server, and as C++ can be written for several platforms as well - when skipping things as an UI, the selling point must be that you save time not having to write
delete
:-):-):-) -
Steven Campbell wrote: We can write .NET software today that can run on both Windows and Linux, with very little effort. So we could with Java for almost 10 years, and with C++ (with portable libraries, like Qt) even longer. Making multi-platform applications has been technicaly feasible for a long time, and there are many examples of that (Open Office, Mozilla, Apache,...). However, most of the time there is simply no business case for that - if 99% of potential customer base uses platform A, why would you invest in QA and support for platform B?
Nemanja Trifunovic wrote: However, most of the time there is simply no business case for that - if 99% of potential customer base uses platform A, why would you invest in QA and support for platform B? Because the number is not 99% anymore, and it is starting to drop quickly. I do mostly server based software, and I was a proud "100% MS" solution maker, but it's becoming hard, if not impossible, to ignore things like Mozilla, Oracle and Linux. Again, I work on the server. Yes, even I am blogging now!
-
We can write .NET software today that can run on both Windows and Linux, with very little effort. But almost all .NET developers (including myself) carry on developing as if Windows is the only platform in the world. We write code specifically for SQL server (stored procedures), or invoke Windows-specific calls, or any number of other platform-limiting choices. .NET is built upon some of the same foundations as Java. One of the biggest selling points for Java is that programs can be written to work on multiple platforms. Why should we .NET programmers artificially limit ourselves to just one? Opinions?
Steven Campbell wrote: One of the biggest selling points for Java is that programs can be written to work on multiple platforms and look how well that worked out. Steven Campbell wrote: Why should we .NET programmers artificially limit ourselves to just one? Well personally it is because my customers have Windows. They pay me to write an application for a Windows environment, so that is what I do. Attempting to write a cross platform version would not be cost effective. As for writing specific code for SQL Server, how is that a problem. The data layer is always seperate from the business rules layer, so I might as well write platform specific code to get the best performance. Of course with development of Mono and technologies such as MyXaml[^], then it is quiet possible that my code will run on multiple platforms without me having to change too much. But it will always be a side-effect rather than a deliberate choice. I will always make use of specific platform features to give my customers the best performance and best end-user experience. Michael CP Blog [^]
-
We can write .NET software today that can run on both Windows and Linux, with very little effort. But almost all .NET developers (including myself) carry on developing as if Windows is the only platform in the world. We write code specifically for SQL server (stored procedures), or invoke Windows-specific calls, or any number of other platform-limiting choices. .NET is built upon some of the same foundations as Java. One of the biggest selling points for Java is that programs can be written to work on multiple platforms. Why should we .NET programmers artificially limit ourselves to just one? Opinions?
Cross platform development is interesting and of interest, but I see very little evidence of commercialy packaged software for Linux. I've been developing and selling Windows software for a very long time and I can see the gradual shift to Linux happening, but I can't see too many people ready to put their hands in their pockets to purchase commercial Linux software. The bottom line for me is paying the mortgage, putting food on the table etc. which I can do writing for Windows. I've been keeping an eye on Linux for some time now, but still can't see any business case for me that makes sense to start developing for it. Maybe I'm being short sighted. Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
-
We can write .NET software today that can run on both Windows and Linux, with very little effort. But almost all .NET developers (including myself) carry on developing as if Windows is the only platform in the world. We write code specifically for SQL server (stored procedures), or invoke Windows-specific calls, or any number of other platform-limiting choices. .NET is built upon some of the same foundations as Java. One of the biggest selling points for Java is that programs can be written to work on multiple platforms. Why should we .NET programmers artificially limit ourselves to just one? Opinions?
Well, for the most part, I do not user platform limiting code. When I first got into .NET I was working a lot with WinForm applications and even then I tried to avoid platform calls in my code. Around a year and a half ago, my projects shifted to Web Applications using ASP.NET and has been locked there ever since. In my code I may use stored procedures, but I also keep them in a lower data layer so that they can be easily replaced. I believe that my ASP.NET apps would run pretty much the same under Linux as they do under Windows, however I have more knowledge of securing a Windows machine than I would a Linux one. In short I try to avoid unsafe code, platform calls or anything that greatly restricts my future choice. I have decided on C#/.NET for all my development and plan on my code following my into the future. Rocky <>< www.HintsAndTips.com www.GotTheAnswerToSpam.com
-
We can write .NET software today that can run on both Windows and Linux, with very little effort. But almost all .NET developers (including myself) carry on developing as if Windows is the only platform in the world. We write code specifically for SQL server (stored procedures), or invoke Windows-specific calls, or any number of other platform-limiting choices. .NET is built upon some of the same foundations as Java. One of the biggest selling points for Java is that programs can be written to work on multiple platforms. Why should we .NET programmers artificially limit ourselves to just one? Opinions?
Java and Linux have the same problem that has stopped a more major take up, that is that they do not feel very smooth. Java interfaces are a bit slow and linux is not user friendly. If those problems were sorted out they would do a lot better. Writing x-platform apps Writing apps that can run on multiple platforms is made a lot easier with the correct design decisions. There are 3 areas that you need to be aware of:- 1. Graphics and GUI 2. File system 3. Security These areas will always be problematic and must be accounted for when designing the app. The key is use the MVC pattern and factories. You need to abstract your code into libraries that are free from these 3 areas and write implementation code for each platform. If done correctly this is not a very labour intensive process. You just need to implement an interface and create a functional class for each platform. Have a look on this site and MSDN for the MVC and factory patterns. Definitely a PEBCAK! (Problem Exists Between Keyboard And Chair)
My First ASP.Net site is now up :) RedRavenRPG -
Cross platform development is interesting and of interest, but I see very little evidence of commercialy packaged software for Linux. I've been developing and selling Windows software for a very long time and I can see the gradual shift to Linux happening, but I can't see too many people ready to put their hands in their pockets to purchase commercial Linux software. The bottom line for me is paying the mortgage, putting food on the table etc. which I can do writing for Windows. I've been keeping an eye on Linux for some time now, but still can't see any business case for me that makes sense to start developing for it. Maybe I'm being short sighted. Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
It depends what scale you look at. For home software, yes, few people will pay for commercial Linux software. Move up the scale a bit and it starts to become much more attractive and popular. The biggest problem will always be convincing home users to pay for commercial software on OS that is free - it's a mindshift thing.
-
It depends what scale you look at. For home software, yes, few people will pay for commercial Linux software. Move up the scale a bit and it starts to become much more attractive and popular. The biggest problem will always be convincing home users to pay for commercial software on OS that is free - it's a mindshift thing.
Johnny ² wrote: Move up the scale a bit and it starts to become much more attractive and popular. Can you provide some examples here? Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
-
Steven Campbell wrote: We can write .NET software today that can run on both Windows and Linux, with very little effort. So we could with Java for almost 10 years, and with C++ (with portable libraries, like Qt) even longer. Making multi-platform applications has been technicaly feasible for a long time, and there are many examples of that (Open Office, Mozilla, Apache,...). However, most of the time there is simply no business case for that - if 99% of potential customer base uses platform A, why would you invest in QA and support for platform B?
Nemanja Trifunovic wrote: if 99% of potential customer base uses platform A, why would you invest in QA and support for platform B? Sure, but on the other hand, if you can make choices that make it easier to move to cross-platform code in the futre, and it only requires a little more work, then it makes sense. E.g., use .NET and separate out platform-specific stuff, or use a cross-platform C++ library instead of MFC. (Example, we have a rather large app, done all in wxWindows, but we only run it on Windows. :) But if we ever need to make it cross-platform, it won' be impossible.) "Fish and guests stink in three days." - Benjamin Franlkin
-
Nemanja Trifunovic wrote: if 99% of potential customer base uses platform A, why would you invest in QA and support for platform B? Sure, but on the other hand, if you can make choices that make it easier to move to cross-platform code in the futre, and it only requires a little more work, then it makes sense. E.g., use .NET and separate out platform-specific stuff, or use a cross-platform C++ library instead of MFC. (Example, we have a rather large app, done all in wxWindows, but we only run it on Windows. :) But if we ever need to make it cross-platform, it won' be impossible.) "Fish and guests stink in three days." - Benjamin Franlkin
True. We write our core libraries in ISO C++ and it is pretty easy to port them to other platforms. Actually, just before I joined the company, they ported one of our products to Linux and tried to sell it. It was a total fiasco, though. Those guys just don't want to pay for software.
-
Steven Campbell wrote: Java is that programs can be written to work on multiple platforms And where are the multi-platform apps? The great success of Java seems to be on the server, and as C++ can be written for several platforms as well - when skipping things as an UI, the selling point must be that you save time not having to write
delete
:-):-):-)> when skipping things as an UI, the selling point must be that you save time not having to write delete That is no longer a valid argument by the garbage collector crowd. I've worked exclusively with java now for a while, and I've discovered that memory management is just a tiny part of the problem. Resource management is, and will always be, a tough problem, no matter how many janitors you've got in your virtual machine.. :) -- Ich bin Joachim von Hassel, und ich bin Pilot der Bundeswehr. Welle: Erdball - F104-G Starfighter
-
> when skipping things as an UI, the selling point must be that you save time not having to write delete That is no longer a valid argument by the garbage collector crowd. I've worked exclusively with java now for a while, and I've discovered that memory management is just a tiny part of the problem. Resource management is, and will always be, a tough problem, no matter how many janitors you've got in your virtual machine.. :) -- Ich bin Joachim von Hassel, und ich bin Pilot der Bundeswehr. Welle: Erdball - F104-G Starfighter
Perhaps it's only me, but my logical bloopers have always (greatly) outnumbered more "technical" bugs. Another thing where garbage collection wil not help is clumsy architecture, making it difficult or even impossible to maintain and enhance code. And by "dumbing down" languages and development, I suspect that the risk will increase. :sigh:
-
Johnny ² wrote: Move up the scale a bit and it starts to become much more attractive and popular. Can you provide some examples here? Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
Im interested in seeing ASP.Net hosts appearing that run on Linux Platforms. Since this would be 100% Free for OS and .Net "Compatiable" software, it should undercut Windows+ASP.Net hosts by quite a margin. It always frustates me how much cheaper linux Hosting is over Windows.. Has anyone seen any "Mono" Hosts yet? John John Crocker