function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ollie123ollie123 

Is Apex development a slow process for you?

I have recruited a developer to implement Apex-based functionality on a Salesforce.com instance, and my experience so far is that although the creation of objects/fields/validation/reports/search is VERY fast compared to the likes of ASP.NET, when it comes to creating Visualforce pages and add-on functionality not supported by the primary platform it is very slow. 

 

As an example, recently my dev quoted several times the amount of time required to implement a specific feature than I know would be required to implement it in an ASP.NET app. He put this down to the cloud-based environment (yes, he's using Eclipse) and the fact that it's necessary to continually upload the code with all the tests on a regular basis.

 

It's a small app so we're not using the sandbox, instead deploying direct to production, the reasoning for that is the risks of this are quite tolerable, and overall it saves time.

 

I'm interested to hear if others generally find Apex development to be slower than other platforms.

 

Anup JadhavAnup Jadhav

Hi ollie123,

 

The short answer is: 'it depends'. If you are using a visualforce page (and its corresponding controller) with webservice callouts, it could be slow depending on your network speed, efficiency of the actual webservice, and the number of records processed.

 

If it does not do any webservice callout, then it could be slow because it is processing thousands of records using SOQL. Developing application on Force.com platform is quite different from developing application on Java, or .NET purely because Salesforce.com has gazillion restrictions on a code to run satisfactorily in their cloud. You have to be very creative to overcome, or satisfy the governer limits. IMHO, the testing requirement is too strict, and should be a bit lax. 

 

In light of above arguments, if your code isn't SOQL intensive, or isn't making any webservice callouts, then it should run as fast as a standard Salesforce functionality/app.

 

Another advice or rather best practice followed by Force.com developers is that you should ALWAYS develop your code in sandbox, and then deploy your code to production even if the 'risks are quite tolerable'. The main argument behind this is that if the functionality/app breaks down, it is easy debug, and test it in sandbox than in production. You can play and tinker to your hearts content in the sandbox, but you can't do so in Production instance.

 

- AJ

 

ollie123ollie123
Hi AJ, I'm not referring to the speed of execution or page load, but to the speed of the DEVELOPMENT PROCESS - i.e. writing the code, deploying and testing it.
Anup JadhavAnup Jadhav
Hi ollie123,

in my experience, it takes more time to develop apps or add functionality on Force.com platform if you are new to cloud computing, and aren't familiar with Apex or Visualforce.

But if you spend a month or two with Apex and Visualforce and gain more experience, your dev time ideally should be reduced drastically. Please keep in mind that I speak from personal experience, and it is not based on any concrete statistics or survey. I've seen my co-developers struggle with the Force.com platform initially, but after 3-4 months of experience, they can now write a non-trivial business process in 2-3 days.

Cheers,

A J
ollie123ollie123

Sure, I appreciate it will take people time to get up to speed, but it does seem that even after that initial ramp-up, developing on the force platform is significantly slower than platforms like ASP.NET where you can develop locally and very rapidly.

 

When I look at work I've done in the past with ASP.NET and compare the time it took, to similar development work on the force platform, my experience so far is that is is much slower.

snugglessnuggles
I find the force.com platform a lot faster than .NETYou end up doing much less tedious stuff and can focus a lot more on the value-added aspects of developmentFrom your comments it looks like you are spending a lot of time actually saving to the server as opposed to saving locallyThis seems like it shouldn't have too much of an impact relative to the time you are savingFor me, the extra 1/2 - 2 seconds it takes to save to the server is well worth the hours i save in everything from database setup to formatting.
Anup JadhavAnup Jadhav

Hi smuggles,

 

I think ollie isn't concerned about performance, he is more concerned about the actual 'dev' time on Force.com platform. He believes that development on the Force.com platform takes more time than developing similar app/functionality in .NET.

 

- AJ

snugglessnuggles
I realize that the question was about development time, not performance of the final product.  The line that made me bring up the time for deploying to the server was "develop locally and very rapidly" talking about developing other web technologies.  I don't see how the "locally" part would be relevant unless we're talking about uploading of changes, as you could easily do server based development in other technologies as well.  This is mostly besides the point though.  On this subject i tend to agree with all the published reports and articles, which claim the platform is much faster for developing enterprise applications. 
Nick1746323Nick1746323

If you don't want use the sandbox, surely he could be developing in his own free dev org to avoid having to redeploy every change to apex code through eclispe (slow) and avoid the need to keep up 75% test coverage during development? Oh and my eclipse never saves password/token after deploying, so you have to copy paste that **bleep** token every time.. that gets old fast.(Maybe I misunderstood something here)

cpetersoncpeterson

On that topic, I don't think it's possible for the deployment process to be any more painful than it currently is. I particularly love when the deployment plan verifies fine, but after waiting 10 minutes on a big deployment you get back one field error.

 

The IDE really needs a lot of improvement. That's one of my biggest pain points as a new Force.com dev. 

ajaystplajaystpl

 I think cpeterson has summed it all . I agree with the fact that salesforce provides a very nice framework to accomplish a lot of what we need in our business process ( relationships , reports , dashboard , sharing/security etc ) which would need a lot of time if we try to build it from scratch in .NET .
However , when you need to implement something that is not already in there , and need to deploy the code to salesforce , the process is very time consuming . Development process is always iterative , you write code , test it , see issues and then make changes . In sales force , its easy to write code in the offline mode of the eclipse IDE . However once you need to test it , you have to upload your changes to the server , which in my opinion is what slows the entire process down as even to make a small tweak you have to deploy again . 
It would be great , if we could have a local sandbox setup where we could test these changes , and once finalized upload them to the server .

JPlayEHRJPlayEHR

 


Nick1746323 wrote:

If you don't want use the sandbox, surely he could be developing in his own free dev org to avoid having to redeploy every change to apex code through eclispe (slow) and avoid the need to keep up 75% test coverage during development? Oh and my eclipse never saves password/token after deploying, so you have to copy paste that **bleep** token every time.. that gets old fast.(Maybe I misunderstood something here)


I know what you mean about the token.  We finally went in to Setup>Administration Setup>Security Controls>Network Access and granted access to our IP address range.  I don't have to enter the security token every time I want to deploy to production anymore...just the password.