Handheld Development, Lazarus or Turbo Delphi.Net - sql-server

I begin to program some handheld program as hobby, right now i currently have knowledge on Blackberry App (Java), Symbian S60 (PyS60) and J2ME
Something that i wanna learn was Windows Mobile/Pocket PC and iPhone development, but since i don't use Mac so i step to Windows Mobile/Pocket PC development
Here some question:
1. Which is better Lazarus or Turbo Delphi.Net?
2. Do both have some kind support of network access (GPRS, Wi-Fi, HSDPA, etc)?
3. Do both have database access, both remote database and standalone/embed database? like SQL Server 2005 CE?
4. Do i need some driver installed on Windows Mobile/Pocket PC to be able to work with SQL Server 2005 Developer on server i already have?
If possible answer point-by-point
Thanks

Lazarus has form designer built in for WinCE applications, Delphi 4.Net doesn't has one, also CG has stopped developing the Turbo Delphi line, and it's support .Net CF 1.1 only.
Maybe using Delphi Prism will be better option, because it's support the latest .net framework, and with the new MonoTouch it could be better option for future development with IPhone too.
Point 2 & 3, I don't have information about them, you could visit Lazarus forums and wiki to have more information, but for Delphi 4.Net it has support for all classes on the .Net framework CF.
4.If I remember correctly, the .Net CF has drivers for SqlServer Mobile edition and Sql Server, for example it has SqlCEConnection for mobile and SqlConnection for Regular Sql server edition.

I never tried Turbo Delphi .NET, but afaik CodeGear stopped that line, so I wouldn't start new development in it. I also heard that CF.NET was not officially supported and a bit ackward. As said I never used it, I hope that others will comment.
Lazarus core functionality works, but many more "outer" parts are not always tested on CE, and you will have to find stuff out yourself.
Roughly the same as under normal delphi/win23. Can access TCP/IP with Indy10 afaik, but to work with network connections you need api calls
sqlite is sometimes used. In theory all the db drivers should run if their client libraries are available to arm. The DB support should mostly be endian clean. However I don't know which ones are supported.
Sql Server variants are generally not supported by FPC, except via ODBC. And I don't know if CE has that.
Usually you need to have some client lib or a generalized DB connectivity lib ADO/ODBC/JDBC.
Browsing the lazarus/fpc wiki for CE topics could be a good next step. If you persist in CF.NET, I would migrate to VS, and not work with TD.NET.

If I would develop something for a handheld, I would create a webapplication. Only if you need to access the handheld data (pim, gps, ...) it makes sense to create a local running application.
But if you want to create something to run on the device, I would go for FPC / Lazarus as well.

Your questions has been answered so I'll reply with my opinions;
Lazarus: It gives you power of
native application, but it's not used
widely. Give it a try, see if it fits
your needs on the mobile device.
Perhaps report bugs and help its
development.
Delphi Prism + .NET
CF: Object-pascal alike .NET syntax
-which I do not like but that's just my opinion-. Here's a sample video
to get started. It lacks form
designer for .NET CF so if you stick
with it you'll use WinForms designer.
C# + .NET CF. It has really good
IDE for .NET CF development. This is
how I rolled for mobile device
development and I'm happy with it.
ie, if I have a problem the huge .NET
userbase most likely has the
solution.

Related

Web performance isn't up to snuff... what's the new "Microsoft Way"?

Looking for opinions. I'm working on a mid-sized 3-tier ASP.NET project (.NET 2.0 and Visual Studio 2005) with an Oracle on Unix back-end, some beefy MS web servers, and IE browser clients. Performance is pretty bad, and users feel the UI looks outdated as well. We may have an opportunity soon to redesign and rewrite the entire application from the ground up, and I'm wondering what the current or recommended MS platform is.
I was involved with WPF and Silverlight on a different contract when MS downgraded support for Silverlight in favor of "HTML5" for Windows 8 and Windows Phone a few years back. I'm not trying to start a flame war between how long Silverlight or even WPF will be around, but I'm looking for some modern alternatives as of today, April 2013. The one requirement we can't get around is that we can't install something on each and every user PC throughout the client organization.
My own background is in WinForms and C# more so than any of the above, but everywhere I turn it seems developing any new LOB apps in WinForms isn't done much anymore.
Whatever happened to the Application Server platform and apps run thru Remote Desktop? Does it still make sense to develop desktop apps and deploy to app servers and just put a shortcut on each user's desktop, or even map a drive letter like we used to do back in the day?
Your $0.02 would be appreciated!
I would definitely consider doing it as an internal web site.
The UI would be HTML5 using the "single page application" (SPA) for each function you need. Each function would be on a page that is loaded when the user needs it. The javascript/ajax code in the browser would interact with the web server which feeds back the raw data needed to be displayed.
Using Active Directory, you can have full security and customization per person.
If you need lots of interactivity, then you'd also want to consider including SignalR in the mix. (That is one of the "new" MS tools!)
If you can't install anything in the end users' PCs then go ASP.Net. Anything else will require installation.
You can make a web application more appealing to the users by having a good designer and a LOT of javascript. Not remotely comparable to the power and beauty of WPF, but that's your best bet.
WPF is part of the .Net framework and will not run without it installed.
Silverlight could also be an option, but it still requires an installation (although minimal, 4 MB, less-than-2 minute install), but an install anyways.
WinRT only works in Windows 8. It's not supported in lower versions (Vista, XP, 7). So I don't think it's an option as of now (unless all your users have Windows 8, of course).
And no, winforms is not an option. It's also part of the .Net framework, and even if you could get it installed, it doesn't make any sense having to deal with the limitations of it, having many much much better technologies at your disposal.

Developing for a handheld device

We have developed a WPF application (VS 2010 C#, .NET 4.0, MVVM, CaliburnMicro, Agatha) that mostly deals with selling tickets for different transportation types.
Now i need to start developing an application for a handheld device that will be used alongside this WPF application (buying tickets on bus/train, printing, searching etc). Handheld device has an integrated printer + touch display.
The application will have it's own local database (probably SQLite) on the handheld device, but will also need to communicate with the main database (PostgreSQL) using the WPF application's host (WCF service).
Our client has initially picked out a device with Windows Mobile 6.5 / Windows CE 5.0.
I have no experience with handheld devices/developing for them. Now, i’ve been digging around and understand that
WPF/Silverlight type development is supported only for Windows Mobile 7.0 + and Windows CE starting from 6.0 (with latest version).
If we are to develop for older OS, we cannot use VS2010 with all the latest tools etc, since .net compact framework is not supported there anymore.
Developing for older OS can be more time consuming and problematic, CE 5.0 support has already been dropped.
My questions:
If we manage to find a device that supports Mobile 7.0+ / CE 6.0+, what tools, frameworks would be best suited for our development? Or could someone suggest some up-to-date books?
If we need to use Mobile 6.5 / CE 5.0, what are our best options for development?
I understand we need to downgrade to VS2008, but which frameworks/tools are best suited for UI / communication with the WCF service?
Can someone with experience on this subject foresee any problems communicating with the WCF service?
How much more time consuming (ballpark figure) or complicated it would be to develop for these older operating systems? i.e. i would like to know how hard we should push our client for switching to a device with a newer OS (since it’s quite problematic to find a suitably built/priced device with newer OS).
Thanks in advance.
It seems like the Pocket version of Internet Explorer is going to be what you'd want to develop for. I'm not sure how it supports Silverlight and other newer technologies, though. One of the answers in >>THIS QUESTION<< shows how to do some HTML stuff, if that helps.
Windows CE and Windows Mobile (WM) require different SDK downloads. I only use WM here, and I'm not sure what you'd gain by going one route verses another. I was given WM, so I develop for WM.
Are you looking to decide which way to go (CE verses WM)?
The bigger problem is that most newer devices running Microsoft operating systems are all phones. It seems that if you want an industrial style device, you are either stuck with old Windows devices or turn to something running a newer Android platform.
As far as WM platforms, the newer they are, the more features you have access to (like turning on the radio, getting battery status, etc.). WM 6 and up has these features. WM 5 and down does not. Older than WM 5 is referred to as PocketPC.

Alternative for Access+SQL Server for enterprise projects

We're a small software company, developing projects for manufacturing facilities about analysis, traceability, reporting etc. We're using Access for front end, SQL Server for back end. We've quite big customers too and our company is growing. So far it is working fine but I wonder should we move to more influential technologies, such as web based solutions. What do you think about the future of Access?
Well, keep in mind that Access now has a web option. This option works with SharePoint and the new upcoming office 365. Here is a video of an Access application and note how at the half way point I switch to running the application 100% in a web browser. No ActiveX or Silverlight is required. I even tested and run the application on my iPad.
Video here:
http://www.youtube.com/watch?v=AU4mH0jPntI
And Access 2010 also has baked in support for the Azure (cloud) edition of SQL server.
So, we have web based options, cloud based options, and there been significant investments into Access for 2010.
You could have a look at these questions:
MS Access as Enterprise Software?
and
What are the appropriate uses for MS Access?
Here we have a central SQL Server database, with both an MS-Access and a Web client interface. MS-Access is history (we started it 5 years ago) and Web is trendy (less than one year old). I must admit that MS Access is still very very efficient and cheap, once you have resolved some MS access specific problems, to which you might find answers here:
Working with multiple programmers on MS Access
How do you use version control with Access development?
Best way to test a MS Access application?
MS-Access, VBA and error handling
You can always use VB.NET Express. It's free, and Microsoft's licensing should still allow you to sell apps created with it (they did with Express 2005).
UPDATE: Access 2013 has better support for web apps than previous versions, and the apps use SQL Server or SQL Azure under the hood by default. So be sure to thoroughly evaluate the latest version of Access before concluding that you need something else.
A very good alternative to Access with similar features is Lightswitch. Here's a quote from MSDN:
Visual Studio LightSwitch is a development environment designed to simplify and shorten the development of businesses applications and data services. LightSwitch makes it easy to create data-centric business applications that can consume a variety of data sources and create clients that can run on a variety of devices.
While Access now has a web option as #AlbertDKallal mentioned (and which is still worth considering as one option), creating an HTML 5 app is the whole focus of Lightswitch. (Note: the original version of Lightswitch required Silverlight, but the newer versions create HTML5 apps that don't require any plugins.) The app will also be more extensible, since it's a .NET app, and for things that require custom programming you can program in C# or Visual Basic rather than VBA.
I should mention at this point that I haven't actually tried Lightswitch yet (!) - I'm currently evaluating it and these are the features that look attractive to me compared to Access. If anyone reading this in the future is curious about what my experience with it was like, feel free to write a comment to remind me.
For some introductory info, see these links:
Showcase Video
Is Visual Studio LightSwitch the New Access?
(Note that this article is about a the original version of LightSwitch, not the latest version.)
And...for a completely different cloud-based option, check out:
https://www.parasql.com/

Out of browser silverlight 4 application with local database that will run and install on windows or mac?

I am researching using silverlight 4 to develop a desktop application that can be installed from a browser window, now the tricky part is that I want a lightweight database embedded into the application. The database should install with the rest of the application and it should ideally work on both windows and mac systems. Originally I was thinking sqlite would be suitable for this but I have learned that it is not compatible with silverlight. Does anyone know of a solution for this?
There are some available silverlight databases such as:
siaqodb - uses LINQ, available for WP7 - commercial.
effiproz - available for WP7 - commercial.
Perst - open source.
These utilizes silverlight local storage, comes with their own database engine.
There is also Ninja Database Pro that works for Silverlight and Windows Phone 7:
http://www.kellermansoftware.com/p-43-ninja-database-pro.aspx
Nowadays SQL Lite is a viable option for SL4 / SL5.
You could also team that up with DevArt LinqConnect product (http://www.devart.com/linqconnect/) that is an EF / Linq-to-SQL like wrapper over SQL Lite.
I've also looked at alternatives Siaqo DB and Ninja DB (as mentioned by others).
While not exactly a database, the upcoming release of the Sync Framework will support offline caching for Silverlight 4 on the desktop/browser, and Silverlight on Windows Phone 7. As Liam Cavanagh mentions in this blog post before TechEd:
I have a TechEd session this week where I will be demonstrating all of this as well as how we will be extending the capabilities of the sync framework for creating offline applications, specifically allowing Silverlight, Windows Phone 7 and even non-MSFT platforms to be used for the clients.
Link

VS Studio 2008 VB.Net Winform - can it be run on a MAC?

Our company has a handful of Mac users. I recently built a Winform application and now my main user is using a Mac. Is it possible to run this application on a Mac? What would have to be done to convert it? If it is too much, I may just rebuild it is asp.net as a web application.
Thanks in advance!
JCC
Maybe. Many .Net programs can be compiled with mono as well, winforms usually is not a problem, but some libraries (e. g. MS Office libraries for editing Excel files). I am not sure about VB, as mono coders mostly use C#, but you can analyse your code with the Mono Migration Analyzer for portability to mono.
Depending a bit on features and controls used, it may run on Mono. Since you can run Mono on Windows as well it's rather easy to download and test it.
Your basic options are (from least intrusive to most intrusive, from the point of view of a Mac user):
Convert it to a web app.
Run it on a Terminal Server and have them use Remote Desktop.
Run the application in a virtual machine (VMWare or Parallels) that is running Windows.
Try to get it running under Mono.
If there isn’t a strong reason for it to be a desktop application, you really should be thinking in terms of web apps for new applications—at least, that’s an unwritten rule where I work.

Resources