Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
//1
Contedo
QUEM DEVE USAR ESTE GUIDE................................................................................................................................................................................ 4 COMO USAR ESTE GUIA ......................................................................................................................................................................................... 5
3. Viso global ............................................................................................................................................................................................. 5
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
//2
//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
//4
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
//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
//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.
//7
Figura 3-4
//8
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
//9
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
/ / 10
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/
/ / 11
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.
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.
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
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.
/ / 12
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.
ASP.NET SPA
/ / 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
/ / 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.
SignalR
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/
/ / 15
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.
/ / 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.
/ / 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
/ / 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
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.
/ / 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
/ / 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
/ / 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
/ / 22
/ / 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
/ / 24
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
/ / 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
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
/ / 26
Figura 5-8
Tabela 5-1 recomenda quando usar cada tecnologia, dependendo do contexto de sua aplicao web e as suas prioridades.
Tabela 5-1
/ / 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.
/ / 28
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
/ / 29
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.
/ / 30
NET WinForms.
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
Figura 5-13
/ / 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.
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.
/ / 32
Citrix
/ / 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
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.
/ / 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
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.
/ / 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.)
/ / 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
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.
/ / 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.
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
Tabela 5-5
/ / 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."
Figura 5-20
/ / 39
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?
/ / 40
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.
Os sites do SharePoint
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
/ / 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
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.
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
/ / 42
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
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).
/ / 43
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
/ / 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
/ / 45
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.
Tabela 5-9
/ / 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
NET WinForms.
Tabela 5-10
/ / 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.
Modelo de Domnio
/ / 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)
Segurana
Esconderijo
Fontes de Dados
Desenvolvimento Infra-estrutura
/ / 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
/ / 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. "
/ / 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.
Ninject
StructureMap
Autofac
/ / 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).
/ / 53
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.
/ / 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
/ / 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 ".
/ / 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.
/ / 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.
Figura 5-33
/ / 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
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.
/ / 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/
/ / 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/
/ / 61
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.
/ / 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.
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).
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).
/ / 63
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.
/ / 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.
/ / 65
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.
/ / 66
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.
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
/ / 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
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)
/ / 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/).
/ / 69