Saturday, June 23, 2012

What is Cloud Computing?

Hi There,

I hope everyone had a great and productive week. Well, now it is Saturday and I'm writing this article on my way to Mexico, where my family and I are going to enjoy 9 days of beautiful beaches and adventures.

And the word adventure brings me to this topic. What is the cloud? I think we have heard this word a million times by now, and yet most of us are still wondering how this new technological adventure is going change the way we do business. Before we dig further into how does cloud computing work, first let’s understand what the term “cloud“ refers to.

We can all agree that the concept of the cloud has been around for a long time in many different incarnations in the business world. It mostly means a grid of computers serving as a service-oriented architecture to deliver software and data.  Further, cloud computing has been changing how most people use the web and how they store their files. We can clearly see a few examples with sites like Facebook, Amazon and Twitter and the core that allows us to take advantage of services like Google Docs and Gmail. But again, the idea is clear and we know the stuff are out there, but how does it work?

So, most websites and server-based applications run on particular computers or servers, right? What differentiates the cloud from the way those are set up is that the cloud utilizes the resources from the computers as a collective virtual computer, where the applications can run independently from particular computer or server configurations.

They are basically floating around in a “cloud of resources”, making the hardware less important to how the applications work. Further, with broadband internet, the need to have the software run on your computer or on a company’s site is becoming less and less essential. A lot of the software that people use nowadays are completely web-based. The cloud takes advantage of that to bring it to the next level.

Now let's take a simple example; If you are hosting your website on a local server or from your PC, you must usually select a particular operating system (Windows/Linux/Mac), to determine what software you can run on that particular server. If your site is being hosted in the cloud, there is no need to do that. You can run Windows and Linux programs side by side.

Further, to understand how does cloud computing work, imagine that the cloud consists of layers, mostly the back-end layers and the front-end or user-end layers. The front-end layers are the ones you see and interact with. When you access your email on Gmail for example, you are using software running on the front-end of a cloud. The same is true when you access your Facebook account. The back-end consists of the hardware and the software architecture that fuels the interface you see on the front end.

Because the computers are set up to work together, the applications can take advantage of all that computing power as if they were running on one particular machine. In addition, cloud computing also allows for a lot of flexibility because depending on the demand, you can increase how much of the cloud resources you use without the need for assigning specific hardware for the job, or just reduce the amount of resources assigned to you when they are not necessary.

So now that we know how it works, the next big question is if the cloud will change the way we use computers. At this point I just picture you, my reader, saying .. YES! And you are right, the transition from being very personal hardware dependent to a world where resources are shared among the masses is creeping up on us slowly and unobtrusively. In fact,  many people have already transitioned to using a cloud environment for most of their time in front of the computer without even realizing it.

Now do you think that there problems with this concept? I personally believe that there are a few. If for some reason your internet goes down, your access to your data also disappears. There are security concerns with the data and the risk that companies will use proprietary formats for the files and that require that you pay for a certain service monthly or you may lose access to your own data permanently.

For business this is trickier as they have to (1) cut costs, and (2) improve response in many layers within the organization. So, a cloud base solution could be cheap and efficient, but at the same time risky as data could not be accessed at some point in time. Would you or your business move to a cloud base architecture?

That's all for now folks. Stay tune for more to come in AX for Retail, Windows 8, and Cloud services.

Wednesday, June 20, 2012

Microsoft Dynamics AX Windows 8 App

Hi There,


I will start working on a personal project in a few weeks creating a Microsoft Dynamics AX Resources App for Windows 8. The App will mostly have content useful for development and configuration.

It is my intention to add some videos at some point, but at the beginning the App will only have written material. Also, its navigation will contain categories i.e. Development/AOT/Create a Base Enum.

I was hoping if you could give me some feedback on how do you see an App for Windows 8 that could have useful information about AX (Best Practices, Development, Configuration of modules, DB configuration, etc) at your finger tips.

  1. What kind of material would you like to see?
  2. Do you think videos would be helpful? If so, what kind of videos would you like to see?
  3. In terms of navigation, what would be your dream navigation app?
  4. Would you like to have a favorites section?
  5. Would you like to share what you find interesting with other colleagues?
  6. Would you want alerts on new contents?

I would really appreciate your thoughts!


Friday, June 15, 2012

Free ebook: Introducing Windows Server 2012

Hi there!

Brandon George posted a great article about a free e-book introducing Windows Server 2012. He explains the business needs for Windows Server 2012 and its relationships with the Hybrid Cloud.

From the post:

"This is a very important topic to understand, for a lot of different reason's that are highlighted in the above chapter notes. Windows Server 2012 will be a foundation piece or layer, that true Hybrid Clouds will be enabled via."

I personally thanks Brandon for promoting these technologies that will help us stay ahead in our careers. Please go to his blog here to download this great material.

Have a great weekend!

Thursday, June 14, 2012

AX 2012 Retail - Create Statements

Hi there,

I hope that everybody is having a great week. It’s almost Friday and I’m sure we are all looking forward for a restful and fun weekend.

On this post I would like to focus a bit more on a functional portion of AX 2012 Retail. This week I was working on some customization in AX 2012 Retail that required the posting of POS transactions from AX 2012 Retail.

However, before posting the POS transactional data in AX 2012 retail, we need to create a Statement. The Statement records will be stored in the RETAILSTATEMENTTABLE, and the statement data will be used during the posting process.

In order to have transactional data in AX 2012 Retail we need to run a Job that does this for us. You can find the job in Retail/Periodic/Retail Scheduler/Distribution Schedule.

When you click the menu item, the Distribution Schedule form opens. On the left side you will see the list of jobs available for us to run.  In the AX 2012 Retail Demo this jobs is called P-0001 (POS Transactions). We can run this job from this window by clicking the Run Directly button.

When the transactional data is in AX 2012 Retail we need to create a statement. For this go to Retail/Journals/Open Statements

Choose your store

Click New Statement

Click the Edit button to add a new Terminal under Setup. (NOTE: in the picture follow the number sequence to execute the operations in the correct order)

Click the Calculate Statement button.

When the statement is calculated, click the Post Statement button to post the transactions.

That’s all for now folks. Keep checking my blog for much more to come on AX 2012 Retail. I’m working on something really cool right now and I need some time to write about Blank Operations, but I will and very soon.

Have a great and safe weekend!


Wednesday, June 6, 2012

Virtual Decisions Spring 2012 Event- Attend for Free

There is going to be an exciting virtual event that you can attend for free. Please see the details below.

"The first half of 2012 has generated exciting opportunities and challenges for the Microsoft Dynamics community - issues that will define success in enterprise software planning for years to come. From new product releases to the evolution of the Dynamics cloud opportunities to new industry trends, the second half of 2012 proves to be a moment of great importance, for customers and partners alike."

Access the Virtual Decisions Spring 2012 event here.

Monday, June 4, 2012

AX 2012 for Retail - An Introduction to Application Settings

Hi there!

I hope everyone had a good weekend and that you are ready for another challenging week ahead of you.

In this post I’m going to write about using the AX 2012 for Retail Application Settings. This is a dll that exists within the AX 2012 for Retail application folder, and that can be used to retrieve important and useful in-memory information such as the POS operator Id, Terminal ID, Store ID, Data Area ID, Store ID, among others.

If we think about it, by using this dynamic library, we can minimize numerous trips to the database and therefore improve performance at run time. On this thought, this post will focus on a sample project that will retrieve some POS information through a windows form that will be opened when the PostLogon() event is fired. This means that when the Windows form opens, we’ll know who is logged in, the terminal and the store they logged in to.

So, let’s start by setting up our project. Please note that I made a copy of my POS application folder to play around, as our exercise will overwrite the Application Triggers dll and it will create a new dll that for our new form project.

If you haven’t read my post on AX 2012 POS development - Application triggers I would recommend to read it before moving forward.

1-Create a new project, select Class Library and name it Application Triggers.

2-Add the Microsoft.Dynamics.Retail.POS.Contract.dll reference to the above project.

3-Add the System.ComponentModel.Composition.dll to the above project.

4-Open your code file and implement the IApplicationtrigger interface as shown below.

5-Make sure it looks like the following picture, and then delete the throw statements to avoid firing an exception at run time.

6-On top of the ApplicationStart() Method add the following:

7-Add a new project to the solution, select Class Library, and give it a name (i.e. AppSettingFormExample) . Then in your new project add a new form and a new class.  In the form add 4 buttons that will have the following caption:

 a.Show Current User
 b.Show Current Store
 c.Shoe Current Terminal
 d.Show Current Connection

NOTE: You can see a sample of this form below.

8-Build the solution so our AppSettingFormExample dll is created in the AX 2012 POS folder as shown in my post AX 2012 POS development - Application triggers

9-In order to launch the form we created above from the ApplicationTriggers PostLogon() method, we need to add our Form project as a reference to the ApplicationTriggers Project.  When you are done, then add the namespace to your code as shown below:

10-Build the solution.

11-In your ApplicationTriggers Project, reference the System.Settings.Dll.

12-Add the namespace to your code (LSRetailPosis.Settings).


13-Add the following code to the class you created along with the form. Here we are using the ApplicationSettings dll to retrieve the information each button says it will retrieve. If you note, this is a really good and simplified design. Each of these calls does not fire up a trip to the Database and it just takes the data from memory, which makes the AX 2012 POS application really responsive.

14-In order to call our class and retrieve the information we need, we have to write some events for each button.

Now, I like to write one event handler for all the buttons in my form and then use a switch statement to identify which is which, and then route their operations. For me this works better as I just create one method instead of 4 for each button. Neither is better than the other, unless you think the same way I do : - )

So, write the following code in tour designer:

Now, we need to go to each button properties’ Click() method and add the name of our button event handler in order for the event to work.

15-Run the solution and the AX 2012 POS application should be opened (Check my post AX 2012 POS development - Application triggers). Input your credentials.

you should see the form you created. Click each button and you should see the following results.

NOTE: In order to launch the form after the PostLogon() method, you will have to instantiate the Form you created as shown below:
Form1myform = new Form1();

There is much more to cover on the AX 2012 POS System Settings, and I certainly encourage you to dive deeper into it as it is really cool and make writing code really easy and scalable.

That’s all for now and keep checking back for my next post on Blank Operations and much more!