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


Friday, March 29, 2013

Enhanced BI features in SP 2013



Below is the list of some enhanced BI features in SP 2013. The information is taken from Share Point forum.

Excel BI
Excel BI offers certain new features to support business intelligence applications.
These include the following:
In-Memory BI Engine (IMBI): The In Memory multidimensional data analysis engine (IMBI), also known as the Vertipaq engine, allows for almost instant analysis of millions of rows and is a fully integrated feature in the Excel client.
Power View Add-in for Excel: Power View ("Crescent") enables users to visualize and interact with modeled data by using highly interactive visualizations, animations and smart querying.. Users can present and share insights with others through rich storyboard presentation capabilities. PowerView is powered by the BI Semantic Model and the VertiPaq engine.
Decoupled PivotChart and PivotTable reports: Users can now create PivotChart reports without having to include a PivotTable report on the same page.
Excel Services
Excel Services offers certain new features to support business intelligence applications. These include the following:
Calculated measures and members: Excel Services supports calculated measures and calculated members that are created in Excel.
Enhanced timeline controls: Excel Services supports timeline controls that render and behave as they do in the Excel client.
Application BI Servers: Administrators can specify SQL Server Analysis Services servers to support more advanced analytic capabilities in Excel Services.
Business Intelligence Center update: The Business Intelligence Center site template has been streamlined. It not only has a new look, it is easier to use.
Data exploration improvements: People can more easily explore data and conduct analysis in Excel Services reports that use SQL Server Analysis Services data or PowerPivot data models. For example, users can point to a value in a PivotChart or PivotTable report and see suggested ways to view additional information. Users can also use commands such as Drill Down To to conduct analysis. Users can also apply the Drill Down command by using a single mouse click.
Field list and field well support: Excel Services enables people to easily view and change which items are displayed in rows, columns, values, and filters in PivotChart reports and PivotTable reports that have been published to Excel Services.
PerformancePoint Services
PerformancePoint Services offers certain new features to support business intelligence applications. These include the following:
BI Center Update: The new BI Center is cleaner, and easier to use with folders and libraries configured for easy use.
Support for Analysis Services Effective User: This new feature eliminates the need for Kerberos delegation when per-user authentication is used for Analysis Services data sources. By supporting Analysis Services Effective User feature, authorization checks will be based on the user specified by the EffectiveUserName property instead of using the currently authenticated user.
PerformancePoint Support on iPad: PerformancePoint dashboards can now be viewed and interacted with on iPad devices using the Safari web browser.
Dashboard Migration: Users will be able to copy entire dashboards and dependencies, including the .aspx file, to other users, servers, or site collections. This feature also allows the ability to migrate single items to other environments and migrate content by using Windows PowerShell commands.
Filter Enhancements & Filter Search: The UI has been enhanced to allow users to easily view and manage filters including giving users the ability to search for items within filters without having to navigate through the tree.
Visio Services
Visio Services offers some new features
Maximum Cache Size: A new service parameter, it is located on the Central Admininstration Visio Graphics Service Application Global Settings page. The default value is 5120 MB.
Health Analyzer rules: New corresponding Health Analyzer rules have been added to reflect the new Maximum Cache Size parameter.
Updated Windows PowerShell cmdlets, Set-SPVisioPerformance: This cmdlet has been updated to include the new Maximum Cache Size parameter.
Commenting on drawings supported: Users can add meaningful comments to a Visio Drawing (*.vsdx) collaboratively on the web via Visio Services in full page rendering mode.
We can't compare external lists with standard lists where data is stored inside of SharePoint. Since the data is stored outside SharePoint, there are many Limitations in External Lists. Many of the Ribbon features will not be available for external Lists.

Sunday, March 17, 2013

Limitations of External Lists in SharePoint 2010

We can't compare external lists with standard lists where data is stored inside of SharePoint. Since the data is stored outside SharePoint, there are many Limitations in External Lists. Many of the Ribbon features will not be available for external Lists.
  1. Cannot create Information Management Policies (bar codes,  auditing, retention or labels)
  2. Open with Access/Open with Project is not supported
  3. REST access via ListData.svc to External Lists is not available (All WCF services like RSS feeds are not available)
  4. No Look ups
  5. No version or version history
  6. Inline Editing is not available
  7. Datasheet view is not available
  8. Export to Excel option is not available
  9. Workflows cannot be configured for External Lists
  10. Can't create Visio Diagrams
  11. No Context Menu (ECB) Send To operations.
  12. Events handlers are not supported.
  13. No Item Level Permissions
  14. No item or field level validation or Formula supported
  15. Document templates are not supported.
  16. Additional data connections in InfoPath 2010 list forms not supported
  17. My favorite Utility: U2U CAML Query builder doesn't work!
  18. No Check In / Check Out options 
  19. Drafts of items are not supported.
  20. No Write support for BLOB 
  21. Metadata based navigation is not supported
  22. Alerts are not supported
  23. Attachments will not be available

Tail: You cannot mix the SharePoint columns with External List columns since they are coming from external source.


Read more: http://www.sharepointdiary.com/2012/03/limitations-of-external-lists-in.html#ixzz2I1zMavOw

Thursday, February 21, 2013

Development Methodlogies under Agile practices

There is some misunderstanding between the Agile practice and its  practical approaches. I have explained its three practical approaches here.

Agile is a methodology, and there are various ways to define what agile is. To a large extent, if it involves constant unit testing and the ability to quickly adapt when the business needs change then it is probably agile. The opposite is the waterfall method.

There are various implementations that are codified by consultants, such as Xtremem Programming, Scrum and RUP (Rational Unified Process).

Scrum- Scrum is just one of the many iterative and incremental agile software development method. You can find here a very detailed description of the process.

In the SCRUM methodology a sprint is the basic unit of development. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and followed by a review or retrospective meeting where the progress is reviewed and lessons for the next sprint are identified. During each sprint, the team creates finished portions of a product.

In the Agile methods each iteration involves a team working through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.

So if in a SCRUM sprint you perform all the software development phases (from requirement analysis to acceptance testing), and in my opinion you should, you can say SCRUM sprints correspond to AGILE iterations.

Extreme Programming(XP)-Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. Extreme Programming implements a simple, yet effective environment enabling teams to become highly productive. The team self-organizes around the problem to solve it as efficiently as possible.
Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology.

RUP-The RUP process framework with Rational Method Composer provides:
Processes based on the best practices adopted in thousands of projects worldwide. Avoid inventing everything from scratch and reuse processes that have been successful for other organizations.
Capability patterns that allow project managers to rapidly add or remove reusable chunks of processes addressing common problems. Because no two projects are alike, project managers can modify the process to address specific project needs.
Ready-to-use delivery processes to provide the project manager with a quick starting point for planning and initiating a project. A delivery process provides an initial project template and identifies which type milestones to use in the project, which work products to deliver by each milestone, and which resources are needed for each phase.
RUP promotes iterative development and organizes the development of software and systems into four phases, each consisting of one or more executable iterations of the software at that stage of development.

The information is taken from related books and sites.

Thursday, February 14, 2013

Share Point Online limitations compared to Share Point 2010 on premises



Below is the list of all the limitations of Share Point Online compared to Share Point 2010 on premises.

Connections to MySites to SharePoint 2010 on-premise environment  Size Limit (500 MB)
Customizability for MySites is limited
User Profile Store cannot be connected to other data sources
Vanity URLs
User Permissions for External Users
External users require a Windows Live ID to authenticate
Limited changes possible in public facing web sites
No line-of-business (LOB) data access with intranets
The maximum size of a SharePoint tenant is 5 terabytes (TB)
A SharePoint Tennant can maximally hold 300 site collections (excl. My Sites)
Each site collection has a storage quota of 100 gigabytes (GB)
Size limit of a site collection (100 GB)
Number of site collections (300)
Maximum storage in a tenant (5 TB).
Record Center capabilities not offered
Mail Enabled Document Libraries are not supported, impacting Scanners & Scanner software
PDF documents cannot be opened in the browser
Word Automation features not available
Auditing does not capture which documents are opened and closed
FAST Search not supported
Search configuration very limited
Crawling content source every hour to refresh index
Custom IFilters not supported (PDF is the only external IFilter supported)
Indexing of multiple sources not supported
Federated Search
Search Integration with Windows 7
Business Intelligence Center, SharePoint PowerPivot, PerformancePoint Services and integration with a reporting server not supported
Access to LOB data not supported
More sophisticated workflow systems, including K2, Nintex, and Global360, are not supported
Integration with LOB data is not supported
Only Sandboxed Solutions are supported, fully trusted code is not 
Microsoft Online IDs
Single Sign On with AD credentials through ADFS
Microsoft Windows Live IDs for External Users
 ADFS servers behind the firewall: this only allows users to access SharePoint Online when on the corporate network
Implementing ADFS Federation Servers in the DMZ: this allows usage both internally and externally.