I'm building a program and I'm going to need to do some basic graph problems: find strongly connected components, find shortest traversal, etc. I know that the quckgraph library works with .net but doesn't port to mono. Does anyone know the best way to get around this, or if there's another library out there I could use?
QuickGraph once worked fine with Mono for me. I just downloaded the newest library, referenced it in project, built simple example and still works like a charm. What problem do you have with it in mono?
Satsuma is much simpler than QuickGraph and should work for you, though there are no releases yet and you will need to check it out from Git.
I've written a game in C# with SDL.NET and OpenGL. I want to add a menu to it, for which I need Qt. What bindings do you recommend for Qt in C#?
Qyoto? (apparently it's still unstable in Windows.)
qt4dotnet?
other?
Requirements:
fast
should just work and be polished - i.e. no weird problems at every step
integration with the buildsystem, uic, resources, etc, should work well
In fact I'd appreciate any experiences that you can share about using Qt with C#.
Edit: I'm now in the middle of a major project using qt4dotnet together with OpenTK. Feel free to ask me questions.
I think the QT Bindings for C#/.NET are not working like you wanna have it. The main problem is that there is no real community which is continuing work on these projects.
EDIT: The QTSharp project is getting some love and I think, this could be something to work with (Link: https://github.com/ddobrev/QtSharp)
Have You looked at QtSharp? Seems project is in development.
Does anyone know if Microsoft MFTs for Win7 can be written in C#? If so, is there any book or website that would help me in this.
MFTs can definitely be written in C#. Maybe checkt out the managed wrapper around the MF Api´s at sourceforge. it´s more or less just a managed definition of interfaces and GUIDs for COM interaction that can be used within .NET. just implemented the right interfaces, see here.
However, i find some parts a little bit tricky (e.g. rate control), but depending on the type of MFT you want to create you maybe don´t need to deal with that.
The MF Team blog could help:
http://blogs.msdn.com/mf/default.aspx
The team started posting in November of 2009.
I am currently mostly a Java Developer, and would like to know if one would be able to creating Windows MCE plugins for popular services using a language like C#? Where would i find resources to learn how to write MCE plugins using C# if at all possible?
Really to find these resources you are going to have to be a bit more specific as to what resources you actually need.
Start with the SDK as David M suggested above, also check out http://msdn.microsoft.com/en-us/library/bb189062.aspx
Its probably going to be easier if you work out what you actually want to build, what it needs to do then research that particular area or ask specific questions rather than trying to look at writing plugins as a whole. Since you come from a Java background C# shouldnt be too hard to pick up if you dont know it already.
A quick google search for 'writing windows MCE plugins' returns a few good results too.
There's an SDK for this published by Microsoft. You could do a lot worse than start by downloading that and reading some of the technical articles available on that page.
So I've been learning C# for like a year now (I'm 20 years old) and I'm getting pretty confident with it. I've also been meddling with C++ every now and again. For example just recently I've been following the Nehe OpenGL tutorials for C++ and I find it a fun way of learning.
I want to start looking at creating cross platform GUI software after I stumbled across this library called FLTK (fluid something rather). After finally and painfully getting it to work I found it refreshing to know that there are solutions for GUI creation in C++, however I think FLTK looked pretty old.
So I googled around for some newer GUI frameworks and decided to start playing with wxWidgets (decided against Qt because of licensing).
I downloaded it, compiled it, and looked to see if there were any IDE plug-ins for RAD development, as you can imagine going from drag and drop a component onto a form in C# I was hoping for something similar.
I learned that code::blocks has something of the sort so I tried that out. It was alright but the thing that turned me off was the horrible code completion; it would only show members and methods in the current object and nothing for the #included header files. I understand that code completion/IntelliSense isn't easy for C++ but Visual Studio 2008 handles it pretty good. I did find some other RAD tools like wxFormBuilder but it costs money, not something I want to do for simply learning.
So my TLDR question is if anyone has had experience with wxWidgets? Do you just develop in whatever IDE you're comfortable with and just code the GUI? Meaning no visual helpers? Perhaps you could give me a nudge in what direction I should be going :)
Thanks, this is also my first post on this site albeit I have read many threads before that have helped me solve copious problems. Cheers!
My suggestion is to learn how to do GUI layout with wxWidgets in code, then when you get good at it learn how to use the GUI tools.
Doing this kind of work manually for a while gives you the understanding about what you need ("Ok, I need a wxSizer, vertical, to put these two horizontal wxSizers into, where I put my a wxStaticText and a wxTextCtl for each line ...")... where as I think if you started out with the GUI tools you'd just tend to get annoyed because (last time I looked) none of them were Drag And Drop editors like you get with .NET.
Definitely give Code::Blocks another try. It is a WONDERFUL environment to work with wxWidgets in. It comes with a form designer and templates for wxWidgets projects, so I can't imagine working without it.
Also, for a good beginner's introduction to wxWidgets, try this page. It helped me alot when I started with it.
I use wxWidgets without using a drag and drop designer. There are obviously drawbacks to that approach but an advantage is that you don't have any horrible automatically generated code to deal with. In the past I've found having such code in the middle of my project has caused various types of grief - especially if you decide it needs some serious changes it is often necessary to start from scratch because form designers are so much better at "writing" as opposed to "editing".
For simple applications you can assemble a UI using a mixture of customized and standard widgets without too much difficulty. Check out the wxWidgets samples and demos, which use that approach. My chess app (see my website) uses this approach too.
A more elaborate UI could possibly be implemented by writing something special at a higher level of abstraction. The kind of thing I am thinking of would be a subsystem that accepts high level flexible requests to provide different types of user interface functionality, and then sorts out the details of the controls to create and the positioning etc. of those controls itself. That is kind of a technical fantasy of mine but I haven't ever really attempted to do it. Actually, a fairly primitive facility of this type is already available and used by the demos I mentioned; It is called a "Sizer" (class wxSizer) and is basically a control container.
Finally I would point out that problems with the Qt licence have basically gone away since Nokia bought Trolltech and made it "more" free (LGPL licence). Many people think Qt is the way to go these days. I am pretty happy with wxWidgets but will definitely evaluate Qyt seriously one day. Good luck with your projects.
I have developed a number of application GUIs using wxWidgets - you can see screenshots at http://ravenspoint.com/
IMHO, you should distinguish between designing a GUI and implementing it. Expecting to use the same program to design your GUI and to automatically emit all the code to implement the design is expecting too much.
A design program should be fast and simple. I recommend http://www.balsamiq.com/
Once you have settled on the design, then you can turn to the coding. Personally, I find that placing widgets on a panel using the wxPosition and wxSize parameters of the wxWidget constructors to be trivial - easier than trying to nudge widgets into their exact positions using the mouse.
The trouble with using some kind of form builder to emit all the code for a significant GUI is that you end up with a morass of automatically generated code that is hard to find your way around in. If the code has been handwritten, then you already know where everything is located.
wxFormBuilder but it costs money
wxFormBuilder is Free and Open source
Also Visual Studio is best for C++ coding in wxWidgets, but you will run into lots of issues on Linux due to the way Visual Studio handles a lot of things, like file names you have to take extra care for case sensitivity.
Also regarding the GUI, add the wxFormBuilder to the Visual Studio solution, add the file type handler to Visual Studio. Now just double click on it and add your dialogs, like you do it in C#.
Just add the generated code files to the Visual Studio project once and you are done.
It's very easy to use Visual Studio with GUI programming in wxWidgets.
Also don't forget to watch the CodeLite editor if you want to port on Linux. It is very much compatible with the Visual Studio projects and shortcut keys.
There is wxGlade and wxFormBuilder.
I don't know if there is another one, but the wxFormBuilder I know is free and open source.
You will find links to other tools on the homepage
of wxGlade (http:// wxglade.sourceforge.net/).
Most of these programs are able to output xrc files, which are are an XML representation of your GUI. It address the issue of complexity of the generated code but is not as powerful.
Yet personally I don't use any of these tools, except sometimes to see what it's going to look like before I do it but never to actually generate code.
I just finished doing a hello world program in both wx and fltk using the netbeans IDE. Microsoft Visual Studio WinForms or MFC was much easier than either. I needed cross platform capability so I could not use it for this application. I finished fltk in much less time than wx. The program was simpler, smaller, faster, and easier to write. Wx had pretty disjointed documentation and organization. Fltk was designed back in the "old days" when small fast and efficient was valued. That's probably why it seems "old" to you. I'm an old guy so it worked for me. YMMV