which is better for desktop application? - apache-flex

i'm new to creating desktop applications. I've a working site in php with mysql support. I want to convert this site into a desktop application. Is Adobe AIR or Adobe Flex better?
can i use php as such in both AIR and Flex? or should i convert them to xml or something which it uses?

AIR is Flex on the desktop... So... I suppose you mean whether you can use AIR with PHP? AIR/Flex should be able to handle whatever communication protocol you're using on the server.

Saying 'should i convert them to xml or something' is a bit nebulous.
I guess what you really asking is: Should I rewrite my application entirely in Adobe technologies or Can I/Should I integrate it with my existing PHP code.
I would recommend you expose the existing PHP functionality as RESTful web services and redo the user interface in Adobe AIR. That way you can leverage the existing site to make the desktop application. There is a ton of information of building applications like this, just research REST, SOA (service oriented architecture), SAAS (Software as a Service).
Adobe AIR/Flex is fine, especially if you want it to work on multiple operating systems, but the Application won't necessary have the looking and feel of its host desktop environment.

Adobe AIR is a runtime that adds to the capabilities of Adobe Flash Player to allow the creation of desktop applications.
Adobe Flex is a framework to build rich user interfaces. Flex applications are supported both in Flash Player and AIR.
This cannot be a question of one or the other. Flex can be used together with AIR. If you want a desktop app that allows you to use Adobe's Flash Platform technologies, definitely use AIR. If you want a set of pre-built UI controls to use in that AIR app, use Flex too!
You can communicate with PHP on your server in both Flash Player and AIR. PHP cannot be run directly in AIR. If you want the application to be entirely self-contained with no server, then you can't use PHP.

Related

Best free game server for an MMO developed in Flex 4?

What is the best free game server for a game developed in Flex 4?
Is it possible to make the server using other programming languages?
The server should not be developed using Flex 4, it's not made for..
Take a look at BlazeDS for Flex interactions.
Flex will integrate with any remote server of your choice. What you want depends on what type of games you want to build. If you just want a single player casual game, then any server will work for that. .NET is the only server side platform I know that supports multiple languages.
If you want to create a multiplayer game, then you probably want to look into a media server.
Red5 is an open source free option. Flash Media Server is an Adobe option, but I don't know if there is a free version.
GraniteDS is similar to BlazeDS and/or LiveCycle. It supports server side push, so the server can push data to the client.
Also, for more resources on developing Flash Platform Games, check out Adobe's Resource Center for game development.

Make Desktop Application Web Interfaceable

Is there a way to make a desktop application easily interfaceable via Web ? Meaning, can you have a way to interface with a single desktop application as if you were remote desktop'd into the machine but not? I am looking at doing this in ASP.NET or Silverlight.
I'm not sure if this is exactly what you are looking for...
If you were able to create your entire application UI in Silverlight and host it properly (in IIS or whatever) it would then be accessible from anywhere on the web. If you needed the perception of a real desktop app when running locally, you could then just make some simple app (WinForms, WPF, whatever) which contains a web browser control that could also load up the hosted Silverlight app (and just be a transparent browser). Depending on what the application is doing, you would obviously need some sort of service layer (probably in WCF) do to all of the heavy lifting and data access.
I guess the main question would be: can you accomplish everything your application needs to do in Silverlight? Since Silverlight is meant to run in a browser, it can be very limiting.
There are many solutions based on plugins. Some of the popular ones:
Citrix
Spoon
If you're ok with plugins, but only if they're common ones (flash, java), there are various solutions:
http://www.wizhelp.com/flashlight-vnc/
http://www.tightvnc.com/doc/java/README.txt (bundled java applet with TightVNC)
If you don't want plugins at all, there's an experimental HTML5/javascript VNC viewer:
http://guacamole.sourceforge.net/

how to block http requests to some web-pages from adobe air

Is it any way to prevent user to go to specific web-pages using Adobe AIR framework.
I want this software to run at startup and not allowing user to surf some web parts.
I want to use Adobe AIR beacause of its crossplatform capabilities.
While AIR can detect the computer's connectivity status, it does not come with the ability to restrict access by other applications.

Difference between Adobe AIR and FLEX?

What is the difference between Adobe AIR and FLEX?
The "Flex Framework" is a collection of AS3 classes and components used in developing RIAs.
"Flex Builder" is an IDE used to develop "Flex Applications."
Much in the same way HTML is a collection of tags to develop web pages and Dreamweaver is an IDE for developing web pages. However you don't need Dreamweaver, you can use Notepad, BBEdit, etc. as well.
If you use something other than Flex Builder to develop in Flex, you need to download the Flex SDK to compile. The end result of a compiled Flex Application is an SWF file (Same as Flash).
With the compiled SWF file, a user only needs to have Flash Player installed to run the application.
Most Flex apps are developed, deployed to a server and then a web browser is used to serve the application to the user for use.
I haven't used AIR yet so I don't know what the end product of a compliled AIR Application is, but AIR is an alternative delivery system for Flex Applications, replacing the web server and browser so to speak. It's primary purpose is for deploying RIAs to a user's desktop, independant of an internet connection.
AIR, also allows for the use of HTML, AJAX etc. So an AIR Application could be a collection of all these things, compiled together.
To run an AIR Application, you need AIR Runtime installed on your computer.
Source
AIR is not a superset of Flex.
Adobe AIR is essentially Webkit, Flash, Javascript, Flex, XHTML, CSS, sqlLite.
The applications for air are primarily developed in ECMA. (Actionscript/Javascript). Most AIR applications out and about in the world right now consist of Javascript, xhtml, images, and sqllite.
The Actionscript engine has been extended for AIR to support disk IO and other 'local' system functionality. This allows your application to act just like a normal system application. Although most people are storing their data in sqlLite and rarely write to disk for anything other than logging. (From what I've noticed/read)
Regardless, there isn't a ton of Flex going on in AIR or the AIR community. From what I've noticed its a lot of Javascript/Flash/XHTML people making small apps that run on multi-os through the AIR runtime.
I'd add to Garry's (excellent!) answer by saying it sort of depends on what you're asking. There are conceptual differences and specific differences. Garry's answer details a handful of the specifics.
Conceptually, though, AIR is a superset of Flex, and Flex is a superset of Flash.
A Flash-authored SWF generally (though not always -- but most of the time) runs in a Web browser and is composed of ActionScript code. A Flex-authored SWF also runs in a Web browser (or again, some comparable container) and is composed of ActionScript code, but usually also takes advantage of the Flex framework, which is essentially a bunch of ActionScript classes provided by Adobe to assist developers in building more feature-rich Flash-based applications. AIR, finally, is Flex running on the desktop -- it's Flash-plus-Flex, plus some additional desktop-oriented facilities that allow SWFs authored in either Flash or Flex to be installed and run as desktop applications.
Excellent posts. As a side note, I'd like to add that unlike Flex/Flash SWFs, AIR SWFs cannot, and I repeat, can not be played in a browser. AIR SWFs need their own little sandboxes to run in (that the run time provides).
There are two runtime Flash Platforms one is Flash Player and other Adobe AIR(Adobe Integrated Runtime). Adobe Flash Player is a highly expressive cross-platform runtime that works across all the browsers which have the Flay Player plugin. Flash Player delivers the SWF files that runs within the browser, while AIR delivers the .air standalone applications that run on desktop outside the browsers.
You can find more details about AIR & Flash from here: http://readymadeflash.com/blogs/what-is-the-difference-between-adobe-AIR-and-flash.html
I was under the impression porting flex to air was simple => http://forums.adobe.com/message/2887004
My understanding is that in theory your app should work with only one real change required.
Of course now I have to test this theory...
I would be very exicted if I could retain all of the power of flex, and then gain the HTML Control and the Update Framework since thats all flex is really missing to be all powerful.
Off to experiment.
To understand Flex and Air you need to understand the whole Adobe Flash Platform. Flash is overloaded to mean many things, the Flash platform, the runtime, the runtime API, and the IDE.
Adobe Flash Platform - a broad term that includes everything else
Runtimes:
Adobe Flash Player - the plugin you install on web browser, supports Flash API
Adobe Air Runtime - another plugin you install run as desktop application, supports Air API (a superset of Flash API)
APIs:
ActionScript - backend with either Flash API or Air API, you can choose which API to compile your application with, and it will run on respective runtime. AS works with both Flash UI or Flex UI
UI - Flash component (proprietary fla format) or Flex Framework (XML based)
IDEs:
Adobe Flash Pro (CS4/5/6/CC) - work with Flash projects
Flash Builder - work with Flex projects
Flex is a framework that is used to render content on Flash player, mostly for Enterprise Applications. AIR is a runtime which wraps flex, flash and/or html in a package that can be accessed on a desktop without the use of browser, so that a user can get desktop (like accessing directories, interacting with system chrome, etc...) in addition to giving the user the web feeling (accessing http requests, rendering html, calling web services, etc...).
This is a good comparison thread! I've just built a series of AIR apps for several museum installs. AIR apps are just that...Standalone, compiled and optimized applications, wrapped in it's own installer. It's a rather versatile wrapper in that it will compile a bevy of codes, if you play your cards right. You could essentially build a website, and then crush it all into a desktop application. Because it runs locally, it also has the ability to bypass Flash's security protocols (something I'm not sure Flex is capable of). This allows you to access a whole different level of functionality when it comes to seamlessly linking apps, displays, input/output, etc.
Thusly, you can wrap FLEX builds within an AIR app... Adobes AIR dev center breaks everything down pretty thoroughly, and be sure to read through the adobe livedocs as well!
http://www.adobe.com/devnet/air.html
http://livedocs.adobe.com/flex/3/html/help.html?content=Part5_AIR_1.html

Do I have to use J2ME for Blackberry development?

I would like to begin developing for the Blackberry platform and, specifically, the Bold and also the Storm device which is coming out soon. Do I need to get into Java and J2ME or can I develop sites in ASP.NET and just keep utilizing the skills I already have?
I am completely new to mobile platform development and have no idea what it will take to target these Blackberry devices. I am hoping to continue to use my ASP skills.
To develop Blackberry Applications that are full-featured, have acceptable performance, and look nice, you need to use the RIM native apis.
You can use J2ME applications, but they typically don't mesh well with a full-keyboarded device.
And, of course, web apps will look even worse than that.
This question might help you. "Creating a mini-site in asp.NET that works on blackberry, Windows Mobile, and iPhone"
Are you talking about websites (because you say "develop sites in ASP.NET") or native Blackberry applications (because you say "developing for the Blackberry platform")?
Applications which run on the Blackberry use J2ME. If your application is accessed from a browser on the Blackberry, then it's the server the web app runs on that determines the language, not that it's being accessed from the Blackberry browser.
Then there's Blackberry MDS for integration with enterprise apps. I don't know much about this (never used it or seen an application that uses it) but it's described here: http://na.blackberry.com/eng/services/mobile.jsp
Paul
If you are just doing web development, you don't need to know J2ME for Blackberry. J2ME is a supported JAVA framework for device specific applications. You just need to be familiar with HTML rendering for mobile devices
Assuming that you are building a web app that you intend to be loaded by a Blackberry browser, I suggest building mobile specific pages that are cross compatible across many devices types and configurations.
Look at the Blackberry Browser Development Guides which offer suggestions/best-practices for mobile web development that can applied to all of mobile web development.
Please read this https://web.archive.org/web/20150107061257/https://www.oracle.com/technetwork/systems/index-139239.html
It talks about how one application should not mix RIM UI API calls with CLDC and MIDP API calls.
Ofcourse, I have to mention also that that link is really dated.

Resources