The PIT
Röster från ITM-koncernen.

Silverlight 4 beta

November 19, 2009 17:16 by Dennis Johansson

Microsoft har jobbat på hårt med Silverlight.
Silverlight 1 släpptes September 2007 och bara ett år senare i Oktober 2008 släppte Microsoft Silverlight 2. Nästan ännu ett år senare i Juli 2009 kom 3:an och nu igår Silverlight 4 beta.

I SIlverlight 4 har Microsoft tagit med flertalet av de önskemål som funnits bland utvecklare runt om i världen.

  • Printfunktionalitet.
  • Drag n Drop av filer direkt in i Silverlight
  • NTLM-support för http.
  • RichTextArea control.
  • Webcamerastöd.
  • Stöd hör mouse wheel och höger musknapp.
  • Clipboard stöd (programatiskt).
  • Stöd för arabiska (text höger till vänster).
  • Utökat PNG stöd (rotera, ändra storlek m.m).
  • Visual Studio 2010 WYSIWYG.
  • Förbättrad databindning.
  • Man kan dela assemplies mellan SL och .NET 4 applikationer.
  • Support för Google Chrome.
  • Stand alone, Silverlight app kan köras utanför browsern.
    · Applikationen måste ha tilldelats åtkomst.
    · Åtkomst till Windows API.
    · Tangentbordet tillåts i fullskärmsläge.
    · Cross site networking.
    · Location API.
    · COM access vilket innebär att man enkelt kan kommunicera med t.ex Office-produkterna.
  • Och en hel del småsaker.
    Det ska bli riktigt intressant att börja med SL4. ;)

Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Skicka binärdata till src på en <img> tag.

June 16, 2009 16:27 by Dennis Johansson

En kollega och jag diskuterade möjligheterna att kunna skicka med binär data från t.ex en BLOB i SQL direkt i HTML-sidan istället för att länka till en sida som läser upp bilden från SQL och sedan skriver ut datat.

Vi hittade ett sätt som det fungerar på Firefox men inte på IE  :(. Dessutom så blir datat ca: 1/3 större på detta sätt än att skriva ut rent binärdata. Men det kanske kommer i IE.

   1: ImageTeamLogo.ImageUrl = "data:image/gif;base64," + Convert.ToBase64String(ImageBinaryData); 

(ImageTest är en <asp:Image>)


Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Skriva till Event Log i ASP.Net

June 16, 2009 16:12 by Dennis Johansson

Jag skulle idag använda gammal kod för att skriva till Event Log, fast i en ASP.NET-applikation och stötte på problem.

Jag fick följande fel i browsern:
[SecurityException: Requested registry access is not allowed.]

   1: Dim objEventLog As New EventLog()
   2: If Not EventLog.SourceExists(AppName) Then
   3:     EventLog.CreateEventSource(AppName, LogName)
   4: End If
   5: objEventLog.Source = AppName
   6: objEventLog.WriteEntry(Entry, EventLogEntryType.Information)

Detta är koden jag använder för att skriva till Event Log.

Det som händer är att man inte har rättigheter till registry för att skapa den nya “loggen”.
Alla nya “loggar” skapas i HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\.

För att få ASP.NET att kunna skriva till Event Log så krävs det att man först manuellt skapar själva “loggen”.
Jag byggde därför en liten Console app som anropade min funktion ovan som skapar själva “loggen” och sedan när den är körd en gång så fungerar det att skriva till den från ASP.NET.


Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Silverlight 3 Beta är här!

March 25, 2009 10:44 by Dennis Johansson

Nu på mix09 släpptes Silverlight 3 beta.

Mer än 60 nya kontroller inkl. källkod, bättre videostreamingsupport och mycket mer.

Läs här http://silverlight.net/getstarted/silverlight3/default.aspx, längst ner hittar man nyheterna.


Tags:
Categories:
Actions: E-mail | Permalink | Comments (1) | Comment RSSRSS comment feed

Visual Studio 2010 vecka på Channel 9

October 3, 2008 05:56 by Dennis Johansson

Kolla in deras "videovecka" om nyheterna i nästa version av Visual Studio som kommer heta Visual Studio 2010 och Visual Studio Team System 2010 på Channel 9.

http://channel9.msdn.com/posts/VisualStudio/Visual-Studio-Team-System-2010-Week-on-Channel-9/


Automatisk Backup av alla databaser i SQL Server

September 18, 2008 01:26 by dennis johansson

Jag har fått en ny dator av jobbet och skulle flytta över alla mina data dit. Alla projekt m.m var ju inga problem, men när man kom till databaser osv så tyckte jag att det blev jobbigare. Jag har ca 40 databaser och tänkte göra Backup från min gamla maskin och Restore på nya maskinen. Suck!! Jag gillar inte att klicka en massa...

Vad behövde jag göra?

1. Göra Backup via t-sql.
2. Lista databasernas namn.
3. Loopa igenom ett resultset.
4. Exekvera t-sql texten.
5. Göra Restore via t-sql.
6. Skapa Restore-textfil för att automatisera restoren.

ca. 50 min senare hade jag mitt sql-script färdigmekat tack vare sökande i andras bloggar och tyckte därför att jag kan skriva en rad eller två själv om det.

Jag har ej fixat stöd för databaser i offline-läge, det blir fel vid backup men scriptet fortsätter. Dom kommer även med i AutoRestore.txt. Den har jag inte testat än, sker imorgon! ;)

   1: use master
   2: DECLARE @dbName varchar(255), 
   3:     @cmdtxt varchar(1000)
   4:  
   5: -- Tar bort restore textfilen.
   6: set @cmdtxt='del c:\SQLBackups\AutoRestore.txt'
   7: exec xp_cmdshell @cmdtxt
   8:  
   9: -- Skapar en pekare mot queryn för att hämta databasnamnen
  10: DECLARE TableCrsr CURSOR FOR
  11: -- sid=0x01 är det på databaser som kommer till vid installationen. Iallafall i min DB. ;)
  12: SELECT name FROM sysdatabases where sid<>0x01 order by name
  13:  
  14: -- Öppnar pekaren
  15: OPEN TableCrsr
  16:  
  17: -- Hämtar första raden in i min variabel
  18: FETCH TableCrsr INTO @dbName
  19:  
  20: -- Loopar till status = 0
  21: WHILE @@Fetch_Status = 0
  22:    BEGIN
  23:     -- Skapar min restore text som skrivs ner med gamla hederliga DOS-komandot echo till textfilen med hjälp av xp_cmdshell i SQL Servern.
  24:     select @cmdtxt = 'echo restore database '+@dbName+' from disk =N''c:\SQLBackups\'+@dbName+'.bak'' >> c:\SQLBackups\AutoRestore.txt'
  25:     exec xp_cmdshell @cmdtxt
  26:  
  27:     -- Visar enkelt vart man är under själva exekveringen av backup.
  28:     select 'Backing up DB: ' + @dbName
  29:     -- Gör själva backupen.
  30:     exec (N'backup database '+@dbName+' to disk =N''c:\SQLBackups\'+@dbName+'.bak'' with init')
  31:        
  32:     -- Hämtar nästa rad av databasnamnen
  33:        FETCH TableCrsr INTO @dbName
  34:    END
  35: -- Stänger pekaren
  36: CLOSE TableCrsr
  37: DEALLOCATE TableCrsr

Tags: , ,
Categories: SQL
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Lite av Nyheterna i SQL 2008

August 27, 2008 16:15 by dennis johansson

Det mest intressanta som man kommer använda dagligen om ett tag är framför allt den nya datumhanteringen och lite hur man kan deklarera variabler och tilldela dem värden på en gång.

Datum
Datumhanteringer blir lite annorlunda men bibehåller även den gamla.
Datum och tid kan nu vara mer precis. Tidiagare kunde DATETIME datatypen vara år 1753-9999 men nu kan DATE datatypen vara år 0001-9999 samt att DATETIME hade en precision på 0.00333 sekunder medan TIME nu har en variabel precision på 0 till 7 decimaler på en sekund (ända ner till hundradels nanosekund).

Alltså så finns det idag dessa datum datatyper:

  • DATETIME (den gamla)
  • DATETIME2 (NY! den nya som har både den större datumet och den mer precisa tiden)
  • DATETIMEOFFSET (NY! som DATETIME2 men med stöd för Time Zone Offset från UTC)
  • DATE (NY! hanterar bara datum från 0001-01-01 till 9999-12-31)
  • TIME (NY! variabel precision ända ner till hundradels nanosekund)

DATETIME och de nya datatyperna använder en del samma funktioner såsom DATENAME, DATEPART, DATEDIFF, DATEADD där man skickar in en datepart som nu även kan vara microsekunder, nanosekunder och TZoffset.

Funktioner enbart för de nya datatyperna är SYSDATETIME, SYSUTCDATETIME, SYSDATETIMEOFFSET.

Några nice funktioner (som har funnits sedan tidigare) för att hantera Localization och formatering på datum i SQL.
SET DATEFIRST
SET DATEFORMAT
SET LANGUAGE

Table som datatyp och värde
Numera finns även TABLE som datatyp och kan användas som parameter för lagrade procedurer.
T.ex: DECLARE @t TABLE (id int, name varchar(20));

Möjlighet att tilldela och deklarera variabler samtidigt
T.ex: DECLARE @i int = 4;

MERGE Statement
Detta kommando kan användas för att enkelt förena data från en table till en table. Det finns lite flaggor för att sätta om datat ska matcha eller ej. Den gör då en insert, update och delete utifrån om datat matchar eller ej.


Tags: ,
Categories: SQL
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Sommarkollo Silverlight 2.0 Beta 2

July 2, 2008 10:45 by dennis johansson

Jag var igår och lyssnade på Robert Folkesson som demade och berättade en del om Silverlight 2.0 Beta 2.

Det fanns en hel del bra saker och en del saker som jag tycker saknas.

 

Positva saker med Silverlight och Seminariet:

  • .Net miljö att arbeta i med bantad version av .NET Framework.
  • Går att arbete med enhetstester. (Jeff Wilcox Blog)
  • Isolated Storage, används som i .NET. Det kommer upp en fråga för användaren om den tillåter x antal MB i Isolation Storage.
  • Stödjer "Linq to Objects" och "Linq to XML" i Silverlight.
  • Klienten läser och använder sig av ClientAccessPolicy.xml för kontrollera om kl ienten är tillåten mot t.ex. WCF. Detta är en begränsning p.g.a säkerheten.
  • Sockets!!! Demo (DeepZoom och Sockets i slutet visas Sockets) Perfekt för att bygga snabb kommunikation och stöd för äkta push.
  • Visual State Manager i Blend används för att kunna visa hur något ska se ut i olika states, vilket gör att det blir enkelt som attan att göra enkla animeringar vid t.ex MouseOver osv.
  • DeepZoom, ett nice verktyg för att göra smarta och snabba bildladdningar. (DeepZoom och Sockets)
  • Visifire, riktigt nice grafer open source till Silverlight. (visifire.com)
  • Robert berättade om att Brad Abrams byggt en Silverlight demo med fokus på datahantering. Denna demo visar hur man använder sig av "Linq to SQL" och WS från och till Silverlight för att hämta och spara data till Databas. (Brad Abrams - Data focused Silverlight demo)

 

Negativa saker:

  • Stödjer ej GIF
  • Stödjer än så länge inte Typade Dataset's!?!?! Varför fick jag inget svar på. Det enda som behövs göras är att generera klasserna i Silverlightprojektet i Visual Studio när man lägger till en "Web Reference" och den koden har dom redan i och med stöden i winforms och asp.net. Skulle ju förbättra möjligheterna för uppdatering av data i t.ex gridviews men motarbetar samtidigt "Linq to SQL" lite.
  • Att testframework ligger som eget. (kommer nog komma inbakat i den riktiga releasen)
  • Felen som levereras vid användning av webservice eller andra tjänster är begränsat till 404. Dom håller tydligen på att kolla på detta. Även om man inte har rättigheter till en tjänst så får man 404. Se till att ha en ClientAccessPolicy.xml finns och är rätt ifylld.
  • Sockets stödjs bara på portarna 4502-4532 och anropar först efter ClientAccessPolicy.xml på port 943. Alltså måste dessa portar vara öppna utåt för klienterna.

 

Carl Kenne på DotWay körde en demo på ett projekt som dom gör till Öredev (ska vara danskt ö). Där i visade han lite hur dom byggt upp det hela. Det som var mest intressant var hur designer och utvecklare jobbade ihop - Nyckelordet är DataBinding.

Först byggde dom upp sina klasser för sina entiteter (kan ha kommit via Linq To SQL på serversidan som sedan skapar upp grundklasserna). Alla klasser kan sedan användas i Blend för att väljas som DataContext och där i skapa designen med bindning mot klasserna och allt. Detta gör att du sedan på en usercontrol bara behöver sätta UserControl.DataContext för att fylla alla värden, samt de värden som behövde konverteras så byggde dom konverterarklasser och la på metoden Convert på sina datatyper. NICE! Dock fick jag inget svar på hur Blend beteer sig ifall jag ändrar interfacet på en klass som används i Blend. Man vill ju att det ska bli fel vid kompilering osv så att man inte av misstag ändrar i Visual Studio eller Blend som påverkar varandra.

Anders Rundqvist demade ett spel som han håller på och bygger. Det är ett multiplayer schackspel gjort i Silverlight. Ganska cool spelidé. Man får x antal pjäser och hamnar i ett enormt schackbräde där man ska ta ut så många pjäser som möjligt och får credits när man slår ut en annan pjäs, dessa credits kan du sedan "köpa" fler pjäser för.

 

Av det jag sett av Flash, Flex och Silverlight så tror jag att så fort Microsoft får lite mer ordning på verktygen så kommer dom springa om Flash eftersom utvecklingen verkar betydligt enklare och mer robust i Visual Studio/Silverlight. Dock har jag inte så stor koll på animeringar och den grafiska biten så där kan jag inte uttala mig. Ska även bli intressant och se hur Silverlight blir för mobiler i framtiden.