Sei sulla pagina 1di 70

.

Tecnologia NET Guia para Negcios Aplicaes


Profis sional

Cesar de la Torre David Carmona

PUBLICADO POR Microsoft Press Uma diviso da Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399

Copyright 2013 Microsoft Corporation Todos os direitos reservados. Nenhuma parte do contedo deste livro pode ser reproduzida ou transmitida de qualquer forma ou por qualquer meio sem a escrita permisso do editor. Este documento fornecido apenas para e Microsoft no oferece garantias, expressas ou implcitas, neste documento para fins informativos. As informaes contidas neste documento, incluindo URLs e outras referncias a sites da Internet, esto sujeitas a alteraes sem aviso prvio. Todo o risco do uso ou os resultados do uso deste documento permanece com o usurio. Salvo disposio em contrrio, as empresas, organizaes, produtos, nomes de domnio, endereos de email, logotipos, pessoas, lugares e eventos descritos em exemplos so fictcios. Nenhuma associao com qualquer empresa, organizao, produto, nome de domnio, endereo de e-mail, logotipo, pessoa, lugar ou evento intencional ou deve ser inferida. Microsoft e as marcas listadas no http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx so marcas comerciais da o grupo de empresas Microsoft. Todas as outras marcas so de propriedade de seus respectivos proprietrios. Este livro expressa pontos de vista e opinies do autor. As informaes contidas neste livro fornecido sem qualquer expressa, legal, ou implcita garantias. Nem os autores, Microsoft Corporation, nem seus revendedores ou distribuidores sero responsabilizados por qualquer dano causado ou alegadamente causados direta ou indiretamente por este livro. Capa: Toque criativo Seattle e Joel Panchot

Guia de tecnologia. NET para aplicaes de negcios

//1

Contedo

1. Chave takeaways.................................................................................................................................................................................... 4 2. Finalidade deste guia ........................................................................................................................................................................ 4

QUEM DEVE USAR ESTE GUIDE................................................................................................................................................................................ 4 COMO USAR ESTE GUIA ......................................................................................................................................................................................... 5
3. Viso global ............................................................................................................................................................................................. 5

O. NET Framework. EO FUTURO DO DESENVOLVIMENTO ............................................................................................................................. 6


4. Emergentes padres de aplicativos ........................................................................................................................................................ 9

DEVICES................................................................................................................................................................................................................... 10 As aplicaes nativas para dispositivos Windows ............................................................................................................................................ 11 Aplicaes Web para qualquer device............................................................................................................................................................. 12 SERVIOS ................................................................................................................................................................................................................. 14 NUVEM E HYBRID-CLOUD ................................................................................................................................................................................ 16 CENRIOS END-TO-END nos pases emergentes padres de aplicativos .................................................................................................................... 19 Cenrio: Conectado nativo do Windows loja de aplicativos ............................................................................................................ 19 Cenrio: Aplicaes Web modernos para qualquer dispositivo mvel (comprimidos e telefone) .................................... ........................... 5. Padres de aplicativos estabelecidos ................................................................................................................................................... 23 21 Aplicaes de negcio SEGMENTAO POR PRIORIDADES .................................................................................................................................. 23 APLICAES empresa de pequeno porte e mdias ....................................................................................................................................... 25 Negcio na web Data-centric applications............................................................................................................................................... 27 Cenrio: End-to-End Small / Medium Business Applications Web ..................................... .................................................. ...... 28 Abordagem mista para aplicaes de pequenas / mdias empresas web ......................................... .................................................. ....... 29 Aplicaes de negcios dados desktop-centric ....................................................................................................................................... 30 Cenrio: Small / Medium 2-Tier Desktop Application ..................................................................................................................... 31 Cenrio: Small / Medium 3-Tier Aplicativos Desktop ................................................................................................................... 32 Modernizar a aplicativos de negcios de desktop ....................................................................................................................................... 33 Modernizar aplicaes baseadas em RIA containers......................................................................................................................... 34 CLOUD APP MODELO PARA Office e SharePoint .......................................................................................................................................... 35 Apps para o Office............................................................................................................................................................................................... 35 Cenrio: Conectado Apps para o Office ..................................................................................................................................................... 39 Apps para o SharePoint .................................................................................................................................................................................... 40 Cenrio: Conectado Apps para o SharePoint ........................................................................................................................................... 43 GRANDES, aplicaes de negcio MISSO CRTICA .......................................................................................................................................... 44 . NET em aplicaes de misso crtica e core-business grandes ..................................... .................................................. ............ 44 Seleo de Tecnologia para grandes aplicaes de misso crtica e core-business ...................................... ............................. 45 Cenrio: grandes, aplicaes core-business ...................................................................................................................................... 46 Abordagens e tendncias para aplicaes de core-comerciais de longo prazo ....................................... .................................................. .... 50 Arquitetura de baixo acoplamento e do princpio da dependncia inverso ......................................... ........................................... 50 Estilos de arquitectura para aplicaes de core-business .......................................................................................................................... 53 Modernizar aplicaes corporativas de misso crtica ..................................................................................................................... 55 Cenrios para aplicaes personalizadas grandes de misso crtica .............................................................................................................. 55 Cenrio: Subsistema de Domain-Driven (Contexto Delimitada) ............................................................................................................. 55 Cenrio: CQRS Subsystem (Contexto Delimitada) ................................................................................................................................. 60 Cenrio: Comunicao Diferente Limitada Contexts................................................................................................................. 62

Guia de tecnologia. NET para aplicaes de negcios

//2

Cenrio: Aplicaes Modernizao Legado de Misso Crtica empresa ......................................... ......................................... 63


6. Concluses ...................................................................................................................................................................................... 65 Apndice A: caminhos de migrao do Silverlight .......................................................................................................................................... 66 Apndice B: tecnologias de acesso a dados de posicionamento ........................................................................................................................ 68

Guia de tecnologia. NET para aplicaes de negcios

//3

1. Delivery chave
Selecione suas abordagens de arquitetura e tecnologia de desenvolvimento com base nas prioridades de sua aplicao especfica e requisitos.
A arquitetura nica e uma abordagem no vai funcionar para todos os tipos de aplicao. A pilha de desenvolvimento Microsoft e. NET so extremamente flexvel e oferecem muitas possibilidades, mas essencial que voc escolha abordagens e tecnologias especficas com base em o tipo de aplicao ou mesmo subsistema-lo a construir. Cada aplicao ter muito diferentes prioridades e compromissos que devem ser levado em caminhos diferentes.

Modernizao de aplicaes de negcios vai alm da simples criao de aplicativos mveis. As aplicaes mveis devem confiar e estender seus aplicativos de negcios fundamentais.
Para ser bem sucedido, aplicativos mveis deve ser construdo com integrao profunda em seus aplicativos de negcios fundamentais atuais. Mvel aplicativos de negcios deve ser parte do maior ecossistema empresarial e substancialmente estender aplicaes de negcio fundamentais, aplicaes legadas se os sistemas fundamentais so estabelecidas ou novas aplicaes de misso crtica, grandes, construdos com servios inovadores, escalveis e elsticos.

Posicionando o aplicativo ou subsistema dentro de uma segmentao de padres globais vai ajudar voc a escolher o abordagens e tecnologias certas.
fundamental para posicionar sua aplicao / subsistema na rea de segmentao direita. As abordagens e tecnologias certas para cada um dos seguintes tipos de aplicaes pode ser potencialmente muito diferente: Emergentes padres de aplicativos - Dispositivos e servios Padres de aplicativos estabelecidos - aplicativos de negcios de pequenas e mdias - Grandes, aplicativos de negcios de misso crtica

2. Finalidade deste guia


Este guia ir ajud-lo efetivamente selecionar as tecnologias adequadas de desenvolvimento da Microsoft e abordagens para o seu. NET personalizado desenvolvimento de aplicaes, de acordo com as prioridades que voc tem para o seu pedido e para o seu domnio do negcio. Esta orientao no cobre prticas de Gesto do Ciclo de Vida de Aplicaes (ALM). Para obter orientao adicional sobre este assunto, voc pode visite o site do Visual Studio ALM em www.microsoft.com / VisualStudio / alm.

Quem deve usar este guia


Este guia ser til para os decisores, arquitetos de software, lderes de desenvolvimento e os desenvolvedores que esto envolvidos na escolha as tecnologias a utilizar para seus aplicativos e projetos baseados em plataformas de desenvolvimento da Microsoft. Especificamente, ele abrange o desenvolvimento de aplicaes corporativas personalizadas, embora ISVs tambm pode encontrar as informaes e recomenes teis. Este artigo no cobre solues de desenvolvimento baseadas em produtos Microsoft para o mercado de negcios, tais como solues verticais baseados em Dynamics CRM ou ERP Dynamics.

Guia de tecnologia. NET para aplicaes de negcios

//4

Como usar este guia


Este guia abrange um amplo espectro de opes de desenvolvimento de software com foco em aplicaes de negcios. escrito como uma referncia documento para que voc pode ir diretamente para uma rea que voc est interessado, como a Seo 4, "emergentes padres de aplicativo", ou "Grande, aplicativos de negcios de misso crtica "dentro Seo 5," Estabelecido padres de aplicativos. " Ns recomendamos que voc leia Seo 3, "Viso geral" para o contexto antes de mergulhar mais fundo nas sees individuais.

3. Viso global
Hoje, o uso da tecnologia est no meio de uma mudana em direo a experincias multi-dispositivo alimentado por servios na nuvem. Padres de uso cada vez mais dependentes de recursos de hardware locais, tais como toque, sensores e mobilidade, combinados com o poder da web esto servios de conectividade e back-end, tais como armazenamento de dados, streaming de mdia e conectividade social. O nexo dispositivos de servios abrange ambos os cenrios de negcios e de consumo. No espao do consumidor, a computao mvel inicialmente criado uma onda de dispositivos focados em consumo, que continua a crescer medida que recursos e tecnologias de hardware antecedncia. Dentro a empresa, os fenmenos gmeos da consumerizao de TI e trazer-seu-prprio-dispositivo (BYOD) criaram uma dinmica que experincias de consumo esto impulsionando o futuro da computao empresarial e de linha de negcios (LOB). A prxima gerao de aplicaes dependentes de servios do dispositivo e no est a emergir de forma isolada. Estas aplicaes tm de trabalhar de forma extremamente bem integrado com aplicaes existentes, libertar o seu valor a novos pblicos e novos modos de interao. Como mostrado na Figura 3-1, isso cria dois padres diferentes que cada desenvolvedor do aplicativo deve agora enfrentar: Padres de aplicativos Estabelecida: Estas so aplicaes desenvolvidas usando padres de tecnologia, tais como cliente / servidor ou aplicaes web otimizado para navegadores desktop. Eles agem como aplicaes fundamentais e so fortemente centrada na existente processos de negcio. Emergentes padres de aplicativos: Padres como o multi-dispositivos ea nuvem esto emergindo como facilitadores de tecnologia para novas aplicaes. Eles complementam os padres estabelecidos, estendendo os aplicativos a serem centradas no o usurio final.
Padres de aplicativos Evoluo

Figura 3-1

Guia de tecnologia. NET para aplicaes de negcios

//5

Esta extenso de padres estabelecidos para atender o usurio final uma oportunidade chave para os desenvolvedores para conduzir inovao e concorrentes vs diferenciao. Varejo, comunicaes, finanas, logstica, servios de cada cliente empresa um software empresa no mundo empresarial de hoje. Capacidade de cada empresa para satisfazer as necessidades dos clientes e competir de forma eficaz apenas to bomde quanto sua capacidade fornecer inovao de software. No entanto, a extenso de aplicativos existentes para abraar estas novas necessidades um processo de transformao desafiador. Atual tecnologias de desenvolvimento esto profundamente enraizados no padro estabelecido e so difceis de integrar com os padres emergentes necessrio para software moderno. As ferramentas existentes no fornecem um caminho bvio do mundo cliente / servidor existente para o emergente mundo dispositivo / cloud. A plataforma Microsoft permite que os desenvolvedores para enfrentar esses desafios. Baseia-se aplicaes existentes, estend-los para padres de aplicativos emergentes. Ela abraa mltiplas tecnologias de desenvolvimento, para que os desenvolvedores podem escolher a opo que melhor se adapta s suas habilidades ou as tecnologias utilizadas por seus aplicativos existentes. Para o desenvolvimento de servios, Microsoft Windows Azure suporta de tecnologias que qualquer desenvolvedor pode usar, como Java, Node.js, PHP, Python, Ruby, e suporte de primeira classe para. NET. uma infinidade Desenvolvimento do cliente para a plataforma Microsoft tambm suporta uma ampla gama de tecnologias de forma nativa, como. NET, HTML5/JavaScript, e C + +. Este documento concentra-se em. NET desenvolvimento e, especificamente, em aplicaes de negcios. Abrange como usar. NET desenvolver para os padres estabelecidos que moldam as aplicaes existentes e tambm como abraar os padres emergentes que esto permitindo a aplicativos de negcios modernos do futuro, ver Figura 3-2.
Aplicaes de Negcio modernos

Figura 3-2

O NET Framework. Eo futuro do desenvolvimento


A Microsoft. NET Framework foi construdo para permitir que os desenvolvedores criem aplicativos interessantes sobre a plataforma Microsoft e, por todas as contas, foi um enorme sucesso no mercado. Hoje, milhes de desenvolvedores em todo empresas de todos os portes e segmentos confiar. NET para criar aplicaes. Ele fornece os servios bsicos necessrios para construir aplicaes de consumo; pequena empresa aplicaes, e aplicaes de misso crtica de grandes, todos com qualidade sem precedentes, desempenho e produtividade. . NET tambm foi construda com estes padres, agora emergentes em mente. No Forum 2000, Bill Gates, disse que a meta para. NET era "para mover alm do mundo de hoje de sites independentes para uma Internet de componentes intercambiveis, onde dispositivos e servios podem ser montadas em experincias orientadas para o utilizador coesas. "A viso original. NET est muito bem alinhado com a desenvolvedora de hoje

Guia de tecnologia. NET para aplicaes de negcios

//6

paisagem, incluindo cross-dispositivo, experincias movido a servios que esto mudando a forma como a indstria pensa em software desenvolvimento. Ativando experincias multi-dispositivos habilitados por servios era um atributo fundamental para. NET desde o incio. . NET manteve em evoluo desde ento, oferecendo uma experincia de desenvolvimento de primeira classe para as novas necessidades de aplicaes: No lado do servidor, . NET fornece uma plataforma comum para os desenvolvedores para direcionar servios que so executados no local ou no nuvem. Sua estreita integrao com o Windows Server e Windows Azure permite que aplicativos sejam gradualmente estendido para o nuvem, tendo o melhor de cada plataforma e permitindo aplicaes hbridas que ficam entre os dois mundos. A entrega rpida cadncia nas bibliotecas. NET Framework tambm fornece inovao contnua que aborda as novas necessidades de cloud-based aplicaes em reas como servios leves, comunicaes em tempo real, aplicaes web mveis e autenticao. No lado do cliente, . NET oferece uma experincia de desenvolvimento consistente de primeira classe em todos os dispositivos da Microsoft: rea de trabalhoaplicativos do Windows Phone e do Windows loja de aplicativos (como mostrado na Figura 3-3). Ele permite. NET para manter experincias, desenvolvimento de aplicaes fundamentais na rea de trabalho e adicionar novas experincias emocionantes, tudo ao mesmo tempo usando suas habilidades existentes e reutilizao de cdigo entre os dispositivos. Em cenrios onde o alcance vai alm de dispositivos da Microsoft, baseado em navegador HTML5 solues so a norma. . NET, em conjunto com o Visual Studio, fornece uma soluo moderna para a criao baseada em padres aplicaes web que rodam em vrios dispositivos. Para desenvolvedores que querem criar mais adaptadas, experincias nativas em qualquer dispositivo, parceiros da indstria Visual Studio fornecer solues que permitem a reutilizao de C # habilidades e cdigo com dispositivos no-Windows.
. NET em que o servidor est dissociado do lado do cliente

Figura 3-3

Este documento aborda todas essas opes. NET desenvolvimento para que voc possa tomar a deciso certa para suas habilidades atuais e requisitos de aplicao que voc mover suas aplicaes para a frente. Ele est estruturado para abordar os dois padres de aplicativos: "emergentes padres de aplicativo" se concentra em como construir aplicativos usando os padres emergentes que esto moldando o novas aplicaes em dispositivos e servios. "Padres de aplicativos estabelecida" abrange as tecnologias disponveis para a criao de aplicativos de negcios fundamentais, como bem como recomendaes sobre como moderniz-las. Figura 3-4 mostra um diagrama global de tecnologias de plataforma de desenvolvimento da Microsoft. As prximas sees recomendar quando a utilizar tecnologias que, dependendo dos padres e as prioridades de utilizao.

Guia de tecnologia. NET para aplicaes de negcios

//7

Microsoft Development Platform Technologies

Figura 3-4

Guia de tecnologia. NET para aplicaes de negcios

//8

4. Emergentes padres de aplicativos


Como mencionado antes, padres de aplicativos emergentes esto moldando as aplicaes do futuro. Clientes e funcionrios agora aplicaes de demanda que proporcionam uma experincia mais pessoal. Eles querem ficar continuamente conectado aos servios de que necessitam. Esta seo est estruturada pelos dois esforos principais que precisam ser abordadas ao desenvolver essa nova gerao de aplicaes: Criando experincias atravs de dispositivos heterogneos. Criando, servios leves padro que se estendem atravs da nuvem. Os padres de aplicativos emergentes so, em muitos aspectos, comparveis aos de "sistemas de engajamento" (termo originalmente cunhado por Geoffrey Moore e tambm freqentemente usado por Forrester, como mostrado na Figura 4-1), mas, adicionalmente, que deve ser suportado pela nuvem e deve confiar e estender real "sistemas de registro" (ie, negcios fundacional aplicaes). "Sistemas de engajamento" no significa apenas "aplicaes que visam apenas os consumidores." Na verdade, h muitos novos cenrios na empresa (Tais como aplicativos internos com necessidades de mobilidade como dashboards), juntamente com cenrios de segmentao clientes finais (tais como servios bancrios on-line e e-commerce), onde este conceito perfeitamente vlido. Portanto, Da Microsoft viso de emergente
Figura 4-1

padres de aplicativo inclui a necessidade de servios contnuos e elsticas, alm de necessidades mveis e direct-to-consumer ligao, como mostrado na Figura 4-2. Na maioria das aplicaes empresariais modernas, o aplicativo cliente vai precisar de um servio remoto, a fim de trabalhar com os dados e fornecer um orquestrao centralizado. Este o lugar onde voc precisa de orientao a servios
Emergentes Padres de aplicativos

baseado em padres da Internet para servios remotos. Finalmente, estes servios sero implantados na infraestrutura de nuvem pblica e servios, que so os pilares para os padres emergentes em relao ao ambientes de implantao. medida que perfurar mais para os padres de aplicativos emergentes, voc vai precisar para ter em conta todos os possveis dispositivos mveis e sociais redes como um meio para estender seus aplicativos de negcios para um novo casos de uso e para a construo, os servios contnuos slidos que podem flexivelmente dimensionado para atender qualquer demanda, ver Figura 4-3.

Figura 4-2

Guia de tecnologia. NET para aplicaes de negcios

//9

Dispositivos, sociais, servios, dados e nuvem

Figura 4-3

Dispositivos
A capacidade de oferecer novas experincias personalizadas para dispositivos o atributo chave para os padres de aplicativos emergentes. Escolhendo o criar esses aplicativos pode ser difcil e envolve muitos fatores, incluindo: tecnologia para Suas habilidades anteriores e preferncia de tecnologia. A capacidade de criar experincias personalizadas que se integram com os recursos de hardware local. A diversidade de dispositivos de sua aplicao ter como alvo. A tecnologia usada por seus aplicativos existentes que precisam ser migrados ou estendido para dispositivos. As duas alternativas comumente estabelecidos na indstria so com base em diferentes abordagens: As aplicaes nativas, que possa tirar o mximo de cada dispositivo, mas exigem habilidades nicas e cdigo para cada plataforma. Aplicaes Web, que pode ser criado com um comum conjunto de competncias e de cdigo, mas que no pode fornecer uma adaptada experincia para cada dispositivo. A plataforma Microsoft apoia plenamente ambas as abordagens (ver Figura 4-4), mas reduz as desvantagens de cada um de forma significativa. Primeiro, Dispositivos Windows no impem um desenvolvimento nico nativo modelo. Voc pode usar a tecnologia que faz mais sentido para suas habilidades e suas aplicaes existentes. Ao trazer de primeira classe integrao dispositivo. NET, HTML / JavaScript e C + +, voc pode tomar a deciso que melhor se adapta s suas necessidades sem comprometer a experincia. Em segundo lugar,. NET e Visual Studio simplificar criao de aplicaes web que podem ser executados em qualquer dispositivo. ASP.NET abraa plenamente os padres modernos e, em conjunto com as ltimas inovaes nicas no Visual Studio, permite que uma nova gerao de aplicaes web que tira o mximo partido da moderna navegadores atravs de dispositivos.
Figura 4-4 Cenrios para Dispositivos e Tecnologias Microsoft

Guia de tecnologia. NET para aplicaes de negcios

/ / 10

As aplicaes nativas para dispositivos Windows


Um aplicativo nativo um aplicativo que executado no cliente dispositivo e tira o mximo proveito dos recursos especficos desse dispositivo a fim de proporcionar a experincia mais atraente para clientes. Como explicado anteriormente, a plataforma Windows se estende este conceito para alm de tecnologias C + +, que expande enormemente o potencial de reutilizao de seu cdigo e habilidades para atingir nova forma fatores. Quadro 4-1 e Quadro 4-2 explicar as diferenas entre estes tecnologias e quando eles so apropriados para usar, dependendo em suas prioridades de aplicao e contexto concreto.

Native Windows Store e Windows Phone Apps

Figura 4-5

Tecnologias de desenvolvimento de interface do usurio para nativo Aplicaes da Windows Store (Windows Runtime [WinRT])
Technologies NET / XAML Quando usar e por qu

Apropriada, se voc j est familiarizado. NET e XAML ou ao estender NET / XAML existente
aplicaes.

Ele tambm permite que voc compartilhe. NET Framework e bibliotecas entre o Windows loja de aplicativos, o Windows
Aplicativos do telefone, aplicativos de desktop do Windows e outras plataformas da Microsoft, utilizando bibliotecas de classes portteis. Aproveite open source. Bibliotecas NET como sqlite-net para bancos de dados SQL locais luz, ou SignalR. NET cliente para comunicao bidirecional entre o cliente eo servidor. JavaScript / HTML5

Apropriada, se voc j est familiarizado com as tecnologias HTML e JavaScript ou voc est criando um
Windows Store adaptados experincia para sua aplicao web existente.

Ele permite que voc reutilize costume JavaScript ou ativos HTML / CSS de aplicaes web baseadas em navegador existentes
e usar a nova biblioteca WinJS para obter acesso aos recursos nativos do Windows Store apps / API.

Aproveite bibliotecas JavaScript de cdigo aberto, como SQLite3-WinRT para banco de dados SQL local luz
motores, ou cliente SignalR JavaScript para comunicao bidirecional entre o cliente eo servidor. C++

Apropriada, se voc j est familiarizado com C + +. Ele permite que voc otimizar e alcanar o melhor desempenho para
grficos intensivos aplicativos ou jogos.

Esta opo tambm permite que voc compartilhe o cdigo C + + entre o Windows, o Windows Phone, e outras plataformas,
como bem como Direct3D alvo para acesso grficos de baixo nvel. Aproveite open source cdigo C / C + +, como SQLite.

Tabela 4-1

Referncias
Maximizar a reutilizao de cdigo entre Windows Phone 8 e Windows 8 Prism for Windows Runtime de Microsoft Patterns & Practices ASP.NET SignalR: incrivelmente simples web em tempo real para. NET SQLite: System.Data.SQLite Visual C + + e WinRT: Some fundamentos http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681693 http://prismwindowsruntime.codeplex.com/

http://signalr.net/ http://system.data sqlite.org / index.html / doc / trunk / www / downloads.wiki http://www.codeproject.com/Articles/262151/Visual-Cplusplus-and-WinRT-Metro-Somefundamentos

Guia de tecnologia. NET para aplicaes de negcios

/ / 11

Technologies NET / XAML

Tecnologias de desenvolvimento de interface do usurio para nativo Windows Phone 8 aplicaes


Quando usar e por qu

Apropriada, se voc j est familiarizado. NET e XAML ou voc est estendendo NET / XAML existente
aplicaes.

Ele permite que voc compartilhe. NET Framework e bibliotecas entre Windows Phone, o Windows Store,
Do Windows desktop, e outras plataformas da Microsoft, utilizando bibliotecas de classes portteis.

Aproveite open source. Bibliotecas NET, como sqlite-net-wp8.


C++

Apropriada, se voc j est familiarizado com C + +. Ele permite que voc otimizar e alcanar o melhor desempenho para
grficos intensivos aplicativos ou jogos.

Esta opo tambm permite que voc compartilhe o cdigo C + + entre Windows Phone, o Windows Store, e outros
plataformas, bem como Direct3D alvo para acesso grficos de baixo nvel nessas plataformas.

Aproveite open source cdigo C / C + +, como o SQLite. Tabela 4-2

Referncias
Windows Phone 8 desenvolvedor destaques da plataforma Windows Phone 8 e Windows 8 desenvolvimento de aplicativos Maximizar a reutilizao de cdigo entre Windows Phone 8 e Windows 8 http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/05/windowstelefone-8-desenvolvedor-platform-highlights.aspx http://msdn.microsoft.com/enus/library/windowsphone/develop/jj714089 (v = vs.105). aspx http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681693

Desenvolvimento de aplicativos Direct3D para http://msdn.microsoft.com/enWindows Phone 8 US/library/windowsphone/develop/jj207052 (v = vs.105). Aspx

Aplicaes Web para qualquer dispositivo A Microsoft fornece ferramentas e tecnologias de best-of-breed para a criao de aplicativos baseados em navegador HTML5 que rodam em qualquer
dispositivo. Como o Windows tambm suporta HTML5 como uma tecnologia nativa, voc pode direcionar vrios dispositivos com aplicaes web HTML5, ento reutilizar e otimizar o cdigo para um aplicativo nativo do Windows Store. O interruptor automtico para diferentes renderizao de HTML ou o dimensionamento pode ser alcanado atravs de diferentes mecanismos fornecidose pelo ASP.NET,bem como bibliotecas como Modernizr, que ir detectar o navegador e adaptar o seu HTML / JavaScript JavaScript LightSwitch, codificar, como mostrado na Figura 4-6.

Guia de tecnologia. NET para aplicaes de negcios

/ / 12

Web Apps modernos

Figura 4-6

Esta abordagem particularmente vantajoso quando o direcionamento diferentes sistemas operacionais (como Windows, iOS, Android e). Depois alcanar compatibilidade com os navegadores mais comuns, a sua candidatura ser multi-plataforma compatvel com a maior sistemas operacionais mveis. Tabela 4-3 enumera a amplitude de tecnologias web-desenvolvimento disponveis e recomenda quando usar cada tecnologia, dependendo de suas prioridades e contexto de aplicao.

Tecnologias de desenvolvimento de interface do usurio para teia aplicaes


Technologies ASP.NET MVC com HTML5 apoio Quando usar e por qu ASP.NET MVC com suporte HTML5 Use para aplicaes flexveis e modernos mveis da web, compatibilidade cross-browser, clientes da web mvel que podem ser executados em qualquer dispositivo moderno, e para tirar proveito dos recursos mveis ASP.NET MVC (como o uso de diferentes pginas e renderizao com base na deteco do agente de usurio do navegador atual). Oferece um controle HTML completo de renderizao, melhor suporte de testes de unidade e capacidade de fingir. HTML5: Use as bibliotecas como Modernizr para a deteco de HTML5 possui suporte e solues alternativas. Use CSS3 para menos script e cdigo mais sustentvel. Use JavaScript e jQuery para a programao do lado do cliente. MVC permite otimizaes do Search Engine (SEO) personalizaes. URLs RESTful so uma parte integrante da MVC. Aplicao Pgina nica (SPA) baseado em ASP.NET MVC, HTML5/JavaScript, Knockout, e Brisa SPA no uma estrutura, mas um padro de projeto que pode ser implementado utilizando ASP.NET MVC e pesado uso de bibliotecas JavaScript como Nocaute (Para apoiar o padro MVVM dentro de JavaScript) e como o Brisa Biblioteca JavaScript para gesto avanada de dados e frameworks JavaScript como Durandal. Use-o para aplicaes web altamente interativas e atualizaes de interface do usurio suaves (recarregar a pgina e servidor mnimo viagens visveis redondas) e quando incluindo interaes significativas do lado do cliente usando HTML5, CSS3, e JavaScript. Aproveite o cdigo-fonte aberto SignalR JavaScript biblioteca cliente para comunicao bi-direcional entre o cliente eo servidor. Consumir servios API Web ASP.NET a partir de JavaScript. Cliente LightSwitch HTML5 Utilize se o seu aplicativo web ou mdulo principalmente (CRUD [Criar, Ler, Atualizar e Excluir]) baseado em dados. O cliente LightSwitch HTML5 a maneira mais fcil de criar-centric de dados, cross-browser, e web mvel aplicaes que podem rodar em qualquer dispositivo moderno, tirar proveito de renderizao de HTML automtico, e adaptar-se a diferentes fatores de forma.

ASP.NET SPA

Cliente para HTML5 LightSwitch projetos

Guia de tecnologia. NET para aplicaes de negcios

/ / 13

Aproveite CSS3, JavaScript e OSS JavaScript bibliotecas como jQuery Mobile e temas. Acoplado ao motor end-to-end LightSwitch runtime que construdo em cima do ASP.NET.
ASP.NET Pginas da Web Pginas da Web ASP.NET Pginas da Web ASP.NET ea sintaxe Navalha fornecer uma maneira rpida, acessvel, e leve para combinar cdigo do servidor com HTML para criar contedo web dinmico.

Tabela 4-3

Referncias
Recursos mveis ASP.NET MVC ASP.NET SPA (Pgina nica Aplicao) Modelo Breeze / Knockout Quadro Durandal SPA Biblioteca RequireJS BootStrap Modernizr: a deteco de recurso biblioteca para HTML5/CSS3 LightSwitch Arquitetura Melhore seu LightSwitch Aplicaes com OData Telas de cliente para HTML Apps LightSwitch http://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-4-mobile-features http://www.asp.net/single-page-application http://www.asp.net/single-page-application/overview/templates/breezeknockout-template http://durandaljs.com/ http://requirejs.org/ http://twitter.github.io/bootstrap http://www.modernizr.com http://msdn.microsoft.com/en-us/vstudio/gg491708 http://blogs.msdn.com/b/bethmassi/archive/2012/03/06/enhance-your-lightswitchaplicaes-com-odata aspx http://msdn.microsoft.com/en-us/library/vstudio/jj674623.aspx

Servios
O processo de direcionamento de vrios dispositivos comea no back-end. Os aplicativos precisam expor servios que podem ser consumidos em qualquer dispositivo e escalado para a Internet. Servios de Internet est destinado a ter alta disponibilidade e continuidade com os servios de back-end que permitem aplicaes modernas para trabalhar. Eles tambm devem ser geis e ter uma evoluo contnua, suave, aderindo velocidade das mudanas do negcio. Dentro desse contexto, o "NET ecossistema." e os quadros so essenciais na construo de servios. Como mostrado na Figura 4-7, o NET Framework. suporta uma ampla gama de abordagens para a construo aplicaes: ASP.NET abordagens para teia desenvolvimento (aplicao de pgina nica [SPA] Model-View-Controller [MVC], e WebForms); API Web ASP.NET para a construo de HTTP / REST servios, e usando o Entity Framework para acesso dados em bancos de dados relacionais. A maioria do lado do servidor desenvolvimento geralmente baseado em um. NET tecnologia. Tabela 4-4 descreve as tecnologias que podem ser usados construir servios:
Figura 4-7 . NET fundamental para Servios de Construo

Guia de tecnologia. NET para aplicaes de negcios

/ / 14

Tecnologias de servios de back-end (Para ser consumido por aplicaes nativas ou web)
Technologies ASP.NET API Web Quando usar e por qu HTTP baseado, a abordagem REST, orientado recurso, o foco em OData e JSON a tecnologia preferida para o desenvolvimento de servios flexvel com RESTO abordagens OData, ou JSON requisitos. Tente usar API Web como sua primeira escolha quando se avalia qual tecnologia usar. Use qualquer um dos as outras tecnologias se API Web no atender s suas necessidades. Feito especialmente para os servios REST. Abraa verbos HTTP (PUT, GET, POST, DELETE ...) como a aplicao motoristas. Recursos orientada. Alta escalabilidade graas a caches Internet (Akamai, o Windows Azure CDN, Level3, e assim por diante) com base em HTTP verbos. Dissociar e abordagem flexvel Use-o quando voc precisa de interoperabilidade SOAP ou voc quiser usar um transporte no-HTTP. WCF pode usar qualquer protocolo (como HTTP, TCP, ou pipes nomeados), formatos de dados (tais como SOAP, binrio, JSON, ou outros), e os processos de hospedagem. Essa tecnologia funciona melhor para (/ tarefa orientada para comando) servios RPC-estilo e para a empresa intercomunicaes de aplicativos. REST possvel, mas no preferido aqui. Bom ajuste para usar com o Microsoft Service-Bus (no Windows Azure ou Windows Server) e AppFabric hospedagem e de monitoramento. Servios de dados-driven Use-o quando seus servios so dados / orientada a recursos e principalmente CRUD e data-driven. Suportes OData s. Simples de usar, mas oferece menos flexibilidade e controle do que o uso da Web ASP.NET API. Compartilha o mesmo bibliotecas centrais OData com API Web ASP.NET. Abordagem baseada em fluxo de trabalho para servios de construo Utilize se sua lgica de servio internamente um fluxo de trabalho do Windows Workflow Foundation (WF). Externamente, este realmente um servio WCF. Workflow Services tem todas as vantagens e caractersticas do WCF e WF, mas acoplado a WCF. Biblioteca ASP.NET SignalR Use para a funcionalidade em tempo real no lado do cliente. Essa abordagem permite que o cdigo do lado do servidor para empurrar contedo para os clientes conectados em tempo real e em alta escala, at mesmo para milhes de usurios. HTTP e baseado em WebSockets. Pode ser consumido a partir de JavaScript em clientes de navegador,. NET nativo Clientes Windows e eventos do lado do servidor, e longa votao. OData e abordagem REST, orientado recurso, maneira fcil de construir servios baseados em dados Use-o se o seu aplicativo cliente um aplicativo LightSwitch ou para simples autnomo e servios OData data-driven. Visualmente modelar seus dados e LightSwitch criar automaticamente os servios. baseado em OData. Bibliotecas do cliente consumo Servios so os mesmos. Acoplado ao motor LightSwitch servidor, OData (Aberto repousante Data Protocol), XML, JSON, e HTTP. Menos flexvel que o API Web e WCF, mas no requer nenhuma codificao.

Windows Comunicao Fundao (WCF)

Dados WCF Servios

Fluxo de Trabalho Servios

SignalR

LightSwitch OData Servios

Tabela 4-4

Referncias
API Web ASP.NET WCF Ferramentas do WCF Data Services para Da Windows Store Apps Criando e consumindo LightSwitch OData Servios ASP.NET SignalR http://www.asp.net/web-api http://msdn.microsoft.com/en-us/library/ms731082.aspx http://www.microsoft.com/en-us/download/details.aspx?id=30714 http://blogs.msdn.com/b/bethmassi/archive/2012/03/09/creating-and-consuminglightswitch-odata-Services.aspx http://signalr.net/

Guia de tecnologia. NET para aplicaes de negcios

/ / 15

Cloud e hbrido em nuvem


Aplicativos de negcios modernos normalmente suportam muitos Internet usurios (como os clientes finais e parceiros), de modo que a manuteno de sua servios de back-end dentro de datacenters internos da sua empresa pode no faz sentido. Por esta razo, os servios so susceptveis de ser implantado na nuvem. Os servios tambm beneficiar das capacidades fundamentais do nuvem, como elasticidade e uma produo rpida e eficiente em termos de custo setup. Alm disso, muitos aplicativos de negcios modernos so o resultado de novas idias, novos canais e novas oportunidades. Voc nunca sabe se voc vai atrair um nmero significativo de novos usurios, exigindo, assim, mais recursos do que o que est disponvel em seus datacenters internos. A nuvem gil e escalvel, para que possa desenvolver novos conceitos

Novos canais e dispositivos Precisa a elasticidade da nuvem

Figura 4-8

e rapidamente mov-los para a produo sem investimentos em hardware ou configuraes. Portanto, nuvens plataforma elsticas, como o Windows Azure, so as melhores opes para aplicativos de negcios modernos. Em um ecossistema diversificado, onde aplicaes de negcios vivem em diferentes ambientes (tanto na nuvem e no local), h muitas novas necessidades para atender. Porque voc tambm esto estendendo as aplicaes fundamentais que esto atualmente no local, necessrio um ligao entre os centros de dados privados e da nuvem, e voc precisa de vincular esses mundos de forma segura atravs de um hbrido de nuvem abordagem, como mostrado na Figura 4-9.
Aplicaes modernas e hbrido-Cloud

Figura 4-9

A plataforma de nuvem da Microsoft oferece arquitetura simtrica, tecnologias e produtos para apoiar a nuvem e no local infra-estruturas-e fornece servios comuns para gerenciar aplicativos que abrangem as duas infra-estruturas in hbrido ambientes. Esta plataforma permite que voc migre e construir suas aplicaes com facilidade e de forma gradual.

Guia de tecnologia. NET para aplicaes de negcios

/ / 16

Como mostrado na Figura 4-10, a Microsoft fornece uma plataforma consistente, se o aplicativo tem como alvo a nuvem ou onpremissas infra-estrutura. Para as prticas de desenvolvimento, o melhor usar a mesma plataforma de desenvolvimento (por exemplo, Visual Studio ou. NET) tanto para ambientes de nuvem e no local. Da mesma forma, ter um sistema nico para controlar e gerenciar a infra-estrutura (como System Center) para qualquer no local ou sistema em nuvem fundamental para a governana de TI eficiente.
Uma plataforma consistente

Figura 4-10

Referncias
Microsoft Cloud Pblica Microsoft avana a nuvem OS Solues com nova gesto Nuvem Hbrida http://www.microsoft.com/en-us/server-cloud/public-cloud/default.aspx http://www.microsoft.com/en-us/news/press/2013/jan13/01-15OSMomentPR.aspx http://www.microsoft.com/enterprise/en-nz/solutions/hybridcloud.aspx # fbid = CmzuvecYY9J http://www.microsoft.com/en-us/server-cloud/cloud-os/

Nuvem OS Viso

Tabela 4-5 expe as principais tecnologias do Windows Azure relacionados ao desenvolvimento de aplicativos.

Tecnologias de nuvem Windows Azure


Technologies Execuo Modelos Quando usar e por qu Modelos de execuo para aplicaes web e servios Windows Azure oferece suporte a vrios modelos de execuo que voc pode escolher, dependendo suas necessidades. Servios de Infraestrutura (Infrastructure as a Service / IaaS): Use-o quando voc precisa de um tradicional e flexvel abordagem, onde so responsveis pela infra-estrutura de mquina virtual interna e software manuteno e administrao (sistema operacional, servios, etc.) Ele suporta instalaes tradicionais de software, como completo SQL Server. Sites da Web (Web hosting): Use-o como uma maneira fcil de comear, basta a implantao de aplicativos web em um ambiente gerenciado site do IIS, e nenhum trabalho de administrao de infra-estrutura necessria. Ele fornece uma baixa custo, inicialmente escalvel e plataforma de grande utilidade. Cloud Services ou Plataforma como Servio (PaaS): Segue-se a mesma idia dos sites, mas com uma muito plataforma mais escalvel e flexvel adequado para altas exigncias de qualidade de servio e maior controle. Ele tambm lida com a maior parte do trabalho necessrio para a confiabilidade e administrao como PaaS. Windows Azure Servios Mveis: Ele fornece um back-end nuvem escalvel, acrescentando armazenamento estruturado, o usurio autenticao, notificaes push, e back-end empregos e servios para o seu Windows Store, o Windows Phone, Apple iOS, Android e HTML / JavaScript aplicaes.

Guia de tecnologia. NET para aplicaes de negcios

/ / 17

Dados Gesto

Negcio Analtica

Networking

As fontes de dados na nuvem e ferramentas SQL Azure para o uso do banco de dados rico e relacional e uma alta paridade com o SQL Server oninstalaes, tornando mais fcil para mover bases de dados em instalaes do SQL Server para a nuvem ou para sincronizar o diferentes ambientes. Sua maior vantagem a alta disponibilidade de caixa e grande simplificao do manuteno / administrao, uma vez que delegado infra-estrutura do Windows Azure. SQL Server no Windows Azure Virtual Machines um cenrio especfico dentro da infraestrutura do Windows Azure Servios. Para aplicaes que precisam de funcionalidade completa do SQL Server, Virtual Machines uma soluo ideal. Windows Azure tabelas com base em dados no estruturados simples, com uma abordagem NoSQL, adequados para muito altamente requisitos de fonte de dados escalveis. Windows Azure Blobs, projetado para armazenar dados binrios no estruturados, como vdeo, arquivos ou dados de backup ou outros informaes binrias. Os dados e relatrios Big SQL Reporting para funes semelhantes s do SQL Reporting Services quando voc precisa de uma plataforma para criar relatrios. Hadoop no Windows Azure, que permite Big Data para ser hospedado como PaaS dentro do Windows Azure. Hybrid-nuvem e redes caractersticas Windows Azure Virtual Network para se conectar a sua prpria rede local no local para um conjunto definido do Windows Azure VMs-uma abordagem semelhante para VPNs, mas orientada para os servidores e sub-redes. Se o seu aplicativo do Windows Azure executado em vrios datacenters, voc pode usar Windows Azure Trfego Gerente para inteligentemente encaminhar pedidos de usurios atravs de mltiplas instncias do aplicativo. O Windows Azure Connect permite configurar conexes protegidas por IPsec (1:1 relaes) entre certos computadores ou mquinas virtuais em rede e as funes em execuo no Windows Azure da sua organizao. Mensagens e comunicao assncrona Filas, adequado para a comunicao assncrona entre diferentes aplicativos ou processos, o acesso mesmas filas persistentes. Service Bus suporta mensagens persistente demais, mas adequado para cenrios mais avanados, como eventoaplicaes e integraes acionados, publicar / padres de subscrio, e para aceder facilmente no local datacenters da nuvem atravs da caracterstica-rel em Service Bus (que tambm til para peer-to-peer aplicaes com firewalls no meio). Paridade no local est disponvel no Windows Server Service Bus. Aplicao interna cache de dados e Internet cache HTTP Windows Azure Cache um cache de memria distribuda. Ele pode ser usado como um servio externo ou uma partilha implantao entre suas prprias mquinas virtuais. Windows Azure CDN um "cache Internet" capaz de dados acessados-HTTP caching, como vdeo, arquivos, etc Servios de gesto de identidade Windows Azure Active Directory (AD) integra seus servios de gerenciamento de identidade no local para uma nica sign-on atravs de seus aplicativos na nuvem. um servio baseado em REST moderno que oferece gerenciamento de identidade e capacidades de controle de acesso para seus aplicativos na nuvem. Agora voc tem um servio de identidade atravs de Windows Azure, Microsoft Office 365, Dynamics CRM Online, o Windows Intune, e outros de terceiros nuvem servios. Windows Azure Servio de Controle de Acesso AD fornece uma maneira fcil para autenticar os usurios que precisam acessar suas aplicaes web e servios sem ter de levar lgica de autenticao em seu cdigo complexo. Ele suporta o Windows Identity Foundation (WIF); provedores de identidade web (IPs), incluindo o Windows Live ID, Google, Yahoo e Facebook; Active Directory Services Federation (AD FS) 2.0, e protocolo de dados aberto (OData). Servios de Federao do Active Directory (AD FS) (Windows Server) simplifica o acesso a no local datacenters, sistemas e aplicaes que utilizam um acesso baseado em declaraes (CBA) mecanismo de autorizao para manter a aplicao segurana. AD FS suporta web (SSO) tecnologias que ajudam a tecnologia da informao (TI) single-sign-on organizaes colaborar atravs das fronteiras organizacionais. AD FS no local podem ser integrados / estendida atravs do Windows Azure AD e ACS.

Mensagens

Caching

Identidade

HPC

Mdia

Computao de Alto Desempenho (HPC) Ele permite que voc execute vrias mquinas virtuais simultaneamente, todos trabalhando em paralelo em determinadas tarefas. Windows Azure fornece a HPC Scheduler, a fim de distribuir o trabalho em todos estes casos. Este componente pode trabalhar com aplicaes de HPC criados para usar o padro da indstria Message Passing Interface (MPI). O objectivo torn-lo mais fcil de construir aplicativos HPC em execuo na nuvem. Windows Azure Media Services Ele fornece um conjunto de componentes de nuvem para ingerir mdia, codificao, proteo de contedo, insero de anncios, streaming, etc, que simplificar muito o processo de criao e execuo de aplicaes utilizando vdeo e outras mdias.

Tabela 4-5

Guia de tecnologia. NET para aplicaes de negcios

/ / 18

Referncias
Criando aplicativos hbridos na nuvem no Windows Azure (Microsoft Patterns & Practices guia) Aplicaes que se deslocam para a nuvem (Microsoft Patterns & Practices guia) Identidade e controle de acesso baseado em declaraes (Microsoft Patterns & Practices guia) Desenvolvendo aplicativos multi-tenant para a Nuvem, 3rd Edition (Microsoft Patterns & Practices guia) Movendo seus aplicativos para o Windows Azure (Microsoft Patterns & Practices guia) Enterprise Library 5.0 Integration Pack para o Windows Azure (Microsoft Patterns & Practices guia) Windows Azure nuvem http://msdn.microsoft.com/en-us/library/hh871440.aspx http://msdn.microsoft.com/en-us/library/ff728592.aspx http://msdn.microsoft.com/en-us/library/ff423674.aspx

http://msdn.microsoft.com/en-us/library/ff966499.aspx

http://msdn.microsoft.com/en-us/magazine/jj991979.aspx http://msdn.microsoft.com/en-us/library/hh680918.aspx http://www.windowsazure.com/

End-to-end cenrios nos padres de aplicaes emergentes


Cenrio: Conectado nativo do Windows loja de aplicativos
Utilizando o mapa de tecnologias introduzidas na Seo 3, "Viso geral" Figura 4-11 mostra um cenrio tpico e sua tecnologia padro de conexo para um aplicativo nativo moderno do Windows (incluindo tablet e telefone celular fatores de forma).
Cenrio: Conectado Native Windows Store Apps

Figura 4-11

Este cenrio seria semelhante se o nosso aplicativo cliente UI um aplicativo nativo do Windows Store (por exemplo, um Tablet Windows) ou um nativo Aplicativos Windows Phone. Dependendo de suas habilidades de desenvolvimento e requisitos de aplicao e prioridades, poderamos escolher entre NET / XAML, HTML5/WinJS, ou C + +, embora apenas. NET e C + + cobrir tanto o Windows Store e Windows Phone aplicativo nativo desenvolvimento.

Guia de tecnologia. NET para aplicaes de negcios

/ / 19

Para o desenvolvimento de servios personalizados situado no back-end de aplicaes modernas, a tecnologia recomendada para este cenrio API Web ASP.NET. Isso proporciona um alto grau de flexibilidade, tendo uma luz e realizando estrutura para servios de Internet, geralmente indo abordagens como REST e OData ou JSON. Em seguida, os servios da API Web ASP.NET envolveria lgica de camada intermediria na forma de bibliotecas de classe. Costume NET e modelos de entidade o Entity Framework se acessar bancos de dados relacionais, ou qualquer outro API se acessar fontes de dados NoSQL). (Usando Finalmente, poderamos implantar nossos servios e componentes do servidor em qualquer ambiente de desenvolvimento, embora na aplicao emergente padres, que normalmente seria implant-lo em uma nuvem pblica, como o Windows Azure. Como dito anteriormente, uma caracterstica tpica de aplicaes modernas de cerca de com diferentes aplicativos para diferentes contextuais / cenrios pessoais (Como mostrado na Figura 4-12). Na maioria dos casos, esses cenrios tero diferentes prioridades e requisitos, que iro conduzir a sua deciso tecnologias. Por exemplo, no desenvolvimento de um aplicativo do Windows Store, para um concreto cenrio bastante prximo ao alimentaes Internet e redes sociais APIs ou mesmo quando voc quiser reutilizar habilidades e cdigo JavaScript, HTML5/WinJS desenvolvimento seria a melhor escolha. Em outros casos, se voc quiser reutilizar os seus C # ou XAML habilidades ao ter bom desempenho, voc pode usar a abordagem NET / XAML. E, por vezes, ter o melhor desempenho possvel de grficos um prioridade, caso em que C + + seria a escolha certa. Desenvolvendo para Windows Phone leva recomendaes semelhantes em conta, se voc escolher. NET ou C + +. Outro ponto importante que os servios de back-end pode ser o mesmo para e voltar a ser utilizado por todos os clientes, diferentes cenrios / voc escolher. No mnimo, voc deve compartilhar as mesmas tecnologias de camada e servidor. Em outros casos, voc pode ter dados diferentes modelos, servios e subsistemas otimizados para cada aplicao do cliente.
Vrios aplicativos nativos para Diferentes Contextos

Figura 4-12

Guia de tecnologia. NET para aplicaes de negcios

/ / 20

Cenrio: Modern aplicaes web para qualquer dispositivo mvel (comprimidos e telefone)
Figura 4-13 mostra um cenrio de aplicao web moderna tpica e seu padro de conexo tecnologia ao direcionamento qualquer forma fator e qualquer plataforma de cliente (Windows ou no-Microsoft OS). Para o desenvolvimento de aplicaes web moderna suporte a dispositivos mveis, as tecnologias recomendadas so ASP.NET MVC com Suporte HTML5 para flexvel e desenvolvimento web de controle total e Cliente HTML5 para LightSwitch projetos ao lidar com cenrios mais simples baseadas em dados.
Cenrio: Modern aplicaes web para qualquer dispositivo mvel

Figura 4-13

Arquitetura de exemplo simplificado para aplicaes web modernas visam qualquer navegador e sistema operacional plataforma
Dependendo das necessidades e prioridades da web aplicativo, voc usaria diferentes abordagens. Por altamente dados Aplicativos controlados, utilizando LightSwitch recomendado, enquanto mais complexo chamada cenrios devem utilizar as tecnologias mais fina de gros como ASP.NET MVC e HTML5/JS simples. Voc pode ter vrios mdulos com diferentes prioridades e caractersticas (-driven dados vs teias de interface do usurio mais complexos) dentro Nesses casos, voc provavelmente vai adotar um a mesma aplicao. abordagem mista, conforme ilustrado na Figura 4-14. Para este cenrio, porque voc est usando web padro tecnologias, pode ser alvo de qualquer dispositivo e em qualquer sistema operacional, e no apenas um subconjunto de dispositivos mveis. Se o aplicativo tem como alvo diferentes-fatores de forma (telefone e tablet), voc deve considerar se cada fator de forma seria beneficiar de um layout ou viso diferente.
Figura 4-14 Abordagem tecnologia mista para Web Apps modernos

Guia de tecnologia. NET para aplicaes de negcios

/ / 21

Na Figura 4-15, o servidor de prestao de servios (se so ASP.NET MVC ou LightSwitch) capaz de renderizar cdigo HTML para apoiar alternativas multi-dispositivo. HTML pode ser processado para cada navegador baseado no agente de usurio web. No caso do ASP.NET MVC, diferentes arquivos devem ser criados para cada agente de usurio, porque de baixo nvel crafting. Com LightSwitch, as diferentes representaes so gerados automaticamente, o que simplifica o desenvolvimento de aplicaes multi-canal.
Rendering HTML Adaptao ao Formulrio Fator

Figura 4-15

Guia de tecnologia. NET para aplicaes de negcios

/ / 22

5. Padres de aplicativos estabelecidos


Construir aplicaes empresariais modernas no apenas sobre a criao de novas aplicaes mveis. As novas experincias exigidas pela os usurios tm que ser muito bem integrados com os processos de negcios, de modo que essas experincias podem desbloquear o valor j fornecido pelos principais aplicativos de qualquer empresa. Esta seco vai cobrir as tecnologias comumente utilizados para esses padres estabelecidos, bem como as formas recomendadas para estender esses aplicativos para abraar os conceitos de aplicativos de negcios modernos. Como descrito a seguir, esta seo estruturada principalmente pelas duas principais categorias de aplicaes encontradas em qualquer empresa: aplicaes de pequeno e mdio porte, e , grandes aplicaes de misso crtica.

As aplicaes de negcios de segmentao, as prioridades


Nesta seo, os padres de aplicao estabelecidas so organizadas por prioridades de aplicao. Por exemplo, no uma pequena, departamental aplicao ou voc est trabalhando em um longo prazo, core-business, aplicao de misso crtica? Essas categorias tm muito diferente prioridades. A partir dessas prioridades de negcios mencionados, aplicaes esta seo segmentos de negcios em duas categorias: Aplicaes de pequena / mdia Grandes, aplicaes de misso crtica Como ilustrado na Figura 5-1, as prioridades de aplicao de negcios pode ser usado para determinar qual categoria sua aplicao cai. A partir daqui, voc pode refinar as suas necessidades ou venha a perceber que os subsistemas em sua aplicao cair em categorias separadas. Referindo-se a aplicaes de apenas pelo seu tamanho pode ser complicado. Por exemplo, deve ser considerado um Twitter grande aplicao com base em seu nmero de usurios e arquitetura altamente escalvel? Ou ser que a escassez de sua funcionalidade significa que um pequeno? Assim, ao "tamanho aplicao", estamos nos referindo volume de complexidade, se est relacionado com a complexidade funcional (como uma empresa personalizado Recurso Planejamento soluo) ou arquitetnico, escalabilidade e qualidade de servio (QoS) complexidade (Como o Twitter). Se o aplicativo em questo tem complexidade mnima nestas reas, para os nossos propsitos seria considerado uma aplicao pequena / mdia. Mesmo quando pequenas aplicaes / mdias no so de misso crtica para a empresa inteira, eles ainda so cruciais para uma determinada rea da organizao (por exemplo, um departamento). Caso contrrio, por que construir um tal pedido?
Figura 5-1 Padres de aplicativos estabelecidos Segmentao por Prioridades

Guia de tecnologia. NET para aplicaes de negcios

/ / 23

As prioridades de pequenas / mdias aplicaes (ou subsistemas no-crticas) so geralmente a produtividade de desenvolvimento, obtendo comeou com facilidade, e rpido desenvolvimento para agregar valor ao negcio rapidamente. Por outro lado, as grandes aplicaes de misso crtica e core-business (ou mesmo apenas subsistemas em vez de um aplicativo inteiro) ter consideraes adicionais e metas de longo prazo. Ao evoluir suas aplicaes core-domnio durante um longo perodo de tempo, atritos com as novas tendncias de tecnologia pode surgir. Neste caso, voc quer criar um software que implementa o seu tradicional diferenciais de negcios. Alm disso, neste cenrio, voc pode ter mais usurios simultneos, ento voc pode querer ter um alto grau de qualidade de servio (QoS). A produtividade de desenvolvimento de curto prazo pode no ser to importante, mas a longo prazo gil manuteno uma necessidade. Sustentabilidade a longo prazo e facilidade de manuteno so fundamentais para grande misso crtica e corebusiness aplicaes que so sistemas "crescentes". Como mostrado na Figura 5-2, dependendo destas prioridades, voc deve considerar diferentes desenvolvermento e abordagens de arquitetura, bem como as tecnologias que melhor se alinham com os abordagens. Agilidade Desenvolvimento (Adaptar-se rapidamente a alteraes) crucial para ambas as reas, mas a sua abordagens de arquitetura e at mesmo o escolhido tecnologias so usualmente diferentes para cada categoria. Na maioria das vezes, no entanto, nenhuma aplicao cai 100% em uma categoria ou outra. Como tal, a segmentao por prioridades devem ser feito no apenas sobre as aplicaes como um todo, mas tambm sobre os subsistemas. Muitos aplicativos podem tem alguns subsistemas core-business, mas tambm outros subsistemas de garantia, que podem ser muito mais simples, como o mostrado aqui na Figura 5-3. Cada tipo de subsistema deve ser tratada e concebido de uma forma muito diferente. Asubsistema pode ser definido como uma rea diferenciada de sua aplicao delimitado por um certo limite (Possuir cdigo e seu prprio modelo / dados), to diferente subsistemas podem ser desenvolvidas autonomamente por diferentes equipes de desenvolvimento, com pequeno atrito. Limitada por fronteiras claras, baseadas na consistncia relaes, estes tipos de subsistemas so muito semelhantes ao Delimitada ao contexto no conceito Domain-Driven Design (DDD) jargo. Este conceito ser abordado na seo "Grandes aplicaes de misso crtica e core-business", mais adiante neste documento. Portanto, sempre que este guia discute categorias de aplicativos, tambm se refere ao subsistema categorias. No seu caso, ele vai depender de seu domnio concreto, o contexto, cenrios e requisitos de negcios.
Figura 5-3 Segmentando Applications ou subsistemas? Figura 5-2 Padres de aplicativos Fundada Segmentao

Guia de tecnologia. NET para aplicaes de negcios

/ / 24

Aplicativos de negcios de pequenas e mdias


As aplicaes de negcios em geral, seguem uma abordagem estabelecida quando apoiar ambientes controlados, como os funcionrios e departamentos da empresa. Esta seo concentra-se em aplicaes de negcios de pequeno e mdio portes, com um perodo relativamente curto, evoluindo vida til. Esses aplicativos tambm apoiar principalmente cenrios dados centrados ou baseados em dados, muitas vezes referida como cenrios CRUD. Pequeno e aplicativos de negcios de mdio porte costumam ter as prioridades apresentadas na Figura 5-4.

Figura 5-4

O "Competir velocidade e tempo mais curto para o mercado" e uma evoluo contnua, incremental de experincias a nova norma que as organizaes de TI precisam adotar para tornar seus negcios relevante e competitivo. "Produtividade e custos mais baixos" fundamental para certas reas do negcio quando as aplicaes devem ser desenvolvidas e ser instalado e rodando em curtos perodos de tempo (provavelmente numa questo de alguns meses). Assim, a abordagem mais valorizado utiliza um desenvolvimento plataforma que torna fcil de comear e no necessita de uma curva de aprendizagem inicial de alto custo. Isso significa que voc vai querer fazer um nmero limitado de decises em relao tecnologia, arquitetura e framework. Com relao s ferramentas de desenvolvimento, benfico ter uma ferramentas de desenvolvimento produtivo, simplificados e transparentes que proporcionam alta agilidade ao criar o ambiente ALM produo (Application Lifecycle Management e repositrio de cdigo fonte). Para exemplo, uma nuvem / on-line e infra-estrutura de fcil comear-ALM (como o Visual Studio Team Foundation Service) um ajuste perfeito para desenvolver estes tipos de aplicaes. Construo de aplicaes que se integram com ou so incorporados dentro Microsoft SharePoint e Microsoft Dynamics tambm esto em alta demanda. Estes cenrios so ainda mais atraente quando a aplicao tem requisitos adicionais relacionados com a colaborao, compartilhamento, tpicos de gesto de documentos, ou de negcios comum operaes (CRM e ERP). O benefcios da nuvem de agilidade e reduo de custos se encaixam perfeitamente com aplicativos de negcios de mdio onde as partes interessadas no negcio exigem agilidade ao publicar o aplicativo para produo. Por exemplo, no faz sentido desenvolver uma aplicao em duas meses e, depois, esperar mais um ms antes de o aplicativo est instalado e funcionando no ambiente de produo. por isso que tantos empresas esto ansiosos para mover as aplicaes para ambientes de produo gil, sejam eles de nuvem pblica ou privada ambientes. Figura 5-5 resume o contexto de aplicaes de negcios de pequeno e mdio porte.

Figura 5-5

Guia de tecnologia. NET para aplicaes de negcios

/ / 25

Como afirmado, produtividade de desenvolvimento geralmente a prioridade mais importante para as pequenas aplicaes de negcios de mdio /, e um das reas onde . NET e Visual Studio brilhar. O trecho de um relatrio da Forrester na Figura 5-6 destaca este tpico.

Figura 5-6

Os pontos seguintes incidem sobre os cenrios mostrados na Figura 5-7:

Figura 5-7

Aplicativos de negcios centrados em dados independentes de pequena / mdia -Aplicaes de negcio web dados-centric

HTML5 cliente para projetos LightSwitch HTML5 + ASP.NET (WebForms, MVC, SPA) WPF Windows Forms Cliente LightSwitch Windows Desktop

-Aplicaes de negcios dados desktop-centric


Aplicativos de colaborao e produtividade de negcios -Apps para o SharePoint -Aplicativos do Office

Guia de tecnologia. NET para aplicaes de negcios

/ / 26

Aplicaes de negcio web dados-centric


A maioria das aplicaes centradas em dados abrangem as operaes CRUD, incluindo cenrios de detalhes mestre. Esses aplicativos tambm precisam para implementar a lgica de negcio, mas no extensivamente. Terefore, este tipo de aplicaes web em geral, no so grandes aplicaes com domnios complexos e um grande volume de regras de negcio, em vez disso, eles geralmente so simples, e fortemente impulsionada dados. A maioria prioridades importantes para estas aplicaes so produtividade, custo e valor. Seu objetivo conseguir a ciclos de desenvolvimento curtos em com um custo relativamente baixo, proporcionando valor para o negcio de forma gil. HTML5 a tecnologia de cliente preferencial para a web, web sobre plug-ins como o Silverlight eo Flash. HTML5 pode ser consumida a partir de qualquer dispositivo (PC, tablet, smartphone, e muito mais) e fortemente usa JavaScript (e muitas bibliotecas JavaScript poderosos, como jQuery) e CSS.

Figura 5-8

Tabela 5-1 recomenda quando usar cada tecnologia, dependendo do contexto de sua aplicao web e as suas prioridades.

Tecnologia de camada de Apresentao abordagens para aplicaes web de negcio


Technologies Cliente para HTML5 LightSwitch projetos Quando usar e por qu Cliente web LightSwitch Use-o quando o seu aplicativo web / mdulo principalmente orientado (CRUD) baseado em dados. Esta a maneira mais fcil de criar-centric de dados, cross-browser, clientes da web mvel que podem ser executados em qualquer dispositivo moderno, tirar proveito de renderizao de HTML automtico, e se adaptar a diferentes fatores de forma. Estender com JavaScript, bibliotecas OSS JavaScript como jQuery Mobile, temas e CSS3. ASP.NET Web Forms com suporte HTML5 Para os desenvolvedores que esto familiarizados com Web Forms, esta abordagem fornece uma maneira fcil de iniciar o desenvolvimento mantendo o controle total sobre o cdigo. Use bibliotecas como Modernizr para detectar HTML5 possui suporte e solues alternativas. Use CSS3 para menos script e cdigo mais sustentvel. Use JavaScript e jQuery para a programao do lado do cliente. Pginas da Web ASP.NET Pginas da Web ASP.NET ea sintaxe Navalha fornecer uma maneira rpida, acessvel, e leve para combinar cdigo do servidor com HTML para criar contedo web dinmico. ASP.NET MVC com suporte HTML5 Esta a opo mais flexvel e poderoso, com controle processamento full-HTML, forte teste de unidade capacidade de suporte, e fingindo. Use bibliotecas como Modernizr para detectar HTML5 possui suporte e solues alternativas. Use CSS3 para menos script e cdigo mais sustentvel. Use JavaScript e jQuery para a programao do lado do cliente. Indicado para projetos mais complexos do que os projetos direcionados por LightSwitch ou Web Forms.

ASP.NET Web Forms com Suporte HTML5

ASP.NET Pginas da Web

ASP.NET MVC com HTML5 apoio

Tabela 5-1

Guia de tecnologia. NET para aplicaes de negcios

/ / 27

Referncias
ASP.NET Web Forms LightSwitch HTML http://www.asp.net/web-forms http://msdn.microsoft.com/en-us/vstudio/gg491708

Para aplicaes de negcio da web que so, cenrios baseados em dados simplificados, a principal prioridade a produtividade de desenvolvimento. Microsoft o uso de LightSwitch com seu cliente HTML5 sempre que cobre as suas necessidades. Usando LightSwitch muito recomenda simples ao criar modelos de dados e telas para operaes CRUD, incluindo cenrios de detalhes mestre. Em muitos casos, voc no precisa mesmo de escrever o cdigo, embora voc pode querer personalizar estilos e estender as operaes com cdigo atravs da muitos pontos de extensibilidade que Lightswitch ofertas (JavaScript e pontos de extensibilidade. net). Entretanto, ao usar LightSwitch, a aplicao ser totalmente acoplado ao runtime LightSwitch, que composta por um fim-de-final, o motor transparente construda sobre ASP.NET e Servios OData no servidor, e em jQuery Mobile no cliente quando usando o cliente HTML5. Ela torna automaticamente telas, com base nos controles de dados para ser mostrado. Se o aplicativo no dataimpulsionado e tem uma interface mais complexa para a maioria da sua superfcie, LightSwitch no , provavelmente, o melhor ajuste. A vantagem dessa abordagem que voc vai obter a produtividade de desenvolvimento sem precedentes, quando uma elevada percentagem de LightSwitch recursos mapeados para os requisitos da aplicao. Outra possibilidade para aplicaes web simples centrados em dados com uma boa produtividade de desenvolvimento inicial ASP.NET Web Forms. Eles apoio visual drag-and-drop de controles web e tem controles de grade que so fceis de usar. Web Forms tambm til quando voc tem de ligao que se encaixa bem em um formato tabular dados simples, e que pretende fornecer uma maneira simples para os usurios a atualizar os registros. Alm disso, o Web Forms geralmente bastante fcil se o fundo do desenvolvedor sobre aplicativos de desktop, como o desenvolvimento, utilizando WinForms ou WPF. Para cenrios mais avanados, onde voc est olhando para a Web UI mais flexvel e poderosa (mas no o caminho mais fcil aprendizagem), recomendamos a utilizao de ASP.NET MVC mais HTML5/JavaScript, ou mesmo considerando abordagens avanadas como ASP.NET SPA (Single Aplicao de pgina) para aplicaes fortemente de JavaScript-centric.

Aplicaes End-to-End Small / Medium Business Web: Cenrio


Figura 5-9 mostra um padro tpico de conexo tecnologia para aplicaes de pequeno / mdio baseados na web de negcios. Independente do abordagem de tecnologia de tomar (como LightSwitch ou ASP.NET), HTML5/JavaScript a tecnologia de cliente web que sempre apresentar em desenvolvimento web moderna.

Guia de tecnologia. NET para aplicaes de negcios

/ / 28

Cenrio: End-to-end Small / Medium Web Business Application

Figura 5-9

As tecnologias e os motivos pelos quais voc deve escolher uma ou outra tecnologia para servios de construo so bastante semelhantes ao que foi descrito anteriormente. Para mais detalhes sobre as opes de tecnologia de desenvolvimento de servios (como a API Web ASP.NET, WCF, etc), e para evitar a redundncia, por favor, consulte a seo "Servios" na Seco 4, "emergentes padres de aplicativos."

Abordagem mista para aplicaes de pequenas / mdias empresas da web Dependendo das necessidades e prioridades do seu aplicativo web, algumas abordagens so claras, como o uso de LightSwitch para-driven dados
aplicativos, tecnologias mais fina de gros, como ASP.NET MVC e HTML5/JS simples para aplicaes mais complexas, ou ASP.NET Web Forms se ele atende s sua experincia e habilidades.
Technologies Mixed-Web Abordagem para Aplicaes Web Negcios

Mas, novamente, considere que voc pode ter vrios subsistemas dentro a mesma aplicao. Nestes casos, voc provavelmente vai usar um misto abordagem dentro do mesmo aplicativo, como o mostrado na Figura 5-10. Este um exemplo de uma aplicao com 40 por cento CRUDoperaes baseadas desenvolvido utilizando LightSwitch e 60 por cento tecnologias de granulao mais fina (como ASP.NET MVC) e avanado abordagens (como SPA). SPA permite que voc aproveite HTML5, Javascript, jQuery, JavaScript e outras bibliotecas para construir a mais reas crticas e dinmicos da aplicao. Que 60 por cento poderia tambm ser desenvolvidos usando ASP.NET MVC ou Web Forms, dependendo em suas necessidades e os seus conhecimentos. Usando o LightSwitch pontos de extensibilidade, voc pode consumir servios externos de JavaScript (Tier cliente LightSwitch) ou de cdigo de servidor NET. (LightSwitch Camada Intermediria).

Figura 5-10

Guia de tecnologia. NET para aplicaes de negcios

/ / 29

Aplicaes de negcios dados desktop-centric


Voc pode preferir a construir aplicativos de desktop (veja a Figura 5-11) mais do que as aplicaes web porque sua aplicao envolve entrada de dados pesados, porque voc tem cenrios offline complexas que envolvem o armazenamento local, a interoperabilidade COM, e automao, ou talvez porque os usurios finais preferem aplicaes desktop com base em suas necessidades de trabalho e de habilidades.

Figura 5-11

Dependendo da arquitetura de sua aplicao desktop, voc vai precisar de determinadas tecnologias. Historicamente, o mais comum arquiteturas para aplicaes desktop so os estilos arquitetnicos de 2 camadas e 3 camadas mostrados na Figura 5-12.

vs
Figura 5-12

As tecnologias destacados que podem ser usados no desenvolvimento da camada do cliente em aplicaes desktop pequeno / mdio so o seguinte: . NET WPF . NET Windows Forms LightSwitch para o desktop Tabela 5-2 recomenda quando usar cada tecnologia, dependendo de suas prioridades de aplicao e determinado contexto.

Tecnologia de camada de apresentao se aproxima para as pequenas mdias empresas / rea de trabalho aplicaes
Technologies . NET WPF Quando usar e por qu . NET Windows Presentation Foundation Esta a tecnologia preferida para aplicativos de desktop baseados no Windows que precisam complexidade UI, estilos cenrios de personalizao, e com muitos grficos para o desktop. WPF tambm tira proveito de pontos de vista de XAML. E desenvolvimento de competncias WPF so semelhantes aos da Windows Store desenvolvimento de competncias, de modo a migrao do WPF para O Windows loja de aplicativos mais fcil do que a migrao do Windows Forms. Tire partido das novas capacidades assncronas simplificados em. NET 4.5 (assncrono / esperam). Aproveite SignalR. NET cliente para comunicao bidirecional entre o cliente eo servidor.

Guia de tecnologia. NET para aplicaes de negcios

/ / 30

NET WinForms.

LightSwitch cliente de desktop

NET Windows Forms. Esta foi a primeira tecnologia de interface do usurio disponvel na NET Framework para a construo de aplicaes desktop.. ainda uma boa opo para muitas aplicaes de desktop de negcios. Windows Forms mais fcil de usar e mais leve que o WPF para cenrios simples, onde voc no precisa de estilos de interface do usurio personalizao. Ele fornece recursos de interface do usurio mais simples do que WPF e no baseado em XAML, limitando o seu caminho para a frente Windows Store Apps. Tambm pode tirar proveito dos mais recentes. Capacidades NET como programao assncrona com async / await. Cliente de desktop LightSwitch (de navegador) Se voc j adotaram o LightSwitch meio-tier e solues HTML5, voc pode usar a rea de trabalho experincia que LightSwitch suporta fora da caixa.

Tabela 5-2

Referncias
Aplicaes desktop WPF http://msdn.microsoft.com/en-us/library/aa970268.aspx http://msdn.microsoft.com/en-us/library/ms754130.aspx Windows Forms LightSwitch http://msdn.microsoft.com/en-us/library/dd30h2yb.aspx http://msdn.microsoft.com/en-us/vstudio/ff796201

Cenrio: Small / Medium 2-Tier Desktop Application


Figura 5-13 mostra as possibilidades tpicas com o padro de conexo de tecnologia para um empresa de pequeno porte / desktop mdio aplicao com uma abordagem de duas camadas, onde os WPF / WinForms e componentes personalizados e cdigo de acesso a dados estaria funcionando dentro da mesma camada do cliente (desktop PC).
Cenrio: Small / Medium 2-Tier Desktop Application

Figura 5-13

Guia de tecnologia. NET para aplicaes de negcios

/ / 31

O 2-tier abordagem de arquitetura antiga (cliente / servidor tradicional) no recomendado na maioria dos cenrios, porque de questes como a dependncia direta em drivers de banco cliente no cliente de PC, problemas se houver um firewall entre o PC cliente eo servidor de banco de dados e escalabilidade limitada pelo servidor de banco de dados. No entanto, inclumos este cenrio, uma vez que ainda muito abordagem comum em aplicaes estabelecidas. Neste cenrio, voc poderia usar o WPF como um cliente de desktop e acessar diretamente os dados fonte (geralmente um banco de dados como SQL Server), utilizando tecnologias de acesso a dados, como o Entity Framework ou ADO.NET. Ao aplicar esta abordagem 2-tier, no mnimo, recomenda-se a ter separao de interesses dentro do seu. NET WPF cdigo, como separar a aplicao eo cdigo de regras de negcios a partir do cdigo de acesso a dados em diferentes camadas internas. Se voc no fizer isso, seu aplicativo de desktop ir crescer monoliticamente e ser muito difcil de manter.

Cenrio: Small / Medium 3-Tier Aplicativos Desktop


Figura 5-14 abaixo mostra um exemplo usando um padro de conexo de tecnologia para uma pequena aplicao de negcio / rea de trabalho mdio com uma abordagem de trs camadas.
Cenrio: Small / Medium 3-Tier Aplicativos Desktop

Figura 5-14

Dependendo das necessidades e prioridades da aplicao desktop desejado, voc usaria WPF como cliente de desktop e OData Servios ou LightSwitch OData servios para aplicaes orientadas a dados prprios (cenrios CRUD). Alternativamente, voc pode usar o WCF se o seu servios so RPC / orientada para o comando. As razes pelas quais voc deve escolher uma ou outra tecnologia para os servios so bastante semelhantes. Para mais detalhes sobre o escolhas tecnolgicas servios de desenvolvimento (como ASP.NET Web API, WCF, etc), por favor consulte a seo "Servios" da seco 4, "emergentes padres de aplicativos." Especialmente quando seus servios no so apenas sobre acesso a dados (CRUD), mas tambm tm regras de negcios embutidas dentro dos servios, recomendado para separar o cdigo de regras de negcios a partir do cdigo de acesso a dados e posicionar cada tipo de cdigo em diferentes interno camadas (a seguir a separao das preocupaes princpio), tendo as camadas dentro da camada de servios. Ao acessar a camada de dados, a tecnologia recomendada, por padro, Entity Framework. Neste simples e orientado dados cenrio, o uso mais comum de Entity Framework atravs de seus designers visuais e modelo de primeira ou banco de dados de primeira abordagens. Mas voc tambm pode usar simples "classes de entidade Code First poco" se voc precisar de controle total das classes de entidade.

Guia de tecnologia. NET para aplicaes de negcios

/ / 32

Modernizar a aplicativos de negcios de desktop


Experincias em execuo no ambiente de trabalho tambm deve ser construdo considerando as expectativas do novo cliente. . NET oferece mltiplas inovaes para aplicaes desktop para melhor atender a essas expectativas, bem como recursos que permitem a sua aplicao ser alargada a novas plataformas sem mudanas na arquitetura e voc ainda pode reutilizar o cdigo. Construir seus aplicativos de desktop com estas recomendaes em mente ir estender sua expectativa de vida e torn-lo mais fcil para que voc estenda a novos dispositivos, ou mesmo migrar toda a aplicao no futuro. Use o padro de projeto Model-View-ViewModel (MVVM): Plataformas de cliente Microsoft (incluindo WPF) facilitam a construir aplicaes usando o padro MVVM. Com este padro voc vai ter uma forte separao entre a exibio de estado e comportamento, que ir ajud-lo a criar um cdigo limpo e de fcil manuteno que podem ser facilmente compartilhados entre vrios dispositivos. Utilize bibliotecas de classes portteis para a lgica de cliente: NET. bibliotecas portteis permitem binrios para ser compartilhado entre vrios plataformas, como o desktop, o Windows loja de aplicativos, aplicativos do Windows Phone, e outros. Implementar a lgica do cliente com . Bibliotecas portteis NET vai simplificar muito a criao de mltiplas experincias em vrias plataformas. Modernize a sua experincia de usurio: Conceitos que so exigidas pelos usurios finais de hoje pode ser implementado com a mais recente inovaes em. NET para o desktop. Princpios de design como "rpido e fluido", "autenticamente digital", e "fazer mais com menos "pode ser aplicado para o seu aplicativo de desktop existente, empregando uma interface moderna para seu projeto XAML, cuidadosamente usando programao assncrona NET extensivamente. animaes e de execuo. Mova a lgica de negcio para o servidor: Aplicaes de duas camadas (cliente / servidor) so significativamente mais difcil para estender a novos dispositivos. A abordagem recomendada separar claramente a lgica de negcios em servios que podem ser reutilizados mais tarde em outro dispositivos e fatores de forma. Estender para a nuvem: Uma vez separadas a partir do cliente, o Windows Azure fornece vrias solues para mover o negcio lgica para a nuvem. Transformar essa lgica em servios de nuvem melhora a elasticidade e escalabilidade existente solues, tornando-os prontos para abraar abordagens multi-dispositivo. Parceiros do Visual Studio fornecem um conjunto de tecnologias que tambm ir ajud-lo a modernizar seus aplicativos de rede;. Consulte a Tabela 5-3.

Parceiros do Visual Studio para modernizao de aplicaes NET.


Parceiros Xamarin Quando usar e por qu Xamarin fornece um meio de compartilhar o cdigo C # a partir de suas aplicaes dirigidas Windows ou Windows Phone com dispositivos iOS e Android. Ele fornece acesso API subjacente para criar visualizaes personalizadas, enquanto reutilizar o cdigo da lgica de cliente entre dispositivos. ITR-Mobilidade oferece uma soluo para a construo de aplicaes mveis corporativas em C # para entrega no grande plataformas mveis. Ele oferece servios como Abstract UI e sincronizao de dados da empresa para permitir de aplicaes em uma variedade de dispositivos. Mobilize.NET fornece solues e servios para a migrao de aplicaes legadas para plataformas modernasincluindo a web, mobile, ea nuvem, transformando o cdigo fonte existente em um novo cdigo sem tempos de execuo para a aplicao de sada. Citrix Mobile SDK para aplicativos do Windows fornece um rico conjunto de ferramentas para desenvolvedores de mobilizar LOB Aplicativos do Windows ou escrever novas aplicaes touch-friendly execuo em servidores centrais (Citrix XenApp / XenDesktop) e acessados a partir de qualquer dispositivo mvel com o Citrix Receiver. Tabela 5-3

ITR-Mobilidade iFactr e Monocross

Mobilize.NET por Arte em Macio

Citrix

Guia de tecnologia. NET para aplicaes de negcios

/ / 33

Referncias
Xamarin ITR-Mobility iFactr e Monocross http://xamarin.com/features http://itr-mobility.com/products/ifactr http://monocross.net/ http://www.citrix.com/mobilitysdk/ http://mobilize.net/ Visite o diretrio parceiro VSIP para mais solues fornecidas pela indstria Visual Studio Parceiros: https://vsipprogram.com/Directory

Citrix Mobile.NET Diretrio parceiro VSIP

Modernizar aplicaes baseadas em recipientes RIA


Alguns anos atrs, quando Rich Internet Application (RIA) recipientes e plug-ins eram populares, o contexto em que foi bastante diferente a partir de hoje. Cinco anos atrs, RIA coberto a maioria das necessidades de implantao por apenas visando PCs baseados em Windows e computadores Macintosh. Depois a "revoluo dispositivo" em 2010, agora voc tem diferentes dispositivos (tablets, smartphones e computadores) com operacional diferente sistemas (incluindo o Windows 8, Windows Phone 8, iOS, Android e Chrome OS) e muitos deles no suportam RIA plug-ins. Ao mesmo tempo, o HTML5 vem evoluindo para suportar cenrios mais ricos que antes exigiam plug-ins. Atualmente, HTML5 amplamente suportado em todos os dispositivos e oferece uma alternativa melhor para o desenvolvimento multi-plataforma cliente de plug-ins tradicionais. As aplicaes nativas tambm esto se tornando mais popular no mercado, uma vez que tirar o mximo proveito dos recursos especficos de cada dispositivo para fornecer a experincia mais atraente para os clientes. Figura 5-15 ilustra estas tendncias.
O que est mudando em UI Technologies?

Figura 5-15

A plataforma Microsoft oferece suporte a todas as trs abordagens para interfaces de usurio (web, nativas, e RIA), mas tambm leva em conta que experincias modernas atravs de dispositivos so desenvolvidos principalmente com tecnologias web e nativas. Decidir quando que fazer transio depender em ltima anlise as suas exigncias e necessidades. A Microsoft est empenhada em apoiar a sua escolha e ajudando ao longo do processo, como mostrado na Figura 5-16: Se voc est em transio para aplicaes nativas, voc pode aproveitar suas habilidades existentes e at mesmo cdigo, visando XAML / .NET nativamente em qualquer dispositivo Windows. Bibliotecas portteis tambm vai permitir que voc compartilhe seus binrios entre diferentes plataformas, incluindo Silverlight. Para aplicativos HTML5 baseado em browser, Microsoft oferece ferramentas de liderana e estruturas para ajud-lo a criar aplicaes para qualquer dispositivo com base nos mais recentes padres. Interoperabilidade do Silverlight com HTML tambm permite uma transio gradual atravs aplicaes hbridas.

Guia de tecnologia. NET para aplicaes de negcios

/ / 34

Se cenrio alvo de sua aplicao ainda suportado apenas pelo Silverlight (Por exemplo, proteo de contedo de vdeo) ou padres emergentes no so um requisito para as suas aplicaes, no entanto, voc pode continuar a usar o Silverlight. Silverlight um maduro e tecnologia estvel, e sua verso mais recente (Silverlight 5) foi lanado com suporte estendido para 10 anos para garantir que voc obter o mximo de investimentos existentes e permitem que voc transio gradual para HTML5 ou solues nativas.
O que est mudando em UI Technologies?

Figura 5-16

Apndice A, "caminhos de migrao do Silverlight", fornece informaes e recomendaes adicionais.

Modelo de aplicativo em nuvem para o Office e Escritrio 2013 introduziu o modelo de aplicativo em nuvem para estender Office e SharePoint atravs de aplicativos leves. Isto proporciona o valor SharePoint
de suas aplicaes de negcio atravs das aplicaes de produtividade de escritrio que seus clientes j usam. O modelo de aplicativo em nuvem construdo sobre tecnologias web padro como HTML, CSS, JavaScript, REST, OData, e OAuth no cliente, juntamente com qualquer servidor tecnologia, incluindo o ASP.NET, no servidor. Se voc um desenvolvedor web, voc pode usar suas habilidades existentes para criar aplicativos e tomar vantagem de ferramentas familiares, idiomas e servios de hospedagem. Voc pode implantar, atualizar e manter seus aplicativos mais rpido na nuvem, em seguida, publicar e vender seus aplicativos na loja do Office, ou distribuir aplicativos de TI aprovados dentro de sua organizao por meio de um interno App Catalog. O modelo de aplicativo unificado vale para os seguintes tipos de aplicaes: Aplicativos do Office (Aplica-se para o Office 2013, o Office 365, o Project Professional 2013, Word 2013, Excel 2013, PowerPoint 2013, Outlook 2013, o Outlook Web App, Excel Web App e Exchange Server 2013). Apps para o SharePoint Servidor 2013 e SharePoint Online no Office 365.

Aplicativos do Office
Aplicativos do Office so baseados no modelo de aplicativo em nuvem para o Office e SharePoint, ver Figura 517.

Guia de tecnologia. NET para aplicaes de negcios

/ / 35

Figura 5-17

Um aplicativo para o Office simplesmente uma pgina web HTML, mais um manifesto de aplicativo XML, como mostrado na Figura 5-18.
O que um App para Office?

Figura 5-18

Contedo HTML usando padres web podem ser expostos como Painis de tarefas ou de contedo dentro de um documento do Office, e voc pode programaticamente acessar o contedo do Office a partir de JavaScript. O manifesto do aplicativo necessria a fim de publicar e ter seu aplicativo visvel no Office Store pblico ou privado de qualquer App Catalog. Voc pode criar os seguintes tipos de aplicativos para escritrio: Aplicativos painel de tarefas: Esses aplicativos aparecem no Painel de Tarefas de um cliente Office.de contedo: Esses aplicativos aparecem dentro do contedo do documento do Aplicativos Office. Aplicativos de correio para o Outlook 2013 e Outlook Web Access: Esses aplicativos aparecer ao lado do item do Outlook que est aberta. (Isso pode ser uma mensagem de email, solicitao de reunio, a resposta de reunio, cancelamento de reunio ou um compromisso.)

Guia de tecnologia. NET para aplicaes de negcios

/ / 36

Figura 5-19 mostra alguns exemplos de aplicativos de contedo para o Office (em Excel, Outlook e Word). Todo o contedo especial mostrado na estes aplicativos so elementos criados usando pginas HTML embutido no cliente do Office, hospedando-lo dentro de um IFRAME e aceder ao Office elementos do cliente a partir do cdigo JavaScript.

Contedo App

Task Pane App

Correio App

Figura 5-19

As principais vantagens do modelo de novos-apps contra o VSTO legado (Visual Studio Tools for Office) modelo de aplicao (add-ins, ou com base em documento) so: Suporte Office Web Apps Suporte para o Office RT Mais fcil de migrar para futuras verses do Office Alm disso, com esta nova abordagem, os desenvolvedores web podem tirar proveito de suas habilidades para criar facilmente aplicativos para o Office.

Guia de tecnologia. NET para aplicaes de negcios

/ / 37

Tabela 5-4 e Tabela 5-5 recomendar tecnologias relacionadas para o desenvolvimento de aplicaes embarcadas em um cliente do Microsoft Office, em funo das prioridades da aplicao e do contexto especfico. Alm das novas aplicaes para o modo de Escritrio, tecnologias legadas tambm esto includos.

Escolhas tecnolgicas para o desenvolvimento do Office


Technologies Aplicativos do Office modelo - Office Developer Ferramentas - "Napa" Office Add-ins - Visual Studio Quando usar e por qu HTML5/JavaScript desenvolvimento cliente web embutido no Office a tecnologia preferida para novas aplicaes para o Office ea direo futura para extensibilidade Office. Deve ser a escolha "por padro" ao desenvolver para o Office 2013. Permite aceder aos documentos atravs da web ou do Office RT. Mais adequado para execuo de aplicativos on-line com acesso aos servidores que hospedam os aplicativos.

Office Add-ins e aplicativos baseados em documentos com VSTO (cdigo. Conseguiu-NET no cliente) Use-o se voc precisa para criar aplicativos para escritrio com verses mais antigas do que o Office 2013 ou cenrios no abrangida pelos aplicativos para o modelo Office. Ferramentas para o Office Ele totalmente suportado. (VSTO) Mais adequado para execuo de aplicativos off-line e cenrios avanados. Escritrio VBA Visual Basic for Applications (VBA) Use VBA para automao e solues repetitivas ou prorrogaes de interao do usurio. Suportado para automao de escritrio e cenrios de aplicao simples. Abordagem hbrida de aplicativos para o Office eo Office VBA. Quando o VBA um modelo de documento e interage com um aplicativo para o Office atravs do contedo das partes XML documento / personalizados.

Tabela 5-4

Referncias
Viso geral dos aplicativos do Office VBA para desenvolvedores do Office http://msdn.microsoft.com/library/office/apps/jj220082 (v = office.15) http://msdn.microsoft.com/en-US/office/ff688774

Ferramentas e opes de tecnologia no desenvolvimento de aplicativos para o Office


Technologies "Napa" Quando usar e por qu "Napa" (Lightweight IDE, codificao no navegador) a maneira mais fcil de comear a desenvolver aplicativos para o Office e SharePoint. Ele no requer instalao do Visual Studio nas mquinas de desenvolvimento. Ele est disponvel como um aplicativo gratuito para o desenvolvedor do Office 365 Site. Ferramentas Office Developer para Visual Studio (potncia mxima) Use-o para o desenvolvimento profissional, quando voc procura poder e flexibilidade. Ferramentas Office Developer para Visual Studio gratuito, mas requer o Visual Studio Professional, Premium ou Ultimate.

Escritrio Ferramentas para Desenvolvedor para o Visual Studio

Tabela 5-5

Guia de tecnologia. NET para aplicaes de negcios

/ / 38

Em muitos cenrios, aplicativos de negcios para o Office fornecer visualizaes ou uma anlise de dados de negcios. Um padro tpico para acessar dados atravs de servios. Porque o consumo desses servios ser de JavaScript, o melhor ajuste ASP.NET Web API Servios (REST / JSON / OData, e assim por diante). Se os servios so simples e orientada a dados, uma abordagem mais fcil usar servios LightSwitch OData ou WCF Data Services. No entanto, os aplicativos do Office pode ter um back-end web, pelo que o JavaScript no a nica opo. Voc tambm pode acessar dados de negcio do lado do servidor utilizando ASP.NET. As razes pelas quais voc deve escolher uma ou outra tecnologia para servios de construo so bastante semelhantes aos anteriormente mencionado. Ao desenvolver servios personalizados para serem consumidos a partir de aplicativos do Office, utilizando tecnologias como ASP.NET Web WCF, API, etc, por favor, consulte a seo "Servios" na Seco 4, "emergentes padres de aplicativos."

Cenrio: Conectado Apps para o Office


Figura 5-20 mostra as possibilidades recomendadas para um aplicativo ligado para o Office que est consumindo servios remotos e acessar uma fonte de dados. Usando os servios do SharePoint opcional. Um aplicativo para o Office pode ser isolado a partir do SharePoint, tambm.
Cenrio: Conectado Apps para o Office

Figura 5-20

Guia de tecnologia. NET para aplicaes de negcios

/ / 39

Apps para o SharePoint


Apps para o SharePoint so baseados no modelo de aplicativo em nuvem introduzido para o Office e SharePoint; veja a Figura 521.
Apps para o SharePoint

Figura 5-21

Um aplicativo para o SharePoint uma pgina HTML web ou uma aplicao web mais complexo (com base em qualquer motor de servidor, como o ASP.NET MVC, ou Mesmo as tecnologias no-Microsoft, como o PHP, NodeJS, e assim por diante) que fornece pginas HTML. Por se tratar de uma aplicao web regular,HTML o Pgina pode usar qualquer padro web e tecnologia de biblioteca (HTML5/JS), como jQuery ou modernas abordagens SPA. Ele tambm pode acessar e expor recursos do SharePoint como um List, Servios SharePoint Corporativos de Conectividade (BCS) modelos, e implementar um fluxo de trabalho do SharePoint. Como mostrado na Figura 5-22, a aplicao ter ento que ser registrado em SharePoint usando um manifesto do aplicativo. Uma aplicativo um arquivo XML que declara as propriedades bsicas manifesto do app juntamente com o local onde o aplicativo ser executado eo que fazer quando o aplicativo iniciado. O modelo realmente o mesmo que o utilizado para aplicativos do Office. Apps para o SharePoint pode ser mostrado no navegador da web como webpages completos imersivos, como app-partes (com base em IFrames dentro de pginas do SharePoint), e estendendo UI SharePoint aes personalizadas. Figura 5-23 mostra as diferentes opes de implementao de aplicativos para SharePoint. Embora o uso da abordagem webpage completo pode parecer muito isolado do SharePoint, no , porque aplicativos para SharePoint pode usar a mesma aparncia de Controle usando o Chrome. Atravs OAuth, o contexto de segurana do usurio tambm pode ser share entre SharePoint e seu aplicativo personalizado. Dentro de apps, o SharePoint 2013 separa o cdigo do lado do servidor a partir do servidor SharePoint, permitindo que voc execute o seu cdigo do lado do servidor em seu prprio servidor web,ou na nuvem. Ao implantar um aplicativo no servidor SharePoint, esse app pode ter apenas do lado do cliente se no local cdigo (HTML e JavaScript) ao invs de cdigo do lado do servidor. Mas, como mostrado na Figura 5-24, autohosted e modelos hospedado pelo provedor permitir que o cdigo do lado do servidor em seu prprio servidor / servios, dissociado dos servidores do SharePoint.
Figura 5-23 Figura 5-22 O que um aplicativo para o SharePoint?

Guia de tecnologia. NET para aplicaes de negcios

/ / 40

Opes para hospedagem Apps no SharePoint

Figura 5-24

O modelo autohosted semelhante ao modelo hospedado pelo provedor, mas fornece um aprovisionamento transparente e automtica e implantao de seu aplicativo de servidor no Windows Azure. Tabela 5-6, Tabela 5-7 e Tabela 5-8 show e recomendar que a tecnologia a ser usada quando o desenvolvimento de aplicaes relacionadas com a SharePoint, dependendo de suas prioridades de aplicao e contexto especfico. Para este cenrio, voc tambm vai encontrar outras abordagens em Alm das novas aplicaes para o modelo do SharePoint.

Escolhas para o desenvolvimento do SharePoint


Technologies Apps para o Modelo SharePoint Quando usar e por qu Apps para o SharePoint (aplicativo de pgina inteira, peas de aplicativos e aes personalizadas UI) Abordagem padro para aplicativos autnomos integrados com o SharePoint. Abordagem dissociado dos servidores do SharePoint. Os sites do SharePoint personalizao Use-o ao personalizar prprios sites do SharePoint. Modelos e pginas personalizao por meio do recurso Gerente de Design e Visual Studio. Desenvolvimento-confiana total, extenses de administrao, Web Parts tradicionais, etc Criar solues de farm quando voc no pode faz-lo em um aplicativo para o SharePoint. Principalmente para personalizados extenses administrativas do SharePoint ou o desenvolvimento de ativos internos dentro SharePoint. Abordagem necessrio para as verses do SharePoint com mais de SharePoint 2013.

Os sites do SharePoint

SharePoint fullconfiana fazenda solues

SharePoint Desenvolvimento Sandbox fazenda no modo seguro Esta abordagem tem sido substitudo desde SharePoint 2013 (embora seja suportado no SharePoint 2013), solues portanto, desaconselhvel para construir novas solues em rea restrita. (Obsoleto) Use-o apenas em empreendimentos existentes para verses mais antigas do que o SharePoint 2013. Tabela 5-6

Guia de tecnologia. NET para aplicaes de negcios

/ / 41

Referncias
SharePoint 2013: O que fazer? Fazenda Soluo contra Sandbox vs App Apps para viso geral do SharePoint The New SharePoint http://social.technet.microsoft.com/wiki/contents/articles/13373 sharepoint-2013-o-que-a-fazenda-soluo fazer-vs-sandbox-vs-app.aspx http://msdn.microsoft.com/en-us/library/fp179930.aspx http://sharepoint.microsoft.com/blog/Pages/BlogPost aspx? pid = 1012

Ferramentas e opes de tecnologia no desenvolvimento de aplicativos para SharePoint


Technologies "Napa" Quando usar e por qu "Napa" (Lightweight IDE, codificao no navegador) a maneira mais fcil de comear a desenvolver aplicativos para o Office e SharePoint. Ele no requer que voc tenha o Visual Studio instalado nas mquinas de desenvolvimento. Ferramentas Office Developer para Visual Studio (potncia mxima) Use-o para o desenvolvimento profissional, quando voc procura poder e flexibilidade. Ferramentas Office Developer para Visual Studio livre com o Visual Studio Professional, Premium e Ultimate. Aplicaes Office 365 Nuvem de negcios (Apps for SharePoint alimentado por LightSwitch) Use-o quando a criao de aplicativos baseados em dados (CRUD) ou consumindo recursos do SharePoint (listas e servios) ou servios no SharePoint e fontes de dados. A maneira mais fcil de criar formas flexveis e aplicaes orientadas a dados integrados ao Office 365 e SharePoint. Tabela 5-7

Ferramentas Office Developer para o Visual Studio

Office 365 Nuvem de Negcios Aplicaes Visual Modelo de projeto Estdio

Na maioria dos cenrios, aplicativos de negcios para SharePoint requer acesso a algum tipo de dados, quer se trate de dados de negcios ou dados do SharePoint. Que o acesso de dados fornecida atravs de servios ou fontes de dados locais.

Tecnologias de servios de back-end para aplicativos para SharePoint


Technologies Quando usar e por qu

Cliente do SharePoint Cliente SharePoint modelo. Objeto NET ou REST / OData endpoints . NET Use-o quando se trabalha com listas do SharePoint, tipos de contedo, itens de lista, bibliotecas de documentos e qualquer Modelo ou tipo de REST / OData operao relacionada aos recursos do SharePoint. endpoints Note-se que ao desenvolver aplicativos para SharePoint, no possvel usar o SharePoint gerido servidor Biblioteca de classes OM porque o aplicativo para o SharePoint executado em um servidor remoto diferente. SharePoint SharePoint REST / OData endpoints ou cliente. API gerenciada-NET JavaScript cliente Use-o ao consumir recursos do SharePoint diretamente do JavaScript em seu aplicativo. modelo de objeto Personalizado ASP.NET API Web Abordagem REST, orientado recurso Use-se os consumidores do servio est prestes aplicativos nativos, clientes da web ou consumidores da Internet desconhecidas. um abordagem flexvel. API Web ASP.NET uma estrutura que torna mais fcil para construir servios HTTP que chegam a uma ampla gama de clientes, incluindo os navegadores e dispositivos mveis. Quadro leve, fcil de comear, e elevado grau de interoperabilidade com outras plataformas e formatos (JSON, OData, e assim por diante). Feito especialmente para os servios REST. Abraa verbos HTTP como motoristas de aplicativos. Recursos orientada. Alta escalabilidade, graas Internet (caches Akamai, o Windows Azure CDN, Level3, e assim por diante) com base em Verbos HTTP. Abordagem REST, orientado recurso, maneira mais fcil de construir servios

LightSwitch OData

Guia de tecnologia. NET para aplicaes de negcios

/ / 42

Servios REST Personalizado Dados WCF Servios

Us-lo na criao de servios simples OData orientada a recursos. a maneira mais fcil!
WCF Data Services Use-o quando seus servios so dados / orientada a recursos e principalmente CRUD e data-driven. Suporta apenas OData. Simples de usar, mas oferece menos flexibilidade e controle do que o uso da Web ASP.NET API. Compartilha o mesmo bibliotecas centrais OData com API Web ASP.NET. Tabela 5-8

Referncias
Escolha a API direito previsto na SharePoint 2013 http://msdn.microsoft.com/en-us/library/jj164060 (v = office.15). aspx

Cenrio: Conectado Apps para o SharePoint


Figura 5-25 mostra um padro de conexo de tecnologia com as possibilidades tpicas na criao de um aplicativo para o SharePoint.
Cenrio: Conectado Apps para o SharePoint

Figura 5-25

Dentro deste cenrio, a maioria das recomendaes sobre tecnologias de desenvolvimento de aplicaes web j descrito neste documento so aplicadas de modo similar, mas vale a pena destacar em relao a tecnologias para a construo de servios, o SharePoint est se dirigindo fortemente para apoiar os servios OData e aplicativos personalizados para o SharePoint tambm deve seguir esse caminho criao eo consumo de OData servios (com base em qualquer tecnologia que suporta OData, como API Web ASP.NET, WCF Data Services e Servios LightSwitch OData).

Guia de tecnologia. NET para aplicaes de negcios

/ / 43

Grandes, aplicativos de negcios de misso crtica


A aplicao de negcio de misso crtica pode ser definida como qualquer aplicativo de negcios que fundamental para o bom funcionamento dos operaes de negcios tradicionais. Se uma aplicao desta natureza falhar por qualquer perodo de tempo, voc pode estar fora do negcio. Aplicaes de misso crtica e core-business tem metas adicionais e prioridades especficas. A sustentabilidade a longo prazo e manuteno so fundamentais para grandes e em constante evoluo aplicaes. Se voc estiver trabalhando com grandes aplicaes de misso crtica, voc tem que lidar com duas preocupaes principais: Enfrentar a complexidade no domnio do ncleo da aplicao de negcio. - Trata-se de percia complexa de domnio e regras de negcio, e como efetivamente projetar estes no software. - Essa preocupao deve conduzir arquitetura, design, e as decises de implementao (como monoltico contra abordagens estruturadas / camadas) e as melhores prticas e padres, dependendo do contexto (tais como Domain-Driven Projeto abordagens de arquitetura, arquiteturas de baixo acoplamento com base em tcnicas de injeo de dependncia e recipientes, e assim por diante). O design do aplicativo deve tomar a futura evoluo e manuteno de uma aplicao em considerao.

Garantir QoS suficientes (qualidade de servio) para aplicaes grandes de misso crtica. - Trata-se de disponibilidade, escalabilidade, segurana e assuntos semelhantes. - Essa preocupao deve conduzir como medidas transversais (segurana, operaes, instrumentao, e assim por diante) so projetados e implementadas. - Arquitetura de infra-estrutura tambm est intimamente ligada a QoS. Por exemplo, voc deve considerar a arquitetura de infra-estrutura no local ou na nuvem, dependendo escalabilidade necessrias e elasticidade, o tipo de usurios, e go-to-produo agilidade necessita. Figura 5-26 abaixo resume o que, quando e como lidar com esses tipos de aplicaes.
Aplicaes empresariais de misso crtica

Figura 5-26

. NET em aplicaes de misso crtica de grandes e core-business


Ao longo dos anos,. NET evoluiu como um conjunto de estruturas de desenvolvimento de aplicativos, com foco na robustez, flexibilidade e extensibilidade. A grande base de clientes da Microsoft expressou confiana em. NET para aplicaes grandes de misso crtica, e tambm tem reconhecimento de analistas, como mostrado no seguinte trecho de um relatrio da Forrester recente (2012).

Guia de tecnologia. NET para aplicaes de negcios

/ / 44

Lderes AD & D ver. NET como Java de igual para aplicaes grandes e complexas. Windows Server, SLQ Server, ea NET Framework. eram um desafio escala, mas no mais. Os lderes da empresa AD & D manifestou grande confiana na sua capacidade para apoiar as suas maiores aplicaes no Windows / SQL Server / .NET. A barreira de desempenho e dimensionamento, segundo eles, o cdigo do aplicativo mal escrito, e no o prprio software de plataforma.

"escalas. NET tambm. Ns fizemos testes de carga com populaes de usurios bastante significativos. A plataforma d-nos uma boa opes de cache e gerenciamento de sesso, e ns gostamos do tratamento de excees e acesso a dados tambm. Voc tem algumas dessas coisas em Java Spring, mas em. NET so mais bem integrados. "(VP de aplicao desenvolvimento, a empresa de servios financeiros)
Figura 5-27

Seleo de Tecnologia para grandes aplicaes de misso crtica e core-business


Este guia no cobre de misso crtica do mercado de produtos prprios, tais como SAP, Dynamics ERP ou outros produtos especficos, que incide apenas sobre o desenvolvimento personalizado. Nota sobre tecnologias de desenvolvimento orientadas a dados Qualquer, a aplicao em grande misso crtica pode ter muitos subsistemas e alguns deles poderiam ser garantia, non-core-business, e reas de data-driven, mesmo simples. Por mais simples, subsistemas centradas em dados voc pode usar as tecnologias baseadas em dados descritos nas "aplicaes de negcio pequeno e mdio porte", anteriormente. Este seo no abrange as seguintes abordagens / tecnologias, em vez enfocando tecnologias para contextos limitados que implementar o ncleo do domnio de seu sistema. Qualquer, a aplicao em grande misso crtica pode usar uma ampla gama de tecnologias, a partir de diferentes tecnologias da camada de apresentao, para implementaes de modelo de domnio em ltima anlise, com base em O / RMs, em muitos casos, o uso de cache, fluxo de trabalho, nibus servio, filas de mensagens, diferentes tipos de fontes de dados (relacional vs NoSQL), etc Em suma, as escolhas tecnolgicas depender dos cenrios especficos e prioridades que a aplicao possa ter.

Guia de tecnologia. NET para aplicaes de negcios

/ / 45

Cenrio: grandes, aplicaes core-business


Cenrio: grandes, aplicaes core-business (Muitos subsistemas)

Figura 5-28

Tabela 5-9 e Tabela 5-10 mostra e recomendar quando usar uma determinada tecnologia, dependendo da aplicao de misso crtica prioridades e contextos especficos.

Tecnologias de interface do usurio da Web para subsistemas core-business e de misso crtica


Technologies ASP.NET MVC com HTML5 apoio Quando usar e por qu ASP.NET MVC com suporte HTML5 Use-o se voc quer a opo mais flexvel e poderosa, com controle de renderizao de HTML completo, melhor Unidade Prova apoio, e Fingindo capacidades. HTML5: Use as bibliotecas como Modernizr para a deteco de HTML5 possui suporte e solues alternativas. Uso CSS3 por menos script e cdigo mais sustentvel. Uso JavaScript e jQuery para a programao do lado do cliente. Otimizaes do Search Engine e URLs RESTFul so parte integrante da MVC. Aplicao Pgina nica (SPA) baseado em ASP.NET MVC, HTLM5/JavaScript, Knockout, e Brisa SPA no uma estrutura, mas um padro de projeto que pode ser implementado utilizando ASP.NET MVC e pesado uso de bibliotecas JavaScript como Nocaute para suportar o padro MVVM no JavaScript e como o Brisa JavaScript biblioteca para manipulao avanada de gerenciamento de dados. Use-o para aplicaes web altamente interativas e atualizaes de interface do usurio suaves (recarregar a pgina e servidor mnimo viagens visveis redondas) e quando incluindo interaes significativas do lado do cliente usando HTML5, CSS3, e JavaScript. Aproveite o cdigo-fonte aberto SignalR JavaScript biblioteca cliente para comunicao bi-direcional entre o cliente eo servidor. Consumir servios API Web ASP.NET a partir de JavaScript.

ASP.NET Pgina nica Aplicao (SPA)

Tabela 5-9

Guia de tecnologia. NET para aplicaes de negcios

/ / 46

O desenvolvimento web para aplicaes de negcios de misso crtica deve oferecer-controle total e tecnologias refinadas, para que eles possam suporte de baixo acoplamento arquiteturas e criar o melhor UX web. Para o efeito, a Microsoft fornece ASP.NET MVC (controle total no servidor) e ASP.NET (SPA) Modelos de aplicativo Pgina nica, que fazem uso pesado de bibliotecas JavaScript como Knockout para suportar o padro MVVM dentro de JavaScript. H tambm a biblioteca Breeze para manipulao avanada de gerenciamento de dados. Tem outras estruturas teis SPA JavaScript e bibliotecas, como Durandal e RequireJS.

Referncias
Projeto de seda: Web do lado do cliente http://silk.codeplex.com/ Desenvolvimento para navegadores modernos http://msdn.microsoft.com/en-us/library/hh396380.aspx http://www amazon.com/Project-Silk-Client-Side-DevelopmentMicrosoft/dp/1621140105 / ASP.NET MVC ASP.NET SPA (Pgina nica Aplicao) Modelo Breeze / Knockout http://www asp.net / mvc / http://www asp.net / pginas de aplicao nica http://www asp.net/single-page-application/overview/templates/breezeknockoutmodelo http://durandaljs.com/ http://requirejs.org/ http://www.modernizr.com

Quadro Durandal SPA Biblioteca RequireJS Modernizr: A deteco de recurso biblioteca para HTML5/CSS3

Tecnologias de interface do usurio de desktop para subsistemas core-business e de misso crtica


Technologies . NET WPF Quando usar e por qu . NET Windows Presentation Foundation Esta a tecnologia preferida para aplicativos de desktop baseados no Windows que precisam complexidade UI, estilos cenrios de personalizao, e com muitos grficos para o desktop. WPF tambm tira proveito de pontos de vista de XAML. Habilidades de desenvolvimento WPF so semelhantes aos da Windows Store desenvolvimento de competncias, de modo a migrao do WPF para O Windows loja de aplicativos mais fcil do que a migrao do Windows Forms. Tire partido das novas capacidades assncronas simplificados em. NET 4.5 (assncrono / esperam). Aproveite SignalR. NET cliente para comunicao bidirecional entre o cliente eo servidor. NET Windows Forms. Esta foi a primeira tecnologia de interface do usurio disponvel na NET Framework para a construo de aplicaes desktop.. um boa opo para muitas aplicaes de desktop de negcios. Windows Forms mais fcil de usar e mais leve que o WPF para cenrios simples, onde voc no precisa de estilos de interface do usurio personalizao. Ele fornece recursos de interface do usurio mais simples do que WPF e no baseado em XAML, limitando o seu caminho para a frente Windows Store Apps. Tambm pode tirar proveito dos mais recentes. Capacidades NET como programao assncrona com async / await. C + + (Win32 ou MFC) Use-o para a construo de aplicaes de alto desempenho da interface do usurio e os produtos muito grandes e complexas de longo prazo (tais como produtos comparveis aos do Microsoft Office). Use-o para construir os melhores e mais desempenho cenrios com muitos grficos baseados no DirectX.

NET WinForms.

C++ (Win32 ou MFC)

Tabela 5-10

Guia de tecnologia. NET para aplicaes de negcios

/ / 47

Referncias
Introduo ao WPF Windows Presentation Foundation Prism para WPF Windows Forms Aplicaes C + + de desktop Win32 Aplicaes C + + MFC de desktop http://msdn.microsoft.com/en-us/library/aa970268.aspx http://msdn.microsoft.com/en-us/library/ms754130.aspx http://msdn.microsoft.com/en-us/library/gg406140.aspx http://msdn.microsoft.com/en-us/library/dd30h2yb.aspx http://msdn.microsoft.com/en-us/library/vstudio/hh875053 aspx http://msdn.microsoft.com/en-us/library/vstudio/d06h2x6e.aspx

Os aplicativos de desktop so frequentemente utilizados em aplicaes comerciais de grande porte, especialmente para sistemas de entrada de dados pesados dentro dos sistemaspara existentes. As tecnologias preconizadas essas aplicaes so WPF (Windows Presentation Foundation), que fornece uma migrao caminho para da Windows Store aplicativos de negcios, e Windows Forms, que fornece uma soluo mais fcil de usar e mais leve que o WPF para cenrios simples, onde voc no precisa de estilos de interface do usurio personalizao.

Tecnologias de desenvolvimento de UI modernos para aplicaes nativas da Windows Store (Da Windows Store e Windows Phone apps / subsistemas)
As aplicaes modernas orientada para o toque (da Windows Store aplicaes para o Windows 8 ou Windows Phone) requerem inovador e UX experincias convincentes, mas a empresa tambm exige que o apoio UX e alinhar com as preferncias e habilidades de suas equipes. A Microsoft oferece uma ampla gama de tecnologias e linguagens para criar aplicaes nativas da Windows Store que apoiam a sua habilidades da equipe de desenvolvimento, incluindo a NET / XAML, WinJS/HTML5, e C + + / XAML. Para reduzir a redundncia de informaes, as recomendaes sobre a possibilidade de usar uma ou outra tecnologia so semelhantes ao recomendaes disponveis na Seo 4, "padres de aplicativos emergentes"; ver Tabela 5-11 e Tabela 5-12.

Tecnologias de camada intermediria para subsistemas core-business e de misso crtica


Technologies Servios Quando usar e por qu Orientao a Servios Servios contnuos so fundamentais para aplicaes empresariais distribudas. As prioridades so o desempenho e apoio de servios de luz HTTP inter-opervel, padres (REST, OData, SOAP, WS-*), e empresa requisitos de servio. A Microsoft fornece uma ampla gama de tecnologias baseadas em API Web ASP.NET, WCF, e SignalR ASP.NET. Modelos de domnio da entidade, agregados, domnio de lgica O modelo de domnio o ncleo da aplicao, onde as prioridades incluem complexidade combate em grande domnios, criando o projeto certo para manuteno a longo prazo, e isolando o cdigo de domnio (POCO entidades) de tecnologias de infra-estrutura. A Microsoft fornece maduros abordagens domain-modelo e fracamente tecnologias de acesso a dados acoplados, como Entity Framework, LINQ e ADO.NET, que podem ser utilizados quando aplicando Domain-Driven-Design padres. Arquitetura de baixo acoplamento, composio, integrao, processos de negcios, fluxo de trabalho Cada aplicativo corporativo precisa de uma espinha dorsal que aborda cenrios tipicamente encontrados nestes grande aplicaes, como o projeto de arquitetura de baixo acoplamento com base na injeo de dependncia e recipientes COI longa execuo de processos e fluxos de trabalho, subsistemas de integrao orientada a eventos, com base em alegao dissociado moderno implementao de segurana e transaes. A Microsoft fornece tecnologias comprovadas que cobrem estas reas, como inverso de controle (COI), contineres (unidade e MEF), Windows Workflow Foundation (WF), Windows Identity Foundation (WIF), e. NET Framework Sistema.Transactions APIs, extenses reativas (Rx), etc Tabela 5-11

Modelo de Domnio

Composio e Vagamente Acoplado Arquitetura

Guia de tecnologia. NET para aplicaes de negcios

/ / 48

Referncias
API Web ASP.NET http://www asp.net / web-api http://msdn.microsoft.com/en-us/library/hh833994 (v = vs.108). aspx http://msdn.microsoft.com/en-us/library/ms731082.aspx http://msdn.microsoft.com/en-us/library/dd456788.aspx http://signalr.net/ http://unity.codeplex.com/ http://msdn.microsoft.com/en-us/library/dd460648.aspx http://msdn.microsoft.com/en-us/library/system.transactions.aspx http://msdn.microsoft.com/en-us/data/gg577609.aspx

WCF Workflow Services ASP.NET SignalR Unidade MEF Sistema.Transactions Extenses de Reativos (Rx)

Tecnologias de infra-estrutura para o core-business e de misso crtica subsistemas (CB)


Technologies Mensagens Quando usar e por qu Coordenao de mensagens assncrono Composio, integrao e abordagens orientadas a eventos usando APIs (como explicado acima no mid-tier tecnologias) precisa de uma infra-estrutura de base slida a fim de escala. Os ativos necessrios esto relacionados com infra-estrutura de mensagens assncronas e enfileiramento de mensagens de infra-estrutura. A Microsoft fornece madura, slida tecnologias de infra-estrutura, tais como Windows Azure Service Bus, Windows Server Service Bus, o Windows Azure Filas, o Message Queuing (MSMQ), e BizTalk Server / servios. Identidade, autenticao e autorizao A Microsoft fornece tecnologias de infra-estrutura de segurana slidas, como o Active Directory (AD), AD Federao Services (AD FS), o Windows Azure AD, etc A segurana recomendado desenvolvimento relacionados na moderna aplicaes baseado em "segurana baseada em declaraes" e Windows Identity Foundation. Aplicao interna cache de dados e Internet cache HTTP Windows Server AppFabric Cache e Windows Azure Cache um cache de memria distribuda. Pode ser usado como um servio de PaaS externa para suas mquinas virtuais / funes, ou a partilha de uma implementao de cache entre o seu prprio Windows Servers. Windows Azure CDN um "cache Internet", capaz de armazenar em cache dados HTTP acessados, como vdeo, arquivos, etc Bancos de dados relacionais SQL, bancos de dados NoSQL no estruturados, e Big Data Quase qualquer tipo de aplicao de negcio precisa de fontes de dados em que a persistir dados de negcios. Dependendo contexto e as prioridades da aplicao, devem ser utilizados diferentes tipos de fonte de dados. As prioridades giram relacional em torno de riqueza de dados e capacidades transacionais, a disponibilidade de dados e escalabilidade, e macia dados no estruturados aproxima. A Microsoft fornece tecnologias que cobrem estas prioridades, tais como SQL Server, SQL Azure, tabelas Windows Azure NoSQL e blobs, e HDInsight (Big Os dados, o Hadoop) no Windows Server ou o Windows Azure. On-Premises, Nuvem, e hbrido-Cloud Todos os aplicativos corporativos precisam de uma infra-estrutura confivel que garante a disponibilidade do aplicativo, no importa quo o contexto muda no futuro. As prioridades incluem alternativas consistentes para no local ou em nuvem escolha, confiabilidade, desempenho, disponibilidade, escalabilidade, elasticidade, hbrido de TI, operaes e monitoramento. Microsoft tem as solues best-of-breed para estes requisitos com a infra-estrutura fornecida pela Windows Server, Windows Azure, e Microsoft System Center. Para mais informaes sobre o Windows Azure e hbrido em nuvem, por favor consulte a Seco 4 ", a aplicao emergentes padres ". Tabela 5-12

Segurana

Esconderijo

Fontes de Dados

Desenvolvimento Infra-estrutura

Guia de tecnologia. NET para aplicaes de negcios

/ / 49

Em, o desenvolvimento complexos e de grande aplicao de misso crtica, o posicionamento de uma lista de tecnologias no suficiente. Orientao abrangente sobre as abordagens de arquitetura e design necessrio para lidar com a complexidade envolvida com alvo especfico Domnio e qualidade do servio. As sees a seguir neste guia introduzir vrias abordagens importantes a ter em conta em aplicaes de core-business e de misso crtica, como Domain-Driven Design, CQRS, integraes event-driven, modernizar aplicaes core-business legados, e muito mais.

Abordagens e tendncias para aplicaes de core-comerciais de longo prazo As seguintes abordagens, princpios e padres so geralmente consideradas na construo de core-business e grandes, de misso crtica
aplicativos (e aplicaes ainda menores, dependendo de suas prioridades): Padres de Arquitetura de Aplicaes Corporativas (Tais como os de Martin Fowler) Domain Driven Design (DDD) (Tais como o material fornecido por Eric Evans, Jimmy Nilsson, Vaughn Vernon, etc) CQRS (Command & Consulta Responsabilidade Segregao) (Como "CQRS Journey" de padres e prticas da Microsoft, e outras fontes fornecidas por Greg Young, Udi Dahan, etc) Origem de Evento (Tais como o material fornecido por Greg Young) Arquiteturas dissociadas com base no princpio da dependncia inverso - Uso de injeo de dependncia e inverso de controle (IoC) recipientes

Padres e prticas da Microsoft; Unidade, Ninject, Castelo de Windsor, Spring.NET, e assim por diante

A orientao a servios - Servios REST, WS-*, Service Bus, servios de nuvem elstica S.O.L.I.D. princpios - Http://en.wikipedia.org/wiki/SOLID_ (object-oriented_design) Projeto Behavior Driven (BDD) e TDD - (Isto , Dan Norte, Chris Matts, etc) Frameworks BDD: SpecFlow, NSpec, Cuke4Nuke, NBehave e MSpec, etc

Arquitetura de baixo acoplamento e do princpio da dependncia inverso


Arquitetura de baixo acoplamento, juntamente com os princpios de dependncia-inverso, tcnicas e tecnologias, bem como SOLID projeto orientado a objetos, aplicam-se vrios cenrios para aplicaes core-business e de misso crtica. interessante notar que, quando em desenvolvimento aplicaes de negcios pequenos / mdios estas abordagens so tambm teis, especialmente quando podem crescer as aplicaes de complexidade e de volume no futuro. Mas no desenvolvimento de grandes aplicaes core-domnio, essas abordagens so completamente fundamental. Os componentes de um aplicativo deve ser colocado em camadas estruturadas distintas para que estejam em conformidade com os princpios como "Separao de interesses" e obter benefcios como a manuteno mais eficiente. Tambm importante dar uma ateno especial forma como o objetos interagem uns com os outros, ou seja, como eles so consumidos e, especialmente, como alguns objetos so instanciados a partir de outros. Principais tcnicas dos objetos fracamente acoplados 'so baseadas no princpio da dependncia-inverso (um dos princpios em SOLID: http://en.wikipedia.org/wiki/SOLID (design orientado a objetos), em que a relao de dependncia tradicional usado no objecto orientao ("camadas de alto nvel deve depender de camadas de baixo nvel"), invertida. Com esta abordagem, voc alcana um objetivo importante, que ter de alto nvel de objectos independente da execuo de infra-estrutura, e, por conseguinte, independente do tecnologias subjacentes. Os principais estados de dependncia inverso o seguinte: Camadas de alto nvel A. no deve depender de camadas de baixo nvel. Ambas as camadas deve depender de abstraes (contratos / interfaces). B. Abstraes no devem depender de detalhes. Os detalhes (implementao) deve depender de abstraes (contratos / interfaces). O objetivo deste princpio dissociar os objetos de alto nvel a partir dos objetos de baixo nvel, de modo que possvel estender ou alterar as aes finais coordenados por uma classe de alto nvel por trocar a implementao das interfaces, onde voc define o

Guia de tecnologia. NET para aplicaes de negcios

/ / 50

dependncias de alto nvel de classe, mas, sem fazer qualquer alterao no cdigo da classe de alto nvel. Por exemplo, a possibilidade de executar o mesmo cdigo de um objeto de aplicao de alto nvel (sem alteraes de cdigo) e consumir diferente subjacente objetos de infra-estrutura / tecnologia que implementam as mesmas interfaces (abstraes) onde voc basear suas dependncias. Isto tambm relacionado com o princpio da substituio Liskov em SOLID (Http://en.wikipedia.org/wiki/Liskov_substitution_principle). Os contratos / interfaces definem o comportamento exigido dos componentes de baixo nvel. Estas interfaces / contratos devem existir no as camadas mais altas (isto , em DDD, que normalmente define a maioria das abstraces / interfaces dentro da camada de modelo de domnio, de modo a de Domnio Camada detm os contratos que so as especificaes exigidas para as camadas de infra-estrutura, a fim de trabalhar com Modelo seu sistema). Essas camadas de infra-estrutura podem ser trocados no futuro seguindo o / Fechar princpio Open in SOLID (Http://en.wikipedia.org/wiki/Open/closed_principle). Quando os componentes de baixo nvel implementar interfaces (que so colocados nas camadas de alto nvel), isto significa que o baixo nvel componentes / camadas so as que dependem dos componentes de alto nvel. Assim, a relao de dependncia tradicional invertido (e esse o porque chamado o princpio de dependncia-inverso). Existem vrias tcnicas e padres utilizados para esta finalidade: Inverso de Controle (COI) recipientes Dependency Injection (DI) Inverso de Controle (COI) recipientes: Este delegados o dever de selecionar implementaes concretas de nossas dependncias de classes a um componente ou fonte (qualquer recipiente concreto IoC de qualquer fornecedor) externo. Este padro descreve tcnicas para suportar um "Plug-in" tipo de arquitetura, onde os objetos podem solicitar instncias de outros objetos que eles necessitam e dos quais dependem. Dependency Injection (DI) padro: Este realmente um caso especial de IoC. um padro onde so fornecidos objetos / dependncias para uma classe em vez da prpria classe criando os objetos / dependncias necessrias. A maneira mais comum de fazer isso fornecer o dependncias atravs do construtor do objeto de alto nvel. Recipientes COI e injeo de dependncia adicionar flexibilidade, compreenso e capacidade de manuteno para o projeto e ir resultar em alterar o cdigo real to pouco quanto possvel. Em vez disso, ele envolveu a tentar adicionar o cdigo s na nova implementao / classes como o projeto vai para a frente. DI permite alterar o comportamento de uma classe sem alterar o cdigo interno da classe apenas mudando as dependncias implementaes. Isto est relacionado com o / fechar princpio, aberto em SOLID (Http://en.wikipedia.org/wiki/Open/closed_principle). O tcnicas de injeo instncia do objeto so "injeo de interface," "injeo de construtor", "injeo de propriedade (setter)," e "injeo de chamadas de mtodo. "

Injeo de dependncia como uma forma de qualidade arquitectnica


DI e IoC so utilizados para melhorar as qualidades arquitetnicas de um sistema orientado a objeto, tornando-o mais fcil de utilizar um bom design tcnicas. DI e IoC permitir o acoplamento fraco entre classes e suas dependncias, para melhorar a testabilidade de uma classe, e fornecer mecanismos de flexibilidade genricos. Eles tambm podem aumentar consideravelmente as oportunidades para a reutilizao de cdigo, minimizando acoplamento direto entre classes e mecanismos de configurao. O princpio da responsabilidade nica em S.O.L.I.D. estados que cada objeto deve ter uma responsabilidade nica (d uma olhada http://en.wikipedia.org/wiki/Single princpio responsabilidade). Estabelece que uma responsabilidade uma das razes para alterar o cdigo (E alteraes de cdigo potencialmente introduzir bugs) e conclui dizendo que a classe deve ter um e apenas um motivo para alterar. Este princpio amplamente aceita pela indstria e favorece a concepo e desenvolvimento de pequenas turmas com apenas um responsabilidade. Isso est diretamente ligado ao nmero de dependncias, ou seja, objetos que cada classe depende. Se uma classe tem uma responsabilidade, seus mtodos normalmente tem poucas dependncias com outros objetos em sua execuo. Se h uma classe com muitas dependncias (por exemplo, 15 dependncias), isso indica que comumente conhecido como "mau cheiro" do cdigo. Em verdade, fazendo a injeo de dependncia no construtor, voc obrigado a declarar todas as dependncias objeto no construtor. Em Neste exemplo, voc poderia ver claramente que esta classe em particular, no parece seguir o princpio da responsabilidade individual, porque

Guia de tecnologia. NET para aplicaes de negcios

/ / 51

incomum para uma classe com uma nica responsabilidade de declarar 15 dependncias no construtor. Portanto, DI tambm serve como um orientar para que possamos alcanar bons projetos e implementaes, e oferece uma abordagem dissociao que voc pode usar para injetar diferente implementaes claramente. Alm disso, a injeo de dependncia e inverso de recipientes de controle no se destinam a promover apenas o teste de unidade, ou falsificaes / simulaes. Dizer que eles eram seria como dizer que o objetivo principal de interfaces permitir testes. DI e IoC so cerca de dissociao, mais flexibilidade, e ter um lugar central que permite manuteno de nossas aplicaes. O teste importante, mas No a primeira razo ou a razo mais importante para usar o Dependency Injection e recipientes COI.

Recipientes DI / IOC
DI e IoC pode ser implementado com diferentes tecnologias e estruturas de diferentes fornecedores ou fontes. Tabela 5-13 lista um alguns frameworks, mas voc pode usar qualquer aplicao que voc quer de uma maneira muito similar. O ponto importante aqui entender e aplicar os padres e princpios de direito.

IoC (Inverso de Controle) containers-estruturas


Technologies Microsoft Unity Quando usar e por qu Microsoft padres e prticas Esta atualmente a estrutura leve mais completa Microsoft para implementar IoC e DI. um projeto de cdigo aberto com Microsoft Public License (Ms-PL) de licenciamento. Informaes prolongado: http://msdn.com/unity ;http://unity.codeplex.com/ Castelo de Projetos (Castelo de Windsor) Castelo Stronghold Castelo um projeto Open Source. um dos quadros mais utilizados COI. Informaes prolongado: http://www.castleproject.org/ Microsoft MEF Gerenciado estrutura de extensibilidade MEF uma parte do Microsoft. NET Framework. um quadro de extensibilidade automtico de ferramentas e aplicaes, focando mais em extensibilidade UI e plug-ins. MEF no pode ser considerado como um recipiente tradicional COI, em vez disso, deve ser considerado como um quadro para a extensibilidade dinmica e automtica. Mas algumas de suas caractersticas se sobrepem a um continer IoC tpico. um projeto de cdigo aberto com Microsoft Public License (Ms-PL) de licenciamento. Informaes prolongado: http://msdn.microsoft.com/en-us/library/dd460648 aspx ;http://mef.codeplex.com/ Por Nate Kohari Ninject um injetor de dependncia que torna o cdigo mais fcil de entender, mais fcil de mudar, e menos erro de bruos. um projeto de cdigo aberto. Informaes prolongado: http://www.ninject.org/ Spring.NET SpringSource (uma diviso da VMware) Spring.NET um framework para a construo de aplicaes corporativas. Ele suporta as capacidades de IoC, mas tambm AOP (Programao Orientada a Aspectos) capacidades. um projeto de cdigo aberto. Informaes prolongado: http://www.springframework.net/ Por vrios desenvolvedores da comunidade NET OSS. StructureMap o mais antigo instrumento de IoC / DI para. NET, disponvel desde Junho de 2004. um projeto de cdigo aberto. Informaes prolongado: http://structuremap sourceforge.net / default.htm Por vrios desenvolvedores da comunidade NET OSS. Autofac gerencia as dependncias entre as classes para que as aplicaes ficar fcil mudar medida que crescem de tamanho e complexidade. um projeto de cdigo aberto. Informaes prolongado: http://code.google.com/p/autofac/

Ninject

StructureMap

Autofac

Guia de tecnologia. NET para aplicaes de negcios

/ / 52

LinFu

Por Philip Laureano O quadro LinFu um conjunto de bibliotecas que estendem a CLR, fornecendo IoC, AOP, a DBC e outros recursos. um projeto de cdigo aberto. Informaes prolongado: https://github.com/philiplaureano/LinFu

Funq

Por Daniel Cazzulino e outros desenvolvedores da comunidade NET OSS. Funq um framework de DI de alta performance que elimina toda a reflexo em tempo de execuo atravs do uso de lambdas e funes genricas como fbricas um projeto de cdigo aberto. Informaes prolongado: http://funq.codeplex.com/ Tabela 5-13

A maioria dos contineres IoC / DI tambm suportam o padro de Intercepo. Este padro introduz outro nvel de engano. Este tcnica coloca um objeto (um proxy) entre o cliente eo objeto real. O comportamento do cliente o mesmo que se interagiram diretamente com o objeto real, mas o proxy intercepta-lo e resolve a sua execuo, colaborando com o objeto real e outro objetos, conforme necessrio. Intercepo podem ser utilizados como uma forma de implementar o AOP (Aspect Oriented Programming).

Injeo de dependncia para qualquer estilo arquitetnico


Finalmente, importante ressaltar que um projeto dissociado utilizando DI / IoC tambm benfico no desenvolvimento de aplicaes de quase qualquer tipo e de quase qualquer abordagem arquitetnica. Claro, ele se encaixa perfeitamente em arquiteturas que devem ser dissociados, pois de seu design original, como Domain-Driven Design (DDD) e comando de consulta Segregao Responsvel (CQRS). No entanto, ele Tambm funciona muito bem em simples estilos arquitetnicos como 2 camadas e CRUD abordagens (por exemplo, usando uma abordagem mais simples com base MVC e 2 camadas). Se voc aplicar DI / IoC e os princpios relacionados nesses contextos mais simples, voc tambm vai ficar apenas em ASP.NET semelhante benefcios. Por outro lado, no h dvida de que a maior e mais complexa uma aplicao pode ser, mais benefcios voc ter comea a partir de arquiteturas dissociados.

Estilos de arquitectura para aplicaes de core-business


Existem muitos estilos arquitetnicos utilizados por arquitetos e desenvolvedores de software. A seguir esto algumas abordagens tpicas que pode ser implementado com . NET Framework: Arquitectura tradicional Layered (Camadas de cima para baixo lgicas) Projeto de arquitetura em camadas Domain-Driven (Camadas lgicas onde o corao a camada de domnio) CQRS abordagem arquitetnica (Camadas lgicas e nveis fsicos) Arquitetura 3-Tier (Camadas fsicas) Arquitetura N-Tier (Camadas fsicas) Arquitetura Orientada a Servios (SOA) (Maior nvel de orquestrao) Arquitetura orientada a eventos (EDA) (Maior nvel de orquestrao) Muitos deles so complementares, porque voc pode implantar uma arquitetura lgica em camadas, seguindo um fsico N-Tier especfico arquitetura. Voc tambm pode ter uma arquitetura orientada a servios (SOA) ou Event Driven Architecture de alto nvel (EDA) que orquestra muitos servios que so internamente concebido como uma arquitetura em camadas, etc O ponto importante que nenhuma arquitetura particular, ideal para todas as situaes. Ainda mais, quando se trata de aplicaes de grande porte, voc geralmente no deve aplicar uma nica arquitetura abordagem de nvel superior. Por outro lado, voc deve projetar grande composite aplicaes compostas por vrios subsistemas (ou contextos delimitadas no Domnio-Driven Projeto jargo), onde a abordagem certa vontade ser para aplicar diferentes estilos de arquitetura com base na natureza e as prioridades dos subsistemas. Voc pode at mesmo decidir que, para certos subsistemas colaterais ou contextos delimitadas dentro da sua aplicao geral, a abordagem correta um simples CRUD baseado em dados e abordagem, e s para o seu core-domnio (core-business), pode ser necessrio aplicar uma arquitetura mais avanada e dissociada como abordagens e padres de Domain-Driven, como ilustrado abaixo na Figura 5-29.

Guia de tecnologia. NET para aplicaes de negcios

/ / 53

Subsistemas / Contextos delimitadas com diferentes arquiteturas

Figura 5-29

Acontexto limitado (BC) mais preciso do que o termo subsistema (embora s vezes eles podem coincidir). O original definio em Domain-Driven Design , "A aplicabilidade delimitada de um determinado modelo. Limitada Contextos d aos membros da equipe uma compreenso clara e compartilhada do que tem que ser consistente e que pode desenvolver de forma independente " (Eric definio Evans), onde uma caracterstica importante que cada contexto limitada tem o seu prprio modelo de domnio e, em muitos casos, at mesmo o seu prprio banco de e dados esquema banco de dados. No h "bala de prata" ou uma arquitetura de direito exclusivo para um determinado caso. Voc no pode ter "uma nica arquitetura para governar toda a aplicaes ou todos os subsistemas ou contextos delimitadas. ", dependendo das prioridades de cada subsistema (contexto delimitado), voc deve escolher uma abordagem diferente. Vai ser um desastre se voc usar uma abordagem orientada a dados muito simples (CRUD e RAD) para uma aplicativo que ser evoluindo e crescendo a sua lgica de negcios por muitos anos, porque, eventualmente, a aplicao vai ficar convertido em um "grande bola de lama", e que a aplicao ser insustentvel no longo prazo. Contudo, o oposto tambm verdade. Por exemplo, no faz sentido construir uma aplicao muito simples de manuteno baseado em dados da tabela a implementao de um muito avanada e "estado da arte" arquitetura, s porque voc quer usar a mesma abordagem "padro" para todos os seus desenvolvimentos. Vai ser muito caro e comparvel a "construo de uma bicicleta com peas de foguetes!" Por isso, a abordagem certa para aplicativos de negcios grandes "dividir e conquistar!" Em resumo, abordagens e estilos arquitetnicos deve ser aplicada a determinadas reas dentro de grandes aplicaes, ao invs de como de nvel superior arquiteturas prescritivas. Ento, claro, o foco agora se desloca para as seguintes perguntas: "Como fao para identificar os subsistemas ou contextos delimitadas?" E at mesmo ainda: "Como fao para integrar esses contextos limitados?" Abordamos muitas destas perguntas neste guia, mas para mais detalhado informaes sobre o contedo de design comum Domain-Driven e outras abordagens relacionadas, consulte as seguintes referncias.

Guia de tecnologia. NET para aplicaes de negcios

/ / 54

Referncias
Domain-Driven Comunidade Projeto e Contedo http://dddcommunity.org/uncategorized/bounded-context/ http://dddcommunity.org http://dddcommunity.org/books/ http://www.agilification.com/file.axd?file=2010/8/CQRS+DDD+Notes+Greg+Y oung.pdf Boneco de Arquitetura: alinhados verticalmente Sinergicamente particionado (VASP) Arquitetura (Conceito Comparvel a Limitada-Contexto) Por Roger Sessions Comunicao entre Limitada Contextos (Microsoft padres e prticas CQRS Journey) Entity Framework domnio de Modelos em DDD Contextos delimitadas (Delimitada-Context-View em vez de pura dissociada DDD aC) http://simplearchitectures.blogspot.com/2012/12/the-snowman-architecturepart-three.html

http://msdn.microsoft.com/en-us/library/jj591572 aspx

http://msdn.microsoft.com/en-us/magazine/jj883952.aspx

Modernizar aplicaes corporativas de misso crtica


Ao criar novos, grandes aplicaes de misso crtica, as abordagens escalveis e elsticos actuais devem ser aplicadas. No entanto, a maioria aplicaes corporativas existentes no foram construdos com motores assncronos e abordagens orientadas a eventos, e eles no suportam scale-out e arquiteturas elsticas. Em muitos casos, prefervel tratar essas aplicaes como sistemas legados para ser integrado atualizados fachadas (ou baseada em servios baseados na web). Essa integrao deve ser feita enquanto a construo de uma nova mensagem assncronasistema de integrao orientada como um organizador de cross-channel. As mudanas e atualizaes para os aplicativos criados devem se concentrar em reas relacionadas com a inovao (como em aplicaes modernas) ou reas relacionadas com a escalabilidade e desempenho. No entanto, quando se trata com sistemas legados, a escalabilidade pode ser alcanado mais facilmente atravs da construo de servios de front-end e caches na nuvem (as anteriormente mencionado fachadas) em vez de reconstruir toda a aplicao de misso crtica a partir do zero. Depois, em paralelo, voc pode re-arquiteto os sistemas internos por trs das fachadas como oramento e tempo permitir. Esta modernizao precisamente um dos cenrios deste guia se concentra nas prximas sees.

Cenrios para aplicaes personalizadas grandes de misso crtica


As sees seguintes abordam cenrios tpicos para o costume de grandes aplicaes de misso crtica: Cenrio: Subsistema de Domain-Driven (Contexto Delimitada) Cenrio: CQRS Subsystem (Contexto Delimitada) Cenrio: Comunicao Diferentes Contextos Limitada Cenrio: Aplicaes Modernizao Legado de Misso Crtica empresa

Cenrio: Subsistema de Domain-Driven (Contexto Delimitada)


Este cenrio abrange complexos subsistemas core-business. Neste caso, a palavra "complexo", os sistemas que tm um volume alto de constante mudana de domnio / lgica de negcios que vai estar evoluindo durante anos. Embora a sua camada de apresentao pode variar (web, desktop ou dispositivos mveis modernos), o maior volume de investimentos, design e desenvolvimento no lado do servidor / servios onde a lgica de negcios / domnio geralmente colocado. Este tipo de aplicao (ou subsistema) caracterizado por ter um tempo de vida relativamente longo e pode ser necessrio para absorver uma considervel quantidade de mudanas evolutivas. Manuteno contnua crtica nestas aplicaes, por isso uma das prioridades mais importantes a

Guia de tecnologia. NET para aplicaes de negcios

/ / 55

investir em princpios de arquitetura, design e desenvolvimento que ir facilitar a manuteno e as mudanas a longo prazo. Se o aplicao cresce substancialmente, que pretende garantir o mnimo impacto possvel para o cdigo real. por isso que monoltico abordagens so o pior abordagem para estes tipos de aplicaes. Como mencionado anteriormente, em aplicaes complexas, o comportamento das regras de negcio (lgica de domnio) muitas vezes sujeitos a alteraes, de a capacidade demodo modificar, construir e realizar testes isolados (teste de unidade e de zombaria) em camadas de lgica de domnio de uma forma fcil e independente forma fundamental para uma manuteno sustentvel. Alcanar este objetivo importante requer acoplamento mnimo entre o modelo de domnio (Modelo de entidade, incluindo a lgica e as regras de negcio) eo restante das camadas do sistema (as camadas de apresentao, camadas de infraestrutura, dados persistncia, e assim por diante). Para o efeito, os modelos de persistncia ignorantes e projetos dissociados com base em abstraes so normalmente necessria neste contexto. Alm disso, porque estas aplicaes a longo prazo normalmente ter uma vida muito longo (vrios anos, pelo menos), eventualmente, o tecnologias disponveis ir evoluir ou ser substitudo. Por conseguinte, um objectivo importante para os sistemas de longo prazo capaz de se adaptar s infraestrutura / mudanas tecnolgicas com um impacto mnimo para o resto da aplicao (modelo de domnio, regras de domnio, os dados estruturas comunicadas aos outros nveis [DTOs], etc) Mudanas na infra-estrutura tecnolgica de uma aplicao (tecnologias para dados acesso, barramento de servio, segurana, operaes, instrumentao, etc) deve ter um impacto mnimo sobre camadas de nvel superior no aplicao, principalmente na camada de modelo de domnio da aplicao. As tendncias em arquiteturas de aplicaes de longo prazo so cada vez mais orientada para promover esta dissociao entre classes / objetos e tambm entre reas verticais (contextos delimitadas). Domain-Driven Design (DDD) um excelente exemplo desta tendncia como um abordagem para o desenvolvimento de sistemas de software funcionais complexos. A abordagem DDD utiliza um conjunto de tcnicas para analisar o seu domnio e para a construo de um modelo conceitual que captura os resultados dessa anlise. Voc pode ento usar esse modelo como base para a sua soluo. A anlise e modelo na abordagem DDD so especialmente bem adequado para a construo de solues para domnios grandes e complexos. DDD tambm se estende a sua influncia para outros aspectos da processo de desenvolvimento de software para ajudar a gerenciar a complexidade. Os princpios fundamentais em Domain-Driven Design so: Foco no domnio do ncleo Colaborao direta entre "especialistas de domnio" e a equipe de desenvolvimento Fale um linguagem ubqua dentro de um contexto delimitado explcita (subsistema) Aplicar certo DDD arquitetura e design comprovado padres Portanto, DDD muito mais do que apenas uma proposta de arquitetura, uma forma de gesto de projetos, trabalho em equipe para identificar um "Linguagem ubqua" baseado em "Conhecimento esmaga". Isto leva a interao contnua entre o desenvolvimento equipe com especialistas de domnio para capturar as partes importantes do domnio do modelo, a busca permanente por melhores abstraes, refactoring, e melhoria do modelo. Developers 'conhecimento do domnio cresce ao longo do tempo, junto com os especialistas do domnio' capacidade de formalizar ou destilar seu conhecimento de domnio. Ao projetar DDD arquiteturas lgicas, um contexto delimitada complexo deve ser dividida em camadas. Este projeto deve ser coesa, dentro de cada camada, mas evidente que deve definir as diferentes camadas dentro do sistema. Dependncias entre objetos deve se basear em abstraes. Alm delinear claramente e isolar a camada do modelo de domnio do resto das camadas, como as camadas de infra-estrutura com base em tecnologias especficas (Como as tecnologias de acesso a dados). Tudo deve girar em torno de o domnio, porque "Do camada de domnio o corao do software " em aplicaes de ncleo de domnio. Por isso, dentro de um contexto concreto limitado, todo o cdigo relacionado com o modelo de domnio (por exemplo, entidades de domnio e servios domnio) deve ser de colocado em uma nica camada. O modelo de domnio no deve persistir / save em si, nem deve ter dependncias diretos tecnologias subjacentes. Deve concentrar-se exclusivamente em expressar o modelo de domnio (dados e lgica). O. NET Quadro e Entity Framework aliviar significativamente esta implementao do modelo ao usar POCO Code-First entidades que so "persistente ignorante ".

Guia de tecnologia. NET para aplicaes de negcios

/ / 56

Esta camada semelhante Figura 5-30 (seguindo as tendncias de estilos arquitetnicos DDD), onde voc poderia ter limitado adicional contextos com outras abordagens arquitetnicas diferentes:
Simplificado DDD Arquitetura em Camadas Dentro de um pedido Grande

Figura 5-30

Nesta figura, as setas representam as dependncias entre os diferentes componentes e camadas. A principal diferena entre um Abordagem DDD em camadas e uma abordagem em camadas de cima para baixo tradicional que a camada de modelo de domnio no tem dependncia de qualquer a outra camada. Esta abordagem baseada em abstraes (interfaces definidas dentro da camada de modelo de domnio e as respectivas classes de implementao so colocados em outras camadas) e modelos de entidade POCO (como usar Microsoft Entity Framework Entidades POCO e Code-First abordagem). por isso que a camada de modelo de domnio est em conformidade com o persistncia princpio ignorante em relao a dados tecnologias de acesso que voc pode usar. Voc deve aplicar abordagens avanadas (como DDD ou CQRS) apenas dentro dos contextos limitados que se concentram no ncleo do domnio de da aplicao. Outras caues e contextos limitados simples ou subsistemas pode ser implementado seguinte orientada a dados e Abordagens CRUD, como mostrado na Figura 5-30. A arquitetura lgica mostrada na Figura 5-30 a abordagem de arquitetura interna. Voc pode ter arquiteturas de nvel superior orquestrar diferentes servios e outras arquiteturas fsicas e de infra-estrutura especficos (tiers e servios elsticas em privado ou as nuvens pblicas, e assim por diante), onde voc implantar esses servios, como mostrado na Figura 5-31 e na Figura 5-32.

Guia de tecnologia. NET para aplicaes de negcios

/ / 57

Figura 5-31

Figura 5-32

Os servios utilizados por uma aplicao em 3 camadas pode ser composto de uma srie de contextos limitados. Cada contexto delimitada poder ter um fonte de dados nica, ou poderiam compartilhar as mesmas fontes. importante que cada contexto limitada tem a sua prpria entidade de domnio modelo, o que normalmente significa o seu prprio esquema de banco de dados. Em SOA, um servio poderia corresponder a um contexto limitado, mas no obrigatria. Um contexto delimitada tambm pode ser composta por vrias servios, ou vice-versa, um grande servio pode ser constitudo por vrios contextos delimitadas.

Contextos delimitadas e modelos de domnio


Contextos delimitadas lidar com diferentes aspectos do domnio que representa um conceito singular no mundo real (domnio). Delimitada contextos so componentes autnomos, com os seus prprios modelos de domnio e sua prpria linguagem ubqua (domnio concreto termos). Eles no devem ter quaisquer dependncias entre si em tempo de execuo e deve ser capaz de funcionar de forma isolada. Contextos delimitadas dar os membros da equipe uma compreenso clara e compartilhada do que tem que ser consistente e que pode desenvolver independentemente. Portanto, para cada contexto de limitada, voc precisa definir um limite em torno da aplicabilidade delimitada e consistncia de um modelo especfico. Devido a isso, cada contexto delimitado geralmente tem a sua prpria linguagem ubqua que os impactos o seu prprio modelo, ento quando voc est falando sobre conceitos semelhantes e entidades em diversos contextos delimitadas, eles provavelmente tero diferentes atributos e, potencialmente, at mesmo nomes diferentes e termos.
Decompondo um modelo tradicional

Figura 5-33

Guia de tecnologia. NET para aplicaes de negcios

/ / 58

O diagrama de entidade pseudo na Figura 5-33 mostra uma possvel abordagem para uma decomposio de "entidades iniciais" tradicionais (antipadro) em vrios contextos delimitadas (BCS). Ns temos que ter um modelo diferente para cada contexto limitada, mas em muitos casos (como Figura 5-33), voc tem o mesmo "conceito" da entidade em vrios modelos, usando o mesmo nome da entidade, mas provavelmente com algum diferentes atributos. Neste exemplo, que esto dividindo entidades com base no que os atributos tm de ser compatveis entre si e ao impacto para o outro. Por exemplo, a Registrante classe de entidade em um hipottico ConferencesManagementBC pode ter dados pessoais como nome, endereo, dados da empresa, e assim por diante. Porm, provvel que o atributo de "status" faz mais sentido dentro do Registrante classe de entidade de uma forma diferente BC chamado, por exemplo, OrderingBC, porque esse atributo deve ser consistente com a conferncia RegisteredAttendees atributo. Portanto, os limites BC tambm devem ser identificados com base na coerncia entre os dados e quais atributos impacto outro atributos e quais no tm impacto em todos. Por exemplo, se voc alterar o requerente do Nome, que no afetar a conferncia atributos de registro. s vezes, voc precisa ter atributos redundantes em diferentes contextos limitados (tentar minimizar isso). Nesses casos, voc vai tem que lidar e abraar "eventual consistncia ". Voc tambm pode usar eventual consistncia entre os diferentes agregados (conjunto consistente de entidades). Alm disso, tendo um olhar para as relaes necessrias entre as entidades (agrupando-os em agregados) uma boa maneira de identificar BCs. Se alguma rea do modelo inicial realmente isolada de outras reas do potencial de aplicao, essa rea deveria ser um contexto limitada. Figura 5-34 ilustra este processo. Cada modelo de contexto e de domnio limitado uma viso diferente da mesma realidade (o domnio), mas para a utilizao e finalidade diferente. Para entender isso, no uma metfora famosa de Eric Evans dizendo que o mundo (a realidade) o domnio e qualquer tipo de mapa-mundo um BC diferente com o seu prprio modelo de domnio. Ao projetar e implementar as entidades, tambm fundamental no ter um "anmico-domain modelo " (Anti-padro) em DDD. As classes de entidade devem ter sua prpria lgica de domnio dentro dos mtodos da classe entidade. A implementao de entidades de domnio modelo usando Tecnologia de desenvolvimento da Microsoft pode ser alcanado atravs de diferentes formas, mas a maneira recomendada pela Microsoft usando POCO (Plain Old CLR Objects) entidades (classes simples) que devem cumprir a "Persistncia ignorante" princpio (sem dependncias a partir de o entidades se para infra-estrutura
Figura 5-34

Identificar Limitada Contextos

tecnologia). Em seguida, o modelo deve ser fracamente acoplado s tecnologias de infra-estrutura de persistncia de dados como Microsoft Entity Quadro e Code-First mapeamentos abordagem. Outras alternativas incluem diferentes O / RMs, como NHibernate, ou personalizado se aproxima "do zero", baseado no ADO.NET simples. Mas, em qualquer caso, as dependncias finais (entidades e repositrio contratos / interfaces) tem que estar dentro do modelo em vez de tecnologias de infra-estrutura. Essa uma diferena crucial entre Arquiteturas DDD camadas em comparao com arquiteturas em camadas regulares.

Implementar padres de Domain-Driven Design e outras caractersticas com. NET


Ao aplicar Domain-Driven Design, cada camada geralmente implementar diferentes padres como Entidade de Domnio, agregado, Aggregate-Root, acoplamento fraco entre os agregados, Armazenamento agregado, Value-Object, Repository, Unidade de Trabalho, Servio de Domnio, Factory, eventos de Domnio, consistncia eventual e assim por diante. (Para explicaes detalhadas sobre esses padres, por favor consulte o DDD referncias citadas abaixo.)

Guia de tecnologia. NET para aplicaes de negcios

/ / 59

Figura 5-35 mostra uma sugerido caminho implementao de padres tpicos DDD e recursos de infra-estrutura utilizao Microsoft tecnologias.
Mapeamento de padres para tecnologias

Figura 5-35

Ao usar bancos de dados relacionais e implementao de padres de DDD usando. NET, o Domain-Entidade, Aggregate, Aggregate-Root, Repositrio e Unidade de Trabalho padres podem ser facilmente implementados afinao desses padres em qualquer O / RM como Microsoft Entity Quadro ou qualquer outro O / RM. Mas, isso depende de suas prioridades e necessidades de aplicao. Outras vezes, um Armazenamento agregado com base numa NoSQL ou bancos de dados documentais (No-relacional, por isso no O / uso RM) uma abordagem melhor (por exemplo, para Evento-Sourcingeventos e armazenamento agregados). H uma riqueza de recursos em relao a preocupaes transversais, operaes, segurana e assuntos de instrumentao em MSDN.com e padres da Microsoft e documentao Prticas se voc gostaria de aprender mais.

Referncias
O Modelo de Domnio Anemic Classes POCO entidade (POCO: Plain Old CLR Objects) Empregando o padro Modelo de Domnio Entity Framework Origem do evento http://www.martinfowler.com/bliki/AnemicDomainModel.html CLR objeto http://en.wikipedia.org/wiki/Plain Velho http://msdn.microsoft.com/en-us/magazine/ee236415.aspx http://msdn.microsoft.com/en-us/library/jj591559 aspx http://codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/

Cenrio: CQRS Subsystem (Contexto Delimitada)


Este cenrio abrange os subsistemas do ncleo de negcios com base em CQRS (comando e Responsabilidade Consulta segregao). CQRS geralmente relacionada com DDD, em particular, com os contextos em que os usurios esto competindo por recursos do aplicativo e quando o aplicativo requer alta escalabilidade (comum em aplicaes de misso crtica, especialmente quando enfrenta um nmero ilimitado de usurios de Internet).

Guia de tecnologia. NET para aplicaes de negcios

/ / 60

Bertrand Meyer introduziu o termo "separao Comando Query" para descrever o princpio de que os mtodos de um objeto deve ser tanto comandos ou consultas. A consulta retorna os dados e no altera o estado do objeto, um comando altera o estado de um objeto, mas no retorna nenhum dado. A vantagem que voc tenha uma melhor compreenso do que faz, eo que no funciona, a mudana o estado no seu sistema. CQRS leva este princpio, um passo a mais para definir um padro simples. "CQRS simplesmente a criao de dois objetos em que havia anteriormente um s. Ocorre a separao baseia-se se o mtodos so um comando ou uma consulta (a mesma definio que usado por Meyer em Comando de consulta e de separao: um comando qualquer mtodo que transforma estado e uma consulta qualquer mtodo que retorna um valor). " -Greg Young

A Figura 5-35 mostra uma aplicao tpica do padro CQRS a uma poro (BC) de um sistema de empresa. Esta abordagem mostra como, quando voc aplicar o padro CQRS, voc pode separar a ler e escrever os lados nesta parte do sistema. CQRS pode ser um bom apto para muitos cenrios de nuvem do Windows Azure.
CQRS abordagem dentro de um aplicativo Grande

Figura 5-36

Referncias
CQRS Journey orientao - por Microsoft padres e prticas CQRS no Windows Azure Greg Young Udi Dahan http://msdn.microsoft.com/en-us/library/jj554200.aspx http://msdn.microsoft.com/en-us/magazine/gg983487.aspx http://cqrs.files.wordpress.com/2010/11/cqrs documents.pdf http://www.udidahan.com/2009/12/09/clarified-cqrs/

Guia de tecnologia. NET para aplicaes de negcios

/ / 61

Cenrio: Comunicao Diferentes Contextos Limitada


Contextos delimitadas no devem ter dependncias entre si em tempo de execuo, eles devem ser capazes de funcionar de forma isolada. A aplicao em grande / complexa pode ter qualquer nmero de contextos delimitadas interrelacionados, cada um com o seu prprio modelo de domnio, mostradocomo na Figura 5-37. Em uma aplicao grande, pode haver dezenas de contextos delimitadas.
Grande aplicao com muitos subsistemas

Figura 5-37

No entanto, BCs fazem parte da mesma aplicao maior geral do sistema ou e eles precisam trocar dados entre si. Mesmo quando deveriam estar isolado de outros BCs, mudanas de informao, e os eventos que acontecem em uma BC tero impacto outros. Uso base de comunicao assncrona em eventos para este tipo de comunicao inter-BC. O contexto limitado pode responder a eventos que so gerados fora do mbito limitado. Contexto limitado pode publicar eventos que outros contextos delimitadas podem se inscrever para. Eventos (one-way, mensagens assncronas que publicam informaes sobre algo que j aconteceu) permitem que voc manter o baixo acoplamento entre os contextos delimitadas. Estes eventos podem ser referidos como eventos de integrao para indicar um evento que atravessa contextos limitadas. Quando o uso de eventos de integrao e comunicao assncrona entre os contextos limitados, no significa necessariamente uma SOA ou usando um barramento de servio. Esta comunicao pode tambm ser baseada em qualquer tipo de evento de barramento que pode ser implementado diferentes tecnologias de usando infra-estrutura. Possibilidades de um evento-bus implementao so um simples nibus na memria, uma inter-processo comunicao nibus evento usando-pipes (dentro do mesmo servidor, se isso o suficiente para os nossos objetivos ou para Prova de Conceito fins), filas de mensagens, como MSMQ (Microsoft Message Queuing), ou ir para um barramento de servio completo como Windows Server Service Bus ou Windows Azure Service Bus (Ou um nibus de servios de terceiros, como NServiceBus) para sistemas de produo. A maneira de lidar com BCs eventos de integrao quase idntica maneira como voc lida com eventos em CQRS. Os eventos (Mensagem simples de qualquer tipo) deve ser criado depois que algo ocorreu no armazenamento de domnio (por exemplo, uma atualizao no domnio armazenamento). O evento ser nomeado no tempo passado e ser publicado no nibus evento. fundamental que o nibus evento must apoiar um mecanismo de publicao / assinatura, para que aps a publicao de um evento de mensagem no nibus evento, qualquer BC que foi subscrito o nibus evento vai ter esse evento e executar uma ao, a fim de propag-la para o seu prprio modelo de domnio. Com base nessa abordagem, voc ter consistncia eventual entre todos os contextos limitadas.

Guia de tecnologia. NET para aplicaes de negcios

/ / 62

Mapas de contexto
Um sistema grande, com dezenas de contextos limitados e centenas de diferentes tipos de eventos de integrao, pode ser difcil de entender. Mapas de contexto so registros valiosos do que delimitadas contextos publicar que eventos de integrao, e que delimitadas contextos inscrever-se que eventos de integrao. Alm disso, quando voc chegar a um grande nmero de contextos limitados ou tipos de eventos de integrao, um barramento de servio capaz de mecanismos de publicao / assinatura se torna muito conveniente.

As relaes entre os contextos


As diferentes relaes existentes entre dois ou mais contextos de depender muito do grau de comunicao entre o vrias equipes em cada contexto e do grau de controle que voc tem sobre eles. Por exemplo, voc pode no ser capaz de realizar mudanas em certos contextos, tais como no caso de um sistema de produo ou um sistema descontinuada.

Kernel Shared
Esta abordagem se encaixa melhor para cenrios de green field", onde voc est realmente construindo uma aplicao end-to-end. Neste caso, quando voc tem dois ou mais contextos em que as equipes que esto trabalhando com eles podem se comunicar fluentemente, interessante estabelecer uma responsabilidade partilhada por certos objetos que todos os contextos de uso em comum. Um exemplo pode ser determinadas reas compartilhadas mesmo modelo do de domnio compartilhado por dois ou mais contextos limitados. Estes objectos tornar-se o que conhecido como um ncleo comum para toda a contextos. A fim de fazer uma mudana em qualquer objeto do kernel compartilhado, necessrio ter a aprovao de todas as equipes que possuir os contextos envolvidos. A promoo de uma boa comunicao entre as diferentes equipes fundamental, eles esto compartilhando o mesmo rea de modelo de domnio (embora esses contextos delimitadas tambm podem ter seus prprios modelos de domnio diferentes, alm disso).

Cenrio: Aplicaes Modernizao Legado de Misso Crtica empresa


Este cenrio muito importante em grandes sistemas de misso crtica, como os sistemas tm uma vida muito longa, evoluindo. No pode haver muitos aplicaes legadas e / ou crticos na empresa que precisam de ser modernizados. Normalmente, o primeiro passo deve ser a modernizao do face externa desses sistemas ou partes dele. Adicionando um Microsoft Windows Store aplicao mvel (Windows 8 ou Windows Telefone) abre o aplicativo para novas experincias e cenrios. Um bom exemplo um aplicativo host ou um grande legado ERP -sistema, muitas vezes, no possvel para migrar ou de modernizao de todo o sistema. Para modernizar os sistemas legados, comear a criar fachadas de servios que envolvem os sistemas legados e exp-los nova escalvel sistemas como caches persistentes na nuvem, a fim de dimensionar e consumir servios de muitos novos clientes mveis. Esta abordagem move escalabilidade limitada em um sistema legado para hipoteticamente escalabilidade ilimitada em sistemas de nuvem para novos canais e usurios (Por exemplo, acesso direto ao cliente). No entanto, em um longo prazo, a aplicao core-business grande pode haver novos contextos limitados (subsistemas) que precisam ser consistente com os sistemas legados mais velhos. Aqui, tambm, por causa da consistncia necessria, necessrio comunicar e integrar novo delimitada contextos com subsistemas legados mais antigos. Isso exige certas abordagens, como a camada de anti-corrupo.

A camada de Anti-Corrupo
Este provavelmente o padro mais importante em matria de integrao contextos delimitadas, especialmente quando confrontado com as equipes que esto mal se comunicar. Este padro tambm importante se um dos contextos limitados para integrar um contexto legado limitado, que pode ter uma linguagem ubqua diferente (e, portanto, completamente diferentes modelos), e voc no quer isso para afetar seus contextos limitados mais recentes. Para este tipo de situao, voc pode implementar um camada anti-corrupo, uma camada intermdia entre os diferentes contextos que executa as tradues necessrias (relacionados para modelar objetos e tambm para eventos de integrao).

Guia de tecnologia. NET para aplicaes de negcios

/ / 63

Modernizao dos sistemas estabelecidos utilizando o Anti-Corrupo Camada

Figura 5-38

Uma camada anti-corrupo constituda por trs tipos de componentes: adaptadores, tradutores, e fachadas. Em primeiro lugar, a fachada foi concebida para simplificar a comunicao com o outro contexto e expe a funcionalidade mnima possvel. importante entender que a fachada deve ser definida em termos de elementos do modelo do outro contexto, caso contrrio voc estaria misturando o traduo com o acesso ao outro sistema. Aps a criao de uma fachada, um adaptador colocado para modificar a interface / eventos de outro contexto e adapt-lo interface esperado pelo nosso contexto. Finalmente, voc pode usar um tradutor para mapear os elementos de nossa contexto para os elementos previstos da outra fachada contexto (ou vice-versa). A camada anti-corrupo tambm fundamental para o gerenciamento de eventos de integrao. Contextos delimitadas so independentes uns dos outros e modificado ou atualizado de maneira independente. Tais modificaes podem resultar em mudanas para os eventos que um contexto pode ser limitado publica. Estas alteraes podem incluir a introduo de um novo evento, deixando cair o uso de um evento, renomear um evento, ou mudar a definio de caso por adio ou remoo de informao na carga til. Um contexto de limitada deve ser robusto em face de mudanas que pode ser feita para outro contexto limitada. A camada anti-corrupo responsvel pela verificao de que a integrao de entrada eventos fazem sentido. Voc tambm pode usar a camada anti-corrupo para traduzir eventos de integrao de entrada. A implementao de uma camada anti-corrupo pode ser personalizado (simples. NET). Esta a abordagem inicial. Para contextos mais complexos, ou quando o subsistema de legado para ser estendido um produto do mercado (como o SAP ou qualquer outro ERP, etc), a integrao e as tradues pode ser em constante evoluo e se tornar muito complexo. Nesta situao, voc pode considerar o uso de uma plataforma de integrao especfico (Como Biztalk Server)-que oferece mais de 25 adaptadores que ligam a-pacotes de mercado e uma robusta infra-estrutura de mensagens cima do Windows Server ou o Windows Azure (IaaS), e tambm pode ligar para o Windows Azure Service Bus.

Guia de tecnologia. NET para aplicaes de negcios

/ / 64

6. Concluses
H muitas combinaes de abordagens, tecnologias, arquiteturas e padres para aplicar em aplicaes de negcios. Este orientao tenta posicionar um certo nmero de abordagens com base em prioridades de aplicao convencionais, mas que no deve ser feita to rgida, orientao prescritiva precisamente por causa do grande nmero de contextos em aplicativos de negcios. Pode haver excees lgicas a esta orientao, como aplicativos de negcios de pequeno e mdio porte que no so muito, mas deve ser mais de domnio de data-driven impulsionado devido constante mudana regras de domnio. Ou vice-versa subsistemas-garantia ou contextos limitados que esto claramente na sequncia de uma possam ser uma parte de uma grande aplicao de misso crtica orientada por abordagem embora dados. O principal objetivo deste guia posicionar as tecnologias da Microsoft em diferentes abordagens impulsionado pela aplicao e prioridades de negcios. Como voc categorizar sua aplicao depende completamente da sua contexto de aplicao e domnio especfico. O principal objectivo desta segmentao simplesmente fornecer uma maneira de visualizar e organizar as diferentes abordagens e tecnologia posies. Desenvolvimento de aplicaes customizadas muitas vezes mais uma arte do que uma cincia, por isso que no h nenhuma verdade prescritiva a seguir. As abordagens, tcnicas e tecnologias a utilizar dependem do contexto de aplicao, o domnio real para resolver, e sobre o contexto desenvolvedor equipe e conjunto de habilidades.

Guia de tecnologia. NET para aplicaes de negcios

/ / 65

Apndice A: migrao Silverlight caminhos


Como explicado neste guia, recipientes RIA esto sendo substitudos gradualmente por outras alternativas com suporte a dispositivos mais amplo (HTML5) ou integrao de dispositivos melhor (desenvolvimento nativo). No entanto, sua escolha e prazo pode ser diferente com base em seu atual investimentos e necessidades. Com o tempo, isso vai envolver mais HTML5 e aplicativos nativos e menos recipientes RIA, mas voc est em controle da deciso final e perodo de tempo. Se voc est usando o Silverlight, voc pode fazer essa transio gradualmente no perodo de sua escolha. tambm possvel que algumas partes do aplicativo precisa ser codificado em HTML5 e / ou Silverlight. Desde o Silverlight um plug-in, que pode ser usado dentro Contedo HTML. Se o cenrio mais adequado para um aplicativo nativo, o Silverlight tambm fornece uma boa ponte para plataformas apoio NET / XAML, como WPF no desktop, Windows Store Apps. modelo NET, ou mesmo (com as solues explicou anteriormente neste guia) dispositivos no-Microsoft. Porque a ltima verso do Silverlight suportado por 10 anos, voc pode fazer isso transio gradual enquanto ainda estiver usando a soluo madura e estvel Silverlight proporciona. Se voc tem uma grande aplicao que tem uma arquitetura monoltica, ou seja, o back-end totalmente integrado com a frente de fim de voc deve dissociar estas duas partes do sistema, de modo que vrios front-ends (HTML4, HTML5, Silverlight, mveis nativo) podem se conectar para o mesmo fim para trs. Alm disso, existem algumas aplicaes cujos requisitos so ainda apenas coberto por solues de embalagens de RIA (por exemplo, vdeo proteo de contedo) e, portanto, voc deve continuar com o investimento existente. Devido amplitude de cenrios diferentes, ea variedade de tipos de aplicativos, contexto e as prioridades, os caminhos de migrao em Tabela A-1 so recomendadas.

Tipo de aplicao atual e uso Silverlight


Soluo de mdia na Web, como Silverlight streaming de vdeo sistema rodando no navegador.

Contexto de aplicao e prioridades


Maximizar o alcance de usurios e multidispositivos de plataforma. Regulares recursos de mdia HTML5 seria bastar

Caminho recomendado
Migrar para HTML5 abordagens de desenvolvimento web para suportar todos os dispositivos de vrios fornecedores (tais como comprimidos, computadores e smartphones). Apesar de apoiar qualquer dispositivo tambm impactos sobre o formato e codecs de mdia voc necessidade de apoiar. IMPORTANTE: Como abordagem de transio, um fallback abordagem pode ser a melhor escolha. Se os suportes de cliente Silverlight, capacidades atuais em Silverlight (como suavestreaming ou DRM) so mais poderosos do que a mdia em HTML5. Ainda mais, alguns navegadores antigos apoiar Silverlight, mas eles no suportam HTML5.

Avanada soluo de mdia na web, como um Silverlight vdeo privado Sistema Smooth-Transmisso execuo no navegador.

Executar uma soluo de mdia avanada com capacidades ainda no suportados pelo Mdia HTML5 recursos, como 3D e DVR. Sistema num ambiente controlado onde a maioria baseia-se em PCs baseados em Windows ou Mac OS X computadores, em vez de chegar a qualquer tipo de dispositivos mveis.

O caminho recomendado manter a mdia atual aplicativo em Silverlight 5, que acompanha 10 anos de apoio. Se DRM necessria, ento Silverlight continua a ser um opo suportada. Planejar uma migrao progressiva uma vez apoia o HTML5 necessrios recursos avanados.

Guia de tecnologia. NET para aplicaes de negcios

/ / 66

Acesso Internet web application / site usando Silverlight in-browser.

Maximizar o alcance de usurios e multidispositivos de plataforma.

Migrar para HTML5 abordagens de desenvolvimento web, a suportar todos os dispositivos de vrios fornecedores (tais como comprimidos, computadores e smartphones). O caminho recomendado manter aplicativo atual em Silverlight 5, que acompanha 10 anos de apoio, enquanto planejando uma migrao progressiva para o futuro HTML5/JS. Leve em conta que o navegador a ser usado deve ser um navegador tradicional em execuo na rea de trabalho. IE "moderno browser "(estilo Windows Store) no suporta o Plug-in Silverlight.

Privado / negcio na web interno aplicao usando o Silverlight innavegador.

A aplicao um meio-garantia tipo de intervalo, em vez de uma crtica coreaplicao de negcio (em constante crescimento / evoluo). O aplicativo continuar funcionando em um ambiente controlado, onde o maioria baseada em baseado em Windows PCs ou computadores Mac OS X, em vez de chegar a qualquer tipo de dispositivos mveis. O aplicativo um core-crtica de aplicaes web de negcio, em constante crescendo / evoluindo ao longo dos anos.

O caminho recomendado para passar progressivamente o camada de apresentao da aplicao core-business para Web HTML5/JavaScript-based abordagens como ASP.NET SPA (Pedido Pgina nica) com base em ASP.NET MVC A evoluo aplicao est dirigindo um e bibliotecas JavaScript para MVVM (Knockout lib) e nova abordagem de modernizao e de qualquer outras bibliotecas, consumindo servios API Web ASP.NET. tipo de dispositivos mveis (como qualquer comprimido) tambm uma possibilidade de A atual camada de servios distribudos podem ser reutilizados ou determinados migraram para servios web-API no com um enorme cenrios. investimento. Leve em conta que o navegador a ser usado deve ser um navegador tradicional em execuo na rea de trabalho. IE "moderno browser "(estilo Windows Store) no suporta o Plug-in Silverlight. Privada negcio / interna aplicao desktop usando Silverlight fora do browser A aplicao um meio-garantia tipo de intervalo, em vez de uma crtica coreaplicao de negcio (em constante crescimento / evoluo). O caminho recomendado manter aplicativo atual em Silverlight 5, que entregue com uma durao de 10 anos de apoio. No futuro, planejar uma migrao progressiva.

O aplicativo um core-crtica O caminho recomendado para manter a corrente aplicao desktop de negcios, camada de apresentao (no curto prazo), mas comear a planejar em constante crescimento / evoluo ao longo do uma migrao para uma aplicao Windows Store imersiva anos. (C # / XAML) se touch-cenrios so desejadas e onde o nova abordagem de desenvolvimento de aplicativos ser bastante E toque-cenrios so, possivelmente, semelhante a um aplicativo XAML atual Silverlight / com desejado, abandonando um tradicional MVVM, etc abordagem desktop. O aplicativo um core-crtica O caminho recomendado para manter a corrente aplicao desktop de negcios, camada de apresentao (no curto prazo), mas comear a planejar em constante crescimento / evoluo ao longo do uma migrao para novos contextos. Existem vrias anos. possibilidades aqui: Cenrio de mesa tradicional necessrio em vez de touch-cenrios. - Avaliar a migrao para um HTML5/JavaScript web abordagem camada de apresentao se um cenrio web cabe tudo o requisitos. - Migrar para o Windows Presentation Foundation (WPF), se voc quer sair do Silverlight, a migrao seria ser natural por causa da atual arquitetura dissociada. O WPF abordagem poderia ser bastante semelhante a uma corrente Silverlight aplicao XAML / com MVVM.

Tabela A-1

Guia de tecnologia. NET para aplicaes de negcios

/ / 67

Referncias
Portando Silverlight XAML / cdigo para um Aplicativo Windows Store (Windows) Migrar aplicaes Silverlight para O Windows loja de aplicativos Poltica de apoio Silverlight http://msdn.microsoft.com/en-us/library/windows/apps/xaml/br229571.aspx http://blogs.msdn.com/b/win8devsupport/archive/2012/11/12/port-a-silverlightaplicativo-para-windows-8.aspx http://support.microsoft.com/lifecycle/?LN=en-us&c2=12905

Apndice B: Posicionamento de acesso a dados tecnologias


em seu prprio software que utiliza os dados, trazendo assim o valor real para os seus clientes.

Ao longo dos anos, a Microsoft tem vindo a criar e evoluo das tecnologias de acesso a dados mais flexveis. Alguns so muito especializadas, outros so de uso geral, mas todos eles compartilham dois objetivos comuns: para ajudar os aplicativos acessem as informaes de que necessitam, e para ajudar a desenvolvedores de gastar menos tempo lidando com intrincados detalhes de armazenamento de dados, o que permite mais tempo concentrando-se

A seleo de uma tecnologia adequada para acessar dados deve considerar o tipo de fonte de dados que voc ter que trabalhar com e como voc deseja manipular os dados dentro do aplicativo. Algumas tecnologias so melhor adaptados para determinados cenrios. As prximas sees descrever as principais tecnologias e caractersticas que devem ser consideradas.

Entity Framework
Entity Framework (EF) a tecnologia de acesso a dados da Microsoft recomendado para novas aplicaes que precisam acessar relacional bancos de dados. EF um mapeador objeto-relacional (O / RM), que permite. NET para trabalhar com dados relacionais usando domnio de objetos especficos. Ele elimina a necessidade de a maior parte do cdigo de acesso a dados que os desenvolvedores geralmente precisa escrever. EF permite criar um modelo de escrita de cdigo (classes) ou utilizando diagramas visuais no EF Designer. Ambas estas abordagens podem ser utilizadas para alvo um banco de dados existente ou criar um novo banco de dados. EF recomendado quando voc deseja criar um modelo de entidade mapeada para um banco de dados relacional. Em um nvel superior, uma classe de entidade mapeado para uma ou vrias mesas que compreendem uma entidade complexa. A vantagem mais marcante da EF que o geralmente base de dados que funciona com ser transparente de muitas maneiras. Isto porque o modelo EF gera instrues SQL nativas necessrias para cada sistema de gerenciamento de banco de dados (DBMS), de modo que seria transparente se voc est trabalhando sobre o Microsoft SQL Server, Oracle, DB2, MySQL ou. Voc s precisa alterar o provedor EF relacionados a cada DBMS. (Na maioria dos casos, trata-se de nada mais do que mudar uma seqncia de conexo e regenerar o modelo EF). Assim, a EF apropriado quando a inteno usar um objeto Modelo Modelagem Papel (ORM) desenvolvimento baseado em um modelo de objeto, ento mapeado para um modelo relacional atravs de um flexvel esquema. Se voc usar o EF, voc tambm comumente usar o LINQ to Entities, tambm. Considere LINQ to Entities, se a inteno executar rigidez consultas em entidades usando uma sintaxe orientada a objetos, como LINQ. Tecnologias de terceiros O / RM: Existem muitas outras tecnologias boas (tais como S / MR como NHibernate, LinqConnect, DataObjects.net, BLToolkit, OpenAccess, e Subsonic) que no so fornecidos e suportados pela Microsoft, mas eles so bons aproxima-se, tambm. ADO.NET: Considere o uso de classes base ADO.NET se o acesso a um nvel mais baixo API necessria. Isto ir fornecer o controle completo (SQL declaraes, conexes de dados, etc), mas abandonar a transparncia para Relational Database Management System (RDBMS)

Guia de tecnologia. NET para aplicaes de negcios

/ / 68

sistemas fornecidos pela EF. Voc tambm pode precisar usar ADO.NET se voc precisar reutilizar inverses existentes (uso massivo de existentes armazenados ou legado de acesso a dados Building Blocks implementado usando ADO.NET). procedimentos Microsoft Sync Framework: Considere esta tecnologia, se voc est criando um aplicativo que deve suportar cenrios que so ocasionalmente desconectado / conectado ou que exigem cooperao entre as diferentes bases de dados. LINQ to XML: Considere esta tecnologia quando h uma ampla utilizao de documentos XML dentro de sua aplicao e voc quer para consult-los por meio de sintaxe LINQ. Bancos de dados e tecnologias NoSQL: NoSQL um termo genrico para um SGBD identificadas pela no-adeso ao utilizado Modelo de RDBMS. Os armazenamentos de dados que esto sob este termo no pode exigir esquemas de mesa fixa, pois eles geralmente evitar operaes de juno geralmente no usamesentenas SQL para manipulao de dados. A motivao para este tipo de arquitetura geralmente alta escalabilidade horizontal e alto otimizao para recuperao e anexando operaes, e muitas vezes os sistemas NoSQL oferecem pouca funcionalidade alm de armazenamento de registro (por exemplo, lojas de chave / valor). O reduzido flexibilidade de tempo de execuo em comparao com sistemas completos de SQL compensada por ganhos marcantes na escalabilidade e desempenho para determinados dados modelos. Bancos de dados NoSQL so teis quando se trabalha com uma enorme quantidade de dados quando a natureza do que os dados no requer uma modelo relacional. Os dados podem ser estruturados, mas NoSQL usado quando o que realmente importa a capacidade de armazenar e recuperar enorme quantidades de dados, em vez de usar as relaes entre os elementos. Exemplos de uso poderia ser a de armazenar milhes de chave / valor pares em um ou alguns arrays associativos. Atualmente, as principais fontes de dados NoSQL da Microsoft so tabelas do Windows Azure e Windows Azure Blobs. Existem tambm outros de terceiros recomendados fontes de dados NoSQL como MongoDb, Casandra, RavenDB, e CouchDB. A seleo de um NoSQL banco de dados / tecnologia depende totalmente do tipo de aplicao e os dados de acesso que voc precisa, porque eles so geralmente muito diferente sobre prs, os contras, uso e API (por exemplo, todos os sistemas de banco de dados NoSQL mencionados anteriormente so muito diferentes entre los). Essa uma das maiores diferenas ao comparar NoSQL para bancos de dados relacionais, que so muito semelhantes em relao uso (tabelas relacionais e se junta) e APIs (baseados em SQL). NoSQL APIs: Como a maioria das implementaes NoSQL so muito diferentes um do outro, eles geralmente tm cada um concreto e implementao API independente. Convenientemente, no entanto, muitos deles tm um NET API. E API de acesso at mesmo remoto (por exemplo, baseado em servios REST), como tabelas e blobs do Windows Azure. Big data: Big data uma coleo de conjuntos de dados to grande e complexo que se torna difcil para processar usando dados tradicional Os sistemas de processamento. A tendncia para os conjuntos de dados maiores devido informao adicional produzidos a partir de anlise de um conjunto grande em comparao a conjuntos distintos de menores, com a mesma quantidade total de dados, permitindo a correlao de ser de dados nico relacionados, encontradas para "spot "determinar a qualidade da pesquisa, e assim tendncias de negcios, por diante. Tamanhos Big Data esto variando de algumas dezenas de terabytes para muitos petabytes de dados em um nico conjunto de dados. Com essa dificuldade, uma nova plataforma de tecnologias de dados grandes necessrio para lidar com grandes quantidades de dados. Atualmente, o melhor exemplo provavelmente a plataforma de dados grande. Apache Hadoop Hadoop uma biblioteca de cdigo aberto projetado para lotes de processos conjuntos de dados macios em paralelo. Ele baseado no Hadoop Distributed File e consiste em utilitrios e bibliotecas para trabalhar com dados armazenados em clusters. Estes processos batch executado usando sistema (HDFS), diferentes tecnologias, incluindo Mapa / Reduzir empregos. Roadmap da Microsoft end-to-end para big data abraa Apache Hadoop atravs da distribuio de classe empresarial, solues baseadas em Hadoop tanto em Windows Server e Windows Azure. Esta distribuio empresa Microsoft Hadoop nomeado como HDInsight. Para saber mais sobre o roadmap da Microsoft para grande de dados, consulte a pgina da Microsoft Big Data (http://www.microsoft.com/bigdata/).

Guia de tecnologia. NET para aplicaes de negcios

/ / 69

Potrebbero piacerti anche