Getting Started Developing with the Salesforce Platform
![Getting Started Developing with the Salesforce Platform Getting Started Developing with the Salesforce Platform](/pic/getting_started_developing_with_the_salesforce_platform/dEJYUWY0dXRUdEE_.jpeg)
hi everyone my name is alva rivas i am a developer advocate at salesforce and today i'm going to tell you how you can get started developing with the salesforce platform to start let me tell you how you can connect with us first we have our developer site developer.salesforce.com where you can find our blog the developer podcast and more second you can follow us on twitter on salesforcedevs we publish content there very often and you can also follow us on facebook linkedin or youtube by the way if you are watching this video in youtube make sure to subscribe to the channel and click on the bell to receive notifications this is our forward-looking statement slide which just means that salesforce is a publicly traded company and you should make purchases based on the functionality that is generally available and with that let's start talking about how to get started developing with the salesforce platform as a developer you probably know of salesforce as the number one crm in the world but really it's more than that it includes a suite of tools for sales service marketing commerce and more that are built on the salesforce platform salesforce focuses on business apps so the platform is optimized to deliver every feature with security scalability and reliability these are the same features we provide to developers to build applications for our customers this means whether you extend the search for crm or build a fully custom application salesforce trusted platform will make you more agile in delivering your project at a high level the salesforce platform is a stack of services that developers can use to create applications on the platform to make your project more agile we try to make basic customizations easy to implement often with no code at all and when the requirements are more complex or require a more fine-grained control every building block has options to implement functionality in code now let's talk about some of the services that as a beginner developer you will need to understand more in detail salesforce solutions are built on top of different architectures indeed they can span one or several of these one of the architectures is the salesforce multi-tenant architecture which we normally call salesforce core salesforce core is where most of the crm applications reside custom applications built on the core reuse the same multi-tenant infrastructure and underlying services that the crm applications use and this provides the trust and security that your applications need this also helps you concentrate in what you probably love doing developing to accelerate your work schema customizations automatically come with a basic production ready ui layer apis security and reporting you can enhance your apps with local builders and pro code tools local builders help you build ui's business logic and more many times with no code at all one pro code tool is apex which allows you to implement custom business logic and apis and for custom uis we use a lightweight javascript framework based on web components standards this is called lining web components developing and deploying your applications is extremely easy thanks to our developer tooling which is managed through the salesforce cli we also have a set of extensions for visual studio code that makes it perfect for development on salesforce core as we have added features as auto completion syntax highlighting shortcuts for using the cells for cli more easily and more and if needed you can extend your applications with third-party packages installed from our app exchange marketplace then we have heroku elastic architecture where you have full control of horizontal and vertical scaling of the application resources you can even configure an auto scaling system that allocates resources based on the traffic the most popular open source languages are natively supported by heroku and many other languages are supported by the community buildbacks make it easy to run almost any language on heroku you can also attach third party resources to your app which heroku calls addons there is also a marketplace for add-ons in which you can find add-ons for storage messaging logging testing and much more on top of that you can fully configure and manage your heroku applications using the heroku cli which is also used for development lastly i wanna briefly talk about milsoff meals of any point makes it easy to connect applications data and devices it follows an api led approach and it has an easy to use interface for developers to access data from any system the ips that you create with mulesoft can then be published as reusable assets so that other developers can leverage this work without having to learn the inner workings of the underlying system on top of that mulesoft includes pre-built connectors that allow you to connect to almost every system seamlessly and there is also a market place for mulesoft called mulesoft exchange i want to go into many more details about must in this talk but make sure to watch the apis and integration video of this series this same series to know more now let's take a look at a demo here we are in the pulsar customer facing web app this is a progressive web application built with landing web components and node yes and the app is running on heroku landing web components is our web components framework it can be used to build user interfaces in salesforce core but also outside of it we are able to do that because lining web components is fully based on web standards this application was made by pulsar a car manufacturing company it contains a car configurator in which users can register their interest to buy a car so that assets representative can contact them later if we look closer to the url first we can verify that the application is running on heroku for this bit here and then we can identify the name of the heroku app that we are running now let's go to our heroku dashboard i can monitor and manage all the apps that i have on heroku from my hero good dashboard these are the apps that i have deployed at the moment there is a free tier that allows you to create several apps and add-ons with no cost this is what i use for development now let's dig into the details of our car configurator app remember i know the app name from its url this is the detail view for our car configurator app for each app i can control the resources that the app is using as for instance its dinos and add-ons by the way dino is the heroical term for a process that is running a container like a web process or a worker process i can also control the selected deployment methods as git hub or docker and optionally add it to a pipeline i can also monitor their metrics as the number of users that have connected in the last hours or for instance if there has been any failure i can also check which deployments have been made and also roll back to one of them if necessary and finally i can manage the people and teams who have access to my app everything that you can do in the heroku dashboard can be done also using the heroku cli this maximizes developer productivity and helps with automation now let's go through the configurator wizard let's say that i'm interested in buying a nice car i'm going to select the medium range i like blue as exterior color and let's stick to big and white for the interior then i will indicate my contact details so that pulsar can contact me my name is alvara rivas this is my mobile phone and this is my email when clicking the button my information is being posted to search for score using one of its apis the composite graph api this api lets you create multiple different records in a single transaction and that's what the application is going to do it's going to create a lead and a related car configuration records let's go to salesforce core and take a look at them here we are in cells for score this is an organization i have created organizations are instances of the main app that you manage yourself there are different types of organizations concretely this is a scratch or a type of temporary org that we use for development development environments are completely free and give you access to all the features that you may want to configure and extend organizations also have unique urls same as heroku apps these are all the apps that i have deployed to my salesforce organization we have the standard crm apps as sales service etc and also a custom app that we have created for pulsar back office the app is called showroom let's select it this is the homepage for the custom app remember that we completed a form on the heroku app what happened was that the information was sent to salesforce core through the composite graph api and some records should have been created one of the records is a lead so let's go to the leads page and yes here we have our lead now let's take a look at the lead record page this is the standard record page that salesforce creates for every object here we can find the different fields that are part of the object and note that the name mobile phone and email fields have been populated correctly from our request it is very easy to create custom fields and add them to this page let's try it out to open up the setup menu for the object you have to click on the wheel icon and then on edit object in the setup menu you can edit all the configuration for the object as its fields pages triggers and more and it is exactly the same for custom objects now let's click into the fields and relationship section we will create a new field to indicate the level of interest that the customer has in buying the car let's click on new to create the new custom field first we need to select the field type in this case we will create a pick list for custom fields you need to indicate the label and the api name let's call the field interest pick list fields allow you to select among a set of fixed values we will allow to pick between high medium and low next we have the profiles for which we want to make the new field available a user's profile determines the pages objects fields and other entities the user has access to we will stick with the defaults finally these are the record page layouts in which we can include the field page layouts are pieces of ui that get created automatically for new objects they represent the object and customizing them doesn't require code when you create new objects and fields more features are added automatically as security rules and apis by clicking next the field will be added to an arbitrary position in the layout but no coders will be able to change that position later just using drag and drop let's add the fill to all the available layouts now the fill has been added to the lead object let's go back to our lead page and refresh it so that we can check it out here we have it and now when the sales representative calls me he can select a value to indicate more information about the level of interest i have in buying that car let's continue with our demo here on the right we have a component that shows related car configuration records a car configuration record represents the configuration options that we selected in the wizard let's navigate to it this is the car configuration record page the page is a bit more complex than the lead one as we have modified to have all the information that we need at hand the easiest way to modify pages is to use a biller to open a builder you have to click on the will icon and then on edit page this page is entirely built with landing web components remember that we use lining web components in our heroku app we are lucky because we could use the same components on cells salesforce core salesforce provides standard components that are available for you you can also create custom components and you can download more components from the app exchange a marketplace to exchange components components downloaded from the app exchange appear in this section here components have properties that allow you to configure them for instance we can select this tab component and reorder its tabs we can also change the label of the tabs and anything that it's defined via property by the way you can define properties for your custom lining work components we can also add visibility filters that only show the component under certain conditions as when a field has a specific value or the user has a specific profile you can also move components around and even change the page template to have different layouts you can also preview how the page will look like in mobile and test how responsive your custom components are by the way most of the standard components are already responsive all the changes that we have done so far didn't need code but bear in mind most of the components in this page have been built with you can build your food pages with code if you want but remember if you combine code with salesforce point-and-click tools you will be able to build applications much faster now let's click save and verify how our page changed here we have our components reorganized in the page in this demo we have focused on customizing user interfaces but salesforce has also amazing point-and-click tools that help you implement back-end business processes and of course you can build fully custom backend logic with apex all the changes that you perform in a salesforce or are reflected in the organization metadata the metadata is something that you can retrieve and deploy selectively for instance we could retrieve everything that we have changed in this or and deploy it to a new one same happens with heroku you can deploy your app code as many times as you need for development now let's go to vs code vs code is salesforce official ide for development but there are several other ideas that you can use before starting the demo i connected vs code to the or in which we have been performing the changes and i downloaded the code previous to the changes so here we can find all the metadata that is part of my organization and that i download it locally the flexi pages which are the pages that you configure in a builder the lining web components and basically all the metadata files that conform my project now let's execute a command we're going to execute the sfdx for source status commands and this will compute the differences between my local environment and the salesforce organization this is a terminal that comes integrated with visual studio code and here we have the changes the command prints out all the changes that i have performed in the or we can see here the interest custom field that i have added to the organization to the lead object we can find here all the layouts and profiles that we have modified to include that interest custom field and we can find here also the car configuration page that we have modified in app builder this command just listed the differences but now we are going to write another command to pull those differences into my local copy of the code this time is going to be sfdx force source pull and all the metadata that i have changed will be retrieved great so let's close this and take a look at the changes if i go here to the objects folder we can find the new interest field that has been downloaded this is all the metadata for the field i can also open the lid layout if we look for interest in the layout we're going to find that the interest field has been placed in the layout and that is editable and if we want to take a look at the changes that we perform in the car configuration record page we can do that as well although it's probably easier to visualize them on a builder equivalently i can make a local change for instance in aligning with components and we can push it to the organization let's try it out we are going to change the lead summary component is this component here this is the component that we were using in the car configurator record pate to show the lead details we are using here a lining based component called lining record form and this component shows the fields that you indicate into the fields attribute if i take a look at its javascript file we can see that this is a property and we are specifying the name field email field phone and mobile field so now we are going to add a new line and we are going to import the interest field the interest field as it is a custom field is going to end up in underscore underscore c and now we can add the field to our list of fields here i'm going to click save okay this is my automatic format here from the code and now what we're going to do is to open up the terminal again and this time instead of pulling the changes we are going to post the changes to our organization and we are going to write force source push and we are going to see here how the lead summary javascript file that we have changed locally is being pushed to the organization now let's go back to the organization and take a look at this change okay so here we are in the configuration record page if you take a look at the lead summary component this one that we are using here we can't see the interest field but if i refresh the page we are going to see that our new interest field has been added and that we can now pick a value great so now let's go back to our heroku app this was a car configurator what if we add a new input here to try to get the level of interest directly from the customer let's go to vs code this is the code for the car configurator progressive web application the product web component this one here is the one that receives the customer details let's open its html file in the html file we can find all the lining inputs that we use to receive the customer name phone and email and what we are going to do is to add a new combo box here in the combo box we will ask the customer how soon does he plan to buy the car we need to provide some options and we will define those options in the javascript file so let's open it up this is the javascript file and first we will paste here the options we want to let the customer peek between immediately in the next months and not planning to buy a car at the moment i just want some information and we need to paste here also a handle the handler will respond to changes in the combobox input and store them into a property called interest the last step is to include that interest field in the information that we are sending to set first and we will do that here of course we will need to implement some logic in salesforce to be able to read the value of this interest property that we are sending but we will implement just the heroku bit for demoing purposes now let's run our heroku application locally with a command which is npm run watch we will do that in vs code command line and here we have the command this command runs the application in development mode let's navigate to localhost let me go quickly through the configurator wizard and arrive to the final screen and yes here we have our combo box i can now select a value that will be sent to salesforce core with the rest of the customer information the final step would be to deploy the app to heroku there are different ways to do that but we are not going to demo them today with that we have arrived to the end of the demo as you have experienced part of the power of the salesforce platform is that you can concentrate in building apps while we manage all the infrastructure and underlying services for you in salesforce core you can use our local builders to create apps very effectively and fast or you can create fully custom apps with apex and landing work components in heroku you can write apps in many different languages remember that you can use lining work components in heroku too you can manage your apps from the heroku dashboard and from the heroku cli this includes scaling resources attaching add-ons and much more we didn't deploy our demo app to heroku today but we mentioned there are several different deployment methods to choose from choose the one that works best for you finally remember we have nice integration mechanisms that can make apps built on the two different architectures work together very easily all the code of today's demo is available you can find it in this github repo the repo for the e-cars sample app if you want to meet other salesforce developers you can also join our community we have more than 1 300 community groups around the world and you can find the one closest to you in trailblazercommunitygroups.com and finally if you want to get started with salesforce development today check this link in which you will find some useful resources on trailhead our fun learning platform thank you so much for watching if you enjoyed the video please like it you can also subscribe to our channel and click on the bell to receive notifications and i want to also ask you to add a and tell me which key learning did you have from this video what are you going to learn next thank you so much and hope to see you in the next video
2021-04-04 03:55