Shedding Development Pounds

BenBusseMuch has been written about how cloud computing, open source software, and programming frameworks have reduced software development costs exponentially in the last decade. As more than a few pundits have said, “anyone with a good idea and an Amazon Web Services account can now create the next Facebook!” Sure, the hyperbole is for dramatic effect, but the underlying point is true: anyone with programming skills can now create a web or mobile application faster and more cheaply than ever before.

The benefits of these advances are clear in the world of startup companies and developers of consumer applications. But how do enterprises, with a far more complex set of requirements and stakeholders, benefit? How do enterprises leverage “agile” and “lean” software development practices, tools, and infrastructure to be more competitive and meet the increasingly demanding expectations of customers, business partners, and their own employees? And how does the technology shift to cloud infrastructure relate to the explosion of “bring your own device” mobile usage at work?

There’s no single silver bullet answer to these questions, but several important trends are relevant to how developers of business apps should be thinking about the intersection of cloud technologies and mobile to make their projects successful.

  • HTML5 is ready for prime time as the best front-end standard for companies that need to build and deploy applications that work on desktop computers, tablets, and phones. HTML5 enables companies to write one application, instead of having to write entirely separate applications for the desktop, iOS, Android, Windows, and other mobile OS platforms.
  • Front-end mobile development toolkits like PhoneGap and Sencha and frameworks like jQuery Mobile and Angular.js will gain market influence since they complement platform- independent development across mobile and web. These toolkits enable developers to package a single application for installation on all mobile operating systems. Users can easily download and install these packaged apps onto their mobile devices just as they would a normal “native” mobile application from an app store.
  • Likewise, the mobile back-end stack for mobile applications will largely be open source,  standards-based, pre-configured, highly secure, and architected specifically for mobile usage. And the mobile back-end will not be subject to someone else’s control. You can install it on your own cloud infrastructure or data center. This is the area that we at DreamFactory are tackling. We’ve written more about this in a blog post about the evolution and design goals of the Dreamfactory Services Platform.
  • Developers will benefit enormously from both front-end and back-end simplification and standardization. Now an individual or small team of application developers can quickly create a prototype app, iterate on the design, create the application, and deliver it to end users in a production environment. Standardization also enables reusable design patterns (and reusable source code in many cases). We’ve written more about this in a blog post about the rise of the front-end developer.
  • The promise of these game changing trends is exciting but enterprises are by necessity risk averse and therefore reluctant to introduce new technologies that haven’t been battle tested in production environments. Enterprises need the flexibility and control to use the core back-end infrastructure that suits their application requirements, whether public cloud, hybrid public-private cloud, or on premise. Back-end service platforms like DreamFactory must be easily installed on the desired server infrastructure and must also integrate seamlessly with existing IT development, deployment, scaling, and security tools and practices. We’ll be writing a lot more about this topic in future posts. Stay tuned!

DreamFactory & Modus Create Case Study

We’re excited to introduce Mike Schwartz, software architect at Modus Create and creator of SilkJS. In this guest blog post, Mike provides a great overview of how his team built a mobile address book application powered by DreamFactory on the back-end and Sencha Touch on the client.

Modus Create

In this blog post, I provide a quick overview of the application we built with DreamFactory and Sencha touch. If you’re a developer, the full case study is an excellent way to learn how the DreamFactory Services Platform works in practice with a real-world example. To dig deeper, you can fork the source code to the Address Book from GitHub here.

Background

DreamFactory partnered with Modus Create to port and enhance an existing address book application created by Modus Create to the new DreamFactory Services Platform (DSP). The address book application is for both mobile devices and has a desktop version for administration.

The existing enterprise address book application we had built called RoloDeux provided a simple, yet powerful facility to access and manage employee contact information from desktop computers or mobile devices.

The Ext JS-powered desktop web application was the management console, while the mobile version, employing Sencha Touch 2 framework, was meant to be an access point only. RoloDeux enjoyed a number of custom-built widgets on top of the base libraries, including a custom ExtJS 4 component called Ext.ux.SchemaGrid. This component handles the dynamic generation of ExtJS data store, grid column definitions, form for creation and editing of records, and URLs for performing API requests to do CRUD operations.

The back end sported a speedy and feature-rich SilkJS server connected to a MySQL database. The Object-Relational Mapping (ORM) implementation allows database tables to be defined as JavaScript objects. Extraneous JavaScript members in the field definitions for a Schema (table) are ignored by the ORM. This allows the programmer to associate more “interesting” information about the field that SQL syntax does not allow. When you edit the Schema definitions, the ORM automatically manages the queries to the database to alter the tables there accordingly.

Project Goals

A key goal of this project was to demonstrate the use of the DreamFactory API, exercise that API as it was being developed, and provide a working example application for developers to learn the DreamFactory platform. The application had to be sufficiently sophisticated to demonstrate that front end developers can develop complex client-server applications using the platform. And the entire application needed to be served on the back end by the DreamFactory Services Platform.

The scope of the application was extended quite a bit to include the creation of contact groups and the organization of contacts into one or more of these groups. The focus of the project would be on the mobile implementations, including a new tablet implementation. The features of the desktop administrative application were enhanced minimally to facilitate the mobile implementations. The mobile implementations were enhanced to become fully functioning contact list management applications with the ability to create, edit, delete groups, contacts, and contact information.

Conclusion

The project was a resounding success! The significant update to RoloDeux using DreamFactory yielded minimum refactoring and maximum benefit on both back and front end to create a new and exciting product.

The full case study describes the process of porting the application, the DSP platform, and the resulting application. You can fork the source code to the Address Book application from GitHub here. Developers may peruse the repository, check out the code, and modify it. It is licensed under the MIT License. Enjoy!

How We Got Here

BillAppletonBack before the turn of the century people started experimenting with new ways to make function calls across the firewall. Around this time in 1998 Dave Winer invented XML-RPC, which stands for Extensible Markup Language Remote Procedure Call. His specification introduced the concept of exchanging XML documents across a URL endpoint. The request and response would constitute a function call. These XML documents were normally exchanged with an HTTP POST transaction, and since this looked like regular web traffic the function calls sliced right through most firewalls. Tony Hong stated the XMethods website about this time, and soon there were many example services that could be called.

Continue reading “How We Got Here”

Build an app using DreamFactory Services Platform

BenBusseThe best way to start learning about how to use DreamFactory is to jump right in and build an application! Before you get going, it’s really helpful to have an example app as a concrete starting point.

Todd Appleton, senior engineer in our Atlanta office, just put together a great To Do List screencast. Todd introduces a bunch of important concepts in a simple To Do list app built with HTML, Javascript (AngularJS), and a few simple lines of CSS.

 There’s a lot of information packed into this short screencast. You’ll learn how to:

  • Import an application from GitHub
  • Browse application source code with the DSP file manager
  • Create database schema for your app
  • Perform basic CRUD operations with REST and JSON
  • Package your application for use in any DSP

 describe the image

After this primer, you’ll have enough knowledge to start building your own application. Also be sure to check out more screencasts, explore the REST API, and get familiar with our documentation.

We love feedback! Let us know what you think in the comments.

Getting Started: DSP Account Setup Screencast

BenBusseWe’ll be posting many screencasts to help you quickly learn how to use DreamFactory to build great apps. The first one to watch is how to sign up and get started building apps with your free trial of the DSP.

In our first ever Account Setup screencast, Todd Appleton, manager of software engineering, explains all you need to know to get up and running with DreamFactory. In just over 7 minutes you’ll learn how to:

  • Create your Dreamfactory account
  • Spin up a new DSP free trial instance
  • Launch applications on your free trial instance

describe the image

After watching Tom’s quick screencast, you’ll be ready to explore the platform on your own and begin building your first application. 

Once you’ve signed up for a free trial, don’t forget to check out more screencasts, explore the REST API, and get familiar with our documentation.

We love feedback! Let us know what you think in the comments.

The Rise of the Front-End Developer Part II

BenBusseWhat is the DreamFactory Services Platform? In a nutshell it’s a pre-built, open source back-end that you can install on any cloud infrastructure (AWS, Azure, RackSpace, etc.) or in your own data center. Released under the Apache license, the DSP is designed with the power, security, and flexibility to deploy a world-class mobile application. It includes a palette of secure services that you can access with REST (or SOAP) to fetch and return JSON (or XML) documents to your client app. You get a fully dedicated SQL database, standard BLOB storage, an external services interface, and highly configurable user management functions.

The DSP works with everything from lightweight CRUD applications to the most sophisticated enterprise mobile apps. And you still get to use your client-side technologies of choice — whether HTML5 in the browser, hybrid, or native, it’s all good. There’s no need to master a brand new language or framework.

It’s a great time to be a front-end developer. And we’re super excited to be a part of a new wave of mobile technologies that enable front-end developers to build amazing apps without relying on a “roll your own” back-end approach.

If this sounds interesting, take the DSP for a spin by signing up for a free trial. After you sign up, check out our screencast tutorials, REST API, and developer documentation. You can also import some sample apps on our GitHub page to start learning how it all works.

Let us know what you think by posting on the DreamFactory website forums, message us on Twitter, or reach out to our support team. We’re here to help!

And stay tuned for future blog posts and screencasts that will dive into a lot more technical detail about how to build great mobile apps with the Dreamfactory Services Platform.

Happy coding!

The Rise of the Front-End Developer Part 1

BenBusseBuilding and deploying data-driven applications, both web and mobile, typically requires a handful of development resources. Consider an enterprise application team consisting of a DBA, server-side team, client-side team, mobile team, and IT resources. Coordinating the work among team members and piecing together the front-end and back-end components of even a basic data-driven application is hard. But it shouldn’t be.

The good news is that there are many client technologies today that make front-end mobile application development a lot easier, particularly if you’re transitioning from web application development to “responsive” mobile app development. These front-end technologies include HTML5 for any device, great new client frameworks like Twitter Bootstrap and AngularJS , “hybrid” app technologies like Adobe PhoneGap and Sencha, and native development SDKs for iOS, Android, and Windows.

What’s missing is an easy way to create the back-end of your mobile application. Today the heavy lifting is done by server-side engineers. That means configuring servers and back-end software, building back-end service interfaces, and testing front-end and back-end integration. These are all time consuming and complex tasks, even for a simple mobile application.

We believe developing a mobile application from scratch should be dramatically easier for front-end developers. You shouldn’t have to become a “full stack” engineer to code and deploy a world-class mobile application. Taking the back-end roles out of the equation and enabling a front-end developer to build and deploy their work makes life alot easier. It’s not overwhelming.

We built the DreamFactory Services Platform (DSP) to help address this challenge. More on that in our next blog post.

How-To Post [Blogging Blueprint]


INTRODUCTION:

Your “how to” blog post should teach the reader how to do something by breaking it down into a series of steps.

Begin your blog post by explaining what problem you are going to solve through your explanation and be sure to include any relevant keywords. Add in a personal story to establish your credibility on this topic. And make sure to end your blog post with a summary of what your reader will gain by following your lead.

Need some inspiration? Check out these “How-To” examples from the HubSpot blog:

Continue reading “How-To Post [Blogging Blueprint]”