Which language to take? - Windows Mobile Development and Hacking General

hi!
next time i wanna try developing diamond apps on my own.
a few years ago, i developed software for pocket pcs using eVC++ 3.0. so you can see i'm used to programming and c++. i also wrote some java-stuff for symbian mobiles, means i do know java too.
in this forum, i saw quite a lot of code-snippets using c#. it looks similar to java and c++, from what i can tell by now. i'm very curious about learning that language in order to write my own diamond applications. so here are my question to the developers:
- are there any limitations to c#? on a pocketpc, you could nearly do everything with c++ and the win api. but java was very limited.
- can i use native api functions?
- which language is the most used one, when it comes to winmobile developing?
- c# is microsoft, right? does it make sense, to learn "a ms specific" language, instead of reactivating and strengthening knowledge in c++ and/or java?
thanks a lot for your advice!
yours, hebbe

I don't know so much about developing....... but some friends of mine develop app for WM and use VisualStudio 2008....... In this package you can find some compilers and I think Visual C++ is the best tool for writing apps....... But I'm telling you.... I'm not a developer, I only give you some information about what I found out listening some friends.
Now it's up to you........ Have a good luck!!!

To answer your questions:
C# does have a lot of limitation on WinMo platform. There's a lot of functionality that is missing from managed .NET libraries on WinMo. There are additional libraries that you can use to gain some of that functionality back, like OpenCFNET.
You can use native api, but you have to create COM Interop wrappers to call them.
C++ is still the language of choice for WinMo development.
C# is part of Microsoft .NET framework. The reason you see a lot of people use it, even with all of the limitations in WinMo environment is that it's a very popular language that can be used for any aspect of development (i.e. windows forms, web, devices, etc.). C# is also kindda not "ms specific" language, since there's a Mono framework, that allows you to use C# and .NET on almost any platform, including Linuxs and Macs.

this isn't the place to ask questions, there is a Q&A section for that.
thank you

Related

Developing Software getting started

I looking for advice on getting started developing simple programs for WM5 - I guess I'm not really bothered if they don'y make use of the advanced features
The options appear to be
#1 MS Visual Studio 2005 (90-trial or $$$)+ WM5 SDK (free)
#2 MS Embedded Visual C++ 4.0 SP4 (free) + WM2003 SDK (free)
#3 MS Embedded Visual C++ 3.0 - 2002 edition - PPC2002+SP2002 SDK included (free). Also include Embedded Visual Basic.
As my recent experience is VB I guess option 3 is best C++ learning curve might be a bit steep given the just for fun motivation
but ..... there are other options saw this today
PPL - Pocket Programming Language
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
Starting as low as $39.95 USD for a limited time.PPL - Pocket Programming Language
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
Starting as low as $39.95 USD for a limited time.
http://www.pocketpcthoughts.com/forums/viewtopic.php?t=52935&highlight=
there must be other options?
I guess SharpDevelop 2.1
develop is an Open Source IDE written in c# and running on the Microsoft .NET platform.
http://wiki.sharpdevelop.net/default.aspx/SharpDevelop.CompactFramework2Development
Opinions welcomed
The old VB for CE (and eVB) were rubbish. Unless it changed in much later versions these were just VBscript, not actually VB. Very limited functionality indeed.
All the C++ versions work OK (and I still use eVC++ 4 sometimes) , but of course C++ is a fairly fiddly, low-productivity language. It's not really the ideal language for having a play.
So, sorry to say, of the Microsoft ones VS2003/VS2005 using VB.net or c#.net are by far the easiest, and most productive of other offerings.
Never tried the non-MS ones.
Stuart
The real trouble with embedded VB is the runtime library it requires which will not run on WM 5 (it barely works on WM 2003).
I remember seeing a cheap and according to the manufacturer powerful VB compiler in some post on the forum, but for the life of me can't remember the name. It compiles to native code and doesn't require a run time.
Now it's true that C++ takes more work to get things done, but it also gives you more power. Even if you just program for your self you may one day want to create your own today plugin or even keyboard and that can't be done in .NET
My recommendation: Spend a little time and learn MFC. It has a lot of similarities to the .NET languages and saves a lot of work for C++ programmers.
[OT] i've also just started "trying" to create applications using vb.net on VS5. Am i allowed to ask questions here? Or is there a thread for posting vb or c questions?
Never seen a specif thread for these, and I am here quite often for a long time.
If you have a specific question you can even open a new thread, no need to clatter several unrelated issues in to one giant thread just because there about same programing language.
Just do a quick search first to make sure it's not something that was asked a 100 times and away you go.
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
thanks levenum. i will be doing that
starfish_001 said:
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
Click to expand...
Click to collapse
I can highly recommend ppl, seeing as I just entered the games competition and had my entry done in just over twenty days, without any real windows based programming background.
it's relatively cheap, and the support is great, with questions on the forum getting a very fast turn around.
Here's another to look at Basic4ppc
http://www.basic4ppc.com/
Basic4ppc and ppl are both great little applications
what is MFC ?
levenum said:
My recommendation: Spend a little time and learn MFC. It has a lot of similarities to the .NET languages and saves a lot of work for C++ programmers.
Click to expand...
Click to collapse
trying ot choose on which programming language I will begin with and I was wondering what is MFC ?
Thank you
MFC == microsoft foundation Classes --- library
it's a library which encaption the gui and other general purpos functionalitet of windows in a set of classes that makes it
easier to get ones program up and running without having to
worry about WinMain and a messageLoop
http://en.wikipedia.org/wiki/Microsoft_Foundation_Classes
microsoft have long since abandoned mfc as their pref library
now they are pushing .NET
problem is that .net is slower more so on devices like pda's
MFC really means
Mother F*cking Crazy, which it will drive you! All joking aside it is probably the best thing to develop in. I've writen small apps with it on every CE since 2.11 and even on XPeMbedded (which I'd avoid like the black death).
I've had great success with C# on WM5 and Pocket PC before. Even wrote a handheld POS terminal. Microsoft is really behind .NET and it will be supported for a long time. It's very easy to learn and the documentation is great.
Visual Basic .NET will do the same job, but keep in mind the switch from VB6 to VB.NET is HUGE. Just because some of the code looks the same doesn't mean it is. I'd take the time and learn C#. If you're really serious register as Microsoft ISV (their program is Empower for ISVs). For $375 you get basically everything MS has written in the last 10 years. You get 5 development use copies of anything you want including Visual Studio 2005 Professional. All you have to do is create an app for a Microsoft system in 18 months.
PM me if you need any more details.
Thanks
starfish_001 said:
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
Click to expand...
Click to collapse
Thank u bro

Do I have to use Visual C++?

Hi there,
I'd like to do some Windows Mobile development but, quite frankly, I do not have the time or energy to learn Visual C++.
I'm good with Perl, PHP and Visual Basic and au fait with Windows Mobile - so the concepts of development on this platform aren't an issue. It's just simply a case of learning C++ does not fill me with any kind of excitement.
I looked at eVB, but its ancient and lacking in many respects. I thought about Visual Basic .NET but there appears to be no documentation around - you can't even buy a book on Windows Mobile development with it.
Any suggestions on something I can use which doesn't have a steep learning curve and allows me to get on writing useful things without spending the next 2 years learning dull stuff?
Thanks.
any of the c languages would be the best as they are native to winmo. you can use vb.net and it will work just fine. i have developed a few simple apps with vb.net and am working on one now i hope to release on here when i am finished. i am in the process of furthering my knowledge of vb.net and also learning asp.net, ado.net and c++ so i am very busy with programming. i would recommend learning one of the c languages if you really want to get in depth with winmo programming but like i said vb.net will work just wont be the best.
ps if you are comfortable with vb.net learning c++ should not be that difficult for you.
When you're using .net it doesn't matter if you use vb.net, visual c++ or any other .net language because eventually you'll end op with MSIL (Microsoft Intermediate Language). All .net languages are equally fast (except vb.net when you use the old visual basic namespace, so don't use it!)
"Visual Basic .NET"
.net compact framework is pretty well documented
come to think of it all msdn's examples are first vb.net
then c#.net and then c++.net and maybe j# or jscript.net
so plenty of documentation in that department
c# is not that hard if you know java it's much of the same
but if what you wanna do is pretty "basic" then mortscripts goes along way

Language being used for applications

I've been developing enterprise applications for over a decade now, but PPC Development is totally new for me. I'm curious to know what language most PPC developers use to build their applications? Is it common to develop using Mobile .NET or are most of the applications developed in C++?
I really want to get involved, as there are applications I would like to write, but I'm struggling to find a starting point.
I want to develop a finger friendly application like the SPB Mobile Shell, and I assume I will have to use C++ and animations to ge the desired functionality? Any help is greatly appreciated.
The simplest way to start is using the .NET platform.
Its main languages are Visual C# and Visual Basic.
The main advantage is that those two languages are simple (the C# is close to the Java language) and secure in terms of memory management, but they also are slow, because the compiler creates managed code, just like the java compiler does.
I've tried to do some small apps using C#, and it's really entertaining and "simple". The problem is that you need the Microsoft Visual Studio IDE, which is not free, unless you use a free version, the Visual Studio Express IDE, but I'm not quite sure that it works to dev on a PPC.
As far as I know, there is a way to do unmanaged code, using C++ I guess, which is much faster. I don't know how to program in C++ for a PPC, and I'm also interested, as the few apps that I made in C# were really slow.
Good luck !
ErGo_404 said:
The simplest way to start is using the .NET platform.
Its main languages are Visual C# and Visual Basic.
The main advantage is that those two languages are simple (the C# is close to the Java language) and secure in terms of memory management, but they also are slow, because the compiler creates managed code, just like the java compiler does.
I've tried to do some small apps using C#, and it's really entertaining and "simple". The problem is that you need the Microsoft Visual Studio IDE, which is not free, unless you use a free version, the Visual Studio Express IDE, but I'm not quite sure that it works to dev on a PPC.
As far as I know, there is a way to do unmanaged code, using C++ I guess, which is much faster. I don't know how to program in C++ for a PPC, and I'm also interested, as the few apps that I made in C# were really slow.
Good luck !
Click to expand...
Click to collapse
I'm guessing that applications like SPB Mobile Shell is developed in C++. I just don't see how it could be .NET code. I was sort of hoping, considering this is a developers forum, that there would be a better response to this thread; however the overwhelming feeling I get is that the 'new' people aren't cool enough to share information with.
devikta said:
I'm guessing that applications like SPB Mobile Shell is developed in C++. I just don't see how it could be .NET code. I was sort of hoping, considering this is a developers forum, that there would be a better response to this thread; however the overwhelming feeling I get is that the 'new' people aren't cool enough to share information with.
Click to expand...
Click to collapse
I feel your pain but best suggestion I can give to you is there is icontact app for which author have released source code (Thank you very much for that) . Look at the code and try to understand and see where you can get with it.
I started using visual studio IDE but I was running in to issue with the IDE itself, good luck to you.

[DEV] Which language to take?

hi!
next time i wanna try developing diamond apps on my own.
a few years ago, i developed software for pocket pcs using eVC++ 3.0. so you can see i'm used to programming and c++. i also wrote some java-stuff for symbian mobiles, means i do know java too.
in this forum, i saw quite a lot of code-snippets using c#. it looks similar to java, from what i can tell by now. i'm very curious about learning that language in order to write my own diamond applications. so here are my question to the developers:
- are there any limitations to c#? on a pocketpc, you could nearly do everything with c++ and the win api. but java was very limited.
- can i use native api functions?
- which language is the most used one, when it comes to winmobile developing?
- c# is microsoft, right? does it make sense, to learn "a ms specific" language, instead of reactivating and strengthening knowledge in c++ and/or java?
thanks a lot for your advice!
yours, hebbe
pleeeeeeasseeee

noob question: How to start programming?

Hi all,
Finally I've my HD2 and I must say, I'm very happy with it!
I'm no noob in informatics, I program in VB and VBA and I'm DBA in Oracle and SQL Server. But to be honest, I don't now how to start.
I tried searching the forum here, but couldn't find a thread: how to start programming on a WMO-device.
Thanks already for the info!
Koen
PS for example I would like to program this:
keyboard layout French (AZERTY)
T9 language Dutch
Koen D said:
how to start programming on a WMO-device.
Click to expand...
Click to collapse
You start programming for WM the same way you do it for Win32. Just download mobile SDK from Microsoft and you're good to go. You use the same IDE, Visual Studio, for mobile programming, and coding experience is the same, in addition to the fact that a lot of code using WinAPI will just work. There are differences of course with regard to memory management or power management etc., but those are either documented on msdn or are discussed at length everywhere on the web.
VB and .Net won't be good for your purpose though, you'd need native C++ code for things like rewriting a T9 engine I think.
Hey hey!
You can find many interesting postings and topics here:
http://forum.xda-developers.com/forumdisplay.php?f=522
http://forum.xda-developers.com/forumdisplay.php?f=260
There are much more. Please look for the "stiky" posts. There are often very usefull informations. Sure, the moderators open some stikys "just-for-fun"... ... but many topics are realy interesting.
Some external sites can help you, too:
http://developer.windowsphone.com/Default.aspx (of course)
and
http://www.smartphonedn.com/
you can became a part of the msdn (winmo special) here:
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx
When you became a good dev. You should look for 3rd party stuff like:
http://www.resco.net/developer/default.aspx
For the beginning it should be enough.
regards
You can also program in mobile java, which will make your app portable to more devices.
http://java.sun.com/javame/index.jsp
Do you want to be a ROM chef, or programmer?
Or both ?
To just program for the Windows Mobile OS, you can
grab a (free) version of Microsoft Visual Studio 2010/2008
and download the WIndows Mobile development resource kit
from them.
Then you can blast away in C#, C or .NET
If you just want to cook ROM's then look at the kitchen thread.
Look at that thread anyway
Try Visual Studio, VB.NET and the Windows Mobile SDK there it is s
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
yep. most WM apps use C++, but even the C# apps will run as most of the ROMs contain the .NET fw by default
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Is there something I cant build using C only in this phones?
I mean can I build a complete rom, applications and such using only C?
thats the only lang I know so...
mr_Ray said:
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Click to expand...
Click to collapse
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Click to expand...
Click to collapse
There are pros and cons to using managed code (C#/VB), and the same holds true about native code (C++). The former is much easier for high-level tasks, but you get less control and it may get a bit tricky when you need to access WinAPI not included in .Net CF (although there are usually ways to do it via Platform Invoke). .Net applications start slower, which may be an issue for certain tasks. Native code is (should be) faster, but a bit more complex and you don't have things like automatic garbage collection and so on. Sometimes you need a couple of lines of code in C# instead of two dozen in C++. Sometimes not. On the other hand, writing something like a graphics-heavy game in C# would be a strange endeavor. Some things are outright impossible like writing a system service, AFAIK. All in all, the pros and cons are described at length everywhere, and it's up to you to decide.
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
In the Development and Hacking section you'll find a C# GUI framework (it's called Manila UI Framework or something like that) made by a fellow XDAer.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
If you want non-standard UI elements it can get tricky. For standard UI it's a no-brainer. There are some third-party libraries available. In addition to the C# framework I mentioned earlier, there's Qt (a cross-platform UI framework used by Opera for all their desktop (Linux, Win and Mac) and mobile (WM and Symbian) and embedded platforms including TV set-top boxes) incarnations, Airplay SDK that's a cross-platform framework for Android, WM and iPhone, some others I can't recall right away. They may or may not be free however.
Thanks for the reply, good to know about Qt. I'm vaguely familiar with that, had now idea it found it's way to Windows Mobile.
The Manila framework is called Manila Interface SDK, at least that's the only match I found.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
Actually it is not the UI but the SDK that has a steep learning curve. Besides the usual loops and if then else.. you need to know exactly which library does what and there is the confusion as there are a couple of them doing similiar things eg Messaging API. At least that is what I encountered when I first started and I agree that C++ has a huge advantage over C# or VB.net as it can interact directly with the hardware api instead going over in a big circle and sometimes, some functions can't even be achieved using vb.net!
Just install vs.net and catch up on OO by diving into vb.net.
You'll be fine coding in either C# or VB.NET, the BCL for Ce is leaner than that for full blown windows but still very usable. After installing vs2008 don't forget to update the default install to wm6.5 sdk.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
Hi mate,
I reckon c++ so u dont need to redisttibute the framework and your app will run fast, but if u want to write apps with db access net framework is the easy way, I'm in Sydney and I do c++ so PM if u need some help,
cheers,
Hlov
BTW is there some good app for programming in my HD2? taking my work on the go? something like visual studio mobile version?

Categories

Resources