Surface Pro Impact on BYOD
Thursday, January 24, 2013
Tags: Microsoft, Mobile Technology, surface Pro tablet
Microsoft Surface Pro tablet is due for release in a couple of weeks. Well, what’s the big deal? – The market reaction to its elder sibling Surface RT was not very encouraging. Despite the hype on the RT release, the sales numbers are not up to what Microsoft had anticipated. This was mostly due to the limited options for the apps. However, as we hear about the younger one Surface Pro, there are plenty of things to be cheered.
Surface Pro can run current Windows 7 Desktop Apps (unlike RT) and it integrates with the existing enterprise management infrastructure. For an IT Administrator it is going to be a huge relief and opportunity – Active directory, Domains, Group Policies etc. are going to work on Surface Pro!
Now, let’s see the bigger picture:
In a recent CIO Survey, 57% of the people surveyed said they have plans to deploy tablets in their enterprise environments, compared to 46% last year. Obviously, there are trends like “Tablets will overtake PCs and laptops” going around. There are lots of talks on the acceptance of Apple iPADs for corporate use.
Here comes BYOD – What is it?
BYOD is Bring Your Own Device to office for work. You own it, the corporate IT will do the policing when you are in. Your apps, data, collaboration tools, etc. will be delivered to you via internal or external Cloud. Or even a corporate desktop image with pre-loaded stuff (VDI) can be rendered to you for your day-to-day work.
However, it is not very easy. CIOs and IT managers were not really enthusiastic when the concept came in, primarily due to the concerns on security and governance. In the US, BYOD is still in its infancy because of these concerns. However, at the same time, China has widely adopted this concept for the last couple of years. It is more or less a norm in Chinese workplace to have a personal device. They seem to be less worried about the security concerns than their US counterparts. In China Android devices are dominating the BYOD spectrum.
Having said that, CIOs and IT Managers have genuine questions. They are worried about the loss of control, governance, and privacy. Many of them feel that Android and Apple IOS are very sensitive and fragmented to be used for corporate information. Also, the newer versions especially in Android are released every few weeks. New tablet and smart phone models are coming in almost on a daily basis! This makes the life of the internal IT support team extremely difficult and may lead to more downtime.
Now, here comes the Surface Pro. The moment IT team realized that they can extend Windows domain, active directory group policies etc. to this device, they started smiling. It is a big thing that takes the sheen out of Apple IOS and Android devices.
Personally, I feel that there will be an impact on the BYOD adoption when Surface Pro steps in. Also, there are obvious benefits of BYOD for an Enterprise. It gives you a simpler and thin IT infrastructure to manage, with lesser end user device management and troubleshooting headache. Now IT team can focus more on the strategic innovations aligned with business priorities. There are direct savings from Power savings (Some high level calculations reveal that we can reduce power bills by 70%!). Moreover, employees will have increased mobility, higher job satisfaction, better efficiency, and productivity. BYOD can help attract and retain top talents who prefer to work flexibly. Employee on-boarding and training time will get reduced, which may directly add to the bottom-line.
Article by Marlabs Maven Sreejith Gireesan
Creating Apps for SharePoint and Office using “Napa” Office 365 Development Tools
Monday, August 6, 2012
Tags: Apps for SharePoint, Cloud App Model, Marlabs Cloud and Mobile CoE, Microsoft, Microsoft Office 365, Napa, Office 365 Development Tools
Microsoft recently introduced “Napa”, an Office 365 development tool set for building applications for Microsoft’s Cloud App Model for Office and SharePoint. A free web-based application, Napa allows users to build apps for Office and SharePoint within a browser and without the help of Visual Studio. The tools can be downloaded by signing up for the Microsoft Office 365 Developer Preview. Once installed, users can begin creating Office and SharePoint apps within their web browsers. For more advanced tools, users can seamlessly switch to the fully featured Visual Studio IDE and continue development.
Here’s an article by Shiju Varghese from the Marlabs Cloud and Mobile Center of Excellence (CoE) that explains how to install Napa Office 365 Development Tools onto your Office 365 developer site and build apps for SharePoint and Office using the Napa developer tools.
Click here to read the article on Building Apps with Napa Office 365 Development Tools
Marlabs Video Blog – Introduction to Visual Studio 2010
Tuesday, April 24, 2012
Tags: IDE, Integrated Development Environment, Intellisense, Marlabs, Marlabs Video Blog, Microsoft, Microsoft Visual Studio, Microsoft Visual Studio 2010, WPF Shell
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft that simplifies the creation of a variety of desktop, mobile and online applications by ensuring the quality of code throughout the application lifecycle. Visual Studio 2010, the latest edition of this IDE, has several new features that simplify writing, understanding, navigating, debugging and even publishing your code. It includes some major improvements in core features as well as additional new features. These include updated Intellisense, enhanced code navigations, improved multi-targeting support, multi-monitor support, new WPF shell and support for parallel computing.
In this video, Anil Kumar M.S. from Marlabs walks you through the core features of Visual Studio 2010.
Marlabs Video Blog – ASP.NET 4.0 Features
Monday, April 2, 2012
Tags: ASP.Net, CSS Rendering, Dynamic Web Sites, Marlabs, Marlabs Video Blog, Microsoft, URL Routing for WebForms, Web Applications, Web Services
ASP.NET is a Web application framework from Microsoft that enables developers to build dynamic Web sites, Web applications and Web services. It was first released in 2002 and its latest release, version 4.0, introduces many features including ViewState enhancements, URL routing for WebForms and improved markup and CSS rendering. In this video, Pavan Nanaiah from Marlabs introduces some of the new features in ASP.NET 4.0 and shows you how you can use them to enhance your productivity.
Marlabs Introduction to Microsoft SharePoint 2010
Thursday, February 9, 2012
Tags: CMS, Content Management System, Marlabs, Microsoft, SharePoint, SharePoint Workspaces, Windows Phone 7
Microsoft SharePoint is becoming one of the most prevalent Content Management Systems (CMS) today. Yet there still appears to be some confusion regarding what services and benefits SharePoint actually provides to its enterprise users.
Fundamentally, SharePoint is a collaboration and organizational tool that allows companies to establish a webpage on their internal network or intranet for simplified project management.
One of the strengths of SharePoint revolves around creating groups and teams that have access to the resources required to effectively collaborate. For instance, from one centralized team website hosted by SharePoint, a project lead can share team task lists, schedules, documents, project logs, and wikis, among other features. Essentially SharePoint creates a library of information relating to every aspect of a project. Users or group members are given different levels of control and access to the site and to its files by the SharePoint site’s creator.
Users can then upload and share documents from common Microsoft programs, which natively integrate with SharePoint, such as Word, Access, Excel, and Visio. Documents uploaded to a SharePoint site are synchronized among that site’s assigned team or group, every group member will always have the latest version. Documents added to a SharePoint site are usually developed in a collaborative effort between multiple group members. To edit a file, a group member must first reserve or “check out” the file so that strict version control can be maintained. Version control, of course, refers to the previous instances of a file; in SharePoint users can view all previous versions of every document on the project’s site. Version control and version history features allow project managers to revert a file to its previous version if necessary, rather than relying on its current version.
In place of meetings, SharePoint provide users with the ability to create discussion boards and set group tasks and goals. A discussion board allows for the free expression and exchange of ideas in a form nearly identical to many online forums. A site’s team members can all contribute to the discussion board and quickly resolve issues with little executive intervention. SharePoint includes a blogging platform for its users for candid personal expression. By implementing the SharePoint software, a group can record its project milestones and work toward upcoming goals with a central and user-friendly status tracker.
Furthermore, SharePoint allows users to search the entire site, or library, for content: an invaluable feature for a large organization. SharePoint is also useful for company-wide operations such as maintaining records and lists in addition to simple project management. From SharePoint, users can also monitor and chart group statistics and generate reports. SharePoint groups are not limited in size; in fact, the groups can include entire departments or branches of an enterprise. And because of its integrated features such as the calendar and task list, administrative activities like managing employee time cards and vacation requests, just to name a few, can be monitored and automated.
Recently Microsoft even added support for SharePoint Workspaces to its Windows Phone 7 mobile platform, which will grant users access to their team site and documents on the go.
Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure – Part 3
Tuesday, December 13, 2011
Tags: Autoscaling, Cloud Computing, Marlabs, Microsoft, WASABi, Windows Azure, Windows Azure Autoscaling Application Block
In Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure – Part 1 and Part 2 , we looked at Autoscaling, and also introduced the Windows Azure Autoscaling Application Block (WASABi). Now let us see how to Edit the Autoscaling Application Block Configuration.
You can add ad edit the Autoscaling application block configuration using Enterprise Library Configuration tool. To install the Enterprise Library Configuration tool, do the following steps
1. In Visual Studio, on the Tools menu, click Extension Manager.
2. In the Extension Manager dialog, click Online Gallery, and then in the Search Online Gallery box, type Enterprise Library Config.
3. Make sure that you can see version 5.0.505 of the EnterpriseLibrary.Config package. Then click the Download button.
4. Read the license and then click Install.
5. Click the Restart Now button to restart Visual Studio and complete the installation.
To edit the Autoscaling application block configuration using Enterprise Library Configuration tool, right click on the app.config file in the project that will be hosting the block and click Edit configuration file.
In the Enterprise Library Configuration tool, open the Blocks menu, and then click Add Autoscaling Settings.
The enterprise library configuration tool allows editing Autoscaling settings, Rule store information and the Service information store. The Rule Store settings contain the storage information about Rules configuration file and the Service Information Store settings contain the storage information about Service configuration file. Typically, if you host the Autoscaling Application Block in a worker role, you will store the data points, rule definitions, and service information in Windows Azure storage.
Author Rule Configuration File
The rule configuration file contains the rules that will be used for the scaler to scale up and scale down the hosted service. There are two types of rules available in the Autoscaling Application Block – constraint rules and reactive rules. Constraint rules are associated with a time table and reactive rules are associated with KPI and conditions. The below code block shows the sample rule configuration which contains both constraint rules and reactive rules.
The above rule configuration contains two constraint rules – a default rule and a rule for peak business time on every Fridays. The rank specified in the rule configuration is just a priority for each role. The ‘utcOffset’ value is using to convert the configured local time to UTC time using by the Windows Azure. The reactive rules contain the rules for KPI based on the CPU utilization.
Author Service Configuration File
The service configuration file contains the information for Windows Azure subscriptions and hosted service(s) to monitoring for auto scaling. This tells the Scaler that which hosted service(s) should monitor. The below code blocks show the sample service configuration file.
Quick Steps to Add and Use Autoscaling Application Block
The following are the major quick steps to add and use Autoscaling Application Block
1. Add a reference to Autoscaling Application Block in host application.
2. Instantiates the Autoscaler class and call its start method for monitoring.
3. Edit app.config file of the host application using Enterprise Library configuration tool.
4. Configure the Autoscaling settings.
5.Configure the Rule Store settings to specify the storage information of Rules configuration file.
6. Configure the Service Information Store to specify the storage information of Service information configuration file.
7. Add Rules configuration XML file to specify the rules and conditions for scaling.
8. Add Service information XML file to specify Windows Azure subscription and hosted services to monitoring the Autoscaling Application Block.
Windows Azure Compute Resources to Host Autoscaling Application Block
The following compute resources are the essential components to host Autoscaling block
1. Windows Azure hosted service for Worker Role to host Autoscaling block.
2. BLOB storage account for store rule configuration and service information configuration.
Windows Azure is Microsoft’s offering for Cloud computing to help customers to build and deploy applications on a Pay-per-use basis and providing on-demand scalability. This allows the customers to fully focus on their applications rather than managing IT infrastructure. The Windows Azure Autoscaling Application Block lets the Windows Azure customers to take full advantage of scalability offerings provided by Windows Azure. This enables the customers to reduce number of management overheads involved load balancing and scaling which will improve the business agility and can also reduce cost and time.
Marlabs Cloud and Mobile COE
Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure – Part 2
Thursday, December 1, 2011
Tags: Autoscaling, Cloud Computing, Marlabs, Microsoft, WASABi, Windows Azure, Windows Azure Autoscaling Application Block
In the first part of Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure we examined Autoscaling, its business need, and benefits. Now let us look at the Windows Azure Autoscaling Application Block (WASABi)
Windows Azure Autoscaling Application Block (WASABi)
The Windows Azure Autoscaling Application Block (WASABi) lets the cloud developers to add and manage automatic scaling behavior to Windows Azure applications that provides all the functionality needed to define and monitor autoscaling behavior in a Windows Azure application or a group of Windows Azure applications. The Windows Azure Autoscaling Application Block is a part of the Microsoft Enterprise Library provided by the Microsoft patterns & practices team. The Windows Azure Autoscaling Application Block can automatically scale Windows Azure applications based on the rules defined in configuration files specifically for the hosted Windows Azure application. The block will read the rules and monitor Windows Azure applications and scale-up or scale-down the applications based on the rules. The Autoscaling Application Block can be hosted on a Windows Azure worker role application or in an on-premises application. The Enterprise Library provides a GUI based configuration tool that can be used for edit configuration settings for the Autoscaling Application Block.
Major functionalities of Windows Azure
The following are the key functionalities of Autoscaling Application Bloc:
- Instance Scaling – The Autoscaling Application Block varies the number of role instances in order to accommodate variations in the load on the application. Instance scaling actions can span multiple host services/subscriptions.
- Throttling – Instead of spinning off new instances, the block limits or disables certain expensive operations in your application when the load is above certain thresholds.
- Notifying – Instead of performing instance scaling or throttling, the user may elect to simply receive notifications about the load situations with no automatic scaling taking place.
- Custom action – We can build extensions using the extensibility features provided by Autoscaling Application Block.
Adding Autoscaling Application Block to Host Application
The Autoscaling Application Block is available as a NuGet package .The following steps will add the Autoscaling Application Block onto your host application.
1. Add a reference to the Autoscaling Application Block assembly. In Microsoft Visual Studio, right-click your project node in Solution Explorer, and then click Manage NuGet Packages.
2. Click the Online button, and then in the Search Online box, type WASABi.
3. Click the Install button for the Enterprise Library 5.0 – Windows Azure Autoscaling Application Block – Beta package.
4. Read and accept the license terms for the packages listed.
The NuGet package will add the all necessary assemblies and references to your project that you need to use the Autoscaling Application Block. The NuGet package will also add the XML schema files for the autoscaling rule definitions and autoscaling service information.
Hosting the Autoscaling Application Block in a Windows Azure Worker Role
Autoscaling Application Block needs a host to run. The Autoscaling Application Block can be hosted on a Windows Azure worker role application or in an on-premises application. The following step by step instructions will help you to host the Autoscaling Application Block onto Windows Azure Worker Role.
Instantiate and Run the Scaler
The following steps will instantiate and run the Autoscaling Application Block in a Windows Azure Worker Role.
Import the following namespaces to the Worker Role class
Resolve an Instance of Autoscaler Class
The Autoscaler class is the main entry point for the Autoscaling Application Block from your host application. The following code block instantiates the Autoscaler class and call its start method for monitoring the Autoscaling behavior.
When you call the Start method of the Autoscaler class, the block will look for rule and service information, and will start to monitor hosted services and will perform the auto scaling based on the rules defined in the rule store.
To be continued . . .
Read the Marlabs White Paper on Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure.
Marlabs Cloud and Mobile COE
Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure – Part 1
Wednesday, November 23, 2011
Tags: Auto Scaling, Benefits of using Auto Scaling, Cloud Computing, Microsoft, Windows Azure
Cloud computing is the set of technologies and infrastructure capabilities being offered in a service based consumption model. Windows Azure is Microsoft’s Cloud computing offering to build and deploy applications on a Pay-per-use basis. Cloud computing with Microsoft Windows Azure platform lets the customers to focus on delivering services to their customers rather than managing technology infrastructure. One of the key benefits of using Cloud computing is the ability for on-demand scalability of the applications deployed in Cloud. Dynamic provision for load balancing and scaling can dramatically reduce operational overheads, time, and costs and can improve efficiency of the applications deployed over the Cloud. Microsoft’s patterns & practices team is providing an Auto Scaling solution for Windows Azure that will provides dynamic provision for auto scaling based on the rules defined by the users for the applications scalability needs and organizational strategy.
What is Auto Scaling?
Auto scaling is a way to automatically scale up or down the number of compute resources based user-defined policies, Key Performance Indicators (KPI), health status checks, and schedules. application needs more computing power, you can launch additional compute instances on-demand use them for as long as you want, and then terminate them when they are no longer needed.
The Business Need for Auto Scaling
Auto Scaling is an extremely important service when we are building cloud based applications. Since cloud computing is a pay-per-use utility service and provides on-demand scalability, dynamic provisioning for scale up and scale down of cloud resources are very important functionality for cloud based applications. Dynamic provisioning for auto scaling can provide better scalability and can also guard organizational budget for cloud deployments. Auto Scaling balances between costs and performance to business organizations when they are moving to cloud.
Example Scenarios for Auto Scaling
The following are the few example scenarios where Auto Scaling service can provide business values:
- You can instruct the Auto Scaling service to launch an additional compute instances whenever CPU usage is high for a pre-defined time.
- You can instruct the Auto Scaling service to terminate few compute instances whenever CPU usage is low for a pre-defined time.
- You can instruct the Auto Scaling service to terminate few compute instances over the weekend when traffic is expected to be low.
- You can instruct the Auto Scaling service to launch an additional compute instances over the evening time of week days when traffic is expected to be high.
- You can instruct the Auto Scaling service to launch an additional compute instances when messages on your application’s queue service is very high.
- You can configure the Auto Scaling service for receiving email notifications whenever compute usage is very high or low.
The above conditions are just few example scenarios, but the Auto Scaling can provide business values to many situations based on the behavior of your applications and the organizational strategy. This can reduce lot of manual tasks involved in load balancing and scaling and can staying on budget. Auto Scaling will help the enterprises to save both time and money and can improve business agility. Auto Scaling is a ‘must have’ service when organizations are moving their applications onto Cloud.
Major benefits of using Auto Scaling
The following are the key features and benefits of using an Auto Scaling service:
Auto Scaling service can reduces lot of manual tasks involved in load balancing and scaling which will enables the overall operational agility and better productivity.
Auto Scaling service can dynamically add compute resources when application usage rises and remove it when usage drops.
Guard the Budget
Organizations can guard their financial budget for C loud based applications. They can define and control the number of computing instances using well defined conditions.
Auto Scaling service can save usage costs of compute resources by terminating underused instances automatically and launching new instances when applications need more compute resources.
The Auto Scaling service can also use for receiving notifications and alerts about the load situations and health statuses.
Click here for Part 2 of Marlabs’ Guide to Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure
Read the Marlabs White Paper on Improving Operational Agility and Efficiency Involved in Load Balancing and Scaling using Windows Azure
Marlabs Cloud and Mobile COE
Marlabs Video Blog – Introduction to Report Builder 3.0
Thursday, November 17, 2011
Tags: Marlabs, Microsoft, Report Builder 2.0, Report Builder 3.0, SQL Server 2008 R2
Report Builder 3.0 is a new enhanced version of Report Builder available in Microsoft’s SQL Server 2008 R2. It is the primary reporting tool in Microsoft’s SQL Server 2008 R2. While retaining the same intuitive interface of Report Builder 2.0, Report Builder 3.0 has added features and functionalities that make report building a breeze. Among other improvements, it offers additional visualizations such as databars, sparklines & maps and also allows users to re-use existing report parts to create new reports. Users can also look forward to significant improvements when it comes to overall performance.
In this video, Shubhatara from Marlabs provides an overview of Report Builder 3.0, outlining its features.
Marlabs’ Windows 8 Developer Preview Part 2
Tuesday, November 8, 2011
In the first part of Marlabs’ Windows 8 Developer Preview we examined some of the interesting features that Windows 8 offers for end-users. Now let us take a look at what Windows 8 promises for developers.
Features for Developers
Windows 8 comes with WinRT, a new object oriented native/unmanaged API for developing ‘Metro’ applications for Windows. WinRT APIs are expected to replace the Win32 APIs. WinRT projects types using Meta data, and is fully object oriented and you can access WinRT directly from managed languages like C#. Here are a couple of interesting reads about WinRT.
Developing for WinRT
WinRT is going to the ‘the runtime’ for Windows, across multiple devices like PCs, Tablets etc. You can develop Windows Metro style applications on top of WinRT in:
C#/VB.NET and Xaml
Xaml libraries with WinRT are now re-written in C++, and don’t have any .NET dependencies. WinRT XAML is a subset of the earlier XAML libraries that was available with .NET, and doesn’t support some features like DataTriggers etc as of now. Presently, you can access only a subset of the .NET BCL/Runtime from your C#/VB.NET + XAML WinRT application.
This doesn’t even support .NET Client Profile, it is just .NET core profile with access to a minimum set of .NET namespaces, combined with XAML namespaces now in Windows.UI. The entire CLR will be loaded at the time of execution, but you’ll be able to access only a subset of that. As simple as that. This is to ensure that you are running in a sandboxed environment, and CLR comes into play as a thin layer only for binding your calls to WinRT at run time. As WinRT is object oriented and has managed data, you are any way developing directly against WinRT.
C++ and XAML
If you are developing in C++ and XAML, your code will be compiled directly to an unmanaged library. I assume this provides the maximum performance advantage, as your code is directly compiled to native code.
You may continue to develop .NET/C#/Silverlight applications for classic desktop scenarios, but if you need to develop Metro applications, then you have to develop against WinRT.
New APIs and Extension Points
Windows 8 Features a number of new APIs and Extension Points. These include:
- Windows.UI – The Xaml library is now re-written in C#, and is part of WinRT
- Charms – Apps can share charms, to inter-operate. For example, an “Insert Picture” dialog box can show you results from other applications that can handle the image/picture data type.
- Direct Compute API - Enables you to leverage the power of GPU in your applications
- Sensor Fusion API
- A Single API for all your sensors like Accelerometer, magnetometer and gyroscope
- Communication APIs for Sockets, Streams and all
- Devices APIs for Geolocation, Sensors, Near Field Communication etc
- Media Apis for Playback, Capture, Effects
- Other OS Services – Application services, Threading, Memory Management, Authentication etc.
Windows Live Integration
Support for Wide Variety of Hardware
The hardware support for Windows 8 seems really awesome. The demos features Windows 8 running on a variety of hardware devices. New and improved features include:
- Multi monitor support with start button on all screens
- Hyper V Support for client
- USB 3 Support
- Hardware acceleration for all applications
- Malware detection in boot strapper
- A boot mode called “Cold Boot“ which is super fast
After installing Windows 8, and exploring the same, I should say I’m pretty much convinced that Microsoft has got the equation right. They corrected the Tablet part of the equation, and got the entire “Cloud and all the screens” stack in place, with proper platforms and a nice set of developer tools. And without doubt, Windows 8 tablet devices are going to be a definite competitor for Android and iOS/iPad in the tablet market space.With Windows 8 in its kitty, Microsoft has officially entered the post PC era, and may pose some tough questions for Apple.