Showing posts with label SharePoint Mobile. Show all posts
Showing posts with label SharePoint Mobile. Show all posts

Wednesday, September 26, 2012

SharePoint 2013 Technical Diagrams Notes

Introduction

SharePoint 2013 Preview Technical Diagrams are now available here - http://technet.microsoft.com/en-us/library/cc263199(v=office.15).aspx

Ever since SharePoint 2007 started publishing these technical diagrams, I have recommended that architects become very familiar with them. I always start here when trying to understand a new major product release for SharePoint. If you search my blog, you will see that I have directly referenced these diagrams when building SharePoint strategies for customers.

The following is a high-level review of the new architecture changes available with SharePoint 2013.

Corporate Portal Diagrams

I reviewed the two new Corporate Portal Diagrams for SharePoint 2013. From a logical architecture perspective, these diagrams do not have any major changes from the SharePoint 2010 versions. These diagrams accurately capture how organizations should build web applications, site collections, application pools, SharePoint services, etc. to support major business initiatives. The diagrams are still a must read for people who are new or who need a refresher to understand how they should be segregating content and business functions across SharePoint.

Extranet Diagram

The new diagram for SharePoint 2013 extranet architecture closely resembles the corporate portal diagrams, however it is not very revealing on the type of information organizations need when making a decision on how to deploy an extranet. Looking back at the SharePoint 2010 Extranet Topologies diagrams (http://technet.microsoft.com/en-us/library/cc263199.aspx), I find that diagram to be much more helpful and the information contained here still holds true with SharePoint 2013. I would recommend reviewing both of them together.

Services in SharePoint 2013 Diagram

I admit this has always been one of my more favorite diagrams. When this was released in SharePoint 2010, it captured a fundamental change in how SharePoint services are configured and delivered. This new architecture was created to support Microsoft’s ability to deliver SharePoint Online as a SaaS solution.

I reviewed this diagram and nothing has significantly changed in regards to sharing services across farms, the logical architecture of services, service groups and service deployment.

In the services table there are a few new services that have been added.

  • Access Services – Do not be confused by this. Yes there was Access Services in SharePoint 2010. At this early point, I know that that Access Services for SharePoint 2013 have been changed to be more focused on utilize the new App Architecture. As such, Access Services for SharePoint 2013 is pretty different. Access Services solutions created in SharePoint 2010 will still be supported moving forward, however they will run in a different service.
  • App Management Services - This is a new service that will be used specifically for supporting the new internal catalog or the public SharePoint store. Remember that in SharePoint 2013, everything is an app; EVERYTHING. Even everyday SharePoint lists are now called an app. Once you get over the name change, you will find out it makes complete sense and Microsoft has just aligned what is does with how business users talk about technology.
  • Machine Translation Service – This is a new one and as of right now, I do not have much information on the purpose of this service other than the description which says it performs automated machine translation.
  • Work Management Services – This service provides task aggregation across management systems including SharePoint, Exchange and Project Server. This is huge from a user perspective. One single place to see all of your tasks. No more building content query web parts to find all tasks; this effectively does this plus goes outside the SharePoint boundary to find more tasks. This is a very exciting service.
  • Office Web App Services – Is called out in here as a service that is no longer running inside of SharePoint server. Why? Microsoft strategy is to provide Office Web App Service to other enterprise application than just SharePoint and it strategically made sense to move it out of SharePoint.

In the rest of this diagram there are architecture diagrams for how to architect service groups across farms, none of which have changed from SharePoint 2010. If you are not familiar with this stuff, this is a must read and I recommend reading my old posting on it here.

Mobile Architecture Diagram

There is a brand new mobile architecture diagram provided and obviously this is drive by Microsoft’s focus on being a “services and devices” company. This is a pretty simple architecture that basically describes some things you need to think about if you are going to support mobile to your users and discusses some of the mobile capabilities. This can serve as a launch point for you to begin to dive deeper into how you will support mobile for your organization. The following are some high-level observations I had when reading this the first time:

Extranet – If you are not thinking extranet, you need to so you mobile users can access content when they are on a mobile device. They have some diagrams which will get your started thinking about it and additionally how you can use Unified Access Gateway (UAG) as a reverse proxy to help with that.

Mobile Device Management (MDM) – One interesting thing brought up in this diagram is how do you manage mobile devices? If you need something simple, you can leverage Exchange ActiveSync for remote device wipe, password enforcement, etc. If you are looking for application level MDM there are additional solutions out in the marketplace today that provide even more capabilities.

Application Architecture – The new SharePoint 2013 mobile architecture is introduced. They break it down basically into two logical layers: mobile and SharePoint. Some key points are:

  • Automatic Mobile Browser Redirection – Is a new capability that can be used to optimize the mobile experience based on the connecting device. This Feature must be active on the site and will be activated by default on numerous site templates. First there is the Classic View which is used to provide backwards capability to mobile devices and will have a SharePoint 2010 mobile browser experience. Then there is the Contemporary View which is geared to support HTML5 browsers. The Contemporary View is several enhanced features for navigation of SharePoint sites. Additionally, Full Site View is available so the SharePoint site page can be viewed as if it were on a desktop browser or a tablet device.
  • Office Hub for Windows Phone – Is an application for Windows phone devices that provides enhanced capabilities to access SharePoint content from multiple places in one spot. It also leverages mobile Office.
  • Location – There is a new geo-location field type that is available in a SharePoint List. This can make a list location aware to capture latitude and longitude which can be used with map applications. For instance, if a user enters in data on their mobile device, it will capture where it was done from and then can be displayed on a map. Here is some more information about this - http://technet.microsoft.com/en-us/library/fp161355(v=office.15).aspx
  • Push Notifications – There is a new capability to allow notifications to be sent from a SharePoint site to registered applications running on a mobile device. The nice thing about this is that Windows Phone Apps can receive notifications without having to poll. Here is some additional reading on the topic - http://msdn.microsoft.com/en-us/library/jj163784(v=office.15).aspx
  • Device Channels – This is a really important new capability as device channels allow you to deliver a publishing site geared specifically to support different types of remote devices. Basically the site can mapped to multiple master pages and style sheets and even control what content you want to make available to specific devices. Here is an overview on the new device channels - http://technet.microsoft.com/en-us/library/fp161351(v=office.15).aspx
  • Office Web Apps – As mentioned earlier in this posting, Office Web Apps is now a separate standalone server which does not run inside of the SharePoint boundary. Office Web Apps has been improved a lot to support mobile devices. There are Word, Excel and PowerPoint Mobile Viewers.

SharePoint 2013 Upgrade Process Diagrams

There are two upgrade diagrams that have been provided. Here are some high points I walked away with:

  • Must be on SharePoint 2010 – To upgrade, you must be on SharePoint 2010 technologies. This means if you are on SharePoint 2003, 2007 or 2010, you will need to upgrade to the appropriate version to get to SharePoint 2013. There are Microsoft migration partners that have solutions to assist with this. I saw many times, this is the big value proposition for using SharePoint Online as this is handled for customers.
  • Database Attach Upgrade – Is the only supported method for upgrading. There is no more “in-place” upgrade option. Frankly that is fine because most customers always went down a database-attach upgrade.
  • Preparation – much of the preparation activities that we have discussed in the past with SharePoint 2010 hold true with SharePoint 2013. There is a bunch of information you are responsible for gathering.
  • Manual Configuration Settings – In the preparation phase is recommended to get a understanding of all the custom configurations that you may have done because not all of them are going to be migrated. This is because not all databases are upgraded. So many custom configurations in central admin such as alternate access methods, time job tweaks, managed paths, incoming/outgoing email settings, certificates, etc. will need to be documented and reconfigured in the new farm.
  • Databases That Can Be Upgraded – There is a set of databases that can be upgraded. They are Content, BDC, Managed Metadata, PerformancePoint, Secure Store, Search and User Profile databases.
  • Customizations – This is an important task that needs to be completed. I have seen many cases where good software organizations have not implemented a strong configuration management process and the result is an organization may not know about all the customize code that may be implemented. There are numerous ways to find all of them by running PowerShell commands, doing system directory diffs, checking web.config, etc.
  • Upgrade Health Checks – There are some new features that are available to site collection administrators that will show you a health check of a site collection before actually upgrading the site collection.
  • Evaluation Site Collection – Site Collection Administrators also have the ability to request the site collection be copied into a new site collection to evaluate how the upgrade will affect any customizations they may have. This is helpful so you can remediate issues before you actually perform the upgrade. This is also nice because your site collection will run in a SharePoint 2010 mode until you are ready to actually upgrade it.
  • Testing – Just like for SharePoint 2010, the best way to prepare for a migration is to build up your new SP 2013 farm and then multiple practices runs of that upgrade into the new production environment. An entire process is defined in one of the diagrams and is a great place to start.

SharePoint 2013 Search Diagrams

If you are a reader of my blog, I wrote some long postings about the search architecture for both SharePoint 2010 Search (here) and FAST for SharePoint 2010 (here). I am not going to do a deep dive into all these search components and roles because they are basically covered. As many people now know, the FAST search engine is now the core search engine for SharePoint. It will just be referred to as SharePoint Search. Now you will be able to leverage a very powerful search engine out of the box. However many of the advanced enterprise features of search will only be available in the SharePoint Enterprise addition. I am also really excited about this for SharePoint Online because it can leverage FAST too. SharePoint Online will not be able to do Enterprise Search of line of business systems but a Search Farm (which is FAST underneath the hood) can be configured on premise and SharePoint Online can invoke that search and provide the search results in the cloud; pretty exciting.

I highly recommend taking the time to review both of these diagrams. It explains how each of the components interacts with each other. Additionally there is a diagram the goes into how to scale the server farms for the amount of content you will need to index. There is a great, new table in there that shows you how scaling will work. To be honest, the folks who are really serious about search will say it is an art and a table does not always communicate how you will do it. It always comes down to how many items, the types of data sources, custom transformations, query latency, index latency, etc.

SharePoint 2013 App Overview Diagram

This is an area I plan to do a lot more exploration of this coming year on and writing on this blog. Why? This is something we have been waiting for a long time with SharePoint development. There are several ways to look and this. SharePoint Features which we have been writing for years are Apps. This is name change to better communicate our technology to the end users who have to use SharePoint. However the new SharePoint App architecture is way more than that.

I have seen so many things over the years.

  • I think one of the biggest challenges people would run into is developing great SharePoint solutions only to find out they incorporated some dependency they should not have, they wrote some high-end code that should not be running in the SharePoint layer, they cannot leverage their solution outside the SharePoint boundary, etc. We want to resolve those problems by helping developers to deploy solutions in way that will keep their SharePoint environment nimble.
  • Plus we want to provide third-party vendors quicker access to customers. We want to help customers to quickly acquire third-party solutions.
  • Additionally we want to allow customers to leverage commodity based SharePoint Online. As you may know SharePoint Online has restrictions on high-end custom development and if that code where to run in another location, while be highly integrated with SharePoint Online, that is a huge win.

I will thing of many more reason this year on why this is so great J

Now we can achieve this through the new SharePoint App architecture. The old SharePoint Solution architecture where you create a WSP is still around. Nothing has changed there. This is used to create deployment packages and in many cases is used to deploy code that requires full trust. SharePoint Solution packages will continue to be used by third-party vendors or developed internally with such tools as Visual Studio. You can still create Sandbox Solutions which run in a more secure runtime and can be deployed in SharePoint Online.

Now the new Apps framework for SharePoint 2013 is a packaged up in a file called .APP. It is composed of many of the same types of files, AppManifest, embedded Solution.wsp, etc. Once an app is loaded into SharePoint, it is accessible through the App Catalog in SharePoint. This App Catalog can be controlled at an organizational level.

Remember the big point with Apps is, that the custom solution you are writing may or may not actually run in SharePoint. Full trust code is not supported. Your custom solution code itself may run in a different SharePoint farm, on an IIS server as ASP.net pages, ASP.net pages running in Windows Azure, etc. So how does SharePoint access these solutions running outside the SharePoint context? In simple terms we have an IFrame (with some extensions) that external solution is available through. OAuth provides the secure connection for access SharePoint objects from a remote location. We will additionally use a new extended and robust event model and remote client SharePoint library to write integrated, remote code.

Why is this so great? We are going to ensure that custom applications and solutions that are being developed with SharePoint are isolated. No more writing a bunch code and services that should not be running in SharePoint servers. It is great that you can do whatever you want with SharePoint, however this will drive solution management.

So you may be asking where does this get deployed? There are many different options for hosting.

  • SharePoint Hosted – This means the app and all the resources run in SharePoint. Remember you server side is not supported however you can write applications with SharePoint’s JavaScript libraries and such.
  • Windows Azure Autohosted – This is a model that is only supported in SharePoint Online. In This case you can write an App package that will have code for Azure and SQL Azure embedded into it. When the application is deployed, the azure solution will be automatically deployed for you. You do not have to go to Azure and set anything up at all; it is all handled for you behind the scenes.
  • Provider-Hosted – This is the third model where custom code and solutions are hosted in a separate server in your organization, hosted in Azure, hosted in different SharePoint servers, etc.

Once an App package is installed, it can be managed and monitored through the catalog. End users have the ability to select an app to run in their sites (much in the same way as turning on a Feature). If and when an app is updated, the user can decide how they want to upgrade to the new app.

Again I really plan to go much deeper on this in my blog but for right now, these are just some introduction notes and ramblings on how excited I am about this new capability J

Back Up and Recovery Diagram

There is a new diagram that goes into the details of doing your own back-up and recovery for SharePoint 2013. I know many people have become accustomed to using third-party vendors for supporting these operations and I still believe these vendors will continue to provide features above and beyond what is out of the box. However, if you are a do it yourself sort of person, this is a great diagram to review.

Not much has changed in regards to developing back-up procedures for both the SQL Servers and the SharePoint Servers. There are tons of scenarios covered in here, and I recommend reading this if it is important to you.

SharePoint 2013 Database Diagram

Finally the database server diagram has been updated. This is a really really really important diagram to review if you are managing on-premise servers. It goes over all the SharePoint databases, plus provide sizing and scaling guidance. Great information.

Saturday, May 15, 2010

New SharePoint 2010 Features Part 3 – Development Features

Development Features

In this part of this continuing series I am going to look at many of the new development features available to us in SharePoint 2010.

Client Object Model (Reference)

SharePoint 2010 provides a new client object model that allows us to access SharePoint data and features from remote machines or processes. We now have three new client APIs which we can use to access and utilize features and functionality of SharePoint 2010:

  • SharePoint 2010 can be accessed from .NET 3.5 or Higher
  • Can be accessed from Silverlight 2.0 or higher
  • ECMAScript (Javascript, Jscript) on the client site in a browser

Note this provides rich, but subset, of the SharePoint API.

Client Object Model Thoughts

I am personally very excited to see this as a developer because up to this point a lot of engineering work was required to utilize these web services to achieve sometimes what would be considered a simple operation if the code was using the SharePoint API.

What this enables us to do is access SharePoint data more quickly and easily from remote machines. We no longer have to only use SharePoint web services to access data. This allows us to rapidly create more seamless .NET solutions with SharePoint. I know it can be considered a more elegant solution to using SharePoint Web Service to retrieve SharePoint data from across application boundaries or domains. However there are still many ways you can architect a solution ensure there is strong decoupling maintained.

Seriously the ease getting data from lists and using that data in external processes using this new client object model is a game changer in my book. I have had so many instances where I have had to create solutions and wanted to use the SharePoint API, and had to host parts of that solution directly in SharePoint just when really did not need to. Now if I have custom ASP.net application, a web service connected to an InfoPath form, etc. I can simply use this API to integrate with SharePoint 2010.

Event Improvements (Reference)

What Microsoft means when referring to "New Event Improvements" are the events that are available to developers to create customizations to out of the box behavior. Typically in SharePoint 2007 this was adding an event handler to a SharePoint list for when a new item is added, deleted, checked out, etc.

So some of the new events that are available to us are:

  • New event handlers for when lists are added or deleted.
  • New event handlers for when before sites are created and after they have been provisioned.
  • Synchronous After Events. If you are a developer you will know that the default behavior that before events are synchronous and after events are asynchronous. Now you have the ability to make after events synchronous too so that you complete an operation after a list item has been committed to the database but before the user sees it in the list.
  • To support the new events for list and web events, events that typically could not be bound to the Site Collection level now can be.
  • Running under elevate privileges is commonplace to perform actions but when doing this you did not have access to the originating user. With SharePoint 2010 we now have access to this user.
  • Event Error page now allows developers to handle unexpected errors more gracefully than before.

New Event Improvements Thoughts

Many of these features really do not benefit the everyday business user however they really help developers create better solutions.

Alerts Enhancements (Reference)

The new important thing that is being supported is mobile messaging with Short Message Service (SMS) messages.

Alerts Enhancements Thoughts

This is really important because we all know how important mobile computing is for both consumers and business users. Better support of communication of content within SharePoint over mobile platforms is critical for the short-term success of SharePoint.

Mobile Device Development Enhancements (Reference)

For SharePoint 2010 there is greater support for mobile devices. We have already discussed SMS messaging is now supported. Along with we now have the ability to create mobile pages that function just like standard web part pages. This is supported through mobile adapters. A mobile adapter can be created for any web part that you write and most of the major web parts out of the box come with mobile adapters. Simply map mobile adapters to web parts on existing pages and when a mobile device accesses the web page, the web part page with the mobile web parts will be displayed.

As well, with SharePoint 2010 there several new mobile page templates and over 60 new public mobile controls. As well, there are new Mobile Document Viewers that enable users to open documents from document libraries on their device without having traditional desktop application installed.

Mobile Device Development Enhancements Thoughts

As I mentioned before business computing from mobile devices is only going to continue to grow over the next two years because they are not longer just viewed as communications tools for email or surfing the internet. It is imperative that SharePoint be able to support the sort of functionality that is being provided.

Query Enhancements (Reference)

SharePoint 2010 provides numerous new ways to access data that we did not have in previous versions of SharePoint. CAML queries are fine but the syntax could be challenging at times, especially if the queries had to be dynamic. This typically pushed developers down the path of using the SharePoint API to do "queries" however this could lead to other issues. How we have:

  • LINQ to SharePoint provider that will translate to CAML.
  • Ability to use client side code to perform queries. The new client object model can run either LINQ or CAML queries.
  • ADO.NET Data Services Framework provides to query content databases.

It was noted by Microsoft to avoid using the SharePoint Data Providing Web Services as better performance can be realized by using the client object model of ADO.net Data Services Framework. The web services will continue to be supported for interoperability and backwards compatibility.

Query Enhancement Thoughts

From a developer standpoint this is extremely exciting to see that SharePoint content and data is more quickly accessible than in previous versions of SharePoint. We now have the ability to use SharePoint data pretty much anywhere in the SharePoint stack by simply just referencing the SharePoint dll.

Ribbon

SharePoint now has a Server Ribbon which is the primary location where users can initiate commands from. The concept is identical to the MS Office 2007 Ribbon.

Ribbon Thoughts (Reference)

From what I have seen this is a great new way for users to initiate commands in SharePoint. In SharePoint 2007 there were several different places where menu items would be placed sometimes creating confusion. The ribbon concept as well allows new users to easily transition into using SharePoint based on their MS Office experience.

Service Application Framework (Reference)

The Service Application Framework provides developers with a platform in which they can build middle tier applications that can be hosted within SharePoint 2010. Services developed with this framework can be utilized natively within existing SharePoint features – like being centrally hosted, load balanced, claims based security, etc. As well they can take advantage of SharePoint 2010 administration as they can be managed in central administration just like any of the out of the box services, can upgrade packages created, made part of backup/restore and hook into account management. You can even build custom administration pages and host them in Central Admin.

Microsoft has used the Service Application Framework to develop their services like SharePoint Search. This framework is meant to replace the SSP of SharePoint 2007.

Service Application Framework Thoughts

This is again very exciting to see as it will open up a new market for Microsoft partners build solutions that can be hosted in SharePoint 2010. This can significantly reduce cost to create or purchase custom solutions as the entire SharePoint platform can be leveraged.

Silverlight Integration and Cross-Domain Data Access (Reference)

SharePoint 2010 now provides a web part that is made specifically for hosting Silverlight applications. This was possible on SharePoint 2007 however this has been made significantly easier with SharePoint 2010. All that needs to be done is deploy the Silverlight application and simply reference the URL to where it is hosted. If the Silverlight application accesses SharePoint data and is hosted in a different web domain a configuration file is needed.

In correlation with this there is Silverlight Cross-Domain Data Access (Silverlight CDA) which supports secure integration between SharePoint and Silverlight applications that reside on different domains. .

Silverlight Integration and Cross-Domain Data Access Thoughts

I am not sure if my description above does this justice but SharePoint 2010 and Silverlight integration is a game changer for delivery of custom solutions within SharePoint. Sometimes building custom applications with web parts does not always work well but Silverlight provides a platform to build Rich Internet Applications that can be easily accessible through SharePoint. I recently had a client who wanted to migrate off of Oracle Forms to save licensing costs and to reduce their desktop footprint. We recommended Silverlight because the new solution had to be web accessible, needed to support complex/dynamic data entry screens, and have little desktop footprint. ASP.net or WPF could not satisfy these requirements however Silverlight can. Now this new application can be embedded right into their Intranet providing users with a completely seamless user experience. I am really excited to see how this will be used.

UI Enhancements (Reference)

There are numerous, significant user interface enhancements that have been made to SharePoint 2010. For instance a new ribbon has been added to the screen which has an identical user experience to that of Office. Custom commands can be easily integrated into this framework. Second application pages now reference the site master pages which as not the case in SharePoint 2007. Third CSS has been significantly revamped and divided into multiple files to enable better customization and loading performance.

UI Enhancements Thoughts

Again the improvements to the athletics of SharePoint 2010 have been pretty good. It is more of a refinement of SharePoint 2007 which was a significant jump when compared to SharePoint 2003.

Custom Field Rendering Enhancements (Reference)

When building a custom list or refining an existing one, there was a file in WSS 3.0 called fldtypes*.xml which was used to control how fields were rendered on the Display, Edit, and New pages as well as Site Column, Change Site Column, Create Column, and Change Column pages. For SharePoint 2010 fields will be rendered on list view pages by using XSLT stylesheets.

Custom Field Rendering Enhancements Thoughts

This again is something more developers and just a change in the way custom fields will be defined. Only thing that you should consider is you are migrating custom solutions built for 2007, even though there is backwards compatibility, you should consider maybe refactoring the solution for 2010.