System.Speech in Mono on Linux - c#

I'm working on a project in Linux (KUbuntu) using Mono and Monodevelop. I want to use the System.Speech library, which is completely possible with Monodevelop in Unity on Windows 7. I've been doing a lot of looking online over the past few hours and as far as I can tell System.Speech WAS added to Mono.
I've updated all of mono, mono --version is showing 4.0.2 (latest version), and Monodevelop version is showing 5.9.4 (as far as I can tell that also is the most updated version). This is making me think that I have all of the latest updates for all the development software.
I've rebooted, created new projects, manually built monodevelop from git, everything I can think of. That all being done, I right click on References=>Edit References=>System.Speech, and nothing is showing up. Again I double checked by trying it on Unity on my windows machine, and it's definitely there.
Does anyone have any idea what's going on? I'm not really sure what other details to give for something like this but I'm clearly missing something. I'm more than happy to post any other information you would need, and I thank you infinitely for any help!

System.Speech is a part of MSFT's .Net and is dependent on native audio drivers, the TLS engine, etc... and is only available on Windows.
I believe there was some work done in Mono with the Speech namespace 4/5 years ago, but there is nothing in this namespace in the current releases.
You would need to look at third party speech libs on Linux and write some C# wrappers for them if they are not currently available.

Related

How to get started with DirectInput from a Visual Studio 2013 C# solution on Windows 8.1?

Following a comment posted to one of my questions, I am trying to get started using DirectInput.
I am absolutely unfamiliar with it, and I don't know how to get started at all. The namespace seems to be Microsoft.DirectX.DirectInput but I cannot seem to find it anywhere in my references.
It says in several places that you just have to add it from the references in my project but I couldn't find it.
I checked for a DirectX SDK but it seems it is now part of the Windows SDK and the Windows SDK is already installed with Windows 8 so I shouldn't have to do anything?
I found a couple of alternatives, of which SharpDX sounds like a good one. I have not been able to start with this either... I have installed the SharpDx.Input nuGet package but I can't seem to use the code I can find elsewhere, like here.
new DirectInput() for instance is not recognized at all by Visual Studio.
The "Microsoft.DirectX.DirectInput" assemblies are Managed DirectX 1.1 and are deprecated. Furthermore, VS 2013 defaults to using .NET 4.x which is not supported by legacy Managed DirectX 1.1. See DirectX and .NET.
The underlying DirectInput component whether used by C# or C++ is legacy and is not recommended for use for mouse or keyboard. For Xbox One and Xbox 360 common controllers, we recommend using XINPUT. To use legacy HID devices (joysticks, PS3 controllers, some haptic controllers, etc.), you still use DirectInput. For XINPUT use on Windows 8.x, see this blog. For use from C++, you should look at DirectX Tool Kit particularly the GamePad class.

Can I use xcode to program in c#?

I develop almost entirely in c#, but own a mac computer. I have windows running in parallels desktop to work with Visual Studio. I wanted to develop in c# for mac os and downloaded monodevelop, which is great except for its GUI designer I completely hate it and don't know how people can even use it. I mean, after how easy it was to create GUI applications with the Visual Studio designer I feel so weird to work with it.
I investigated about it and found out that apple's interface builder could solve that problem for me. However, the only way to get it now apparently is downloading xcode, since apple doesn't distribute it as a stand-alone app now. (That's what I think)
I knew that Xcode doesn't support c#, but I read about some plugins with which you can add those functionalities.
Can you tell me if its possible to add this compatibility to xcode? Or if you know alternatives to monodevelop that have a GUI designer that is more similar to VS.
As of version 2.8, MonoDevelop support using XCode with both MonoTouch (for iOS) and MonoMac. Here is the link to the release documentation.
Yes, you have to download XCode and, if I recall correctly, there may be a nominal charge for it, but the minimal cost (if any) will be worth the improved productivity.
Having said that, using XCode's interface builder takes a LOT of getting used to for someone coming from the VS world.

Cross platform development, GUI and Database - c#

Forgive me for asking a common question, but I couldn't quite get what I needed from what I found so far.
First question - SQLite. I am using this DB as in my C#.NET 3.5 windows service and it works great, I was looking for a portable solution, because I would like port my service to a linux daemon etc, using Mono, which seems to support it. However, I am not sure how to implement this. I had thought the dll was compatable, but it seems there is a seperate dll for Mono/.NET which I should have expected. Does this mean I need to seperately code/compile for each platform or is there something that would allow me use of SQLite with the same code on various platforms? I have encountered this a few times in my searches, csharp sqlite, a "reimplementation". To be honest, this is quite new to me, is it of use? The Mono SQlite page says that they Mono.Data.Sqlite code is based on System.Data.SQlite and goes on to say...
"We have chosen this way as means to
provide a migration path for
developers using SQLite in their .NET
applications"
Are they referring to creating a new, seperate binary? Or could I run my code as is with some adaptation?
Second question - GUI. As far as I can tell the two main options for cross platform dev in .NET would be GTK# and Winforms. Again however, its the specifics of implementation that are a bit hazey. Can I create a win forms GUI in visual studio as I normally would then easily migrate this using mono? Or should I develop this in something like X-Develop or MonoDevelop?
Many thanks for your advice/patience :D
To help out a little bit here I used the full mysql dll file that was provided and I was able to compile my program on windows using visual studio, and then deploy it to Linux without changing anything(except the case of the mysql dll file, which is kind of annoying you'll see what I mean at some point).
Also from what I've heard winforms isn't totally supported by mono yet, but I may be wrong. I haven't done a gui cross platform yet, but I would test winforms first, just so you could develop it in visual studio, and if that doesn't work I think GTK should be fine.
You just need to make sure that the dll's are compiled for .net 3.5 or below and you should be fine(90% of the time).
Check this out here, http://www.mono-project.com/MoMA and also the link that chris provided.

Monotouch and XCode 4, where did the outlets go?

Today I updated my mac with the latest version of MonoDevelop, MonoTouch and the Mono-Framework. I also downloaded the latest version of XCode, version 4 (a nifty 4.5 gig download).
At first I did not notice it because I was busy copying code into my project for re-use. But when the time came to actually add some controls, actions and outlets to the MainWindow file - I realized that something was missing.
Hopefully I have over-looked something, because I cannot find functions for adding outlets and actions any more? After googling the problem I realized that the new XCode now does these things by code -- but not in C#, it's exclusively an Objective C thing.
How exactly do I solve this problem? I am currently downloading XCode 3.2.6 but surely there has to be a better option? (I dont even know if this will install over the 4.x version) How exactly do I define actions and outlets by code? Are there any tutorials on this to curve the extra time it will take?
Any help is welcome
Update: A tip for those who need to remove XCode and start from scratch. Open a terminal window and type:
"sudo /Developer/Library/uninstall-devtools --mode=all"
This will remove your current XCode installation (all of it). Remember to re-boot your Mac afterwards. You can then install an older version of XCode.
From Miguel's MT 4.0 Announcement
We are currently hard at work to add
support to MonoDevelop to work with
the new XCode 4.
With XCode 4, Apple removed Interface
Builder as a standalone tool. We
should have a beta in a couple of
weeks of the solution we came up with.
you can install them side by side by doing so(I believe you have Xcode 4 installed):
Run the Xcode 3 installer
When you can choose the install location change it to the folder of your choice but not to developer
Complete the installation and open Xcode 3
done
use mono for mac os.
then convert your application on monomac solution and build and run application, after build u get .app file,
for this you need C# plugin on mono.
or cocoa sharp plugin.

Differences in development between .NET and Mono

I'm looking into Mono and .NET C# and we'll be needing to run the code on Linux Servers in the future when the project is developed. At this point I've been looking at ASP.NET MVC and Mono.
I run an Ubuntu distro and want to do development for a web application, some of the other developers use Windows and run other .NET items with Visual Studio.
What does Mono not provide that Visual Studio does?
If running this on Linux later shouldn't we use MonoDevelop?
Are there some third party tools or add-ins that might be an issue with Mono later?
What does Mono not provide that Visual Studio does?
MonoDevelop is presumably what you mean here. MonoDevelop offers cross platform development on Linux, Mac OS X, Windows based on GTK. However it is not as polished as Visual Studio for obvious reasons - it's 3 people making it, not hundreds. It has some nice features, especially its source control plugin architecture. However as Visual Studio Express is free there aren't many advantages on Windows to using it.
It uses the same .csproj and .sln format as Visual Studio, however the XML docs format is different.
If running this on Linux later shouldn't we use MonoDevelop ?
As I mentioned above, the project formats are inter-operable.
Are there some third party tools or add-ins that might be an issue with Mono later?
Unlike Visual Studio, there aren't a huge wealth of add-ins for Monodevelop. The ones that you use in Monodevelop won't effect your .csproj files at all, as anything Visual Studio cannot read it generally ignores.
As people have said don't confuse Mono for MonoDevelop. MonoDevelop is an IDE for Mono that originally came from (forked) SharpDevelop.
Mono is the cross platform framework that 'apes' the Microsoft CLR and framework libraries.
I don't have much experience in this area but...
The Mono Project Roadmap has an overview of features that are new, upcoming, and not present in Mono compared to MS.NET. Even where Mono has the same classes as .NET, note that compatibility is not 100% (although that is generally their goal). I'm not sure if there exists a comprehensive list of things missing in Mono.
MonoDevelop is now available on both Windows and Linux so you're probably best off using it. However, MonoDevelop does appear to use the same project file format as Visual Studio and SharpDevelop, so you could make an attempt at mixing IDEs.
Of course, when using 3rd-party .NET libraries, note that many of them have not been tested with mono, and in particular anything that uses P/Invoke will not work on Mono for Linux. However, most incompatibilities with mono are minor, and if you stick with open-source libraries you can always fix any incompatibilities you run into.
You might also take a look at Mono Tools for Visual Studio. It lets your visual studio developers target and test with the mono platform.
You're aiming to always have support, and/or primarily use the software on Linux, correct? This is actually a question I asked the Mono developers at a conference a little while back, and it basically boiled down to what you want to do with it.
If you want it to always work on Linux, then use Mono. If you only care about Windows, then use Visual Studio.
If you're using Mono, then use MonoDevelop across all developers. It'll just make life a lot easier later on, and it'll make sure that whatever you write in the one will work for everyone.
Unfortunately, I do not know the answer to the exact limits/advantages of Mono vs. .NET, aside from .NET being further ahead, and Mono playing catch-up, nor about different addons.
If none of your developers need to develop on Mono for certain features, I suggest you all use Visual Studio on Windows. Then test the applications on Mono via
Mono Tools for Visual Studio
manually copy the binaries over
check out the code on Linux and build in MonoDevelop.
Personally I experienced a lot of small troubles when I tried out the third way, but luckily I am capable of finding workarounds.
It is only when you touch Mono, you know which part of your application needs to be tuned.
http://www.mono-project.com/Start
If you can help it, it'd recommend avoiding the Mono implementation of Remoting. There seem to be some unexpected hiccups and debugging it is not straight-forward.
We had a very Remoting heavy product that we tried to port to Mono so we could support Linux. Due to being unable to resolve the Remoting issues, we eventually had to abandon our attempts at supporting Linux altogether.
Caveat: my experiences may be outdated. See comments below
You don't need MonoDevelop in order to run ASP.NET program in Linux, make a shared folder on your development server (VMWare'd or real one), test often so you can easily work-around what's missing from Mono
That's the same approach I'm using in my .NET Remoting program I host on Ubuntu server. But I do the reverse, since I'm a solo programmer, I make a shared folder on my Windows development machine, then access that shared folder on my Ubuntu test server (vmware'd). On ASP.NET stuff, if the changes don't reflect on your Ubuntu test server, in Terminal just touch the Web.Config file in your Ubuntu test server. i.e. touch Web.Config, then refresh the page
Mono has a fully functional implementation of ASP.NET. This includes full support for ASP.NET Web Forms and Web Services. This essentially means that more or less any ASP.NET application that you have developed using with the .NET Framework will work with Mono. Obviously there might be changes needed, such as data access changes, removal of any
reliance on .NET Framework BCL types . Mono- Oracle users-.Net Programming C# : ubuntu 11.04

Categories