Download Microsoft_Press_eBook_NET_Technology_Guide_for_Business_Applications.pdf PDF

TagsTypes Presentations
File Size6.0 MB
Total Pages70
Document Text Contents
Page 1




Cesar de la Torre
David Carmona

.NET Technology
Guide for Business

Page 2

.NET Technology Guide for Business Applications

// 1


Microsoft Press

A Division of Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2013 Microsoft Corporation

All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written

permission of the publisher.

This document is provided for informational purposes only and Microsoft makes no warranties, either express or implied, in this document.

Information in this document, including URL and other Internet website references, is subject to change without notice. The entire risk of the use or

the results from the use of this document remains with the user.

Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in

examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or

event is intended or should be inferred.

Microsoft and the trademarks listed at are trademarks of

the Microsoft group of companies. All other marks are property of their respective owners.

This book expresses the author’s views and opinions. The information contained in this book is provided without any express, statutory, or implied

warranties. Neither the authors, Microsoft Corporation, nor its resellers or distributors will be held liable for any damages caused or alleged to be

caused either directly or indirectly by this book.

Cover: Twist Creative • Seattle and Joel Panchot

Page 35

.NET Technology Guide for Business Applications

// 34



ITR-Mobility iFactr and Monocross



VSIP partner directory Visit the VSIP partner directory for more solutions provided by Visual Studio industry


Modernizing applications based on RIA containers

A few years ago, when Rich Internet Application (RIA) containers and plug-ins were popular, the context in IT was quite different

from today. Five years ago, RIA covered most deployment needs by just targeting Windows-based PCs and Mac computers. After

the “device revolution” in 2010, you now have different devices (tablets, smartphones, and computers) with different operating

systems (including Windows 8, Windows Phone 8, iOS, Android, and Chrome OS)—and many of them don’t support RIA plug-ins.

At the same time, HTML5 has been evolving to support richer scenarios that previously required plug-ins. Currently, HTML5 is broadly

supported across all devices and offers a better alternative for cross-platform client development than traditional plug-ins.

Native applications are also becoming more popular in the market, as they take full advantage of each device’s specific features

to provide the most compelling experience for customers. Figure 5-15 illustrates these trends.

The Microsoft platform supports all three approaches for user interfaces (web, native, and RIA), but it also takes into account that

modern experiences across devices are primarily developed with web and native technologies. Deciding when to make that

transition will ultimately depend on your requirements and needs. Microsoft is committed to supporting your choice and helping

you throughout the process, as shown in Figure 5-16:

 If you are transitioning to native applications, you can leverage your existing skills and even code by targeting XAML/.NET

natively on any Windows device. Portable libraries will also allow you to share your binaries between different platforms,

including Silverlight.

 For browser-based HTML5 apps, Microsoft provides leading tools and frameworks to help you create applications for any

device based on the latest standards. Silverlight’s interoperability with HTML also enables a gradual transition through

hybrid applications.

What Is Changing in UI Technologies?

Figure 5-15

Page 36

.NET Technology Guide for Business Applications

// 35

 If your application’s targeted scenario is still supported only by Silverlight (for example, video content protection) or

emerging patterns are not a requirement for your applications yet, you can continue to use Silverlight. Silverlight is a mature

and stable technology, and its latest version (Silverlight 5) was released with extended support for 10 years to ensure you

get the most from existing investments and to allow you to gradually transition to HTML5 or native solutions.

Appendix A, “Silverlight migration paths,” provides additional details and recommendations.

Cloud app model for Office and SharePoint
Office 2013 introduced the cloud app model for extending Office and SharePoint through lightweight apps. This delivers the value

of your business applications through the Office productivity applications your customers already use. The cloud app model is

built on standard web technologies such as HTML, CSS, JavaScript, REST, OData, and OAuth on the client—along with any server

technology, including ASP.NET, on the server. If you’re a web developer, you can use your existing skills to build apps and take

advantage of familiar tools, languages, and hosting services. You can deploy, update, and maintain your apps faster in the cloud,

then publish and sell your apps in the Office Store, or distribute IT-approved apps within your organization by using an internal

app catalog.

The unified app model applies to the following types of applications:

 Apps for Office (applies to Office 2013, Office 365, Project Professional 2013, Word 2013, Excel 2013, PowerPoint 2013,

Outlook 2013, Outlook Web App, Excel Web App, and Exchange Server 2013).

 Apps for SharePoint Server 2013 and SharePoint Online in Office 365.

Apps for Office

Apps for Office are based on the cloud app model for Office and SharePoint; see Figure 5-17.

What Is Changing in UI Technologies?

Figure 5-16

Page 69

.NET Technology Guide for Business Applications

// 68


Porting Silverlight XAML/code to a

Windows Store app (Windows)

Migrate Silverlight applications to

Windows Store apps


Silverlight support policy

Appendix B: Positioning data-access

Over the years, Microsoft has been creating and evolving more flexible data-access technologies. Some are very specialized, others

are general purpose, but all of them share two common goals: to help applications access the information they need, and to help

developers spend less time dealing with intricate details of data storage, which allows more time focusing on their own software

that utilizes that data, thus bringing real value to their customers.

The selection of a proper technology to access data should consider the type of data source you will have to work with and how

you want to handle the data within the application. Some technologies are better adapted to certain scenarios. The next sections

describe the main technologies and characteristics to be considered.

Entity Framework

Entity Framework (EF) is Microsoft’s recommended data-access technology for new applications that need to access relational

databases. EF is an object-relational mapper (O/RM) that enables .NET developers to work with relational data using domain-

specific objects. It eliminates the need for most of the data-access code that developers usually need to write. EF allows you to

create a model by writing code (classes) or using visual diagrams in the EF Designer. Both of these approaches can be used to

target an existing database or create a new database.

EF is recommended when you want to create an entity model mapped to a relational database. At a higher level, one entity class

is usually mapped to one or multiple tables that comprise a complex entity. The most outstanding advantage of EF is that the

database it works with will be transparent in many ways. This is because the EF model generates native SQL statements required

for each Database Management System (DBMS), so it would be transparent whether you are working over Microsoft SQL Server,

Oracle, DB2, or MySQL. You simply need to change the EF provider related to each DBMS. (In most cases, this involves nothing

more than changing a connection string and regenerating the EF model). So, EF is suitable when the intention is to use an Object

Role Modeling (ORM) development model based on an object model, then mapped to a relational model through a flexible

scheme. If you use EF, you will also commonly use LINQ to Entities, too. Consider LINQ to Entities if the intention is to execute

strongly typed queries against entities using an object-oriented syntax such as LINQ.

Third -party O / RM technologies: There are many other good technologies (such as O/RMs like NHibernate, LinqConnect,, BLToolkit, OpenAccess, and Subsonic) that are not provided and supported by Microsoft, but they are good

approaches, too.

ADO.NET: Consider using ADO.NET base classes if access to a lower API level is required. This will provide complete control (SQL

statements, data connections, etc.) but relinquish the transparency toward Relational Database Management System (RDBMS)

Page 70

.NET Technology Guide for Business Applications

// 69

systems provided by EF. You may also need to use ADO.NET if you need to reuse existing inversions (massive use of existing stored

procedures or legacy Data Access Building Blocks implemented using ADO.NET).

Microsoft Sync Framework : Consider this technology if you are designing an application that should support scenarios that are

occasionally disconnected/connected or that require cooperation between the different databases.

LINQ to XML: Consider this technology when there is an extensive use of XML documents within your application and you want

to query them through LINQ syntax.

NoSQL databases and technologies: NoSQL is an umbrella term for a DBMS identified by non-adherence to the widely used

RDBMS model. Data stores that fall under this term may not require fixed-table schemas; they usually avoid join operations and

generally do not use SQL sentences for data manipulation.

The motivation for this type of architecture is usually high horizontal scalability and high optimization for retrieval and appending

operations, and often NoSQL systems offer little functionality beyond record storage (for example, key/value stores). The reduced

runtime flexibility compared to full SQL systems is compensated by marked gains in scalability and performance for certain data

models. NoSQL databases are useful when working with a huge quantity of data when the nature of that data does not require a

relational model. The data can be structured, but NoSQL is used when what really matters is the ability to store and retrieve huge

quantities of data, rather than using relationships between the elements. Usage examples might be to store millions of key/value

pairs in one or a few associative arrays.

Currently, Microsoft’s main NoSQL data sources are Windows Azure tables and Windows Azure blobs. There are also other

recommended third-party NoSql data sources like MongoDb, Casandra, RavenDb, and CouchDB. The selection of a NoSql

database/technology fully depends on the type of application and data access you need, because they are usually very different

regarding pros, cons, usage, and API (for instance, all the previously mentioned NoSQL database systems are very different between

them). That is one of the biggest differences when comparing NoSQL to relational databases, which are pretty similar regarding

usage (relational tables and joins) and APIs (based on SQL).

NoSQL APIs: Because most NoSQL implementations are quite different from one another, they usually each have a concrete and

independent API implementation. Conveniently, however, many of them have a .NET API and even remote access API (for example,

based on REST services), like Windows Azure tables and blobs.

Big data: Big data is a collection of data sets so large and complex that it becomes difficult to process using traditional data

processing systems. The trend to larger data sets is due to the additional information derivable from analysis of a single large set

of related data, compared to separate smaller sets with the same total amount of data, allowing correlations to be found to "spot

business trends,” determine quality of research, and so on.

Big data sizes are currently ranging from a few dozen terabytes to many petabytes of data in a single data set. With this difficulty,

a new platform of big data technologies is required to handle large quantities of data. Currently, the best example is probably the

Apache Hadoop big data platform.

Hadoop is an open source library designed to batch-process massive datasets in parallel. It’s based on the Hadoop distributed file

system (HDFS), and consists of utilities and libraries for working with data stored in clusters. These batch processes run using

different technologies, including Map/Reduce jobs.

Microsoft’s end-to-end roadmap for big data embraces Apache Hadoop by distributing enterprise class, Hadoop-based solutions

on both Windows Server and Windows Azure. This Microsoft Hadoop enterprise distribution is named as HDInsight. To learn

more about the Microsoft roadmap for big data, see the Microsoft Big Data page (

Similer Documents