ColdFusion as one of the server side scripting language has many advantages over its competeting languages and helps to build power web applications and services. ColdFusion is being utilized in small & large business and also for some advanced personal use but it is hosting especially for business website.

The language used in ColdFusion Programming is ColdFusion Markup Language (CFML). It comprises of tags similar to HTML for querying databases, interaction with different services and outputting text. The basic components of ColdFusion programming are ColdFusion Server and Studio. Here ColdFusion server is the application that processes the CFML code and the ColdFusion Studio is being used in ColdFusion Development if programmers develop their application locally and move to the ColdFusion Studio, when it is fully ready to process.

The major benitis of using ColdFusion Consultant is its easiest ways in developing websites among other available web tools in the market like ASP, PHP or JSP. Within a short period of time, web developers can code ColdFusion Programming rapidly because of its simplicity as well as its supportive qualities with other platforms like Apache, IIS, NSAPI based web servers, Solaris, HP-UX and Windows.

It also works with Dream weaver, Flash, Fireworks and Freehand of Macromedia as ColdFusion once was acquired by Macromedia. The new version ColdFusion 8 is come with extra features such as it can now dynamically generate and interact with PDF documents, features of a Multiserver Monitor to gain insight on all servers in a cluster, using simple tags to access a large library of pre built Ajax user interface components, able to specify any .NET object either local or remote and use it in any ColdFusion applications and more features which boost to its popularity in ColdFusion programming and among all other web clients world wide.


More Information visit ColdFusion Development Services.

Most people are familiar with Microsoft Project - project management software that allows you to manage many aspects of projects including tasks, due dates, progress, and people assigned to specific tasks.

Microsoft Project Server is an enterprise storage product that facilitates sharing project plans created with Microsoft Project with other people in a company, especially other project managers. Project Server enables you to manage a workforce by tracking all projects in common and giving you a view of all projects that an individual may be assigned to. Chances are that any large organization will have more than one project manager and using a centralized storage point allows for better group management of projects. In this kind of environment, Project Server acts as the central repository and Microsoft Project acts as a client to access that information. Project Server also provides a Web interface for viewing the status of projects.

The principal (recommended) way to integrate with Microsoft Project is by using the integrated Project Data Service (PDS) that's included with Microsoft Project Server. PDS is a SOAP Web service that translates incoming requests and manages their entry into the system. The most common integration pieces are external user management, timesheet systems, and ticketing systems. The PDS exposes pieces of the puzzle that allow you to integrate with these external systems and to integrate all the parts of your organizational project systems.

The PDS will allow you to create projects, tasks, resources, as well as log time against projects and run administrative reports on information in the system. Granted, for most integration you'll want to use the Microsoft hooks into other Microsoft products. For example, Project Server boasts excellent integration with Microsoft's Outlook Exchange, Active Directory, and Sharepoint. If those are your only integration points, any work you would need to do is done by Microsoft, but if you need to work with a non-Microsoft product, read on.

Often times the largest integration obstacle is simply learning how a product works, and that can easily be the case with Microsoft Project. The initial learning curve of Microsoft Project may be steep but it's worth the hurdle to reach familiarization with the application before and during your implementation.

Read More ...


More Information visit ColdFusion Development Services.

Coldfusion 8Recently I was asked to install a java CFX tag in the ColdFusion 8 Multi-server Configuration. I figured this would be an easy task, as I had done this many times before in the standalone server configuration. I went into the ColdFusion Administrator and installed the CFX tag as normal. However, when I called the CFX tag from the code I received an error that I had never seen before. The error was 500 com/allaire/cfx/CustomTag.

After trying everything I could think of, I decided to compare the java class paths between the stand alone configuration and the multi-server configuration. I found that the cfx.jar file was missing from the java class path in the multi-server configuration. ColdFusion therefore could not load com.allaire.cfx.CustomTag class. So, I decided to add the cfx.jar file to the java classpath and see if that would solve my error. To add the cfx.jar file to the classpath in the ColdFusion multi-server edition you must follow these steps.

  1. Open the jvm.config file located at
    {application.home}/bin
  2. Add
    {application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/libto the section java.class.path"
  3. Save the jvm.config file
  4. Restart the ColdFusion service.
After restarting the ColdFusion service, login to the CF administrator and go to the settings summary. Confirm that the cfx.jar file is in the java classpath. It was there, and I was able to call the CustomTag from my code.

More Information visit ColdFusion Development Services.


I am starting from scratch, putting in a unit testing framework, and working within the existing organization's culture to introduce enough of the tool’s benefits without burdening the organization with too many of the downsides. Everything has a downside, a cost, or whatever you wish to call it. There is no free lunch.

The first steps were to gage the organization's desire for the possible benefits of a unit testing framework, and their willingness to commit to moving forward, and accepting the cost. Having been in an "extreme" programming environment, which was only "extreme" in the sense that projects were "extremely" haphazard and "extremely" mismanaged, making sure that people are clear on what can be expected from implementing some test automation for unit testing and regression testing. Automated does not mean that you do nothing, and the machine does everything. It is difficult to know what people have been sold by the trade journals, and blogs, and common terms are often misappropriated.

The current environment is Flex/Actionscript and HTML, with a ColdFusion backend, with a ColdSpring framework.

The goals are:

1) Automated testing with Ant, with performance metrics logged in a database, and pass/fail results e-mailed nightly to interested parties. (Thorough regression testing and reporting is key).

2) Eclipse Integration or reasonably nice Unit Runner, with easy ability to select individual tests, or test suites. (Easy sell to the engineers is key)

3) Mock Objects, automated test generation, anything to minimize the time impact on engineering, while maximizing the benefit, and keeping the program moving.

Sean Corfield had mentioned MXUnit fairly recently, so it seemed worth a look. Given the higher volume of activity on MXUnit, when compared to CFCUnit and CFUnit, it seemed like a reasonable way to go, for the best of all worlds for future itegrated add-ons. The first downside I will mention is that *MXUnit’s Eclipse Integration is Not Flex Builder 2.01 Compatible, or rather, not compatible with the version of Eclipse (3.11) that ships with Flex Builder 2.01* This wasn’t super clear from the MXUnit website, so it’s possible for an engineer to go through the installation instructions, and end up with a failing plug in. This might not be a problem for some organizations, but may be for others. Most of the team has not yet upgraded to FB 3, so it could be an issue at the moment.

MXUnit's Eclipse integration isn't quite finished, or at least that's how it felt for me. It "worked", but was lacking a few things that I thought were important. An html or Flex based unit runner will do the trick though, so it's not a huge problem.

The things which make the integrated unit runner a little less than usable, for me, are:

1) It seems to have no memory of past tests, so I would have to go through the selection process for the unit test every time; some way to save the available test cases/test suites would be desireable/required,

2) The test case selection process was awkward; I found myself unable to select a Test Case which I knew was present on more than one occasion; This could be forgiven more easily, if it would remember the test cases I had selected in the past, but I was required to select/find the test case with each restart of Eclipse, or any time I wanted to switch tests

On the plus side, the ant unit runner does a great job, and it is clear how to modify the ant task. The availability of the different test result formats, allows me to feed the results into a variety of destinations with ease. The key item was logging test results and performance metrics, and not just logging into a text file, but logging into a database table, so it could be consulted for history. I was able to hack this item in really easily using the cfquery output format for the testResults.

I should at least mention that CFUnit and CFCUnit are both seemingly capable frameworks. I was able to set up integrated Eclipse (with Flex Builder 2.01!) unit tests, and test suites. But the availability of the test Result Formats, and the volume of project activity, were enough to convince me. That does not mean that I am right, nor does it mean it is the best choice for everyone. But the software selection is but one small piece of the puzzlement.


More Information visit ColdFusion Development Services.


This ColdFusion Optimization guide is a work in progress document based on research and experience.

Boolean variables will only work reliably in conditional statements if their value equals "true", "false", 1, or 0. Type coercision from 1 or 0 is not consistent, so check against "not false" or "GT 0" explicitly.

Use cfswitch instead of cfelseif branches

Use cflocation with a reference to a serialized data file or URL parameters to pass data from an action file to a display file instead of cfinclude. This will redirect the browser and append the action page to the browser history. This prevents multiple attempts to update to the database if the user refreshes the display page, which would occur if a cfinclude was used.

Immediately read, parse, and delete uploaded files after inserting validated data into the database to prevent DOS attacks

Use to suppress whitespace, since nothing gets into the output except what’s between a cfoutput tag, plus it is automatically applied throughout the codebase, and can be turned off without deleting or commenting an end tag

Do not add a trailing slash in the definition of the configuration parameter in application.cfm such as the document root or a base URL, since it is easier and more readable to use a slash after referencing the variable, and will prevent double slashes from causing path not found errors.

Use Len(CGI.xyz) GT 0 instead of IsDefined("CGI.xyz") to check whether the length of a CGI parameter is greater than 0 instead of checking for its existence, since different Web servers support different CGI environment variables, and CGI.xxx is always defined, regardless of its value

Limit concurrent updates to the database using CFTRANSACTION, not CFLOCK. CFTRANSACTION
will affect all accesses to the data being updated, not just those occurring in your ColdFusion code.

Use IsNumeric to distinguish between the number zero and an empty string for type checking conditional statements

Use a blank onrequestend.cfm to pair with application.cfm and speed up processing

Put cfoutput tags outside of loops to avoid unnecessary processing overhead

Use the maxrows attribute in cfquery tags when retrieving a known number of rows

Use init methods for components to pass in default values for public parameters that will be used in multiple methods

Use cfscript to initialize a group of variables instead of multiple cfset statements

Use the length function instead of isdefined to check for existence

Check for existence to avoid initializing variables more than once

Always use cfargument in component definitions and specify whether the required attribute is true or false unless a default value is expected

Use structKeyExists(arguments, "arg_name") to test for the defined arguments with no default or required value

Always define an init method for components and set var scope for cfc variables

Include the encoding description at the top of each page

Use compareNoCase(string1, string2) NEQ 0 instead of string1 IS NOT/NEQ string2

Use listFind instead of the OR operator

Use len or isdefined with a scope specified to check for the existence of variables

Put series of string or numeric data in an array instead of a list for operations other than loops

Always use cfqueryparam and blockFactor(calculated by: 3200/ total byte size of one row) in cfquery tags

Never use the evaluate, incrementValue, or iif functions

Use struct[key] instead of structFind(struct, key)

Use the val() function to ensure the validity of a number before inserting it into a database

Use the trim() funtion to remove whitespace from a string before inserting it into a database

Use a cfc, cfimport, cfinclude, or custom tag instead of the cfmodule tag

Use cfsavecontent instead of the cfcache tag to cache dynamic content

Use XML, SOAP, REST or XSL instead of wddx

Use cookies and URL parameters instead of passing local variables to check the state

Never use pound symbols on variables inside of a cfset, cfif, or cfscript tag

Use query of queries to loop or join cached queries. This enables pagination without multiple database queries. Check session or cookie authorization when accessing cached data

Use cflock when setting application or session variables

Use session-scoped locks for session variables and named locks for application and server variables.

Initialize global component objects once as application variables using the Singleton pattern instead of creating new instances for each part of the application

Use custom tags for reusable UI widgets, closures, and recursive code that generates dynamic content

Use cfincludes for page specific code that needs to reference application and local scope parameters implicitly

Use components for secure domain specific data, web services, encapsulating business logic, and sharing common functions through a single library

Use user defined functions for complex algorithms and procedures that can be used in multiple instances. Read More...



More Information visit ColdFusion Development Services.


The license of Coldfusion is, and should be, a very small part of any business budget, especially if you happen to be in a country where bandwidth is more expensive than average, like Australia. Also, Coldfusion 8 has Developer(from memory, limited to 1 IP) and Trial editions(from memory, 30-day trial unlimited IP), which are free. So you can start learning or developing immediately.

A big advantage of coldfusion has is its development time, it was first developed as Rapid Application Development Platform/Framework, and still is very quick to develop and deploy in.The time spent on development is considerably less, even if it saves 1 developer 1 min a day, and who worked about 230 days a year, divide the number of your developers by the licensing fee per year. Same reason why software developers and/or software development companies don’t mind paying for good development tools.

Another is its tie in to Flex, and it will be the defect o choice due to integration with Flash. Thought that may change in the future, since Flex is going opensource and PHP will probably have extensions written for Flex integration. I can’t imagine the .Net platform supporting Flex too much, as it may undermine MS own Silverlight product.

One additional point is that Coldfusion is largely backwards compatible, the last rewrite was CF 6 when CF went to a JRun/JVM backend, after which very few functions/tags have been dropped. Which is something Adobe had the sense to maintain so far in both CF and Flash environment.

Over the next few days, you will see a fair number of people grumbling about the pricing of CF 8, which has not increased dramatically (besides R&D isn’t free, and the software engineers need their paycheck!). But no other web application platform today can offer what Coldfusion out of the box, from image manipulation, PDF integration, Flex integration, Exchange Server integration, dynamic presentaions on the fly, etc.

Coldfusion has lots of features but there is a business case for each,

e.g. PHP will do the job for most companies public facing websites why pay more than you need to ? PHP also has numerous framework and CMS, many of which are opensource. ASP.Net has loads of exposure in Higher Education Institutions, so it should be easier to find suitable staff, and tie-ins to Microsoft’s CRM and Sharepoint products.

A brief summary (As my experiences so far) between Coldfusion, PHP and ASP.


ColdFusion
PHP
ASP.Net

Coldfusion
PHP
ASP.Net
CostsHigh, comes with a lot standardFree to High, Free version is well Free, but there are numerous commercial packages/add-ons like file compression, dynamic caching, advanced server monitoring/managementIncluded if you have a Windows Server License.
ComparationFaster comparativelyFairly Fast but falls somewhere between CF and .Net most of the time, catches up with commercial packages/addonsLonger than the other two
SpeedFast, with proper setup of JVM, even faster. Scales well with size and loadFast though may have problem scaling without addonsDecent, sometimes rather slow.
Integration with other languagesJAVA, Flex/Flashnon-native(non that i know of).Net, Silverlight, C#
Developer CommunityNot as big as PHP or ASP.Net, but still a decent presence is expected in most major cities.Big, anyone can pickup PHP, tend to have a large spectrum of skill levelBig pool from Higher Education Institutes. Well supported and backed by MS


More Information visit ColdFusion Development Services.

This tutorial lays out the basics for creating a content management system in ColdFusion and MySQL. The System leverages hierarchical data to automatically build breadcrumb lists, a side navigation menu, as well as a site map. The goal of this tutorial is to provide a framework upon which to build a content management system that is easy to customize and maintain, leaving the web author more time to create content than maintain code.

Introduction:

These days everyone has a web site or wants one. Unless you want to crack open a book and learn a lot of interesting HTML, you need to get some sort of program or content management system. Content management systems allow you to add and update pages without any other programs to edit the HTML.

The content management system I will describe and walk through will be built in ColdFusion with a MySQL database in the background storing the pages. Along with the ability to add, modify and delete pages, there will also be a self-generating breadcrumb list at the top of the page as well as self-generating menus and a site map. All of this is designed so that there is minimal maintenance, so you can spend more time generating content and less time worrying about coding.

A couple of notes about this system: I will not be adding any sort of browser-based HTML editor in this tutorial. My preference is to code the HTML myself. Just be aware however, that it is easy to add whichever in-line editor you wish. Also, if you are going to use this on the Internet, you will have to tie in a system to verify who you are (Log in and out) so you can have the administrative links show on the page if you are logged in.


More Information visit ColdFusion Development Services.

ColdFusion as one of the server side scripting language has many benefits over its rival and helps to build power web applications and services. ColdFusion is being utilized in small & large business and also for some advanced personal use. It is hosting especially for business website. The language used in ColdFusion Programming is ColdFusion Markup Language (CFML). It comprises of tags for querying databases, interaction with different services and outputting text.

The basic components of ColdFusion Programming are ColdFusion Server and ColdFusion Studio. Here ColdFusion server is the application that processes the CFML code and the ColdFusion Studio is being used in ColdFusion Development if programmers develop their application locally and move to the ColdFusion Studio, when it is fully ready to process.

The major advantageous of using ColdFusion Consultant is its simplicity in developing websites among other available web tools in the market like ASP, PHP or JSP. Within a short span of time, web developers can code ColdFusion Programming rapidly because of its simplicity as well as its supportive qualities with other platforms like Apache, IIS, NSAPI based web servers, Solaris, HP-UX and Windows. Apart from this, it works with Dream weaver, Flash, Fireworks and Freehand of Macromedia as ColdFusion once was acquired by Macromedia.

The new version ColdFusion 8 is come with additional features such as it can now dynamically generate and interact with PDF documents, features of a Multiserver Monitor to gain insight on all servers in a cluster, using simple tags to access a large library of pre built Ajax user interface components, able to specify any .NET object either local or remote and use it in any ColdFusion applications and more features which boost to its popularity in ColdFusion programming and among all other web clients world wide.

Although to set up a Coldfusion server and engine seem to be more expensive than UNIX and windows hosting, its advanced features along with availability of ColdFusion Server lead to develop powerful web application and services.


More Information visit ColdFusion Development Services.

Sample of using CFQUERY with JavaScript. The code allows the creation of an array of the CFQUERY. This array can then be manipulated by other JavaScript functions for searching a value in the array. Example of its use is doing a search for existing user name, if user enter a name that already exists, it will not post the submission. This will cut down the number of postings between server and client.

Example Of Coding.

















More Information visit ColdFusion Development Services.

Pretty excited these days about JSON... I've used it sporadically in many applications, but every month there appears to be new uses for it. I particularly enjoyed one use where we stored some interface preferences as a small JSON cookie. I also LOVE being able to call a CF webservice and auto-magically return JSON (covered in depth at Ben Nadel's blog here: JSON part II) - it's saved us a couple times.

Anyways, I saw a blog post today about the release of JSONUtil - very cool. It's a nice way to serialize and deserialize JSON in CF 7, and is based on CFJSON code.

In my main contract, we've been arguing a bit about returning JSON in the header vs. in the body. We are leaning heavily towards starting to return JSON in the response body, but we're a bit worried about the META tag that CF returns when working in development mode.


More Information visit ColdFusion Development Services.