 |
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
ITpro.fi > Asiantuntijaryhmät > Ohjelmistokehitys
|
|
|

|
Ryhmän vetäjänä toimii Jani Järvinen, MVP - Visual C# | |
|
12.3.2010Visual Studio -kehittäjien keskuudessa .NET 3.5:n myötä esitelty Entity Framework tuntuu olevan suosittu tapa käsitellä tietokantojen tietoja. Entity Data Model (EDM) onkin kätevä tapa luoda oliomalli SQL Server -tietokannan pohjalta, mutta aivan ilman ongelmia tämä ei aina suju. EDM on nimittäin kranttu sille, mitä SQL Serverin versiota käytetään. Otetaan esimerkki: olet omalle kehityskoneellesi asentanut SQL Server 2008:n ajatellen, että käytät uusimpia versioita. Tuotantopalvelimella on kuitenkin vanhempi SQL Server 2005, mutta koska tietokantasi käyttää perustietotyyppejä eikä muutenkaan mitään erityisiä vain 2008:n tukemia ominaisuuksia, ajattelet että yhteensopivuus on taattu. Kuitenkin kun siirrät sovelluksesi tuotantoon käyttämään SQL Server 2005 -kantaa, saatat saada virheilmoituksia erityisesti datetime2-tietotyypistä. Mutta vaikka kuinka etsit, et löydä sovelluksestasi (tai tietokannan rakenteesta) yhtään viittausta tähän tietotyyppiin. Missä siis vika? Vika on siinä, että EDM:ää luotaessa Visual Studio liittää .edmx-tiedostoon merkinnän SQL Serverin versiosta: joko 2008 tai 2005. Jos tämä arvo on 2008 mutta SQL Server on pykälää vanhempaa versiota, saat virheilmoituksia tuotannossa. Onneksi virhe on helppo korjata: avaa .edmx-tiedosto sopivaa XML- tai tekstieditoriin (Visual Studiossa tämä onnistuu Solution Exploresissa napsauttamalla tiedostoa oikealla hiiren napilla ja valitsemalla Open With), ja etsimällä tiedoston alusta Schema-elementin (tyypillisesti rivi seitsemän): <?xml version="1.0" encoding="utf-8"?> <edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx"> <!-- EF Runtime content --> <edmx:Runtime> <!-- SSDL content --> <edmx:StorageModels> <Schema Namespace="NorthwindModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" ... Schema-elementistä löydät attribuutin nimeltä ProviderManifestToken. Jos sen arvo on 2008, vaihda arvoksi 2005 ja käännä sovellus uudelleen. Sen jälkeen sovelluksesi alkaa toimia myös vanhemman SQL Serverin kanssa. Ainoa huono puoli on, että jos joudut generoimaan mallin uudestaan, sama korjaus on tehtävä käsin uudelleen. 25.2.2010Outlookin PST-tiedostot ovat olleet jo vuosikaudet monelle hyvinkin tärkeä tiedostomuoto sähköpostin tallentamiseen. Välillä ne ovat helpottaneet tiedonsiirtoa koneelta toiselle, ja välillä aiheuttaneet harmaita hiuksia vaikkapa korruptoitumalla juuri kun pitäisi päästä tietoihin käsiksi. Onneksi Microsoft on viime viikolla julkaissut PST-tiedostojen speksit. Tekninen dokumentaatio on koottu parisataasivuisiin PDF-tiedostoon, josta ainakin ohjelmoijat saavat tärkeää informaatiota siitä, miten PST-tiedostot on rakennettu. Vaikka markkinoilla onkin jo pitkään ollut ohjelmistoja joilla esimerkiksi rikki menneistä PST-tiedostoista on voinut palauttaa tietoja, on tämä julkinen rakennekuvaus varmasti omiaan helpottamaan ohjelmistovalmistajien työtä. Mainittu dokumentaatio löytyy MSDN-sivustolta nimellä “Outlook Personal Folders File Format (.pst) Structure Specification”. 24.2.2010Yksi Windows 7:n uusista ominaisuuksista on tekniikka nimeltä Sensor and Location Platform, lyhyesti SLP. Tämä tekniikan tarkoituksena on helpottaa erilaisten mittalaitteiden (esim. lämpötila-, liike- ja vaikkapa valoisuusmittareiden) käyttöä ja ohjelmointia. Perinteisesti jokaista laitetta on ohjelmoitu eri tavoin, mikä on ollut kehittäjille hankalaa. Windows 7:n myös SLP pyrkii luomaan kaikille laitteille yhteisen ohjelmointimallin, jolloin yhden COM-pohjaisen ohjelmointirajapinnan kautta voidaan helpommin ohjelmoida erityyppisiä laitteita. .NET-ohjelmoijille on tarjolla Windows API Code Packissä valmiita luokkia, jotka toimivat näiden COM-luokkien päällä helpottaen ohjelmointia vaikkapa C#:sta käsin. Geneeristen mittalaitteiden ohjelmoinnin lisäksi SLP tuo mukanaan tuen paikannuslaitteiden helpolle käytölle. Windows 7:ssa Ohjauspaneeliin (Control Panel) tulee uusi kohta “Location and other sensors”, josta voidaan hallita yhteensopivia mitta- ja paikannuslaitteita. Näiden laitteiden ajurit ovat muuten käyttäjätilan ajureita (user-mode), eli niitä on helppo ohjelmoida itsekin, ainakin kernel-ajureihin verrattuna. Kehittäjiä kiinnostaa varmasti myös se, että .NET 4.0:n myös Windows 7 -yhteensopivia paikannuslaitteita voidaan ohjelmoida uuden System.Device.Location-nimiavaruuden luokkien avulla. Ideana on, että kunhan laite on yhteensopiva, sitä ohjelmoidaan samoilla API-kutsuilla riippumatta siitä onko laittteen paikannustoiminto GPS-, kännykkä- tms. -pohjainen. Alkuun pääsee GeoCoordinateWatcher-luokan avulla, josta löytyy kätevästi nimetty Start-metodi. Sillä pääsee liikkeelle, ja paikkatiedon voi hetken päästä lukea Position-ominaisuudesta. Vielä kun jostain löytyisi lista laitteista, jotka ovat jo yhteensopivia Windows 7:n Sensor and Location Platformin kanssa. Sitä metsästäessä... 21.2.2010Microsoft julkaisi Barcelonassa 15.2. Windows Phone 7 Series –puhelinalustan. Alusta sai kelpo vastaanoton, ja johti jopa siihen, että osa lehdistöstä ryhtyi luonnehtimaan iPhonen käyttöliittymää vanhentuneeksi. Lisätietoja Windows Phone 7 Seriesistä saa tuotesarjan omalta saitilta. WP7:n kehittäjäkokemuksesta luvattiin kertoa vasta MIX10-tapahtumassa muutaman viikon päästä, mutta kuumilla tiedoilla on tapana vuotaa. Niinpä nyt onkin jo selvää, että WP7:n ohjelmointialusta tulee olemaan hyvin pitkälti .NET-pohjainen, ja tarkemmin ottaen taustatuotteet ovat Silverlight ja XNA Framework. XNA:n mukanaolo onkin luontevaa, sillä WP7:ssa on vahvasti mukana myös XBoxista tuttu Live-pelaaminen. XNA:n alkuperäinen lupaus yhden koodin kääntämisestä niin PC:lle kuin konsolillekin tuskin laajenee tätä myötä mobiilimaailmaan, mutta ainakin pelikehittäjät voivat hyödyntää täysveristen pelien toteutusratkaisuja jatkossa entistä helpommin myös mobiilimaailmassa. WP7-puhelimet tulevat markkinoille joulumyyntiin. 10.2.2010Microsoft julkaisi eilen Visual Studio 2010:stä ja .NET 4.0:sta ensimmäisen Release Candidate -version (RC 1). Tätä versiota osattiinkin jo odottaa, sillä varsinaisen RTM-version pitäisi olla valmis jo huhtikuussa. Scott Guthrien blogista löytyy tuttuun tapaan lisätietoja uudesta versiosta, jonka suunnittelussa on keskitytty varsinkin IDE:n suorituskykyvyn parantamiseen. Varsinainen lataussivusto löytyy täältä. Muistahan antaa palautetta, joko Connect-palvelun kautta, tai esim. vastaamalla tähän kyselyyn. Ei siis muuta kun piuhat kuumiksi! 5.2.2010ASP.NET MVC:n tulevasta kakkosversiosta on eilen tullut ulos Release Candidate 2 -versio (RC 2). Uusia ominaisuuksia ovat mm. parempi tietojen validiointi, HtmlHelper-olion vahva tyypitystuki sekä jQuery 1.4.1 –tuki vakiona. RC2:n voi ladata Downloads-sivustolta, ja tarkempi postaus ominaisuuksista löytyy täältä. 29.1.2010Jo pidemmän aikaa Ruby- ja Python-ohjelmointikielistä on ollut saatavilla .NET-pohjaiset Iron-toteutukset IronRuby ja IronPython. Nyt joukkoon on liittynyt länsinaapuristamme liikkelle lähtenyt IronJS, jonka tarkoitus on siis toteuttaa JavaScript-moottori .NET:n päälle. Projekti on avoimen lähdekoodin projekti Ms-PL -lisenssillä, ja löytyy GitHubista. Suorituskyvyn kannalta tulokset voi arvata, eli .NET-toteutus on selvästi perinteisiä tulkattavia versioita vauhdikkaampi. Nyt ollaan menossa alpha-tasoisessa koodissa, joten valmiiseen toteutukseen on tosin vielä matkaa. Jos projekti kiinnostaa, käy tutustumassa projektin pääsivuilla asiaan. 21.1.2010
Käyttöliittymiä suunnitellessa tulee usein tarvetta protoiluun. Kenties asiakkaille halutaan esitellä nopeasti muokattavissa olevia malleja, joiden pohjalta keskustelu jatkosuunnittelusta konkretisoituu. Protoiluun on tietysti useitakin erilaisia ratkaisuja (eräs low-tech -ratkaisu on vaikkapa fläppitaulu tai PowerPoint-esitys), mutta jos sattuu olemaan tekemässä WPF- tai Silverlight-sovelluksia, voi käyttää apuna Expression Blend 3:n SketchFlow-ominaisuutta.
SketchFlow kuuluu Blend 3 -ohjelmistoon, ja se on tarkoitettu juurikin protoiluun. SketchFlowin avulla piirretään normaaleja WPF- tai Silverlight-käyttöliittymiä, kuitenkin käyttäen normaalien kontrollien sijaan erityisiä kontrolleja, jotka näyttävät käsin piirretyiltä. Käsin piirrettyjen kontrollien käyttö on tärkeää siksi, ettei huomio kiinnittyisi kontrollien ulkoasuun, vaan toiminnallisuuteen sekä esimerkiksi liikkumiseen ruutujen/lomakkeiden välillä (SketchFlow-termein screen).
Alkuun SketchFlowlla
SketchFlown käyttö vaatii erillisen projektin avaamisen Blendiin. Valitaan siis File-valikosta uusi projekti:

Sekä Silverlight- että WPF-projekteille on omat SketchFlow-projektimallinsa. Tässä valitaan WPF-sovelluksille sopiva malli. Kun projekti on luotu Blendiin, ruudulla pitäisi näkyä tyhjä valkoinen Screen 1. Nyt voidaan mennä Assets-ikkunaan ja valita sieltä kohta SketchFlow, ja edelleen sen alta kohta Styles/SketchStyles.

Tästä kohdasta löytyy joukko kontrolleja, joilla voidaan suunnitella karkeasti sovelluksen käyttöliittymä ruutu kerrallaan. Kontrolleja voidaan pudottaa ruutuun kuten mitä tahansa muitakin WPF-kontrolleja:

Ruutuja voidaan helposti luoda lisää käyttämällä lomakesuunnittelijan alta löytyvää SketchFlow Map -toimintoa käyttäen. Tämän kartan ideana on määritellä liikkuminen ruutujen välillä. Pienillä ruutua esittävän ikonin alle ilmestyvillä napeilla on helppo lisätä uusia ruutuja sovellukseen.
Proton esittely ja kommentointi
Kun proto on edellä kuvatulla keinoilla suunniteltu, voidaan prototyypistä tehdä ajettava sovellus (kokoa kertyy pakattuna noin pari megaa), joka voidaan lähettää asiakkaalle vaikkapa sähköpostilla. Asiakas voi ajaa prototyypin erillisessä Player-ohjelmassa (kuuluu Blendiin), ja käyttää sitä liikkumaan ruutujen välillä navigaatio-toimintojen avulla. Navigaatiovaihtoehdot perustuvat suoraan aiemmin tehtyyn ruutukarttaan (map).

Player on siitä kätevä, että käyttäjä voi käyttää sitä palautteen antamiseen. Ruutujen päälle voidaan piirtää korostusvärillä, ja sanallistakin palautetta voidaan antaa ruutukohtaisesti. Palautteen voi tallentaa levylle yhdeksi tiedostoksi, ja tämä tiedosto voidaan lähettää takaisin suunnittelijalle/kehittäjälle. Palautteen saa sitten näkyviin uudelleen Blendissä avaamalla luodun XML-tiedoston (tiedostopääte on .feedback) Feedback-ikkunassa.

Visuaalinen palaute taas näkyy suoraan ruudulla:

Yhteenveto
SketchFlow on näppärä tapa tehdä käyttöliittymäprotoja, varsinkin jos sattuu olemaan tekemässä WPF- tai Silverlight-sovelluksia. Hienoa on, että ruutujen välillä liikkuminen on tehty helpoksi. Myös palautteen kerääminen hoituu näppärästi, varsinkin jos suunnittelija/kehittäjä ja käyttäjä/asiakas eivät pääse istumaan saman pöydän ääreen. 5.1.2010Microsoft julkisti viimeinkin myös euro-pohjaiset hinnat Windows Azure -pilvialustalle. Hinnat löytyvät jo aiemmin käytössä olleelta hinnastosivulta, mutta uutta on, että nyt kohdemaaksi voi valita Finland, jolloin hinnat näkyvät euroissa. Tässä nopea yhteenveto perushinnoista: Windows Azure - Compute
- Small instance (default): € 0.0852 per hour
- Medium instance: € 0.1703 per hour
- Large instance: € 0.3405 per hour
- Extra large instance: € 0.6809 per hour
- Storage
- € 0.1064 per GB stored per month
- € 0.0071 per 10,000 storage transactions
- Content Delivery Network (CDN)
- Service currently available as a Community Technology Preview (CTP) at no charge
SQL Azure - Web Edition – Up to 1 GB relational database
- € 7.085 per database per month
- Business Edition – Up to 10 GB relational database
- € 70.913 per database per month
AppFabric - Access Control
- € 1.4114 per 100,000 transactions
- Service Bus
- € 2.8298 per connection on a “pay-as-you-go” basis
- Pack of 5 connections € 7.0566
- Pack of 25 connections € 35.2827
- Pack of 100 connectionss € 141.1308
- Pack of 500 connections € 705.654
Data Transfers - North America and Europe regions
- € 0.071 per GB in
- € 0.1064 per GB out
- Asia Pacific Region
- € 0.2128 per GB in
- € 0.3192 per GB out.
Lisää hintoja löytyy siis Azuren sivuilta. 2.1.2010Muutaman kuukauden tauon jälkeen tuli jälleen tarvetta tutustua Bing-karttapalveluihin ja erityisesti niiden liittämiseen omiin web-sovelluksiin. Vielä syksyllä ongelmana oli, että Live Search -palvelusta siirtyminen Bing Maps –brändin alle oli kesken, eivätkä kehittäjien SDK-paketit siksi enää toimineen uusien Binh-palveluiden kanssa. Nyt tämä näyttäisi korjaantuneen. Tässä linkit kahteen hyödylliseen SDK-pakettiin: Nämä uudet kehittäjäpaketit on päivitetty marras- ja joulukuun päiväyksin, joten suhteellisen tuoretta tavaraa on tarjolla. Hyvää Uutta Vuotta 2010!
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /asiantuntijaryhmat/ohjelmistokehitys/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|