privatliv & Cookies
denne side bruger cookies. Ved at fortsætte accepterer du deres brug. Lær mere, herunder hvordan du styrer cookies.
jeg har brugt tid i de sidste par måneder på at eksperimentere med den nye JavaScript API.
dette er den første af en planlagt serie af stillinger, der undersøger JS-API set fra en Microsoft Office-Udvikler.
den største fordel ved JS API er, at det giver dig mulighed for at skrive kode, der fungerer til iOS. JS API er stadig umoden, men gennemgår en hurtig udvikling af Microsoft Office-Udvidelsesteamet, med nye udgivelser af API ‘ en, der ankommer omtrent kvartalsvis.
JS API bruger JavaScript/TypeScript og HTML og CSS teknologier. Det vigtigste mål er:
- at arbejde på tværs af så mange forskellige endepunkter (mobil, tablet, sky, desktop).
- at målrette mod nutidens udviklere, der hovedsageligt eller udelukkende arbejder med internetteknologier .
API ‘ en udføres asynkront ved at stille API-interaktionerne i kø, indtil du anmoder om, at de udføres i en batch (kontekst.Sync()).
JavaScript& TypeScript
for VBA-eller C-udviklere er JavaScript et underligt, irriterende, men overraskende kraftfuldt sprog. For at nævne et par forskelle:
- variabler har ikke rigtig typer og er store og små bogstaver. Omfanget af variabler (kaldet leksikalsk omfang) er alvorligt underligt og synes ofte at fange selv erfarne JavaScript-udviklere.
- Arrays er ikke rigtig arrays og har kun en dimension, så du lærer hurtigt om arrays af arrays. De har ikke faste øvre grænser og kan være sparsomme. De har kraftfulde metoder som kort, reducere, skive og sortere. (Men det er virkelig svært at få JS array sort til at fungere på samme måde som en fremragende slags!)
- funktioner er førsteklasses borgere – Du kan videregive dem som variabler – anonyme/Lambda-funktioner understøttes fuldt ud-du har virkelig brug for at få dit hoved omkring dette!
- asynkron behandling håndteres af ting, der kaldes løfter, som kan kædes sammen med nogle vanskeligheder (denne situation er kendt som Pyramid Of Doom)
- JavaScript som et sprog ændrer sig stadig ret hurtigt og har funktioner, der måske eller måske ikke understøttes af bestemte bro. sere
- JavaScript ‘ s popularitet er delvist bundet op med og fodret med de mange meget kraftfulde og frit tilgængelige rammer (, …)
og forresten er JavaScript ikke en scriptsprogversion af Java: det er et helt andet sprog.
TypeScript er et forsøg fra Microsoft på at løse nogle af de mere ekstreme JavaScript-fejl.
TypeScript er dybest set en Transpiler – den samler TypeScript i JavaScript, så næsten alt, hvad der kan udføre JavaScript, også kan udføre transpileret TypeScript.
to store fordele ved TypeScript er:
- du kan tildele typer til variabler, og de har fornuftigt omfang!
- du kan bruge Async venter i stedet for løfter, som gør din kode meget mere læsbar og undgår Pyramid Of Doom.
API-teknologier sammenlignet
der er 4 hovedfamilier af API ‘er:
API’ er
denne API er den mest tæt integrerede og lavest offentligt tilgængelige grænseflade til API ‘ er:
- bedste ydeevne API
- lavt niveau interface kræver C programmering og hukommelse management færdigheder.
- Visual Studio IDE
- kører i processen.
- mest kapacitet til UDFs (multi-threaded, asynchronous, RTD, Cluster etc)
- dækker kun en delmængde af objektmodellen
- begrænset native UI support
- brugt som et fundamentlag af mange andre produkter/platforme/sprog (C++).Fcell Python, FCell F#…)
- vinduer Desktop kun
- ansøgning addin niveau kun
- kan bruge alle C og C++ rammer (Standard skabelon bibliotek, BOOST …)
denne API er den rigeste og mest udbredte API
- primære sprog VBA og VB6
- god ydelse
- bredeste objekt model support
- understøtter enkelt-threaded synkron UDFs
- kører i processen
- vinduer
- Mac OS desktops/laptops (men VBA kun med nogle 8949 >
- makrooptager giver lavt indgangspunkt
- indbygget, men gammel IDE til vinduer VBA
- kan indlejres i et dokument eller bruges som et addin på applikationsniveau.
- VBA stort set uændret i mange år og har kun en begrænset og døende ramme
COM-Interop API
denne API tilføjer et ekstra.net interop-lag oven på COM/Automatiseringsgrænsefladen. Ideelt set ville dette have været et nyttigt stopgap, indtil en ordentlig.net-grænseflade blev udviklet, men desværre skete det aldrig.
- dårlig ydelse
- kører i separat proces
- understøtter.net Rammer og sprog
- kun vinduer
- Visual Studio IDE
- primært applikationsniveau, men kan bindes til et dokument ved hjælp af VSTO
- ikke egnet til UDFs
- Microsofts tilbud er VSTO
produkter som f. eks.
JS-API Release 1.4
det nye barn på blokken! Dette er API ‘ en, der i øjeblikket udvikles aktivt af Microsoft, så det er meget et bevægeligt mål. Kommentarer nedenfor afspejler 1.4-versionen af API fra februar 2017.
- din kode kører uændret på tværs af flere endepunkter.
- men dette kan resultere i laveste fællesnævner støtte
- understøtter de mange JavaScript-rammer
- fungerer bedst med TypeScript
- god Internetsupport
- Office Store support
- kører i en separat bro. serproces
- kræver Internet: ingen offline kapacitet
- ingen udf-support i øjeblikket
- meget dårlig ydelse
- målrettet mod professionelle netudviklere
- Object Model support
- begrænset, men hurtigt voksende
- kun enkelt projektmappe: kan ikke kopiere mellem, åbne, lukke eller gemme projektmapper
- begrænset kontrol med beregning og skærmopdatering
- ingen Copy Paste Special
- Hybrid Cloud/ansøgning / projektmappe niveau
- Batched asynkron behandling kun
hvad næste?
mine næste blogindlæg på JS vil fokusere på udførelsen af JS-API.
hvis du vil lære mere om JS-API, anbefaler jeg at bygge Office Addins af Michael Latkovsky, som er udvikler på Microsoft Office-Udvidelsesteamet.