Per Ahlberg Developer Evangelist, DPE Microsoft AB Välkomna!!! Per Ahlberg Developer Evangelist, DPE Microsoft AB
Varför ”The Code Machine”? Träffa er som utvecklar applikationer och lösningar Informera och utbilda Diskutera Svara på frågor Fokus på Microsoft .NET Olika kod scenarier: ASP.NET, Mobilitet, COM+, språk Uppgradering, .NET/Java Kod, kod, och mer kod
Mer resurser för Er ”Code Machine” kommer att fortsätta MSDN TV Uppgradering Mer om Office 2003 SQL Server ”Yukon” MSDN TV Ni bestämmer innehållet www.microsoft.com/sverige/msdn/msdntv Web Communitys Chatta med oss Support kvällar Artiklar
Hur kan vi bli bättre? Era utvärderingar är viktiga! Betygsätt innehåll, talare, relevans Kommentera gärna Kommentarer från förra kvartalet: Kod exempel i C# alt. VB.NET För hög/låg nivå… För högt tempo/för svåra demo För mycket ”svensk-engelska” För olika ämne Inget för C++ utvecklare
Resurser för utvecklare Utbildning Kurser och litteratur TechEd (Juli, Barcelona), PDC (Oktober,LA) Lokala utvecklarkonferenser CTEC kurser Utvecklargrupper Programmering Arkitektur och design ”Regional Directors”
MSDN Prenumerationer Prioriterad tillgång till mjukvara Automatisk publicering, månadsvis Library Operating Systems Professional Enterprise Universal
Vilka är vi som är här?
Rika klienter Per Ahlberg
Hur såg det ut tidigare? Enklare lösningar Avancerade lösningar Skrivs internt på företaget Skrivs i Office/VBA, Visual Basic 6 ActiveX kontroller i HTML sidor för distribution Många ASP lösningar, trots allt rätt krävande Oftast direkt kopplade till databaser i LAN Via ODBC etc. Relativt få DCOM lösningar Avancerade lösningar Fler skiktade lösningar med DCOM alt. egna protokoll C++ MFC applikationer
Vad går utvecklingen? För enklare lösningar: Avancerade lösningar Skrivs i ASP.NET Enklare distribution, snabbare drift/underhåll Ribban har blivit högre för webblösning Vi får snyggare/bättre webblösningar Skrivs i InfoPath Office 2003 Mer smarta klienter Avancerade lösningar Blandning mellan ASP.NET och Windows applikationer Webservices VB.NET, C#
Rika klienter – typiska fördelar Bättre UI Enklare att anpassa kulturellt Bättre grafik! Håller ”state” Dvs. lätt att hålla värde (på klienten) Använder den kraft som finns i maskinen Multitrådning Många appl. blir enklare och snabbare att jobba med Tillgång till alla andra resurser som finns på klienten Office Skrivare
Multitrådade applikationer Enkelt i .NET System.Treading namespace System.Treading.Tread Använd en ”Tråd klass” för att skicka parametrar Många andra funktioner körs på egna trådar Asynkrona Webservices Grafiska komponenter Mellan trådar Det finns funktioner för att låsa resurser (eg. objekt) mellan trådar Använd ”call-back” funktioner för asynkron hantering Använd Delegater för kommunikation mellan trådar Används för mycket annat också!
Asynkrona webservices Demo Asynkrona webservices TCMDemo_Async
Utskrift från rika klienter Enklare i .NET Fortfarande rätt svårt om man skall göra det själv System.Drawing.Printing namespace Använd Crystal reporter Bättre än nånsin Rapport generering på klienten eller servern Kommunikation via webservices Bättre förhandsgranskning, generering av PDF-filer Använd Word Enkelt att ändra mallen Bra för blanketter med mera
Demo Utskrift TCMDemo_printing
Vad är en globaliserad applikation? Hanterar internationell data Exempel datum, nummer format, kalender, sortering Inmatning och visning på kultur 12.000,00 för de-DE, 12,000.00 fö en-US Feb 3rd, 2001 kan visas som 03/02/01 en-GB 01/02/03 ja-JP 02/03/01 en-US World-wide binaries Endast en ”core binaries” som används för många kulturer Ny marknad? Bara lägg till ett översätt UI
Inbyggt Internationellt stöd Kultur medvetna API, som System.Globalization CultureInfo DateTimeFormatInfo NumberFormatInfo CompareString System DateTime.ToString Decimal.ToString Kontroller som använder dessa API, som WindowsForms DateTime picker
Globalisering detaljer System.Globalization.CultureInfo Ett antal kultur specifika inställningar CurrentCulture Datum och nummer formatering Sträng jämförelse mm CurrentUICulture Väljer språk (vilket språk UI skall ladda) Kan sättas per tråd
Sätta CurrentCulture, CurrentUICulture Underförstått CurrentUICulture Plockas från GetUserDefaultUILanguage Kan ändras av användaren Annars = installerat språk Operativsystemets språk resurser CurrentCulture Hämtas från GetUserDefaultLCID Ändras vid ändringar i kontrollpanelen, ”Regional Options”, ”Set Locale”
Sätta CurrentCulture, CurrentUICulture Specifikt I ett individuellt som API som tar kultur som parameter Thread.CurrentThread.CurrentUICulture = new CultureInfo(“de”) Thread.CurrentThread.CurrentCulture = new CultureInfo(“de-DE”) DateTime.Parse(strMyDate, “en-NZ”)
Demo Kultur parametrar i API TCMDemo_Cultures
Kontrollpanelen Som standard, kontrollpanelens kultur påverkar CurrentCulture, inte CurrentUICulture För att få dom att ändras tillsammans, använd Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture
Om jag inte vill att formatering skall ändras? För UI, använd kultur specifik formatering Vissa komponenter behöver icke formaterad data, som 1,111.11 MM/DD/YYYY Använd: CultureInfo.InvariantCulture
“Localization” Separata översättningsbara resurser Använd ”Resource Manager” för att ladda dom Hård koda inte resurser Resource manager Laddar resurser per ”UIculture” Finns i System.resources namespace
Laddning av resurser Skapa en ”Resource Manager” Exempel RM konstruktor anger från vilken fil som resursen skall laddas ”Resource manager” både strängar och objekt Exempel RM.GetString (“string1”, “en-NZ“) RM.GetString (“string1”) RM.GetObject(“Button1.Cursor”) Laddar resurser baserat på Thread.CurrentThread.CurrentUICulture …
TCMDemo_Globalisering Laddning av resurser TCMDemo_Globalisering
Resurs filer, struktur
“Localization” Namnsättning .resources files: <myproject>.<xx-XX>.resources Satellite assemblies <myproject>.resources.dll Katalog placering för ”Satellite assemblies”: Underkataloger på kultur, xx eller xx-XX Myproject.dll \fr\myproject.resources.dll \de-DE\myproject.resources.dll
Skapa en ”Satellite Assemblies” Skapa en/flera resursfiler Som en textfil - .txt Som en XML fil - .resx Kör resgen.exe Ger en Binär .resources fil Kör al.exe Ger en separat ”Satellite Assemblies” Du kan även kompilera in resurserna i en ”portable executable (PE) image” Eller använd Visual Studio!
TCMDemo_MultiLanguage Flerspråksstöd TCMDemo_MultiLanguage
Hämta och köra appl. från webben Enkel distribution Både som WinForms eller Windows Control .EXE (System.Windows.Forms.Form) .DLL (System.Windows.Forms.UserControl) <html><body><a href=”foo.exe">Call executable</a></body></html> … <object id=“WebControl1“ classid="http:Control.dll#Control.WebControl1" height="300" width="300"> <param name=“Value1" value=“per"> </object>
Nedladdning av applikationer Första gången: http://www.microsoft.com/foo/foo.exe HTTP request: GET /foo.exe HTTP/1.1 …
Nedladdning av applikationer Server svar: … Content-Type: application/octet-stream Accept-Ranges: bytes Last-Modified: Fri, 01 Feb 2002 01:41:16 GMT ETag: "50aae089c1aac11:916" Content-Length: 45056 <<stream of bytes from foo.exe>>
Nedladdning av applikationer Lagras på två ställen: Browser internet cache .NET download cache c:\windows\assembly\Download\ Gacutil, använd /ldl eller /cdl
Nedladdning av applikationer Om Assembly finns i ”cachen”: HTTP request: …. If-Modified-Since: Fri, 01 Feb 2002 01:41:16 GMT If-None-Match: "50aae089c1aac11:916" Server svar: … Date: Fri, 01 Feb 2002 02:42:03 GMT ETag: "a0fa92bc8aac11:916" Content-Length: 0
Hämta och ladda Assembly från kod Om Assembly finns i ” AppBase” behövs det ej! AppBase kan dock vara lokal katalog System.Reflection [Assembly].LoadFrom(…) Activator.CreateInstance(…)
Demo Windows Forms i IE TCMDemo_WindowsForm
string appbase = AppDomain.CurrentDomain.BaseDirectory Sökning av Assembly Om dom inte finns i egen katalog Global Assembly Cache (GAC) Download cache Hämtas hos original servern (AppBase) string appbase = AppDomain.CurrentDomain.BaseDirectory
Windows Forms Controls i IE Demo Windows Forms Controls i IE TCMDemo_FormsControl
Säkerhet – det lata alternativet Ändra säkerhet på ”Internet zon” Lägg till URL i ”Trustet sites” listan
Säkerhet – med publika nycklar Skapa en publik nyckel (sn.exe) Använd en gemensam publik nyckel Kör ConfigWizards.exe Lita på alla Assemblies med samma publika nyckel
Rika klienter kommer faktiskt att öka. - Tack vare Rika klienter kommer faktiskt att öka! - Tack vare .NET - Tack vare Webservices
Office 2003 Per Ahlberg
Nyheter i Office 2003 Utökat XML Stöd i alla produkter "Visual Studio Tools for Office“ Office InfoPath Smart Documents Smart Tags, Version 2
XML stödet i Office Word 2003 Inbyggt XML Stöd Eget filformat Templates kan innehålla XML schema Du kan spara endast data eller hela dokumentet Ett world dok. kan nu innehålla XML taggar Skapa XML taggar helt intuitivt Kan konsumera webservices Via smart dokument ”Task panel” ”Live” eller statiskt XML i Word dokumentet
XML Stödet i Office Excel 2003 Utökat XML stöd Koppla direkt till Webservices (som en klient) Mappning mellan XML ”spreadsheet” och egen definierade XML Schema Importera/Exportera data mellan Webservices Smart Documents
XML stödet i Office Access 2003 Extrahera XML direkt från en eller flera tabeller Söka och välja ut data för export tex. till ett email Import Importera data som refereras med XSD Skapa XSLT för transformering av data
XML stödet i Office Visio 2003 Spara diagram som Visio XML fil Kan innehålla data XML schema
XML stödet i Office Frontpage 2003 Skapa XSLT med grafiskt stöd verktyg XSLT data views rapport verktyg Sortering Gruppering Filtrering
Demo XML stödet i Office 2003
Microsoft Office InfoPath 2003 Enkelt formulär verktyg som bygger på XML schema ”Taggar” dina fält mot XML element Använder XSLT för visning av formulär Formulärhantering Komplexa formulär med hierarkiska strukturer ”freeform” text Tabeller Data validering Data aggregering Multipla vyer Kopplas direkt till en webservice Eller lagra informationen som en XML-fil
Demo InfoPath
"Visual Studio Tools for Office“ Addin till visual studio 2003 Hämtas på nätet Installera först Office 2003 “primary interop assemblies (PIAs)” installeras då automatiskt Använd ”managed” kod mot Word/Excel Samma objekt modell som innan Går att använda samma trick som innan – spela in macro, copy/paste
Demo "Visual Studio Tools for Office”
Avslutning Per Ahlberg
Vad har vi pratat om i dag? Rika klienter Enkelt att göra avancerade lösningar i Visual Studio .NET Denna typ av klienter kommer alltid att behövas Kommunicerar med XML Web Services Nya möjligheter för distribution/uppdatering Office 2003 Dess kraftfulla integrering med Visual Studio .NET XML Stödet Smart tags Info Path
Kvar att prata om? Rika klienter Office 2003 Avancerade n-lagers lösningar Säkerhet Avancerad utskrifter Crystal Reporter på servern Många fler fördelar… Office 2003 Alla nya ”fräcka” funktioner Web Services kopplingar i World/Excel Nya funktioner i Access Office 2003 Objekt modeller Office 2003 Web Services Toolkit Plus mycket, mycket mer…
Era viktigaste verktyg Visual Studio .NET och MSDN Microsoft: msdn.microsoft.com www.microsoft.com/sverige/msdn/ www.microsoft.com www.microsoft.com/office/preview/developer Communitys www.Pellesoft.nu www.gotdotnet.com http://windowsforms.net Sök på tex. Google! Nyhetsgrupper msnews.microsoft.com
Resurser för utvecklare Utbildning Kurser och litteratur TechEd (Juli, Barcelona), PDC (Oktober,LA) Lokala utvecklarkonferenser CTEC kurser Utvecklargrupper Programmering Arkitektur och design ”Regional Directors”
Support för Office 2003 Mängder med gratis information och hjälp finns att tillgå online på www.microsoft.se/support För dig som köpt Office 2003 i kartong i butik: Två kostnadsfria supportärenden hos Microsoft support Supportärenden kan anmälas online direkt på www.microsoft.se/support/oas Om du skulle göra slut på dina två supportärenden kan du vända dig direkt till Microsoft eller till Microsofts certifierade support-partners: Solvus, Växjö Support, HP. Se www.microsoft.se/support för mer info. Har du köpt Office 2003 färdiginstallerat i datorn (OEM): Hårdvaruleverantören eller inköpsstället är genom avtal med Microsoft ansvarig för supporten och är den du ska kontakta. Se www.microsoft.se/support för mer info. Samtliga Microsofts supportkunder: Microsoft erbjuder kostnadsfri support vid misstänkt virusproblem eller misstänkt bug
30:e juni – 4:e juli i Barcelona Möt 6000 utvecklare och IT-proffs Välj bland över 270 djupgående tekniska sessioner Flertalet laborationer Träffa experter från Microsoft och partners www.microsoft.com/europe/teched/
MSDN Prenumerationer Prioriterad tillgång till mjukvara Automatisk publicering, månadsvis Library Operating Systems Professional Enterprise Universal
Tack för idag! Fyll i utvärderingarna Hur kan vi förbättra oss till nästa gång! Skriv kommentarer Ta gärna med lite skräp när ni går! Frågor, kommentarer, förslag till: Per Ahlberg pahlberg@microsoft.com