Wednesday, May 15, 2013

Accessing share point data on fly in share point App




In some scenarios share point app can request permission to access SharePoint data dynamically during run time. This type of app does not have to originate from SharePoint 2013. It could be an app that is launched from any website and that wants to access data on SharePoint 2013 on the fly.
To be able to get into SharePoint, this type of app must first be registered through the Seller Dashboard or the appregnew.aspx page..
 After you've registered your app, it has an app identity and is associated with a security principal, referred to as an app principal. Like users and groups, an app principal has certain permissions and rights. 
After registering the app you'll get a client id, client secret, app domain, and redirect URI associated with that particular app principal. This app information identifies that particular app principal. This app information is registered with the authorization server, Windows Azure Access Control Service (ACS).
In SharePoint 2013, the OAuth authentication and authorization flow for an app that requests permissions to access SharePoint resources on the fly involves a series of interactions between your app, SharePoint 2013, the authorization server (which is ACS), and the end user at run time.
For an app that requests permissions to access SharePoint data, you have a server that is separate from SharePoint 2013, and not part of the SharePoint farm. You, the app developer, own this server (let's call it the Development.com server). You write the code for your app and deploy the app to the Development.com server.
The Development.com server uses the SharePoint client object model (CSOM) or REST endpoints with CSOM to make calls to SharePoint 2013. The Development.com app uses OAuth to authenticate with SharePoint 2013. The ACS is where SharePoint requests an authorization code that it can send to the Development.com server. Later, the Development.com server uses the authorization code to request an access token from the ACS as part of the OAuth transaction process. The Development.com server then uses the access token to talk back to SharePoint.

Monday, April 22, 2013

Architectural Styles in Software Developments



There are different styles, patterns and principles used in software development. It’s very important to make the right choice of the architectural style for the application before starting the development. Developing application with proper architectural style avoids lot of problems occurring while developing or after the development is completed.  If the architecture selection is  proper then software development can easily distributed to various developers and simultaneous work can be carried out.

Application can easily incorporate the complex changes. Re engineering is also easy and application easily enhanced without affecting the existing development.
Below are some latest styles listed with its description. I have taken the MSDN reference to get this information.
Client/Server:  Segregates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures.
E.g. e-mail readers, FTP clients, and database query tools
Component-Based Architecture: Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
Domain Driven Design: An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain. Key feature of a component environment is the role of metadata. A component’s technical contract includes both callback-like mechanisms that enable its life-cycle to be managed by a separate framework infrastructure technical contract includes both callback-like mechanisms that enable its life cycle to be managed by a separate framework infrastructure
Layered Architecture: Partitions the concerns of the application into stacked groups (layers).
E.g.  line-of-business (LOB) applications such as accounting and customer-management systems; enterprise Web-based applications and Web sites, and enterprise desktop or smart clients with centralized application servers for business logic
Message Bus: An architecture style that prescribes use of a software system that can receive and send messages using one or more communication channels, so that applications can interact without needing to know specific details about each other.
E.g. Publish/Subscribe pattern
N-Tier / 3-Tier: Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer.
E.g. Financial Web application,  Rich client connected application
Object-Oriented: An object-oriented framework provides a context for reuse based on individual classes that extend and use an existing API.  Design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object.

Service-Oriented Architectural Style
Service-oriented architecture (SOA) enables application functionality to be provided as a set of services, and the creation of applications that make use of software services. Services are loosely coupled because they use standards-based interfaces that can be invoked, published, and discovered.
E.g  Reservation systems and online stores




Thursday, April 11, 2013

SPCAF is Released

Share Point Code Analysis Framework is released. See below link for more details

http://visualstudiogallery.msdn.microsoft.com/0bd73990-ce77-4332-8d88-fa441d82b7d9