Loading… Loading…. Loading… 0 How to Make Friendly URLs

What are friendly URLs?

The idea is instead of something like this in the address bar:

http://www.yourunfriendlysite.com/index.cfm?event=someAction

you have something a) perhaps more easily remembered, and b) easier on the eyes like this:

http://www.yourfriendlysite.com/someAction/

Pete Frietag has written a great example of how to use friendly urls in your application. Expecially for those of us that use frameworks such as Mach-ii, Fusebox, Model Glue, etc., this is a nice touch to add to an application.

ColdFusion moving on up!

Sean Corfield blogged about a new rating that places ColdFusion as the 19th most popular language.

This comes from the TIOBE Programming Community Index for November 2005.  Now on the surface, 19th doesn’t sound exceptionally impressive, but this isn’t “web language”, this is all languages as defined by the Wikipedia definition for “language”.  The most notable thing to me is how dramatically it has jumped (note the green arrows).  It think that is far more significant than the position itself.

Pandora – a new online music experience

I was introduced to a very cool music site tonight at www.pandora.com.  Very simply, you enter an artist or song you like, and it creates a virtual streaming music station of similar artists/songs.  So far so good.  I began with a downtempo/trip-hop artist I like called  Peace Orchestra.  In the first 4 songs it served me up other artists that I already liked (Lamb and Jazzanova) and introduced me to a couple of new ones.  Go check it out!

Java J2EE vs. Microsoft .NET

What follows is a very high level view article that I put together for my boss to answer clients’ questions of “What is the difference between Java and .Net”. Much of this article is borrowed from several sources, of which I listed the sites at the bottom.  By no means is this an end-all-be-all definitive guide, but is intented to be more of an unbiased guide for someone at a management level.  It is an open document and I completely welcome input on where I could have made it better or more accurate.


  • Java (J2EE) – When people speak of Java web applications, they are referring to “The Java 2 Platform, Enterprise Edition (J2EE)”.  It was designed to simplify complex problems with the development, deployment, and management of multi-tier enterprise solutions. J2EE is not a product, but rather an industry standard, and is the result of a large industry initiative led by Sun Microsystems.    Since it is a platform rather than a product, you cannot just “download J2EE”.  Instead, one needs to choose one of the many J2EE platforms to run on, and install that on top of the Java JDK (several implementations include the JDK).

    There are a number of widely used open source J2EE runtime environments, in addition to some of the purchasable solutions such as Websphere, BEA, Oracle, etc.  Once installed, the various implementations all perform virtually the same from functionality to speed, whether open source or “paid version”.

  • .NET – Per their marketing documents, Microsoft.NET8 is product suite that enables organizations to build smart, enterprise-class web services. Note the important difference between the two: .NET is a product strategy, whereas J2EE is a standard to which products are written.

    Microsoft.NET is largely a rewrite of Windows DNA, which was Microsoft’s previous platform for developing enterprise applications. Windows DNA includes many proven technologies that are in production today, including Microsoft Transaction Server (MTS) and COM+, Microsoft Message Queue (MSMQ), and the Microsoft SQL Server database. The.NET Framework more or less replaces these technologies, and includes a web services layer as well as improved language support.

    Microsoft.NET offers language-independence and language-interoperability. This is one of the most differing and fundamental aspects of the .NET platform. A single .NET component can be written, for example, partially in VB.NET, the .NET version of Visual Basic, and C#.

  • Application layer - An application under either architecture is hosted within a container, which provides qualities of service necessary for enterprise applications, such as transactions, security, and persistence services.   From a high level view and without talking about specific components, application flow under both architectures virtually the same.
  • Business logic layer – The differences really begin to show at this layer.  This layer performs business processing and data logic.

o        J2EE – In large-scale J2EE applications, business logic is built using Enterprise JavaBeans (EJB) components. This layer performs business processing and data logic. It connects to databases using Java Database Connectivity (JDBC) or SQL/J, or existing systems using the Java Connector Architecture (JCA). It can also connect to business partners (B2B) using web services technologies (SOAP, UDDI, WSDL, ebXML) through the Java APIs for XML (the JAX APIs).

o        Microsoft .NET – The business layer of the .NET application is built using .NET managed components. This layer performs business processing and data logic. It connects to databases using Active Data Objects (ADO.NET) and existing systems using services provided by Microsoft Host Integration Server 2000, such as the COM Transaction Integrator (COM TI). It can also connect to business partners using web services technologies (SOAP, UDDI, WSDL).

  • Client layer

o        J2EE – ‘Thick’ clients such as applets or applications connect directly to the EJB layer through the Internet Inter-ORB Protocol (IIOP) rather than web services, since generally the thick clients are written by the same organization that authored J2EE application, and therefore there is no need for XML-based web service collaboration.

Web browsers and wireless devices connect to JavaServer Pages (JSPs) which can render user interfaces in HTML, XHTML, or WML.

o        Microsoft .NET – ‘Thick’ clients, web browsers, wireless devices connect to Active Server Pages (ASP.NET) which render user interfaces in HTML, XHTML, or WML. Heavyweight user interfaces can be built using Windows Forms.

  • Lanquage Support

o        J2EE - J2EE promotes Java-centric computing, and as such all components deployed into a J2EE deployment (such as EJB components and servlets) must be written in the Java language. There can be kind of a middle-ware layer of languages such as ColdFusion that produce Java byte code for runtime, but the end result must be Java language.  Other languages can be bridged into a J2EE solution through web services, CORBA, JNI, or the JCA, as previously mentioned.

o        Microsoft .NET –.NET supports development in any language that Microsoft’s tools support. With the exception of Java, all major languages will be supported. Microsoft’s C# language is most closely equivalent (with the exception of portability) to Java and is also available as a programming language within the Visual Studio.NET environment.  Due to the inter-language support, a single .NET component can therefore be written in several languages.

  • Tools
    • J2EE – The Sun J2EE Product Portfolio includes Forte, a modular and extensible Java-based IDE that pre-dates both Sun J2EE and .NET. Developers who prefer other IDEs for Java development are free to use WebGain’s Visual Caf’, IBM’s VisualAge for Java, Borland’s JBuilder, and more. Numerous 3rd party tools and open source-code products are available.  One of the more recent strong contenders is Eclipse, which is an open source IDE that has plug-ins for many languages, including ColdFusion, XML, UML, HTML.
    • Microsoft .NET – Microsoft has always been a strong tools vendor, and that has not changed. As part of its launch of .NET, Microsoft released a beta version of the Visual Studio.NET integrated development environment. Visual Studio.NET supports all languages supported by earlier releases of Visual Studio – with the notable exception of Java. In its place, the IDE supports C#.
  • Performance

o        This was by far the toughest area to research.   Most of the published benchmark testing reports have been produced by either Sun or Microsoft.  Both claim the other has inadequately represented their product and has countered with later benchmarks trying to prove their stance.  One of the reasons is that it is very difficult to create side by side comparisons.  A fair benchmark is largely based on running identical code which is somewhat impossible.  It is fair to say that under both platforms there are huge systems running with spectacular performance.  Java can boast sites such as ebay.com.  .NET can boast sites such as. Microsoft also boasts of high volume sites such as its own microsoft.com.   The bottom line is, with good programming, neither platform really owns this category.

Some basic bullet points –

  • Arguments supporting both platforms

o        Regardless of which platform you pick, new developers will need to be trained (Java training for J2EE, OO training for .NET)

o        You can build web services today using both platforms

o        Both platforms offer a low system cost, such as jBoss/Linux/Cobalt for J2EE, or Windows/Win32 hardware for .NET.

o        Both platforms offer a single-vendor solution.

o        The scalability of both solutions is theoretically unlimited.

  • Arguments for .NET and against J2EE

o        .NET has a dedicated team at Microsoft’s marketing it

o        .NET has a powerful tool set with Visual Studio.NET

o        .NET has a somewhat simpler programming model, enabling rank-and-file developers to be productive without creating dangers.  Java is argued to have more flexibility, but due to this, there is some lack of protection from yourself from a coding standpoint.

o        .NET gives you language neutrality when developing new eBusiness applications, whereas J2EE makes you treat other languages as separate applications

o        .NET benefits from being strongly interweaved with the underlying operating system

  • Arguments for J2EE and against .NET

o        J2EE is being marketed by an entire industry

o        J2EE is a more mature platform, with a few new web services APIs. .NET is comparatively still somewhat new and introduces risk as with any early-generation technology, although this is much less of an argument since the 2.0 release.

o        .NET web services are not interoperable with current industry standards. Their BizTalk framework has proprietary SOAP extensions and does not support ebXML. This is a major drawback against .NET when using web services.

o        J2EE gives you platform neutrality, including Windows. You also get good (but not free) portability.

o        J2EE lets you use any operating system you prefer, such as Windows, UNIX, or mainframe. Developers can use the environment they are most productive in.

Summary

Both J2EE and .NET are fierce contenders in the world of application development and will almost certainly be battling for the top spot through the next decade.  There will be literally millions of applications built under each of them in the future, and neither one is particularly “better” than the other.  From a cost standpoint, .NET ships with Windows, so there is no additional cost there beyond the operating system. There are also widely used open source J2EE implementations so no cost argument there either.  From a performance difference, both appear to play on a fairly level field.  There are great programming IDEs available for both, and both have high traffic implementations as proven success stories. Arguments can be made for either system, but the one strong winning point in J2EE’s favor is platform independence.

Article resources: www.theserverside.com, www.netcraft.com, www.microsoft.com, www.sun.com, www.godotnet.com, www.javaworld.com

Renew New Orleans

A good friend of mine, Mike Latino, is a NOLA native who has lived in the DFW area the last decade.  He still has a lot of family there and when Katrina hit he, like many others, was deeply affected.   The first Wednesday night as the news was continually breaking, he started trying to figure out what he could do.  Thus www.renewnola.org was born.   His idea was to sell bracelets, in the vein of Lance Armstrong’s “Livestrong” campaign and raise money for local charities that need the most help.

Just because New Orleans is no longer in the daily news, they are far from back to normal and there are countless small organizations still needing help.  The Renew New Orleans fund has already been able to contribute thousands of dollars to charities that have applied for grants and have been accepted.   One charity that has already benefitted greatly from renewnola.org is Boys Hope Girls Hope of New Orleans, two homes that provide a safe and positive environment for children that come from environments that most of us can’t imagine.  The homes were virtually wiped out by the flooding.  This is a wonderful example of a single man taking action and moving mountains by getting people involved.  The bracelets are $5.00, and I would like to urge everyone to please take time to visit the site and purchase a bracelet.  Even if you don’t wish to buy one, please visit the site and pass it on to others who may wish to contribute.