You are here

SharpDevelop

30 posts / 0 new
Last post
Hickeroar
Offline
Last seen: 17 years 6 months ago
Joined: 2006-08-03 16:49
SharpDevelop

SharpDevelop is a wonderful open source IDE for .net applications. Having this in a portable format would be the greatest thing since sliced bread.

http://www.sharpdevelop.net/OpenSource/SD/Default.aspx

It mimics the .net ide from MS VERY closely.

Any chance of this getting added?

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Even if the IDE can be made portable (I don't know enough about it to tell you either way), it still requires version 2.0 of the .NET Framework, which most computers don't have installed yet... and you need administrative privileges to install it. Not so good if you plan to develop on a public computer.

-
"You’ve always been the peacemaker, haven’t you, Bruce? You see injustice and suddenly you become blind to everything else. And for what? To save one innocent? You missed the bigger picture, Bruce. You always have."

Hickeroar
Offline
Last seen: 17 years 6 months ago
Joined: 2006-08-03 16:49
Doesnt Matter

I would like something like it for transporting things around as I need them. I have several computers that I can use and they all have, or can have, the .net framework 2.0. I don't need to use an IDE in a library, just so i can work on it at home and then at work and then at my in-laws house if needed. It'd just be great not to have to set the whole thing up and get the settings to my taste every time I change computers.

Jacoby
Offline
Last seen: 17 years 2 months ago
Joined: 2005-12-11 22:06
Actually, If it is possible,

Actually, If it is possible, it would be kinda cool. I use it for little VB.NET apps. (I know, I'm horrible because I said VB.NET, I'm learning C++).

---
Posted in Mozilla PowerSkunk. Other Browsers run in fear!
(Brought to you by Firesomething.)

Hickeroar
Offline
Last seen: 17 years 6 months ago
Joined: 2006-08-03 16:49
Actually

VB.NET is no less powerful than C# or C++.NET... It's also twice as easy to program in. It's my .NET language of choice. I don't feel any shame in saying i like using it. Blum

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Ick. VB.net? C# is far superior to VB.net (and indeed, C++ is far superior to that... though it's a huge learning curve).

-
"You’ve always been the peacemaker, haven’t you, Bruce? You see injustice and suddenly you become blind to everything else. And for what? To save one innocent? You missed the bigger picture, Bruce. You always have."

Jacoby
Offline
Last seen: 17 years 2 months ago
Joined: 2005-12-11 22:06
Yeah, I'm having some

Yeah, I'm having some trouble adapting to C++, but Its going. I should have listened to my advisor and did C++ first. It's supposed to be easier that way.

---
Posted in Mozilla PowerSkunk. Other Browsers run in fear!
(Brought to you by Firesomething.)

Hickeroar
Offline
Last seen: 17 years 6 months ago
Joined: 2006-08-03 16:49
Definitely

*REAL* C++ is even more of a beast. C++.NET is like taking a shark and removing 9/10 of it's teeth. It still has bite, just not much.

There's really no reason to learn C++.NET imho. The only reason to program in something so complex is if you need to do pointer operations that you can't do in .NET. Other than that start with C# and then learn VB.NET after that. I think C++.net is a waste of time.

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Yeah, C++ is the type of programming language that you should learn first if you plan to use it at all. Otherwise, you'll carry over habits from your old language that can cause you major headaches in C/C++. Mainly annoying little quirks like differences in converting floating point to integer. In most Basic languages, for example float to int is a "round to nearest" operation. In C (and by extension, C++), float to integer rounds towards zero (truncation).

Believe me, I know. I started in BASIC (QuickBASIC 4.5, to be exact), making it that much harder for me to learn C. I didn't even move on to full-fledged C++ until much later.

-
"You’ve always been the peacemaker, haven’t you, Bruce? You see injustice and suddenly you become blind to everything else. And for what? To save one innocent? You missed the bigger picture, Bruce. You always have."

Jacoby
Offline
Last seen: 17 years 2 months ago
Joined: 2005-12-11 22:06
Well, It's not a C++.NET

Well, It's not a C++.NET class. It's real C++. Classes start the 22nd, and I've been teaching myself for the summer, with Web tutorials and wxDevCpp. I havent done any GUI apps, but I think I can handle alot in console apps.

---
Posted in Mozilla PowerSkunk. Other Browsers run in fear!
(Brought to you by Firesomething.)

sblandin
Offline
Last seen: 8 years 9 months ago
Joined: 2006-02-16 05:12
Ick, not another language contest

Why everybody hates VB? Wink

OK It's just a single platform (Windows) verbose and not compiled language (by the way also Java is not compiled but no one complains), but you can accomplish many things with it, especially now that is a part of .NET framework.

I once worked in a team which developed the "brain" of a plant to sort mail that was entirely developed in VB5... Well sometimes we miss something but It worked most of the time Wink

Each language has strength and weakness... You can learn easily VB and be very productive... look at Portable Apps, every launcher is made with NSIS.

I think there is not a best-of-all-time language. I like pluralism Wink

sblandin

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

I don't know what everyone else's reasoning is, but I don't like VB 5/6 because they use COM, therefore all DLLs and OCXs created in VB need to be registered in the registry. Not exactly portable. And VB.NET I stay away from simply because it's .NET (I prefer to write native code).

Oh, and VB programs can be compiled, you know. VB6 even has an option to "generate native code."

-
Fatzilla Explosiveprincess 1.5.0.6
"the most explosive web browser in the world"

sblandin
Offline
Last seen: 8 years 9 months ago
Joined: 2006-02-16 05:12
Mmmmh...

Yes that was true for VB5/6, if you create DLL or OCX you have to register them, but this is true not only for Visual Basic, but for any language that generates this kind of files. And you can also make EXE file in old-style VB that are less registration dependent. Now in .NET there is a feature called ClickOnce (I think copied from Java WebStart) that allows you to download a program from a network Connection, execute it and forget about it (it will be trashed automatically).

I know that old VB code can be compiled, but it seems to me that the exe contains a small interpreter or it relies on a runtime engine that is part of Windows.

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Compiled VB code is not interpreted. Yes, it requires msvbvm60.dll, but that doesn't mean the executable doesn't contain native machine code. Operations like 2 + 2 are compiled to correct machine code and not handled by the runtime, so long as you compile in native code mode, not P-code mode. The runtime is only required for more advanced VB features, like winforms.

And I'm full well aware that VB isn't the only program that creates registration-required libraries. I know all about COM, thank you very much. Doesn't change my mind about it; having to register all your DLLs is bad, bad, bad (at least, from a portability standpoint).

And indeed, I'm very aware that .NET assemblies don't need to be registered. You can drop a .NET DLL into the dependent program's directory and everything will work just fine. It's how it was designed.

-
< ExplosivePrincess 1.5 Atomic Bomb Edition >
warning: keep explosiveprincess away from children

sblandin
Offline
Last seen: 8 years 9 months ago
Joined: 2006-02-16 05:12
OK

Sorry, I didn't want to doubt of your knowledge. I understand your point about Dll registraton Vs. portability and I agree with you. I didn't know exactly the inner working of VB compilation, now I have a clearer picture.
What I was trying to say is that Visual Basic has useful features that too often are reduced in favor of some other "true language". Maybe these features don't help in the field of performance or portability, but it is not enough in my opinion to dismiss it like a useless toy.

sblandin

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Did I ever say it was a useless toy? Smile No, I just personally prefer C/C++. I loved VB when I was using it, but finally moved on to C/C++, mainly for the reason previously stated: portability.

-
< ExplosivePrincess 1.5 Atomic Bomb Edition >
warning: keep explosiveprincess away from children

Rob Loach
Rob Loach's picture
Offline
Last seen: 15 years 7 months ago
Developer
Joined: 2005-12-09 17:29
Portable .NET/Mono IDE

A portable .NET/Mono IDE is definitely something I'd be interested in having. As for having .NET/Mono installed on the system you're currently at, I haven't encountered any security issues with install either .NET 1.1/2.0 or Mono at any computer I've visited. To my knowledge, you don't even have to restart after installation.

SharpDevelop requires at least .NET 1.1, so it's not limited to .NET 2.0.

I'll play around with NAnt, Prebuild and Mono tonight to see what I can come up.

Rob Loach [Website] [Projects] [Blog]

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

The only issue is that you need administrative privileges to install .NET. Not a problem with your own machines, but could pose a problem on public machines (which often don't have .NET preinstalled since programs that use it still aren't widespread).

-
Fatzilla Explosiveprincess 1.5.0.6
the most explosive browser in the world!

Rob Loach
Rob Loach's picture
Offline
Last seen: 15 years 7 months ago
Developer
Joined: 2005-12-09 17:29
Mono and Unorthadox Solutions

Does Mono require administrative privileges to be installed?

Let's just assume that .NET or Mono is installed on the client machines, because developing a portable .NET/Mono system would just be too much. Once you assume that, it makes life so much easier. .NET eventually ends up being installed on all of the computers I visit anyway. I've actually talked with some of the internet cafe's around my neighborhood and allowed me to install .NET on their ghost installation.

So once it's installed, what's a viable portable solution for .NET or Mono development? I just came up with two rather unorthadox solutions taking advantage of NAnt, Prebuild and PSPad.

Single C# File

This solution uses Mono and PSPad to allow you to compile single C# files to Mono EXE binaries. It's pretty easy to setup and gives you a nice taste of how Mono works.

Carry around Mono on your USB key. In PSPad, set the compiler settings to DirToMono/bin/mcs.bat, and the Parameter to "%FILE%". Check on "Capture Output" and "Hide Output Window". Set Run After Compilation to DirToMono/bin/mono.exe "%DIR%%NAME%.exe" .

When you click on Compile or hit CTRL F9 in PSPad, it will compile the current C# file you are editing to an EXE file and then run it.

To my knowledge, this solution is completely portable, as you're just running the Mono console programs directly from their location without relying on PATH or any registry settings. I could, of course, be wrong on this though. Anyone try it out?

Multiple C# Files

This solution is a bit more complicated as it uses Prebuild, NAnt, PSPad and an additional batch file. It allows you to compile multiple C# files and projects as well as allows you to compile the projects to either Mono or .NET.

Create a "build.bat" file and put the following code in it:

@ECHO OFF
"../Prebuild/Prebuild.exe" /file %1.xml /target nant
"../NAnt/NAnt.exe" -t:mono-2.0 -buildfile:%1.build clean
"../NAnt/NAnt.exe" -t:mono-2.0 -buildfile:%1.build build-release
"../Prebuild/Prebuild.exe" /file %1.xml /clean nant /y

Create a HelloWorld.xml, this will be our solution file describing all of our projects that will be associated with the solution we'll be editing. Put the following in it:

<?xml version="1.0" encoding="utf-8" ?>
<Prebuild xmlns="http://dnpb.sourceforge.net/schemas/dnpb-1.6.xsd" version="1.6">
  <Solution name="HelloWorld">
    <Project name="HelloWorld"
      path="." language="C#" type="Exe"
      assemblyName="HelloWorld"
      rootNamespace="HelloWorld">
      <Configuration name="Debug">
        <Options>
          <CompilerDefines>DEBUG;TRACE</CompilerDefines>
          <OptimizeCode>false</OptimizeCode>
          <AllowUnsafe>false</AllowUnsafe>
          <OutputPath>bin\Debug</OutputPath>
          <DebugInformation>true</DebugInformation>
          <XmlDocFile></XmlDocFile>
          <WarningLevel>4</WarningLevel>
          <SuppressWarnings></SuppressWarnings>
          <PostBuildEvent></PostBuildEvent>
        </Options>
      </Configuration>
      <Configuration name="Release">
        <Options>
          <CompilerDefines>TRACE</CompilerDefines>
          <OptimizeCode>true</OptimizeCode>
          <AllowUnsafe>false</AllowUnsafe>
          <OutputPath>bin\Release</OutputPath>
          <XmlDocFile></XmlDocFile>
          <DebugInformation>false</DebugInformation>
          
          <WarningLevel>1</WarningLevel>
          <SuppressWarnings></SuppressWarnings>
          <PostBuildEvent></PostBuildEvent>
        </Options>
      </Configuration>
      <Reference name="System" />
      <Files>
        <Match path="." pattern="*.cs" recurse="true"/>
      </Files>
    </Project>
  </Solution>
</Prebuild>

Once you have that, create a new file named "HelloWorld.cs" in the same directory as the XML file:

using System;

namespace HelloWorld
{
	public class HelloWorld
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("Hello World!");
			Console.ReadLine();
		}
	}
}

In the compiler settings of ".xml" files, use "build.bat" for the compiler, %name% for the parameters, and Capture Program Output and Hide Output Window. Then when you click compile in PSPad when you're editing the XML file, it will compile the virtual HelloWorld solution, including the HelloWorld.cs. You'll be left with a HelloWorld.exe in the bin/Release directory.

As you can see, this is a rather strange solution. It uses Prebuild to make a *.build file of all solutions in the XML file. Once it does that, it uses NAnt to build those *.build files. You're then left with built .NET assemblies. The benefit of this solution is that you can have multiple solutions and projects, you can even build your own libraries with it too.

Reflection

After figuring out how to put this all together, I discover that PSPad isn't that good when you're working with external compilers and solutions with multiple files. I'd like to find a better solution around it and hopefully get something even nicer working. Any thoughts?

Rob Loach [Website] [Projects] [Blog]

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Someone (maybe it was you?) already asked me that question. I can tell you this--the Mono installer writes to HKEY_LOCAL_MACHINE, which requires administrative privileges. I couldn't even get it to work on an admin account, though... when I tried the examples, they all threw up exceptions and died.

I'd try everything you suggested, but I just don't like .NET, period. I'm a native code person. .NET adds a huge dependency to your programs: a 20+ MB runtime that you have to distribute because most XP (and lower) users don't have .NET installed unless they actually develop with it. Vista will help a ton, since it'll include .NET 3.0, but I doubt most developers will want to tie their apps to Vista. So they'll have to distribute the .NET (or Mono, if they're so inclined) installer with their program anyway.

Anyway, I digress. The whole point of this thread was to see about a portable SharpDevelop. If it can be done, it will probably be the best solution you'll find, since SharpDevelop--from what I've seen--is a damn nice IDE. Very close in user interface to Visual Studio, which despite being a Microsoft product, is pretty much the ultimate development environment.

-
Fatzilla Explosiveprincess 1.5.0.6
the most explosive browser in the world!

Ryan McCue
Ryan McCue's picture
Offline
Last seen: 14 years 6 months ago
Joined: 2006-01-06 21:27
I aggree

with Bruce. I hate .NET
Especially since Microsoft made it a very vague term.
----
R McCue
Forum Rules:

  • Search before posting
  • Always post a link with requests
  • Don't use abbrevi8tions, use proper grammer

PortaBlog Home and My Website

"If you're not part of the solution, you're part of the precipitate."

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Don't even get me started on Microsoft and vague terms. I found a funny video today that says that if Microsoft designed the iPod, it would be called the Microsoft I-pod Pro 2005 XP Human Ear Professional Edition with Subscription (note: requires QuickTime).

The real irony of this is that apparently, someone at Microsoft (!) created this video.

-
Fatzilla Eatingeverythingwhale 1.5.0.6
the most explosive browser in the world? well, it is a whale.

Ryan McCue
Ryan McCue's picture
Offline
Last seen: 14 years 6 months ago
Joined: 2006-01-06 21:27
LOL

I think I've seen that one. Is that how they are designing the box?
----
R McCue
PortaBlog Home and My Website
And before anyone complains about the grammar, I'm so jetlagged that my
hands aren't even in the same time zone...

I don't have an attitude problem. You have a perception problem.

"If you're not part of the solution, you're part of the precipitate."

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

No, it was created by someone at Microsoft as a joke, parodying Microsoft's overly verbose program names like "Windows Internet Explorer 7 for Windows XP" (seriously, that's what they want to call it!) and "Microsoft Office XP Professional Edition with FrontPage"

Edit: Oh, wait. You meant is that what the video is about. Indeed, it's about how MS would design the iPod box. I wouldn't put it past MS to come up with something that ridiculously overcrowded, either. Smile

-
< ExplosivePrincess 1.5 Atomic Bomb Edition >
warning: keep explosiveprincess away from children

Rob Loach
Rob Loach's picture
Offline
Last seen: 15 years 7 months ago
Developer
Joined: 2005-12-09 17:29
Mono and the Registry

I just checked the Mono installation script and it seems it only writes the following items to the registry:

 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono\${MILESTONE} SdkInstallRoot $INSTDIR
 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono\${MILESTONE} FrameworkAssemblyDirectory $INSTDIR\lib
 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono\${MILESTONE} MonoConfigDir $INSTDIR\etc
 ;WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono\${MILESTONE} GtkSharpLibPath $INSTDIR\lib
 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono DefaultCLR ${MILESTONE}

 ; Mono Uninstall Entry in Windows Software List in the Control panel
 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mono-${MILESTONE} DisplayName "Mono ${MILESTONE}"
 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mono-${MILESTONE} UninstallString $INSTDIR\uninst.exe

The first four seem like just directory listings and the last two are just uninstall entries for the control panel. So I don't think Mono holds any critical registration settings.

Also, there's nothing wrong with using the .NET Framework or Mono. The added benefits of using the CLI completely outweight the limitations of straight Win32 programming. By using the CLI, you're also allowing portable code. You can compile in Mono and have it run in lots of platforms without even having to recompile for each platform.

It really comes down to personal preference. In my opinion, Win32 programming in C++ is too hackish and you can't accomplish as much as you would in the same time if you were programming with the CLI for .NET/Mono.

You don't have to distribute the runtime with your application, just say that you need .NET to be installed on machines in order for the application to run, and people will have no problems with that. Just provide a link to the .NET redistributable download and they'll get it. Remember that people want to use your application because of its functionality, they don't care how it was developed.

Rob Loach [Website] [Projects] [Blog]

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

I'm sorry. I was "born and raised" (emphasis on the quotes) in Win32, and that's where I plan to stay. For example, I'm developing a 2D game engine currently. Nothing too advanced, but still a legitimate excuse to use native code and Win32. I'll be the first to admit that .NET is great for UI code, but it falls flat for high-performance applications like game engines. .NET, being a very high-level construct, doesn't give you much room for optimization. Don't get me wrong, here. I like high-level things; the problem is that .NET is just a little too high-level for me. You have to realize, the higher you are in the hierarchy, the less flexibility you have. I prefer flexibility over simplicity--at least in programming languages. For other things, I'd likely say otherwise. Smile

Also, you stretched the page out way too far. Have some consideration here; I'm running at 800x600 (by choice, of course).

-
Fatzilla Eatingeverythingwhale 1.5.0.6
Eats Absolutely Everything! (Including Other Browsers)

Rob Loach
Rob Loach's picture
Offline
Last seen: 15 years 7 months ago
Developer
Joined: 2005-12-09 17:29
Performance - Managed vs Unmanaged

As I mentioned before, it's completely personal preference, but don't bring performance into the argument as it's pretty much an even battle, believe it or not. You gain in some area, while you loose in others. Computers today are amazingly fast and the only thing that will really hit your performance is rendering, advanced physics and bad program design.

Although I didn't want to make a self-plug, I've been working on a 2D game engine myself using C# and OpenGL by the name of BooGame. So far it has been running quite fast and you only notice the slowdown when there are thousands of tinted, rotating, sprites on the screen. There is still lots of room for rendering optimizations as well.

And yes, that <pre> tag does eat up some browser space, doesn't it? Wink

Rob Loach [Website] [Projects] [Blog]

Bruce Pascoe
Offline
Last seen: 12 years 2 months ago
Joined: 2006-01-15 16:14
...

Not to toot my own horn, but FatHawk 5 (the name of my engine) runs more than acceptably (~200 FPS) on a 500 MHz Celeron with crappy Intel integrated onboard video. Can yours do that? :lol: Now don't take that the wrong way; I'm not trying to say I'm better than you, just that my native code engine probably outperforms your .NET engine. If it doesn't feel free to put me in my place. Biggrin

-
< Fatzilla Eatingeverythingwhale 1.5.0.6 >
the browser that eats absolutely everything

Rob Loach
Rob Loach's picture
Offline
Last seen: 15 years 7 months ago
Developer
Joined: 2005-12-09 17:29
FatHawk

FatHawk 5 (the name of my engine) runs more than acceptably (~200 FPS) on a 500 MHz Celeron with crappy Intel integrated onboard video. Can yours do that?

Well, try the Bouncing Sprites example out and see yourself. I don't have a 500 MHz machine hanging around. The Bouncing Sprites example acts as a good benchmark as it features any number of rotating sprites on screen. Just press up to increase the number, and down to decrease.

Rob Loach [Website] [Projects] [Blog]

Sky
Offline
Last seen: 16 years 11 months ago
Joined: 2007-03-23 21:57
I just did it.

I ported the latest version of SharpDevelop to a portable app. Check out my posting in the BETA-Test Forum
Greetings from Germany,
David

Topic locked