Welcome to SolamenteNiel!

I know...I know...in the world of social networking like twitter, blogs just aren't cool anymore, right? Well every once and a while I want to share something that exceeds 144 characters, so I created SolamenteNiel, my blog. While I'm at it, I'm also going old school with a cheesy picture of myself on my blog. In this picture I'm pertending to be an IndyCar driver.

Archive for tip tag (5) Subscribe to RSS feed

Skyway Software announced the developer contest today. I've been involved with setting this up, and I think this an excellent opportunity for web developers and/or eclipse plugin developers to win some serious cash doing something they enjoy doing.

Skyway Software Announces "Skyway Cup 2008" Developer Contest

Tampa, FL – May 1, 2008: Skyway Software, the experts in simplifying software delivery, announces today the Skyway Cup 2008 (Skyway Cup) developer contest. The Skyway Cup will showcase how Skyway Community members use Skyway Builder Community Edition (CE), a model-centric JEE development tool, to serve their specific needs in the following categories:

• Best Rich Internet Application (RIA)
• Best Skyway Builder CE Extension


Read the entire press release here.

Visit the official Skyway Cup website (www.skywaycup.org).

 

There are so many excellent features in Skyway Builder CE, that it's really hard to pick my favorite.  However if you pinned me against the wall and forced me to pick one, it would have to be the Groovy step.  This is one of the latest additions to Skyway modeler's toolbox, and the Groovy step lets the developer inject Groovy script into their models.  Just drop this step onto your Action canvas and configure it with your Groovy script.  The power of Skyway Builder plus the power of Groovy is an awesome combination.

With that said...I'm pretty new to Groovy.  I understand it's power, but I'm not very well versed in the Groovy syntax.  I know...I know....I can just write java in Groovy, however the Groovy syntax is pretty elegant and concise.  I think it's worth investing some time learning it, and I have purchase some books to jump start my learning of Groovy.

One tool that I found particularly usefull is the Groovy Eclipse plugin, and I think it's a great companion to Skyway Builder CE.  I have used it to experiment with some Groovy script, and the plugin let's me iterate very quickly through script changes.  When the script is close to what I want, I copy the script into my Skyway project.

Skyway Builder Tip #3 - Shorten Action Mapping URLs

In Skyway Builder Community Edition, actions are model-based implementations of application logic. The logic is implemented by selecting steps from the toolbox (Skyway palette), dropping them onto the Action canvas, configuring the steps, and defining the sequence of execution. Whether you are implementing the behavior of the web application in response to a user event or implementing the logic of a service, the same model-based approach is used and the same set of steps are available.

When you are using actions to implement the behavious of a web application, an action mapping URL is automatically created for you. This is the URL that's used in the web layer to invoke the Action's logic. By default the url is a fully qualified url that contains a reference to the web controller and web conversation.

For example in the following hierarchy of Skyway development artifacts, there is a controller called AdminController that contains a web conversation called UserAdmin. The conversation contains discrete logic for creating new users and expiring a user account.
- Project
    - AdminController (Web Controller)
        - UserAdmin (Web Conversation)
            - CreateNewUserAccount (Action)
            - ExpireUserAccount (Action)

When the CreateNewUserAccount action is created, and URL action mapping called "/AdminController/UserAdmin/CreateNewUserAccount" is added to the controller. You will find a list of URL action mappings in the "URL Action Mapping" tab of the web controller editor. A user interface element/control can be bound to this url. When a user event occurs that triggers this url, the action logic associated (mapped) to this URL will be executed.

The default url is perfectly suitable, however you can make the URL whatever you want by changing it from the URL Action Mapping tab. In some cases you might find the URL is longer than you desire, so you may shorten it to "/CreateNewUserAccount". The project will be automatically updated to reflect the new URL. Sometimes I find that having shorter urls makes my JSP pages more readible.

On a side note: if I don't want an a Action to be directly accessible from the web layer, I simply remove that action mapping all together.

Keeping with the getting started theme (see Tip #1).....when creating your first Skyway application, you may want to immediately take advantage of the AJAX functionality. However my suggestion is to first acquaint yourself with standard (pre-AJAX) web development. It's a bit easier to follow, and it follows the standard model-view-controller (MVC) architectural pattern. If you are familiar with a web framework like Struts or Spring MVC, then standard web development with Skyway Builder should come pretty easily. As a matter of fact, the applications produced by Skyway Builder use Spring MVC. The techniques for AJAX development will build on the techniques for building standard web applications.

Skyway Builder Tip #1 - Where to start?

I have decided to start a series of tips on Skyway Builder.  I've been collecting tips over the last few months, but each one would take a little bit of time to write up.  Rather than waiting until they are all ready to be published, I figured I'd write up one tip and publish it.  Then I would move on to the next tip.  But then I had another dilemna....what will be the first tip?  Jumping right into more complex topics didn't seem right.  Since Skyway Builder was open-sourced, there's a lot of new developers using Skyway Builder.  So I figured I start with the most basic tip of all, where to start?

I know that developers approach new technology in a variety of different ways, and each person has they own style of learning.  My free time is very limited.  If there is something that looks interesting to me, I need to figure out pretty quickly if it's worth spending more time on.  I think the following is quickest way to get started with Skyway Builder.

First you should download the latest version of Skyway Builder from www.skywayperspectives.org.  I personally recommend the RCP version because there's significantly less that can go wrong.  Managing Eclipse plugins and dependencies can sometimes get hairy.  So just download the Skyway Builder RCP.  It has everything you need minus the database.

For the database, use either PostgresSQL or MySQL.  These are the most commonly tested databases right now.  Skyway Builder can certainly be used with other databases, but for now your goal is get started quickly.  None of the development you will do with Skyway will tie you to a particular database management system.  You can always change databases later on, and your application just needs to be bound to the new database.

Next I would recommend downloading and deploying the sample application, First Skyway Bank.  It's a sample of how you would build an application using Skyway Builder.  As they say, a picture is worth a thousand words.  With Skyway Builder projects that is particularly true because you are working with models.  Without having to dig into documentation, you will get a high-level introduction to the various types of development artifacts: Project, Services, Operations, Controllers, Conversations, Actions, etc...  I always prefer learning by reverse-engineering sample applications.

Finally I would give the tutorial a try.  It's very basic, but it will guide you through the development of an entire project.  You will gain a better understanding of the implementation of the sample application, and you might even choose to explore a bit and deviate from the script.

If you run into any trouble, join the Skyway Community and post a question on the forums.  There's a lot of experienced users on the forums, and you should get a pretty quick response.