Programming Office 365 Jump Start 1

In this series, I will talk about how to start programming with Office 365 in shortest investment of time. I assume my audience will be .NET developers who do not have prior knowledge of Office 365.

Programming Office 365 Jump Start 2

Office 365 Overview

Office 365, publicly made available on June 28, 2011, is a cloud hosted Software + Services offering from Microsoft that includes online versions (read: cloud hosted version) of Exchange Online, and Lync Online, SharePoint Online. Office Web Apps and Office Professional Plus are also included as per plan.

Office 365 is a complete business productivity solution which includes platforms such as SharePoint. Microsoft’s yearly revenue from SharePoint alone is nearly $2B, which gives us a glimpse of the magnitude of success SharePoint has managed to achieve in past 10 years. Because SharePoint is a web application platform, IT Pros and Devs around this industry comprise even bigger of an economics than just that. That also begs a question what is your worth as a developer if you have Office 365 or SharePoint skill in your bag? Office365

Microsoft Exchange is one of the most popular Email, Calendar and Contacts hosting choice for the enterprise. On the other hand, Microsoft Lync, which was formerly known as Microsoft Office Communication Server, is the biggest push from Microsoft to establish itself as an automatic choice in the Unified Communication space. Being the cloud citizen Office 365 offers additional addons to fulfill scaling needs as business grows or shrinks.

Office 365 Plans

As we have just mentioned earlier it is one size fits all, there are three plans to choose from:

  • Professional and small businesses
  • Midsize business and enterprises
  • Education

Enterprises enjoy an additional benefit though, which is being able to offer Office 365 to kiosk users. Some of the scenarios they may cover depending on of course how you use it are Timesheet entry, keep track of schedule on Calendar, Inventory, Request workflows and lookup policies.

Before your company or you decide to go for Office 365, which is as low as $6/user/month, you can always signup for a 30-day trial, which we will use throughout this series for our development work, too.

Full details about plans: http://bit.ly/yIly6l 
How you can deploy to private cloud: http://bit.ly/Aal6LR 
Cost estimator: http://tinyurl.com/78gk5r5

As soon as you have signed up for trial and activated, it gives you control over complete feature-set if you would have purchased a paid subscription as well:

Admin

You can administer everything very easily from this control panel, including user, services, subscriptions, licenses management, etc.

Office 365 Infrastructure Layer

It is hosted on Windows Azure, Microsoft’s cloud, administered via Windows Intune. Windows Intune is a cloud based update and security patches management solution via Web Browser, which by the way, we do not have to worry about, because it is done by Microsoft to keep their Azure infrastructure up-to-date. One of the key benefits of going cloud is that the infrastructure is free from maintenance at consumer level. On top of that, Microsoft guaranties financially backed 99.9% uptime of the service. Therefore, it offers ultimate reliability as well as enterprise-grade security. That said, Microsoft collects no data or put up ads, no document scanning for analytics/mining or improve their service, complete data portability and 5 layers of security: Data, Application, Host, Network and Physical.

All are hosted and configured to work right after your signup, so there is no deployment or configuration really is involved. Furthermore, you can access the same services across different form-factors, such as PC/Mac, Mobile: Windows Phone, Blackberry, iPhone, Android and Symbian. So, according to Forrester survey it came up about more than 300% ROI from Office 365.

Software + Services

Office 365 enjoys generic benefits of going cloud associated with it. However, as a developer you need to know how it is treated in the cloud. In the beginning I have mentioned that Office 365 is a cloud hosted Software + Services offering, before we look into that aspect, let us quickly recap some of the conventional hosting models that we are most familiar with.

Traditional

In traditional Client-Server system, there is a stack of servers for clients to connect over network or internet. As business grows, new servers are to be purchased and as business shrinks servers are needed to be offloaded.

Traditional Cloud/Software as-a Service (SaaS) model solves the problem with scaling up, out and down on business demand. Everything’s hosted in a cloud vendor’s datacenter. If it is Windows Azure, Microsoft has megastructures of datacenters across different continents of the world, which confirms nuclear-bomb-proof part of the cloud feature.

PreCloud

As you can see from the diagram, software is replaced with Cloud based SaaS websites which are accessibly via Web Browser, and rest of the client applications use On-premise servers, ie. locally hosted Lync, Exchange and SharePoint servers.

Software + Services offers best of both worlds, minus the need of network connectivity (managed hosting). Sure, you can use SaaS via Web Browser, but additionally, there are programmable API endpoints, which let Client Applications (App that you will write) to connect and consume services. In this case Exchange, Lync, and SharePoint Online.

S S

Your Apps live on the Client machines, enjoy the faster local data access and processing power, while syncing necessary selective data over the wire from/to the Cloud. These are the kind of apps that we will see how we can write in later posts in this series.

PinPoint: Office 365 Marketplace

Once you have built an app, it is time to go global. You can get yourself listed as vendor as well as your apps as products in the Office 365 Marketplace. Head over to http://pinpoint.com or for detailed guide: http://bit.ly/eMVqaf. Potential customers can then discover your apps and purchase from there, or perhaps even better contact your company for further customization or support. PinPoint allows your company to acquire global reach.