URL routing techniques in MVC

Traditionally, in any web application, URLs are mapped to a physical location of the specified page in the virtual directory created on web server. But in MVC we don’t have specific physical files to be mapped for different page requests, so routing mechanism is used in MVC to decide that which action method of which controller class needs to be executed for the incoming browser request. Here the Index method of the ‘Book controller’ will be executed by passing book id 1 as a parameter. Routes are defined in the global.asax file and processed at the application’s startup when Application Start function is invoked. Inside this method, one call is made to the RegisterRoutes method of the RouteConfig class placed inside App_Start folder of the project. The default MVC project template comes with a Default pre-configured route as below. This route can handle any request that has a maximum of 3 segments ~/ {controller}/ {action}/ {id}. Using custom routes It is not necessary to use default pre-configured route only, we can create our own custom routes in the same route collection. The custom routes should be written always before the default route because the order in which we register the routes is followed by the routing engine and if we place the default route before the custom route, then default route will be called every time and custom route will never get called. In the below example route, the route name is ‘Library’ and the controller name is ‘Book’ that will handle the request. Default action name is ‘Details’ and the passed parameter name is bookId. then this new route named ‘Library’ will be called instead of Default route and ‘Details’ action of Book Controller will be executed passing 1 in the bookId. Custom routes by User Role If we want to use different routes for different user roles like admin, student etc., then we can register different routes with a prefix in the route URL to track the user role requesting the URL. For Ex: http:// mybookstore .com/Admin/Home/Index URL rewriting Suppose if our MVC application is publically available and any user has bookmarked the site URL . Now if the controller name in the application gets changed from BookController to BKController. then the new URL will be http://localhost/BK/index and the old bookmarked URL will not work for users of the application. To overcome this, we can define a route in the RouteConfig.cs file to re-write the URL as below: Here we’ve statically defined the controller name as “Book” and dynamically specified the Controller value as “BK”. After adding this route, the old URL will also work as is and we will get the result without any error. Route Constraints When we create a route, we can add constraints in that. For example, we can use below route constraint to limit the parameter bookId value to accept integer values only. If the parameter value in any route does not satisfy the constraint, then the route is not matched by the routing engine and it continues searching for the next matching route which would otherwise throw an exception if the constraint is not specified and wrong argument value is passed. So, here we can say that by routing we can make URLs more descriptive for the user’s action and henceforth are more easily understood by the users. MVC 5 introduced ‘Attribute Routing’, where the route can be defined on top of the controller action method. ‘Attribute Routing’ gives us more control over the URIs in our MVC web application, which I will be discussing in detail in my next blog.
Managing projects in Project Web App 2013

Project Management is a difficult road to travel. Very often, managing a project involves an on-going battle with deadlines, budget and resource allocation. Studies have shown that almost 30% of the projects do not meet the deadline or are off the schedule. Basically a delayed or unsuccessful project management is a result of an inexperienced and inexpert manager. Project managers role involve a lot of responsibilities such as creating, maintaining, updating schedule, coordinating with other team members, project managers, resource managers etc. In order to make the life of a project manager easy and to make project management tasks effortless, Microsoft Project Server 2013 brings Project Web App 2013 (PWA) which is a resilient web application that can be used to do anything from project management to filling timesheet, updating task status and creating project proposals to manage project portfolios. This well-built web application makes the life of project managers easy and comfortable and gives a new ray of light for inexperienced managers to learn and manage projects. The features which can be used by a project manager to successfully manage a project using Project Web App 2013 (PWA 2013) are: Record timesheet hours or task status of the project and team members. View, modify, and analyze information for one or more resources who are assigned to the tasks in projects. Obtain detailed information of an individual project or more than one project within an organisation. Easier automation of the process of receiving and requesting status information in the form of status reports. Understand the health of an organization in terms of cost and resources using OLAP reports interactively with the help of pivot charts or tables. Easy collaboration with Project Professional 2013 + Sharepoint 2013 + Microsoft Outlook 2013 for managing day to day task activities. Resources can give information about any project risks, issues or any other area which can affect the project health. There are some other great resources from where you can get more information on Project Web App 2013 – Office.com and TechNet. You can also post your Queries, issues and can initiate discussions on a discussion forum.
How to link your tasks with Microsoft Project Professional

In the blog ‘Seven Project Professional features to keep your plan up-to-date‘, one of the topics I discussed was ‘Link Your Tasks’, where I gave a brief introduction of it. Here I detail on – how to link tasks in Microsoft project . When you create the tasks in the Project Plan, you need to decide the sequence of execution of these tasks. Microsoft Project Professional provides flexibility to define task dependencies by ‘Linking Tasks’ feature. The tasks can be linked by any of following relationship: – Finish to Start (FS) – Start to Finish (SF) – Finish to Finish (FF) – Start to Start (SS) By default, the tasks are linked by ‘Finish to Start’ link. You can also use the predecessor column to define such task dependencies. There is a good article on Create Task dependencies and Links in Project Plan which you can use to learn how to use the features appropriately. There is another dependency type which you may need to define in real time projects – ‘like to start a task’ once its predecessor task is half done. To do so you can use the ‘Lag’ property of the predecessor while defining the task dependency. You set the ‘Lag’ value in order to start a task when its predecessor is 50% done as shown in the below image After defining ‘Lag’, the Project Plan looks like below, where you can notice the arrow starting from the middle of task id 9 Hence you can make your project plan more realistic and aligned to project duration by setting up the task links and dependencies. Stay tuned for my next article on ‘Task Path and Critical Paths’.
Seven Project Professional features to keep plans updated

As an EPM specialist, I keep resolving project scheduling scenarios with my team and client. I come across various project scheduling challenges while working on it. Sometimes, project managers have a well-planned project but they cannot create the deviation reports out of it and hence cannot get ‘planned vs actual’ scenario and sometimes the team and respective project managers are too busy to complete their project milestones and hence cannot not keep the project schedule plan up to date. I realize that seven features of Microsoft Project Professional , if used as a best practice, can potentially help you in keeping your project plan up to date and ready for project review at any time. I believe these features will not require additional homework or preparation when your seniors or executives call for a project status review meeting. Let’s talk about these in brief and I will be detailing them separately in the series of blogs. Link Your Tasks When you create the tasks in the Project Plan, you must decide the sequence of execution of these tasks. Microsoft Project Professional provides flexibility to define task dependencies with the help of ‘Linking Tasks’ feature. The tasks can be linked by any of the dependency type provided by enterprise project management software – Project Professional 2013. Sign of a good project plan is that it does not have any orphan task i.e. each task is linked. If a task is not linked it can be either a milestone or a ‘Summary Task’. Task Path and Critical Path Using ‘Task Path’, you can quickly see all the predecessors of the selected tasks in the Project Plan. This feature helps when you have a complex project plan. Critical Tasks are those task which directly impacts the Project Finish date. Using this option you can quickly see the critical tasks of your project and being a project manager, you may keep track of those specific task for project success. Resolve Resource Over allocation ‘Resource Over allocation’ is a stage in the ‘Project Plan’ which occurs when: – A resource is assigned more than one tasks which are planned to be executed in the same duration – Tasks are not planned and resource is assigned – Project manager intentionally overloads the resource to complete the project on time or to meet the critical timeline In Project Professional 2013 you see a Red persona icon (also called Burning Resource) with respect to respective tasks when a resource is over allocated. You can use any of following Project Professional 2013 features to resolve the resource over allocation: – Task inspector to automatically resolve the over allocation – Manually set the tasks timeline and dependencies to resolve over allocation – Use ‘Team Planner’ for resource assignment and resolving over allocation Proper resource assignment is very important in a ‘Project Plan’ especially when you share the plan with your seniors or executives. The Red Persona icon easily grabs eyes when managers or executives look upon the plan, also it allows to level the team work and acts as a warning to project manager. A ‘Project Plan’ with frequent resource over allocation may not be a good plan and may lead to confusions. Keep your plan over allocation free. Use Project Status Date Generally in every organization, project managers report the project status to their seniors on a set rhythm (weekly, Bi-weekly etc.) The new feature ‘Status Date’ of the enterprise project management software, Project Professional 2013, allows project manager to set any past date to view all in-built reports and views till selected date. The ‘Status Date’ also displays a line in the Gannt Chart which you can use to refer the date of last time you viewed or shared the project status. Use Timeline Timeline is another cool feature which you can use to report your project status to executives or to share a high level plan in graphical view with your team members. This feature was introduced in Project Professional 2010 and since then it has been a handy tool to communicate the ‘Project Plan’ in graphical view to executives and seniors who loves a timeline view. In timeline, you can – Select the task or deliverables to be displayed in graphic – Customize the look and feel (color, fonts, etc.) of bar lines, tasks, deliverables, etc. – Relocate the tasks up or down the grid. Once you finalize the timeline to be presented, you can share it directly in Outlook, PowerPoint or copy to be used in any other document type. Use In-built Project Dashboard for High level reports Project Professional 2013 has another new feature which gives direct access to in-built reports of Project Professional and can be leveraged for quick reporting. Project Professional 2013 has new ‘Report’ tab and there you can access reports for cost, resource, project, etc. All these reports can be copied and printed to be shared with client, team members or executives. These reports can also be customized by the parameters, look and feel, etc. Use Project Baseline Baseline feature has been continually improving from Project Professional 2007. The baseline helps you to compare various projects and task level parameters at planned versus actual basis. Few discrepancies between plan and actual are fine, but if you find major discrepancies then there is either an issue in planning or in execution. You seriously need to find the cause and need to fix in such case to keep your project on track. You can set the Project Base line as below: You should set the Baseline at Project Start up in your plan, which becomes your planned snapshot. Then you can set the Baseline on sprint basis or monthly basis. You can set up to 11 baselines of a Project. Later, you can compare all the baselines and find the project discrepancies, you can compare and find till when the project was running well or when the schedule did not meet, etc. Baseline helps you a lot to communicate the snapshot or phase wise
Performance Optimization – Bundling and Minification in ASP.NET MVC 4

Before getting you into the details of performance optimization, let me give a brief note on Bundling and Minification of JS/CSS files. What is a Bundle? Bundle is simply logical group of files that could be referenced by unique name and loaded with one HTTP request. You can create bundle for JavaScript and CSS. What is Minification? It’s a process of removing unnecessary whitespaces, line breaks and comments from code to reduce its size, thereby improving load times. Bundling and minification are the performance optimization techniques that can help to improve load time by reducing the number of requests to the server and reducing the size of requested assets (such as JavaScript and CSS.) Scenario without Bundling and Minification Most of the current major browsers limit the number of simultaneous connections to six per hostname. This means that while six requests are being executed, any additional requests for assets on a host will be queued in the browser. In the below image, the IE developer tool network tab shows the timings for assets required by the ‘Index view’ of a sample application. The brown bars show the time for which the request is queued by the browser waiting for the six connections to complete. The yellow bars show the request time taken to send the request and receive the first response from the server. The blue bars represent the time taken to receive the response data from the server. You can get detailed timing information by double-clicking on an asset. For example, the following image shows the load time details of the file. In the preceding image, ‘Start’ event shows the time that a request was queued because of the browser limit of only six simultaneous connections. This request was queued for 187 milliseconds waiting for another request to complete. Bundling Bundling makes it easy to combine multiple files into a single file. It can create bundles for JavaScript, CSS, etc. Lesser files mean lesser HTTP requests which in turn improves the initial page load performance. How to do it Adding reference: First of all, add the references for both WebGrease.dll and System.Web.Optimization.dll to your projects as shown below. These DLLs can be downloaded from Internet or using NuGet Package Manager. Creating Bundle After adding required DLL references, now create the bundle for your JS and CSS files within the Global.asax file as shown below. Here, I have created the bundle for all required JS and CSS files. You can also add your own custom JS and CSS files with complete path using ‘Include’ method. The preceding code creates a new JavaScript bundle named ~/bundles/jquery that includes debug and minified files in the ‘Scripts’ folder that compares the wild card string “~/Scripts/jquery-{version}.js” from bundle.config. This means in debug mode, jquery-2.1.3.js will be added to the bundle and in release mode, jquery-2.1.3.min.js will be added. Below common conventions are followed by the bundling framework: Selecting “.min” file for release when “FileX.min.js” and “FileX.js” exist. Selecting the non “.min” version for debug. Ignoring “-vsdoc” files (such as jquery-2.1.3-vsdoc.js), which are used for IntelliSense. The {version} wild card shown above is used to automatically create a jQuery bundle with the appropriate version of jQuery in your ‘Scripts’ folder. In the above example, following benefits are provided by using wild card: It allows to use NuGet to update to a latest jQuery version without changing the preceding bundling code or jQuery references in your view pages. It automatically selects the full version for debug configurations and the “.min” version for release builds. Registering Bundle You will now need to register above created bundles with in ‘Application Start’ event of Global.asax as below: Adding Bundles to Layout Page in MVC3 You can add reference for created bundles in the project’s view pages and layouts as below: @Scripts.Render(“~/bundles/jquery”) @Scripts.Render(“~/bundles/jqueryui”) @Scripts.Render(“~/bundles/jqueryval”) Allow Bundling and Minification in debug mode Bundling and minification doesn’t work in debug mode, so to enable bundling and minification, set the debug value in Web.config file to “false”. You can also override the Web.config setting with the ‘EnableOptimizations’ property on the ‘BundleTable’ class. The following lines of code within ‘Application_Start’ event of Global.asax enables bundling and minification, and in the Web.config file it overrides respective settings. protected void Application_Start(){ BundleConfig.RegisterBundles(BundleTable.Bundles); //Enabling Bundling and Minification BundleTable.EnableOptimizations = true; } How it works Now run your application and you can see that all the JS and CSS files are converted to single JS and CSS files as shown below: Minification Minification is a technique for removing unnecessary characters (like white spaces, newlines, and tabs) and comments from the JavaScript and CSS files to reduce the size which causes improved load times of a webpage. There are various tools to minify the JS and CSS files. YUI Compressor and JSMin are the most popular tools for minifying the JS and CSS files. Use these tools for minifying your JS and CSS files and in your application use with “.min” suffix, so that you can easily identify that this is a minimize version of your CSS or JS file. Minification with VS2013 and Web Essentials 2013 extension I would like to share how you can create minify version of your JS or CSS file using ‘Web Essentials’ extension and VS2013. Right click on JS or CSS file, select “Web Essential” option and click on the highlighted “Minify JavaScript/CSS file(s)” as shown in the below image. With the help of this tool, every time you update your code in original JS or CSS file, the minify version of these files get automatically updated. Busting Browser’s Cache by Bundling As you know, browsers cache resources on the basis of accessed URLs. The browser first checks its cache when a web page requests a resource to see if there is a resource with the accessed URL. If it exists in cache, then it uses that existing copy instead of getting a new copy from server. So, whenever you change the content of JS and CSS files, it will not reflect on the browser. To reflect these changes, you have to refresh/reload the browser. But bundles automatically takes care of this problem by adding a
Application Lifecycle Management with Visual Studio Online – Part I

Microsoft have been providing Application Lifecycle Management (ALM) tools for a long time in the form of Team Foundation Server (TFS). Till now TFS has been packaged as an on premise offering which needs to be installed on a server box. As part of cloud strategy, Microsoft has started offering TFS as an online feature along with Visual Studio Online (VSO). Visual Studio Online is an ALM tool hosted in cloud which has all the features of an on premise TFS, minus, the administration headache associated with an on premise version. Using VSO, you can create Team Projects, choose a Process Template that suits your project, and perform all the workflows associated with Sprint Planning and Project Management using the Agile as well as CMMI methodologies. VSO comes in three flavors – Basic, Professional, and Advanced. All of these offer five basic user licenses for free. Enterprise version additionally offers features such as Team Rooms and Feature that are introduced in TFS 2013. Although VSO comes packed with loads of features, the development services team at Advaiya has thoroughly explored VSO and are impressed with some of the important and ground-breaking features that VSO offers. In the sections below, I am highlighting some of the features offered by VSO that save tremendous amount of development time and helps teams respond quickly to production environment crisis situations. This blog is first in the series “Visual Studio Online features”, dedicated to exploring each feature of VSO from the perspective of using ALM processes to benefit your application development practice – whether in-house or for a client. Key features of Visual Studio Online Team Rooms Team Rooms are discussion areas created for project teams of group of users to record their discussions and refer them at a later stage. These help the team stay on the same page for every discussion and helps track reasons for requirement changes Git support Git is now supported out-of-the-box. This is especially beneficial if you have your code repository on Git, but want to use the ALM features of TFS. Eclipse, Xcode IDE support In earlier versions, code check-in/check-out was supported only through Visual Studio. Now you can integrated VSO with any of the major IDEs on the market such as Eclipse and Xcode to help you develop applications on non-Microsoft platforms. This combined with Git support, helps VSO to provide you with a complete ALM offering that can be used across all major development platforms. Scrum Process Template The Process Template of choice for VSO is the Scrum template. The Scrum template offers a simplified version of the Agile Process Template and provides the following work items and their workflows. Work items and workflows in Scrum process template Progress Visualizations VSO allows you to pin a TFS query on to the home page in the form of a tile or a chart. These serve as at-a-glance information to get the idea about the project progress and helps you to take more effective and speedy actions. Progress visualization – Project progress pinned on homepage Project Planning You can split your project into manageable sprints of your own choice of sizes. VSO also provides you the resourcing feature of sorts to help you determine how much of the effort is required of each team member to complete a sprint. Project and sprint planning Application Insights With Application Insights – a new feature of VSO – you can monitor your application for uptime, performance bottlenecks and identify the line of code that is causing the performance issues right from the Application Insights Dashboard and into the Visual Studio IDE. Because all the project metadata, code repository and builds reside on the same connected platform, VSO can directly debug into the line of code that is causing issues, thus saving tons of developer hours and helping solve issues on production site much faster than earlier. Application Insights Dashboard Load Testing on Demand You can perform load testing on your production server whenever you want to determine how the application performs under certain pressure. You create the load test data files as usual and then upload them to VSO. As VSO runs the tests, the results begin to show in real time to help you troubleshoot and fix the trouble area much quickly. Load testing on demand All in all, the VSO is a great leap from the on premise TFS and Visual Studio to the cloud-based and always available platform for developing applications. It can save valuable development time and help solve production level issues much faster. It also helps reduce costs of maintaining IT infrastructure to support development and maintenance of software applications.
Assess SharePoint 2007 (or MOSS) for Migration – Part II

In part one of this article we talked about why organizations are looking to move from SharePoint Server 2007 to SharePoint Online, key aspects to consider while designing a migration strategy, importance of assessing customer’s existing environment, and the various possible phases of migration. Read part one – Assess SharePoint 2007 (or MOSS) for Migration – Part I In this part let us look at the approach to prepare and segment the questions for creating a profile of customer’s existing SharePoint 2007 environment, and how the required data can be collected from customer with minimum iterations. Profiling Questions Profiling questions helps you to better analyze the client’s existing SharePoint environment. Prepare questions to carefully assess all the business and technical aspects. Determine what type of questions should be considered to assess the client’s environment and collect the required details. Filter sufficient profiling questions and categorize them in meaningful sections. This will allow you to quickly collect relevant data in order to plan the perfect migration path. One of the ways you can categorize profiling questions could be into following sections- General info, Existing SharePoint 2007 Server Infrastructure, SharePoint 2007 Customizations and integrations, Expectations during migration phase etc. I would recommend to ensure that the questions are not too technical. Provide sufficient hints for expected responses like the OS names, Database name etc. This will help to collect the correct inputs from a client. In case of profiling the infrastructure or a farm environment, you can consider using an analyzer tool (like SharePoint BPA) to collect relevant data which can be used to create your report. While doing profiling, one of the best practices is to avoid asking redundant questions to the customer. This ensures getting quality inputs from client with minimum iteration. The categories could be like the following: General Information In this category ask general questions around the current SharePoint editions like SharePoint Standard or Enterprise, number of users, SharePoint test environment etc. Expectations during migration phase Include questions which help us to identify user expectations during migration phase. They could be like–‘During the migration process do you want to access your content?’, or ‘How much downtime is to be afforded during migration?’, or ‘What about the current taxonomy and URLs? Do you want to use as it is or redefine them?’ Analyze SharePoint 2007 Server Infrastructure In order to analyze and understand the existing SharePoint 2007 Server Infrastructure, we need to collect brief details like whether SharePoint is installed on single server or multiple server farms, virtualization of SharePoint, installed service packs and cumulative updates, Windows Server Infrastructure (AD, federation etc.), the number of web servers, database servers, load balancer, SQL Server version -32bit or 64 bit etc. Analyze SharePoint 2007 Information Architecture To analyze SharePoint 2007 information architecture we need to collect existing SharePoint sites, site collections and web application, size of the SharePoint content databases, existing Site navigation, Sub Site Structure, or Site Map, or search functionality etc. Analyze SharePoint 2007 Customizations, need following details Customization is a very critical part as the current customization is may not be supported on target system due to the fact that the feature is deprecated or whatever the reason affecting it. So to understand the existing SharePoint 2007 customizations, you should include questions around standard SharePoint customizations; like is there any customization using SP designer or any custom code for any specific feature, SharePoint personalization from branding aspects, custom workflows etc. Analyze SharePoint 2007 Integration Another critical point in migration path is SharePoint integration with LOB applications. Include questions around common and specific integrations. For common integrations we can consider integrations with messaging server, communication server, MS-Office, Outlook etc. and for specific integrations like SQL Server Reporting Services (SSRS) etc. Few examples are: Is your SharePoint environment integrated with Email or any corporate Instant Messaging (IM) and conferencing severs? If yes, please provide the details like version, editions etc.? What kind of Outlook features are integrated with the SharePoint environment – e.g. Calendar, Task Lists, Contact Lists, and Alerts etc.? Analyze SharePoint 2007 Backup and Restore Process Try to include questions like what are their current backup methodologies – at Farm Level or Site Collection, what’s the backup frequency- daily/weekly/once in a month? Recovery Point Objective (RPO) and Recovery Time Objective (RTO) of the SharePoint Environment etc. A smooth migration may be attained by keeping the above details in consideration along with other additional inputs incorporated as and when required depending upon the needs. Our Cloud adoption services team has prepared a ready-to-use profiling questionnaire for you, which can come handy while profiling the customer’s environment. To request the questionnaire, click this .
Assess SharePoint 2007 (or MOSS) for Migration – Part I

As part of the Office 365 suite, SharePoint Online is available as Software-as-Service (SaaS) and helps organizations to reduce their Capital Expenditure (CAPEX) and their Operational Expenditure (OPEX) costs related to servers, storage, and management overhead. To reap these cost benefits organizations are looking to move to SharePoint Online. However, moving to any cloud service required laying down successful migration path and getting proper guidance. In order to migrate their Microsoft Office SharePoint Server (MOSS) 2007 to an improved version – SharePoint Online (Office 365), it is essential to consider all the technical aspects and business drivers while designing and implementing their migration strategy. In this regard, a cloud specialist or cloud consulting company should clearly understand their client’s existing environment by doing an in-depth assessment of the same. This helps long way in order to suggest a complete and actionable migration path to the client. As assessment is the first critical step in the laying the migration path for cloud, let me share experience from one of the projects (SharePoint 2007 to SharePoint Online migration) where our Cloud adoption services team did complete profiling of the client’s environment with a framework based approach, and made recommendations to make their environment migration ready. Our approach for this migration from SharePoint 2007 to SharePoint Online included the a set of steps/phases that helped us to understand the actual SharePoint needs of a client and the complexity within their environment: High level migration phases for migrating from SharePoint 2007 to SharePoint Online 1. Analysis and Planning: The main goal is to technically analyze the source, target systems, identify the customization level, sites and sub-parts which are to be migrated. A complete planning for migration activities has to be developed. For example which content areas can be migrated through automated process and if not then what should be the best manual method. 2. Define Migration approach: Define the strategy for validation and testing of migration scenarios. Perform test migration and finalize migration strategy for production environment. With pilot testing, analyze the issues and the solution applied for the test migration, and also capture the time consumed for the same. 3. Customization Scope: In this phase all the customization work is considered including taxonomy changes, new feature implementation, changes in existing structure and hierarchy. 4. Validation: Test and verify the migrated content, structure, and their mappings as per the targeted content. This also includes fixing of any issue regarding content, webpage links, integration point, structure, content mapping etc. 5. Post Migration Steps: After successful migration, there is some cleanup work, deploy custom code if required. Site navigation and verification of migration content needs to be addressed in this phase. In the next part of this article, we will explore a couple of points about how to analyze the existing customer environment, and how the required data can be collected from customer with minimum iterations. Stay tuned…
Explore the Cloudy Side of Visual Studio

In New York City on November 13, 2013, Microsoft launched cloudy side of Visual Studio as Visual Studio Online along with Visual Studio 2013 and .NET 4.5.1. With an advanced development history, Microsoft Visual Studio has been established as a mature development platform to develop modern applications. Visual Studio initially started the journey to deliver a set of client site development tools as a Visual Studio desktop IDE, and then with Team Foundation Server, successfully added and delivered team development capabilities on the server. Visual Studio has now taken a huge next step forward to provide end-to-end set of finished developer services on the cloud in the form of “Visual Studio Online.” In the launch event, Soma Somasegar, Microsoft’s Corporate Vice President of its Developer Division said “Visual Studio 2013 and Visual Studio Online represent the beginning of a new era for Visual Studio, combining a powerful desktop IDE with rich developer services in the cloud.” Visual Studio Online (VS Online) formerly known as Team Foundation Service, is a collection of developer services that runs on Windows Azure platform. Without the need to install and configure any single server, with Visual Studio Online developer can quickly setup environment for the team and connect project in the cloud using their existing development tools such as Eclipse, Xcode or Visual Studio. No matter what’s your team size, you can be a single developer or working with large development team the VS Online gives you the set of capabilities that go closely connected with Visual Studio. VS Online empowers you to build any APP for any device. Another way to look at the VS Online is to bring team collaboration on cloud that can reduce all barriers to start a team collaboration. Today developer’s life is not only limited to code for app, but also test the App after the code development. Once the App is tested he wants to deploy and monitor as well. The reason for all these activities is that he wants to collect some actionable data and insight to improve the App. VS Online gives a set of end to end services which helps developer to perform all of these activities in highly agile manner. With Microsoft development stack (Visual Studio 2013, Visual Studio Online, MSDN and Windows Azure) user will get the complete experience of modern application development for the cloud. Small team and startup companies can take maximum benefits of VS Online leading up to five free users of VS Online. For MSDN subscribers, VS Online is available without any additional cost. The detail pricing and subscription plans for Visual Studio Online are available here. VS Online subscription is deeply associated with Windows Azure account and you can manage it with your Windows Azure account itself. Another advantage of VS Online is your IDE settings remains unchanged while moving on a different machine or device. Earlier developers had to struggle a lot in maintaining the IDE settings unchanged while moving on a different machine as it required lot of efforts and time to comfortably setup an IDE. Let’s explore what are the new and interesting capabilities that VS Online provides for its developers. Although VS Online includes various services, but there are two new services Application Insights and Monaco introduced as part of Visual Studio Online. Application Insights To support organization’s agile application delivery, the Application Insights service is introduced to empower teams to have a 360-degree view of an application’s health attributes (see in the below image) in various metrics such as reliability, performance, availability and usage data etc. Basically this service collects live actionable data of an application across all the environments (development, test and production). On every project’s home page users will get all the key information for a project like for a current sprint what’s the burn down data, status of current backlog item, status of bugs and what is the status of the build, which build is passed and failed and so on. Right now this service is available with Limited Preview and supporting for .NET and Java applications running on Windows platform (Windows Server and Windows Azure), as well as Web and Windows Phone 8 applications. “Monaco” (Code Name) Now a days Cloud has turn out to be a central hub, delivering services to its users – in the form of either business productivity tools and services or infrastructure services. With this trend, for developers, Microsoft is extending the development experience from desktop Visual Studio IDE to cloud based IDE. With Visual Studio Online, Microsoft empowering developers to do coding directly in the browser for the cloud services. The new service in Visual Studio Online, code name “Monaco” provides the coding environment in the browser itself. With this preview release, developers can use the lightweight coding environment for Azure websites and perform certain set of quick tasks such as exploring, editing and running the code, edit the CSS and also support TypeScript to interact with JavaScript. With this service now developers can use any modern web browser or any device to edit their Azure Websites directly from the web. As per Microsoft Executives, Microsoft has been working on Monaco for three years now and this is already being used for its other cloud-based developer offerings, including the O365 “Napa” development tools, to SkyDrive file editing. For more details, see the Visual Studio Online “Monaco” video series on Channel 9. So what are you waiting for, get on to the Cloud and start developing with Visual Studio Online. There are some more key services provided by VS Online: Hosted Source Control With Team Foundation Version Control or Git, VS Online provides hosted source control, work-item and agile-planning services and can be sync to on-premise at the time of developer logged into Visual Studio for their VS Online projects. Elastic Load Test Service Now with the Visual Studio Online load testing service, users can easily shift the application load testing to the cloud to determine and address the