Creating Windows Metro style apps with Java? - java

I know how to create small desktop applications in Java. I want to know, can I make Windows Metro style apps in Java? Because on the web only C++/C/C#/JavaScript etc. are mentioned. If yes can you please give me some reference for a quick start. If not which one will be easiest language to start?

You can only create metro style apps with C#, VB, JavaScript and C++. There is currently no support for authoring metro style applications with Java.

You cannot make metro style apps with Java.
For the other part of your question, regarding starter's guide and which language is easy, MSDN has a starter's guide which helps building new metro style apps, this, this and this should be helpful.
And which language is easiest, well it depends on the developer, someone who has been developing .NET or WPF or Windows Forms applications maybe more comfortable with he familiar environment and may prefer developing using C++ and XAML or VisualBasic, depending on what he has been using before, while someone coming from web development may prefer javascript.
For new developers, i would recommend using C# and XAML, but again it is my choice, and not everyone will agree with it.
Here is another link which points to guides at MSDN, and adds some additional detail.

I believe you will not be able to use Java and WinRT. The best option for you to try is C#, because this is the language that is closest to java, in my opinion.

WinRT is still based on COM, so you should be able to access it from Java using something like the Java-COM bridge. Using that would probably be quite hard (you'd have to use strings for method names etc.).
If you wanted to use WinRT comfortably from Java, that would require modifying the Java runtime and possibly also the compiler to make them aware of WinRT types.

Actually you can quite easily write a metro style web application by using a CSS library like this one: http://metroui.org.ua/
With this CSS, it is possibly to generate plain old HTML with Java on the server side (e.g. via a servlet) and then reverence the CSS classes.
I did this by using the org.apache.ecs library (it's very old but it works pretty good).

C# and Java are similar, but with different Frameworks. Look into developing Metro Style apps in C#. Remember to sign up for a developer's license for Windows Store Apps!

You could write your app in Java and cross compile into JavaScript using GWT. We do this successfully with a couple of Windows (Phone and Desktop) apps. Additionally, the code can be shared with your iOS and Android ports.

here what i found in sourceforge.net
http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=slibrary
this is the most close ui to metro theme i saw.

Related

GWT kind of thing in .NET

Is there is any alternate of GWT in .Net. GWT is basically an API from Google which allows you to code in Java and when the application is deployed, the GWT cross-compiler translates the Java application to standalone JavaScript files that are optionally obfuscated and deeply optimized.
For more details visit :- http://en.wikipedia.org/wiki/Google_Web_Toolkit
You may checkout Script# but to be honest with you those kind of things don't get enough attention in the .NET world as this might be the case with GWT.
From a quick google: jsc, SharpKit and Script#.
However as JavaScript becomes more ubiquitous (and it will node.js etc) it may be worth investing the time to learn to code JavaScript natively.
I don't think so. There are some projects that try to do cross-compilation of C# to JavaScript (ScriptSharp, SharpKit), but I don't think it's the right way to do it.
I would suggest investing the time into embracing the web as it is and trying a MVC-like web framework (KnockoutJS, AngularJS, EmberJS, BackBone).

Google Web Toolkit Sample Applications

I have googled some time now trying to find a good sample application that is written with the Google Web Toolkit (preferably with Eclipse). I'm looking for a full web application with a database and stuff like the following program on codeplex which is written in ASP.NET and has a login system:
http://mvcmusicstore.codeplex.com/
I found some other sites but they do not contain the exact details that I need:
http://code.google.com/p/gwt-examples/wiki/project_MySQLConn
http://code.google.com/intl/nl/webtoolkit/examples/
I want to learn GWT because I think it has some great advantages.
Generate (good and cross-browser compatible (>IE6, >FF~2.0, >chrome1)) JavaScript at the server-side for the client that will save CPU cycles on the server
Use Java at the server (instead of C# with ASP.NET) which is free to use and deploy, and is a good OO language
Program and test in other OS's than windows (LAMP server, free :) )
Out of the box HTML5 support which can be used as a replacement for flash/silverlight animations to save bandwidth
Eclipse has a visual designer plugin (GPE) where you can put widgets on and works like WPF/Silverlight where I have already some experience with
The widgets are great and I expect them to work like the WPF/Silverlight equivalents (stackpanels, grids etcetera)
Google uses it (so it must be great :P )
Some disadvantages in my opinion:
No good support for VS2010 (super IDE of course)
Not as many users as ASP.NET or PHP (?) so less good code examples to find
Not many I think? Maybe some little debug difficulties because of the generated JavaScript
Please criticize this as much as possible ;)
GWT projects are almost identical to other Java-based web applications. Client side has the major differences (and limitations therefore) of course, but everything else is pure Java. Maybe it would be better to start off by learning Hibernate, servlets and such? Find out the best techniques for You and then dig into GWT.
EDIT: I found a really detailed GWT tutorial http://www.vogella.de/articles/GWT/article.html

What are the pros and cons of using webworks versus J2ME and vice versa in blackberry development?

I have written some basic applications using J2Me and felt that getting things done in terms of UI/UX were a night mare especially with blackberry OS 5. I then started playing around with Webworks and found it to be better and faster however i keep getting told that it is better to stick with J2ME. Which one is a better choice? Is one limited in features than the other? What will RIM support for the long term future?
This is a decision to be made for each application.
How well do you know HTML, Javascript, and CSS? How much device integration do you need? How graphics intensive will the application be?
HTML et al have a much lower learning curve than J2ME and the RIM APIs. You are missing some of the more functionality that integrates deep into the phones abilities. But you have a distinct advantage in that anything that you find missing in the Webworks libraries, you can write as Javascript extension in Java.
Webworks itself is limited to the blackberry platform, but HTML, Javascript, and CSS are practically universal. It's simple to turn the application into something that will work in a web browser. Just take out Javascript calls to any blackberry.* apis (or wrap their use in blocks like if (blackberry) {), and redirect anything in an XMLHTTPRequest to be proxied through something on the local server. I'm doing it this way for a Playbook app I'm working on. It's nice that I can show others that don't use a BB the functionality of my app.
It's probably pretty easy to take your Webworks app and alter it for another framework like Adobe AIR or PhoneGap (I haven't tried, but intend to at some point).
From experience, Webworks seems to be easier to develop in terms of UI. But in terms in functionality, there isn't much. I don't know if they've changed this, but before, if there wasn't specific functionality in Webworks, you could create your own by porting the Java code over and creating your own extension.
I would say that using J2ME, would be the better choice if you need more integration with device functionality, rather than UI.

What are the options for developing powerful browser hosted UI in Java?

I am interested to widen my horizons and wish to learn what are the options for developing a powerful browser hosted UI in Java. All I know is .NET based solutions, specifically Silverlight, which I find extremely powerful, although not without some regretful omissions as compared to its elder brother - WPF.
So, to rephrase my question. Are there mature Silverlight alternatives in Java?
Thanks.
P.S.
I am not starting the war of Java vs .NET, so please do not raise the benefits of Java against .NET in general. I am interested in a specific area only, anything else is put aside.
Please, do not bring Adobe AIR, flex, HTML5, etc... The questions is about Java.
The question is about Java, but front-ends for the web are almost never written in pure Java.
GWT - that's where you write pure Java which is then translated to javascript and html automatically
JSF - you reuse rich components to create your pages. Still there's html and javascript. This resembles the ASP.NET model
Vaadin - heard of it, never used it. Seems promising
ZK - Same as above.
jQuery - yes, this has nothing to do with Java, but is very powerful tool for creating rich UI
Flex - easy integration with Java back-ends. (I personally don't like Flex, but it's a viable option)
(I specifically omitted JavaFX, because in my opinion it is not yet mature)
You know, having rich applications in the browser using Java has existed since, say, 1999 : applets, that's what they're for.
They were long far from beautiful. However, with the recent apparition of JavaFX, they can now have a very nice look.
The closest thing to Silverlight in the Java world is JavaFX. I haven't worked with it myself though, and I don't think I've randomly come across any sites using it in the wild... which means your users are less likely to have whatever plugin is required... and you're likely to be cutting out most mobile users too. (I believe there's a mobile flavour of JavaFX, or at least one planned, but you really want to find out whether it exists on iPhone/Android/(whatever your target market is).
Personally I would probably try to stick to HTML 5 and JavaScript, which can still be pretty rich. (That doesn't necessarily mean writing all the UI by hand, of course - projects like GWT and jQuery are your friends.)
Open Laszlo is worth a look they have a nice interactive demo section too.
The OpenLaszlo platform consists of the LZX programming language and the OpenLaszlo Server:
LZX is an XML and JavaScript description language similar in spirit to XUL, MXML, and XAML. LZX enables a declarative, text-based development process that supports rapid prototyping and software development best practices. It is designed to be familiar to traditional web application developers who are familiar with HTML and Javascript.
The OpenLaszlo Server is a Java servlet that compiles LZX applications into executable binaries for targeted run-time environments.
I'm not sure if it fits your demand but have you looked at the Google Web Toolkit? It compiles Java to javascript and some colleges have made nice UI's with it.
I've used GWT before and more recently Vaadin which I would recommend. You can give it a go at a demo sampler here. I am currently using it to create custom portlets for the Liferay CMS/Portal and I am pretty happy with it.

Programming language for web

I haven't programmed in a while, and have kind of lost interest, but I want to get back, and I've enjoyed C# the most, a lot more than objective-c and visual basic. So I want to make some games that me and my friends will be able to play next school year. So basically something you can play on the web.
What programming languages deploy to the web?
If c# is possible, and a mac with safari/firefox would be able to use it (I can't install plugins, and I don't want to get in trouble for making myself admin again)
Flash, Java, etc. If java does, I'd like that most since it's most like c#. Then what libraries/engines would I use? I want to do 2d. And then what IDE would I use?
Heh, program a game in vanilla JavaScript, there's a good idea. </sarcasm>
Java will deploy to the web...with an applet installed. You remember those from c. 2003; they were all over the place on the web. Alternatively, you might be able to use Google Web Toolkit to "compile" Java code to javaScript. This is how they made GMail and Google Wave.
I haven't researched it much, but I've heard it's powerful and useful.
Have a look at the NerdDinner Tutorial for ASP.NET MVC. I think you will find it very interesting. You can stick with C#, use Visual Studio, and learn new things like client-side programming with Javascript and jQuery. It's also compatible with Flash.
If you want to start some project quickly and in a productive way, I recommend checking Ruby on Rails, but, the syntax is different than Java and it is not strongly typed, but it is the most quicker way to build a web application.
I am not sure if mono project, does implement asp.net and or C# for web, I think it is more related with the client side. (considering you are on a mac and .Net is all Microsoft world)
If you want to stick with Java, I recommend watching some screencasts related to Java Server Faces.
Jquery does also a great job on the UI and Ajax, and it is server side independent.
I am using Flex for some projects, but if I would not be able to use it, I'd go with Google Web toolkit. It is all Java, even when generating html, it has some sort of a small footprint java-to-javascript compiler so all your code is Java, and what has to be compiled to JS / Html, it does it for you afterwards.
Cheers,
Ernani
What programming languages deploy to
the web?
Java, C#, Python, Perl for the back end.
HTML, CSS, JavaScript, Flash, Flex on the front end.
If c# is possible, and a mac with
safari/firefox would be able to use it
(I can't install plugins, and I don't
want to get in trouble for making
myself admin again) Flash, Java, etc.
C# is out for Mac, as far as I know. It'll have to be Java, Python, or Perl if you use Mac.
If java does, I'd like that most since
it's most like c#. Then what
libraries/engines would I use? I want
to do 2d.
You can use Java2D or OpenGL for graphics.
And then what IDE would I use?
I think IntelliJ is the best IDE there is, but you'll probably go with Eclipse or NetBeans since both are free.
I would recommend ASP.NET MVC if you need some server-side logic and connection to Database.
If you just need 2D graphics, I would recommend using javascript (with jQuery or other libraries) and take advantage of the Canvas. If you are so into C#, you can use Silverlight to do 2D drawing on the browser, but your users will probably need to install the plugin (much like Flash). The latter is also another option, with a syntax similar to Javascript, but with a graphical IDE.
If Google's Native Client pulls through to other languages than C and C++ (which it should), then you would be able to run C# directly. You'd still have to write the UI and such, though, but if you absolutely prefer C#, then NaCl is probably the way to go if you're willing to wait for widespread adoption.

Categories

Resources