Bookmark

Find a SharePoint Product

SharePoint Products

SharePoint Events

<<  May 2012  >>
 Sun  Mon  Tue  Wed  Thu  Fri  Sat 
    1  2  3  4  5
  6  7  8  9101112
13171819
20212223242526
2728293031  
Browse by Company:
A New Book by Ira Fuchs: Enterprise Application Development in SharePoint 2010 (and a Discount!) PDF Print E-mail
General
Thursday, 14 April 2011 15:09

Creating an End-to-End Application without Code

ihfpublishingThis unique book is filled with step-by-step instructions and screenshots and has several objectives. The first objective  is to demonstrate the techniques and methodology for developing an Enterprise class application in SharePoint 2010. We will accomplish this by creating a fully functional Employee Absence Tracking application that incorporates many of the characteristics of an Enterprise application. By “Enterprise class” we mean a sophisticated application that addresses the demanding requirements of a large organization. Two significant characteristics of an Enterprise class application are complex functionality and context driven behavior, attributes that we will examine in detail at various times and places in this book.

In this book we use the designation “Enterprise Application” to describe a class of applications that are deployed in organizations that have complex procedural contingencies,  are driven by user context, and must be integrated with and access multiple information sources within the organization.  Employee Absence Tracking, when implemented robustly to incorporate the complex use case functionality required in most organizations is emblematic of an Enterprise Application. As such the exercise of designing and creating this application will be an object lesson in identifying the numerous Enterprise requirements relevant to an employee absence tracking application and demonstrating how the SharePoint platform can accommodate them effectively and efficiently...

Characteristics of an Enterprise Application – Employee Absence Tracking

The first objective  is to demonstrate the techniques and methodology for developing an Enterprise class application in SharePoint 2010. We will accomplish this by creating a fully functional Employee Absence Tracking application that incorporates many of the characteristics of an Enterprise application. By “Enterprise class” we mean a sophisticated application that addresses the demanding requirements of a large organization. Two significant characteristics of an Enterprise class application are complex functionality and context driven behavior, attributes that we will examine in detail at various times and places in this book.

In this book we use the designation “Enterprise Application” to describe a class of applications that are deployed in organizations that have complex procedural contingencies,  are driven by user context, and must be integrated with and access multiple information sources within the organization.  Employee Absence Tracking, when implemented robustly to incorporate the complex use case functionality required in most organizations is emblematic of an Enterprise Application. As such the exercise of designing and creating this application will be an object lesson in identifying the numerous Enterprise requirements relevant to an employee absence tracking application and demonstrating how the SharePoint platform can accommodate them effectively and efficiently...

As part of their overall compensation and benefits package organizations provide employees with vacation, sick and personal leave time. Employee Absence Tracking applications manage the process, policies and contingencies of using this leave time and tracking the consumption and balance of time available. In large organizations the allocation and tracking of leave time consumption is a function of a centralized Human Resource or Payroll system, but the actual transactional process of requesting and approving leave time is executed in a separate application and very often in multiple instances of such applications. The reason for this is that the policies and contingencies governing the consumption of leave time are typically set and managed differently within the multiple operational and regional units of an enterprise. Attempting to accommodate all of the unit and regional contingencies for absence management in a single application instance is unwieldy and impractical. Consequently the architecture of this Employee Absence Tracking reference implementation decentralizes the rule logic for absence management contingencies yet centralizes the time recording and accounting information – the time away allocations, the cumulative usage and the balance of time available, as this information is typically also used by or is relevant to other HR applications such as payroll. 

Multiple instances of the Employee Absence Tracking application can be instantiated and configured separately to implement only those rule sets that are applicable to any given operating entity but each instance will access a common organization-wide data store that maintains the categorical absence time available and used by each employee. We use an SQL 2008 database to represent this information store and we will use SharePoint Designer and Business Connectivity Services to create external connections, external content types, and external content type lists to make this information available to SharePoint and InfoPath and enable bi-directional read/write access to the database. The functional logic of the application is created in InfoPath and SharePoint and is “loosely-coupled” from the data store. It is easy to create and deploy multiple instances of the Absence Request application that can be easily customized as required, all of which will use BCS to interact with the same database.

The Benefits of Working in a Rule Based Declarative Development Platform

The second objective is to promote the viability of a declarative development methodology that is rule based. Writing a book on creating Enterprise applications in SharePoint became possible because the SharePoint platform, which includes the development tools SharePoint Designer and InfoPath, is sufficiently mature to actualize both the premise and promise of a declarative, rule-based development methodology.  A declarative development methodology uses tools that describe what the desired functionality of an application is, and provides the objects and methods to implement the desired functionality. Typically, the objects are information sets and the methods are rule sets.  Traditional procedure programming uses tools that require the developer to describe how to create the desired functionality where the developer must construct the objects and methods first. Declarative development does not use code while procedural programming is based on code. The significant development efficiencies and lifecycle management benefits of a rule based declarative methodology will become apparent as we go through the process of creating the Employee Absence Tracking application.

One of the truly compelling reasons to build applications on the SharePoint platform, and specifically using InfoPath forms and SharePoint Designer workflows is that almost all of the application’s functional logic is defined and executed as rules. Operational processes are driven by rules but in traditional application development the rules are first defined as conditional statements but are then re-written as procedural code that is compiled into run-time assemblies. The greater majority of lifecycle modifications to process applications are rule centric but because the rules in conventional applications are embodied in programming code and are no longer exposed as conditional statements they cannot be accessed and modified easily, and without risk of affecting the behavior of the application in unintentional ways. This significantly impacts the ability of organizations to make changes in their processes on a timely and efficient manner.

With InfoPath rules and SharePoint Designer workflows the conditional logic exists and is maintained in an accessible form that is self-documenting, transparent, and loosely-coupled from other functional aspects of the application. A rule set incorporated within InfoPath can be viewed and modified with confidence that the changes will not affect other functions of the application. Any of the rules in this form can be easily and readily modified to accommodate the specific leave policies and business requirements of any organization. Additional rules can be added just as easily without affecting the integrity of the overall application. The declarative workflows that can be created in SharePoint Designer share these same characteristics.

What will also become apparent through the exercise of creating this application is that the learning curve of mastering even the most sophisticated and leveraged capabilities of the SharePoint development platform is substantially lower than working in a procedural development environment, which in turn significantly impacts development efficiencies.

Best practices for developing declarative applications

The last and perhaps most important objective is to identify the best practices for developing declarative applications on the SharePoint platform. As with any set of development tools capable of creating sophisticated deliverables there are multiple ways to go about building an application. Some are better than others. A best practices approach is distinguished by the coherency of the organization of the individual objects, composite components and methods of the application; the flexibility and ease of modifying, interchanging and reusing those objects, components and methods; and the ability to readily understand how things work. Throughout the book we will point out various best practice approaches to SharePoint development and describe the rationale behind them and their benefits.

This book is available exclusively thru IHF Publishing – to get a 30% discount, enter code BAIOFFER. Click here to purchase.

 

 
Comments (1)
1 Thursday, 05 May 2011 13:44
Bobby Forester
The links are broken.

Add your comment

Your name:
Comment: