Is there any analog to Microsoft Silverlight in Java World? The requirement is to use native language and share some already written libraries while hosting in a web browser on client side. Silverlight is a great technology, but it doesn't work on Linux. Please don't remind me of Moonlight. Please don't suggest ActionScript as it's not Java.
Thanks.
JavaFX springs immediately to mind, which sort of hangs around in the Flash/Silverlight space. It's pretty immature, though, and not heavily used.
For a more general RCP platform, try Eclipse RCP.
You could look at GWT or Echo2
You may find this review http://vinaytechs.blogspot.com/2009/09/comparison-matrix-of-ajax-frameworks-zk.html interesting as it covers many other options and lists the different features of each.
Related
I have seen the use of the word "platform" and the word "framework" used interchangeably. I would like to get some input on the subject. If someone could answer these questions, it might clear it up for me...
Is .NET a framework or platform?
From the product side, would Visual Studio be considered a Platform?
What would JavaScript be considered?
I am confused. :)
Thank you for your time.
I would say that a platform is something you build on top of -- your OS, an ORM or a set of services provided by an API.
A framework is something you use to build up inside of -- think ASP.Net, WCF or .Net itself.
The platform has functionality which you are extending, while by itself the framework does nothing until you utilize it to create an app.
.NET is a Microsoft Framework
Visual Studio is an IDE
JavaScript is a programming language
A platform IMO is a system, a kind of environment, can consist of a number of different frameworks working together. http://en.wikipedia.org/wiki/Computing_platform
Framework is a toolkit to help you get things done quicker and with conventions so everyone is on the same page.
I can simplify you a little things:
we can say that Windows OS is a "platefom" but about. Net is a "framework"
Generally:
Framework is a set of components that are used to create foundations, architecture and outline for a software.
A platform is formed by the assembly equipment such as a PC and an operating system.
In my company we want to make a desktop software, but we want to create the better experience in the most common platforms (Windows(XP/VISTA/7), Linux and MacOs (And iOS) and several smartphones (android, webOS, windows mobile)
We have studied 3 options 1.- .Net, 2.- Java, 3.- C++ with Qt
We discarded .Net because we don't like the .net support in mac and linux. So, we have 2 options, Java and Qt. Qt sounds very good, but I don't like c++. Java sounds good, but I have the idea (and maybe i'm wrong, you tell me), that java never has the "look and feel" of a real native application. In this moment, the better choices look to be Qt, but i would like the advice of people with more knowledge and experience than me.
Thanks in advance
In my opininon and experience, Qt works fine on many platforms, although I have never tried Mac. Also, the Qt documentation is very well done,complete and easy to understand.
As for Java, I agree that it does not look perfectly native on platforms.
Hope this helps.
Eclipse is written in Java, and it has the look and feel of a native application. The reason is that it uses the SWT libraries. The SWT libraries use native widgets.
You could use some 'web' technology, either the browser or something like Adobe Air. There is no rule saying that a browser app has to run on the internet. HTML5 is going to provide advanced features that are only going to blur the lines between the web and the desktop.
This route has some advantages:
1) There are a bunch of libraries available for developing these applications, Sproutcore, ExtJS, etc.
2) You write javascript, html, css.
3) A lot of developers are familiar with these technologies, so you have a large pool of talent from which to draw.
4) Cross platform
5) Both desktops and mobile devices have browsers. So you won't have (as many) platform dependent versions of your software.
This idea might not be right for whatever you are trying to do, but you can consider it.
I am a fresher in web developing , is I ve to study applets?
If you are a Java person, maybe look at JavaFX instead (even though it is not clear yet if that technology will take off any more than applets did).
If you are a web design person, do not even think about it before you got acquainted with Flash and HTML5. Applets are quite marginal at this point.
Most folks say no, but I still see a lot of great uses for Applets and in fact have seen really complex commercial UIs coded within the context of an applet.
in a short word, no, applets are a dead technology for the general purpose web.
on intranets with lots of bandwith and controlled client environments they maybe of some valid use.
look at Google Web Toolkit (GWT) as an alternative to creating applets.
Adobe Flex is also a good alternative now.
If you want an embedded client application, the Java Web Start (the better Google keyword is JNLP) is less or more the successor of the legacy Java Applet. Alternatives to this are Adobe Flash and MS ClickOnce.
If you want an RIA (Rich Internet Application), then JavaFX is the better Java based choice. Alternatives to this are the MS SilverLight, Adobe Air and Adobe Flex.
Apart from JavaFX, Flash, you can learn about Adobe AIR and Microsoft Silverlight. They are kind of extending the limits of what was earlier possible with just Flash
There is still one thing that I know of that a Java applet can do and Silverlight, Flex (non-AIR), etc can't do:
Drag and drop from the filesystem.
Flex offers a o/s based browse and select filesystem access. Silverlight has a similar functionality. But to the best of my knowledge if you want the user to drag a file from Windows Explorer etc. into a web-site based control, Java applets are pretty much your only choice. You could create a Flex based app using Adobe AIR that can ask the filesystem outside the o/s browse and select dialog but I'm not convinced the AIR install base is adequate yet. Probably depends on your target customer (early adopter, install whatever you say to vs. stable corporate user with IT lockdown on their workstation).
If someone knows otherwise for certain, please comment!
But to answer the original question, unless you need the drag and drop filesystem to web functionality, I would spend your time on Flex. Silverlight and Java FX can't compete with Flash for market penetration. Since Flex compiles to flash, it has a very high install base (>95% of internet enabled computers) and its base updates to the newest version frequently. Inserting a flash file into a browser is a easier than the arcane art of applets.
if you want/might get a job where you maintain old applications then probably you will deal with Applets.
For new projects, dont get close to it.
I am a .NET Developer with about 5 years of web development experience using Microsoft technologies starting with classic ASP to ASP .NET 3.5.
I do have a little background in Java as well and can write/understand Java code very easily. I am looking for resources (online, books) that are compatible with my .NET experience. I am only interested in web development in Java and want to start at intermediate level even if it may require me to look up some details.
What path or resources would you recommend for intermediate .NET web developers to gain equivalent proficiency in Java web development tools?
Get an IDE: IntelliJ (my preference), Eclipse, Netbeans;
Get an application server: Glassfish (my preference; either v2 or v3 Prelude), JBoss or, if you're feeling adventurous, SpringSource dm server;
Get a JDK eg 6u11;
Get a copy of Spring 2.5.6 (or 3.0M2 if you're feeling adventurous);
Get a copy of the Spring reference documentation;
Put the pieces together.
Get yourself a copy of eclipse, and just start reading other people's code, and reading some java docs. The Java website has all the docs online, and they're one of the best language specs I've seen.
Really, if you know C# pretty well, Java should be a cake walk. The languages are pretty similar, so you just need to get to know the different frameworks.
Probably the most helpful book in regards to learning Java's web development framework, Java Server Faces:
Core JSF
- Great examples and explainations throughout on the whole process of using the JSF Framework.
And of course for anyone new to Java I would recommend:
Effective Java
- Covers various design patterns and practices.
In my experience that official Java exams are better than the .Net equivalents, so it may be worth starting there?
Search for a servlet/JSP tutorial (Good, albeit a little old, example here).
You'll get basic knowledge of Java web application development.
Whatever your level is, JSF for Nonbelievers is the best introduction to JSP/JSF.
I'd check out Bitter Java.
It's a book that shows you the wrong way to do things, why it's wrong, and then it shows you the right way.
It pretty much falls in line with the evolution of the j2ee framework. Started with servlets, then moved into jsps, then command pattern, etc.
I need to implement webservices in an upcoming project and wanted to know what are the main points to base the decision on whether to implement using java or .NET
I'm a C++er...
If you're a Java shop use Java. If you're a .NET shop use .NET.
There really is no difference that makes one of the two languages superior to the other in regards to web services.
Possible consideration - .NET pre 3.5 only provided support for SOAP based services, but I believe the 3.5 WCF offers REST and SOAP now.
There's no real difference from programmer's point of view (implementation).
For me, a reason to pick Java is that all tools and infrastructure are free/open source. OS, deployment web server, databases, IDEs and developer tools.
I have plenty of experience with both, and both will certainly do the job.
However I tend to prefer Java over .Net for things like web services for the following reasons:
It's cross-platform, which gives you much better options on the hosting side (e.g. running a big Linux cluster on Amazon EC2)
The library ecosystem is larger and more mature, especially on the server side.
I prefer the more flexible open source philosophy to "the only way is Microsoft". Vendor lock-in is always a bad idea for your enterprise architecture in the long run.
You can optionally use awesome languages like Clojure or Scala on the JVM
Ultimately though, I'd go with the one your team has the most skills with. This will determine what you are most productive with, which is usually most important if your main objective is to deliver value quickly.
It's a personal decision, usually determined by the technology already in place or the skill set of the developer(s) writing the services.
i've never really developed web services in java, but i have in .NET and if you're using Visual Studio they're an absolute cinch to whip up (i expect they're a little more difficult to do without the aid of VS).
if you're already working in java, and don't have any .NET stuff in place, stick with java - it'll save you a lot of money (if you were to get Visual Studio in, as i mentioned), and possibly some time involved in learning the specifics of .NET
In my experience, Web Services are a bit more tightly integrated into Visual Studio than they are into Java's editors.
The Eclipse IDE doesn't even have JAX-WS (Java standard web services stack) support built in, opting to use Apache Axis 1 instead.
Netbeans supports JAX-WS, though.
I personally prefer .NET to Java for many reasons I don't want to go through, since it doesn't really matter and is more a personal preference than a strict guideline I can recommend.
If you have Java infrastructure in place or using a platform other than Windows for your server applications, I strongly suggest Java. However, if you don't have anything in place and running on Windows platform, .NET is pretty cool in that area (WCF/ASMX/WSE/...).
As you say you're a C++ - er you'll probably find .NET easier as you can target it directly from C++.
I'm a Java guy, but I think Web Services are easier to code in .NET. Visual Studio takes care of everything, in Java it takes a bit to get started.
A bit of a problem in some projects with JAX-WS is, that SUN ships the "old" version 2.0 with Java 6. If you want to use the current version, it's some work to make it run with Java 5 and Java 6.
If your app must be portable, you should obviously choose Java. Otherwise I would say it's just a choice of your preferred language, since the above issues are really small (maybe you want to choose Axis or something else anyway, I haven't worked with something other than JAX-WS yet).
IMO if you want to do SOAP, then its a heck of a lot easier to use .NET and WCF. However, I've found REST to be a bit tricky with WCF, and had to implement a custom XML parser to do it instead of using their built-in one.
You probably want to consider your hosting environment too. If you are going to serve this from Windows hardware, you can drop .NET WCF web services into IIS. If you are going to run a Linux/Solaris server, then it isn't even a question...
I suggest implementation with JSP ,it provides a robust platform for development
I prefer JSP to ASP or any microsoft techonolgy!