In the changing Microsoft development world, developers are asking many questions and raising concerns. Here is a list which attempts
to answer some of the questions.
1. I am a developer, will my skills be retained? Sure, skills learnt as a web application or a desktop developer are retained. Concepts such as connectionstring, configuration files, object oriented programming, sql server data handling, stored procedures, tables, data access technologies, creating application as tiers, mvc application design,
are all necessary for developing cloud computing applications. You will carry all these skills with you when you move to the Cloud. In other words, your resume stays in tact!
2. Does this mean new skills are not required? Definitely Not. You will need to acquire and master new skills if
you want to leverage the many advantages cloud offers. You need to learn new concepts such as using caching for session state,
creating and configuring worker role and web roles, using table storage for storing non relational data, using queues for decoupling
web role and worker role, blob storage for video and audio images and many more. Remember, Azure is constantly evolving, which means more for learning and better careers.
3. Small, and simple web applications can be moved to the cloud websites execution model easily without any changes in your app code. Note that Websites execution model is one of the three cloud execution
models Microsoft offers, the other two being Infrastructure as a service and Platform as a service which is the Microsoft's comprehensive cloud offering.
4. If you have an application which is built based the multi layered architecture, then moving to the cloud requires changes as you will have to modify the application.
The first change you probably would do is accommodate worker roles and web roles, decouple these roles using either queues or Appfabric service bus.
5. As a developer of applications you can develop cloud applications on premise (in your office) without incurring additional costs. Which means there are not many changes to be made to your present hardware infrastructure. All you would need is a computer, with the required software, and an internet connection. Azure subscription will be useful to enable you
to upload your app and test it real time.
6. Alternatively, you can use a Compute emulator with Visual Studio to execute and test a cloud application. You will have to install Microsoft cloud SDK, and use it with Visual Studio to develop cloud apps. Downlaod links are provided at the end of this article.
7. From a developer's perspective, IaaS is of limited interest simply because every piece of software has to be built from scratch. An application developer will have minimum role in
setting up the VMs, installing the softwares etc which will be done by the architect. A developer will be more interested in PaaS as it offers a rich suite of ready services and many other tools
which can be used to develop apps.
8. A cloud developer can upload modifications without upsetting an existing and running cloud application. This is significant as it enables to keep an application running
and upgrade the software without the fear of losing customers due to downtime.
9. Visual Studio is the tool you use to develop cloud application. As soon as you fire up Visual Studio you will notice the tight integration between cloud tools and existing tools.
10. Templates are readily available provided by Microsoft which you can use to quickly develop applications. Using templates, you can start
development applications for the cloud without going through the initial steps. Not only quickly, when you use templates you will be developing applications in a standard manner.
11. When compared to developing applications on a local area network, your development is smoother as the number of settings and maintenance is lesser. When
developing for the cloud things are easier as network administration is controlled by MS.
12. You will be able concentrate on application logic and less on other issues which will give the time to build better applications.
This will result in you gaining expertise in your chosen domain.
13. If you have an application whose database is SQL Server, you can seamlessly move it to SQL Database Azure. I am referring to the database part.
14. Cloud offers you more choices in storage, Azure storage and SQL Database. Azure storage itself includes Blob, Queue and tables.
Scaling of these storage is seamless and instantaneous.
15. As soon as you avail a subscription, available cloud services are listed, which you can use to quickly develop a industry standard application.
16. Data access technologies such as Entity Framework and ADO.net which you may be familiar with can be used to develop your cloud app.
17. Your applications are 'safe' as Microsoft offers Geo redundancy - data is stored in multiple far off locations thereby, minimizing chances of
loss or destruction.
18. Is development for the cloud easier? Yes and No. Yes, because you can concentrate on application logic development and no, because concepts are more intricate
and scope of your application is much wider with scaling, smartphone features, and cloud services. All these can be integrated into your application, but comes with a learning curve.
19. Will my company get attached to one Cloud provider? Obviously. It is highly impractical to think of a situation wherein you will avail services of two cloud providers for a single
network. However, do you realize to a certain extent you are already tied up with software you use. Switching means costs and learning and this is a deterrent to change. So, to some extent you are tied up with the cloud provider. You will see that Microsoft has realized this and is now supporting PHP, Node.Js development environments. So, if for some reason you want to switch from C# and move to PHP, then you can do it.
20. Will people lose jobs - I ask this because moving servers to the cloud may result in job losses for network administrators. A question difficult to answer. New jobs will open up. Those who can manage the company's IT infrastructure of which cloud will be a part will be in demand. Those who can do this and develop applications will be sought after.
21. Can you quickly tell me three important concepts which will be useful for a Azure cloud Application developer?
- Programming for Windows Azure storage services
- Programming and using Appfabric service bus and access control service components for messaging between apps and authentication
22. What should i know before learning cloud app development. I always tell developers that firstly you should choose a domain. Technology keeps changing but domains are relatively constant. Once, you have chosen a domain whether it is ERP or any one of its modules (each one by itself is a large domain) finance, stock, sales, purchase, manufacturing, healthcare or education, then you should start by learning multi layered application development. After this, you should master data access technologies. And, finally you can start with cloud. What I have listed is the minimum requirement path for you to travel and master, before moving to cloud development and succeed.
23. Can I have one subscription for Azure Cloud Services and use all the three execution models - Iaas, SaaS (Websites), PaaS. Yes, you can.
24. Which language is best recommended for building cloud apps. A mature, object oriented language such as C# is best recommended.