c # - Funktion køre og behandle på server/azurblå så send tilbage til apps og display

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bygge en applikation med metro-UI med C # til Window 8, på grund af Window 8 vil snart køre på tablet, og nu vidste jeg, at min ansøgning krævede meget forarbejdningskraft, og derfor kommer ideer ind i mit hjerte, hvad hvis Jeg kunne lave højpræstationsprocessen på serveren; enten få en anden VPS eller Azure til at behandle funktionerne og send derefter de behandlede funktionsresultater til Window 8 Metro-UI-applikationen?


Den højtydende funktion, jeg nævner om ::



  • ansigtsgenkendelse af billeder - genkend ansigt på server og fortæl resultatet

  • Generer billede - noget brugeroploadbillede vil sætte vandmærke og regenerere et nyt billede

  • Beskær billede - som facebook, beskær ansigtsdelen fra stort billede

  • Rediger billede - hvis afgrøden ikke er så rigtig, eller justeringen har fået et problem

  • Filtreringsdata - stor mængde data fra bruger, skal filtreres og indsættes til server

  • og andre ...



Hvad kommer i mine tanker er, WCF? men jeg lærer det aldrig i detaljer før .. nogen søgeord til forskning om disse problemer ?? Tak for dit svar.=D

Bedste reference


Dybest set kan enhver teknologi, der tillader kommunikation mellem din ansøgning og en server, gøre hvad du spørger så længe. Hvis du implementerer begge sider, kan du definere et hvilket som helst relevant aspekt som protokol, sikkerhed osv.


Med hensyn til Azur og WCF:


Ja, du kan implementere det, du spørger via WCF på Azure ... Azure og WCF ved sig selv ikke ved noget om billeder eller lignende ting - det er op til dig at implementere, hvad du vil ...


Du kan bruge WCF selv uden Azur ... i grunden WCF har en vis støtte til loadbalancing/routing osv. Indbygget, så du kan endda gå og opsætte nogle webfarm til den tunge løftning ...


WCF kan bruge forskellige protokoller - nogle er mere bærbare med hensyn til andre platforme (f.eks. HTTP/SOAP, som kan bruges sammen med iOS eller Android), andre er mere effektive (som en binær TCP-baseret protokol ...). Nogle er mere firewall-venlige (som http) osv.
Hvilket at vælge afhænger virkelig meget af hvad du har brug for ...


Med hensyn til Metro:


Metro Apps kan implementeres med C #, JavaScript etc. - afhængigt af din situation kan det være en mulighed for at implementere dette som en kombination af HTML5/JavaScript-klientsiden og WCF/C # server-side ...


Med hensyn til billedredigering mv .:


Sådan implementeres dette afhængigt af de funktioner, du vil give brugeren ... nogle ting kan opnås ved at bruge nedskaleret version af billedklientsiden (som røde øjne-korrektion), og nogle er ret komplekse (f.eks. end-farvekorrektion), da de har brug for flere aspekter (høj opløsning, farvehåndtering mv.).


Der er flere .NET-baserede billedbehandlingsbiblioteker derude (gratis og kommercielt), der tilbyder en bred vifte af billedrelaterede funktioner ... nogle har sky-specifikke grænseflader (http og/eller nogle brugergrænseflader osv.). Sørg for at kontrollere licenser, før du bruger biblioteker i skyen (Azure eller lignende) ...


Rediger billede/Filtreringsdata er et bredt felt, der ikke er specifikt nok ... Sammenlign billede (i ansigtet) synes at betyde, at du vil gøre en vis anerkendelse ... dette er et meget komplekst og bredt område, men meget godt muligt med .NET...


Da du ikke giver detaljer om brugssager/scenarier, er det svært at give specifikke råd. Du er velkommen til at tilføje flere detaljer, så svarene kan være mere specifikke ...


UPDATE - Som pr. kommentar ønsker OP'en stort set at implementere noget, der ligner ansigtsgenkendelse, der findes på facebook:


Implemeting ansigtsgenkendelse svarende til facebook er et meget stort projekt IMHO ... algoritmerne til anerkendelse er komplekse, og de 'gode' udvikles normalt internt og ikke sælges/licenseret til andre ... så du bliver nødt til at finde nogle high- kvalitetsbilledbehandlingsbibliotek og udvikle/implementere din algoritme oven på biblioteket. Der er nogle gode udgangspunkter for sådanne algoritmer, men i det væsentlige skal du gøre en masse arbejde for at forbedre/forbedre dem ... til dette vil du have brug for mange testdata/billeder mv.


Hvad angår vandmærker er dette et andet komplekst område ... nogle teknologier er open source, de fleste er ikke robuste afhængigt af hvad du vil opnå ... vandmærkevariation varierer meget ... behøver det at være robust nok til at nogen udskriver og scanner det tilbage? eller for nogen at tage et billede fra en skærm? eller bare for skalering?


Et andet aspekt er den juridiske side af dette ... flere relevante aspekter af sådanne algoritmer er patenterede, hvilket betyder at du måske skal erhverve de rigtige licenser ... privatliv er et andet juridisk aspekt at huske på, når du implementerer denne form for ansøgning ...


UPDATE 2 - som pr. kommentar:


Nogle generelle søgeord for implementering af en proces, der kalder funktioner på en server og får resultaterne tilbage, er 'SOAP', 'WCF', 'WebService', 'JSON'.


Du kan finde nogle generelle oplysninger:



  • [1] http://msdn.microsoft.com/en-us/netframework/aa663324

  • [2] http://msdn.microsoft.com/en-us/library/dd163896.aspx

  • [3] http://homepages.ius.edu/rwisman/b438/html/net.htm