Blogg

Visual Studio Live Dag 2

Visual Studio LiveLiksom dag ett av konferensen började även denna med en keynote, denna gång av Jim Nakashima som lite rakt emot vad keynotens titel “Visual Studio, .NET and the Cloud” istället pratade om “Apps for Office 365 & Sharepoint”. Jim visade hur enkelt man kan bygga appar till dessa plattformar genom HTML 5 + Javascript samt ett XML-baserat manifest. Förutom att ha möjligheten att bygga apparna på det traditionella sättet genom Visual Studio visades en online HTML5-baserad editor kallad Napa för att skriva apparna. Är Napa möjligen en framtida onlinebaserad version av Visual Studio? Editorn visade sig iaf vara väldigt lik Visual Studios i form av autocompletion, färgval och typsnitt. Eftersom Office365 aldeles nyligen släpptes kommer det komma fler uppdateringar av Visual Studio för att utöka stöd för denna typ av utveckling. Mer information om Napa och hur man bygger Office365-appar finns här: http://msdn.microsoft.com/en-us/library/jj220038.aspx

Robert Boedigheimer höll ett “Chalk Talk” om hur man ökar prestandan på sin webbplats. Detta var en matnyttig session med en del saker man kände till sedan innan, men även lite nya detaljer.

Ett tips är att använda Yahoos Yslow (http://developer.yahoo.com/yslow/) eller Googles PageSpeed (https://developers.google.com/speed/pagespeed/) för att kontrollera att ni inte har glömt något av prestandaförbättringarna innan man lanserar en ny website. Ett annat bra verktyg är Fiddler (http://www.fiddler2.com/fiddler2/) som kan lista all trafik mellan klienten och servern. Här kan man se nedladdningstider, filstorlekar, cache experations med mera. Mycket av detta finns också lätt tillgängligt i Chrome Developer Tools, Firebug eller IE Developer Tools.

Många av detaljerna  som Robert tog upp gäller förbättringar av prestandan när det gäller att minska nerladdningstiderna och inte prestandaförbättringar på servern (optimering av kod etc.) Här är det främst två saker som kan hjälpa till att snabba upp visningen av ens webbplats; färre och mindre filer. Att minska filstorleken på de större filerna på webbplatsen ger givetvis störst effekt (bilder, video, flashanimationer och annan media). Photoshop, och även andra bildredigeringsprogram, har inbyggda optimeringsfunktionallitet där man kan jämföra bildens utseende vid olika kompressionsgrader.

Minifiering av css- och javascriptfiler bidrar också till att minska filstorlekarna. Två av sätten att minska antalet filnedladdningar är att använda sprites (sammanslagning av flera bilder till en fil) samt att använda bundling (sammanslagning av innehållet från flera filer till en fil). Har man inte ett bildbehandlingsprogram att tillgå kan man använda onlinetjänster för att göra en, som exempel kan CSS Sprite Generator nämnas (http://spritegen.website-performance.org/).

Bundling och minifiering finns numera inbyggt i ASP.Net (från version 4.5). För att läsa mer om hur man går till väga för att använda det kan man läsa mer här http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification. Själv har jag använt Cassette (http://getcassette.net/) en del. Den har förutom minifiering och bundeling även stöd för andra trevliga saker som bundling och kompilering av HTML templates (Mustache (hogan.js) och jQuery-tmpl)

Miguel Castro pratade om MVC för Web Forms-utvecklaren och tog upp vad som är gemensamt och vad som skiljer. En grundlig och bra presentation som gav en fin repetition för mig (Emil Paulsen) som inte jobbat med MVC på ett tag.

På kvällen anordnade konferrensen en trevlig men kort mingelstund på MGM-Grands egna nattklubb Tabu. Efter detta gick sällskapet vidare ut i Las Vegasnatten.

 

 

 

 

 

 

 

 

Visual Studio Live Dag 1

Morgonen startade med en keynote av Microsoft Senior Director of Developer and Platform Evangelism James Conard. James använde keynoten till att gå igenom Microsofts alltmer växande tjänsteutbud kring Windows Azure. Windows Azure är ett av de områden där Microsoft visar hur de öppnar upp support för andra platformar och open source-tekniker. Som exempel på detta kan man ta upp att Microsoft nu tillåter utvecklare att synchronisera innehåll från Dropbox foldrar, i anslutning till att supportera Visual Studio, GitHub, FTP och andra repositories till Windows Azure. Samtidigt har man möjlighet att skapa virtuella maskiner till ett flertal Linux-distrubitioner vid sidan av Windows Server.

Testa själv hur ”nya” Windows Azure fungerar genom att testa en kostnadsfri utvärderingsversion på http://www.windowsazure.com/sv-se/pricing/free-trial/

Vi gick sedan alla tre vidare till Ted Newards introduktion om NoSQL databaser i allmänhet, och MongoDB i synnerhet. Han beskrev tydligt skillnaden mellan den ”vanliga” relational database management system (RDBMS) och NoSQL. Det är inte så att den ena generellt är bättre än den andra, utan uppgiften får styra valet. Han gick igenom CAP Theorem (http://en.wikipedia.org/wiki/CAP_theorem) samt hur man installerar och kommer igång med MongoDB. Han visade även hur man jobbar med MongoDB med den officiella C# drivern (http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/)

Jonas Peterson avslutade dagen med en trevlig föreläsning av Benjamin Day på ämnet ”Design for Testability: Mocks, Stubs, Refactoring, and User Interfaces”. Han gick igenom fördelarna med enhetstestning och om hur med hjälp av depencency injection förenklar testningen. Som hjälp till enhetstestningen visade han hur man kan använda Visual Studios 2012 Mocks & Fakes Framework. Tyvärr kräver ramverket att man har Visual Studio 2012 Ultimate installerat, en dyr investering för en funktionalitet som enkelt kan nås genom flera open-sourceramverk som finns därute. Varför inte testa Advise egna som Mikael Waltersson har skapat, Simple.Mocking (http://simplemocking.codeplex.com/)

Jonas Wikström spenderade två föreläsningar med att följa Rick Garibay som visade hur enkelt men effektivt man kan använda Node.js för att skapa en onlineservice som förkortar URL’er. Node.js ger dig möjligheten att skriva JavaScript på servern med hjälp av Google Chrome’s V8 Javascript runtime. En av dom främsta egenskaperna som kan tillskrivas ramverket är att det är ett eventbaserat system som möjliggör asynkron exekvering av kod i en loop, istället för den traditionella där man istället använder sig av trådar för att kunna hantera flera samtidiga anrop. Detta förbättrar prestandan avsevärt och gör att systemet skalar betydligt mycket bättre. Under utvecklingen av demot använde sig Rick även av ett JavaScriptbaserat testverktyg  Mocha för att enkelt integrationstesta sitt verktyg.

I sin andra föreläsning visade Rick Garibay hur man med hjälp av .NET 3.5 och Node.js kan bygga WebSockets för att snyggt och enkelt kan realisera tvåvägskommunikation mellan webbrowsern och servern.

 

För Emil Paulsen berättade Adam Tuliper om en del av nyheterna i ASP.Net 4.5. Denna version kan köras på 4.0. Om man avinstallerar kommer även 4.0 tas bort, så gör inte det.

Det finns en del hjälp vad gäller bundle/minification för att minifiera och slå ihop skript- och css-filer.

En ny projektfolder som heter App_Start kommer att finnas för att lägga till saker som ska köras när en webbapplikation startar. Ett typiskt scenario för detta är tex uppsättning av routing i MVC.

Det finns en del nyheter vad gäller autenticering, med bra hjälp för kopplingar mot tex Twitter och Facebook.

En smart ny syntax vid databindning är <%#: %>. Kolonet gör att det som databinds HTML-encodas. Det går även att sätta vilken typ som ska databindas, vilket ger Intellisense.

WebMatrix har en iPhone-simulator. Den verkade inte fungera helt hundra än, eller så var det demospöket som var framme, för det verkade inte som att den fick med att den var en iPhone i User Agent.

Detta var bara ett smakprov på allt som Adam gick igenom. Läs mer om nyheterna här: http://www.asp.net/vnext/overview/aspnet/whats-new

 

 

Hej Johanna

Vi har haft Johanna Viktoria hos oss ett tag där hon utför sitt LIA-uppdrag. Vi gör som vanligt vårt yttersta för att Johanna skall trivas och utvecklas hos oss.

Namn?
Jag heter Johanna Victoria och är 25 år.

Kan du beskriva dig själv med tre ord?
Envis – Skam den som ger sig! Men så gäller det att hitta balans så man inte kör fast i det omöjliga.
Glad – Jag har alltid nära till ett leende och ser sällan det negativa före det positiva.
Rastlös – Det kanske låter som en dålig egenskap men jag får mycket gjort. Det är inte många minuter jag fastnar i soffan framför tvn och när jag blir rastlös så åker Visual Studio, mina jongleringskäglor eller en intressant bok fram.

Vad jobbar du med på Advise?
Jag arbetar med ett system som ska hantera CV’s för både företag och för privatpersoner. Det är en lärande process då jag inte har jobbat med många av teknikerna som vi använder.  Jag har varit med från början av projektet och det är kul att se en riktigt häftig applikationen ta form.

Vad brinner du för och vad tycker du är roligt att arbeta med?
Jag brinner för häftiga applikationer! Snygga och häftiga både på ytan och under skalet. När man får en en känsla av ”wow”,  då är det riktigt roligt att jobba med ett projekt.

Vad utgör ett bra konsultföretag och dess anställda?
Det är viktigt med bra gemenskap och kommunikation då man som konsult jobbar åtskilda hos olika kunder. Sen är det ju viktigt att man värderar möjligheten att utvecklas kompetensmässigt och som konsult.

Vad gör du på din fritid?
På fritiden är jag aktiv, jag utövar Parkour och jag är även jonglör. Det är skönt att låta kroppen arbeta en stund efter att huvudet fått arbeta hela dagen :-)

 

God Jul och Gott Nytt 2013

Nu när året närmar sig sitt slut vill vi passa på att tacka alla våra kunder och samarbetspartners för ett fantastiskt och händelserikt 2012. Vi har under året haft förmånen att medverka och hjälpa till i ett flertal mycket intressanta och utvecklande uppdrag tillsammans med er. Det är vi är väldigt glada och stolta över. Under året har vi fortsatt utveckla vårt erbjudande med seniora konsulter inom .NET, Java och content management samt kompetens inom bland annat user experience, front-endutveckling och mobil applikationsutveckling.

Vi ser fram emot ett lika utvecklande 2013 tillsammans med er och vill önska er alla en riktigt God Jul och ett Gott Nytt år.

Install EPiServer 7 with MVC

Are you as exited as I am over the new EPiServer 7 with MVC support and typed pages?

I hope you are, and therefore I thought that I might put together this blog post showing how to set up an EPiServer 7 site with MVC 4 from scratch. Please follow along!

First start by downloading EPiServer 7 from the EPiServer world web site. Once you’re finnished with that, continue setting up an new EPiServer 7 site with EPiServer Deployment Center.

Start “EPiServer Deployment Center” and choose “Install site and SQL Server database(CMS 7.0.586.1)”. Once the installation completes you can now fire up Visual Studio to create a new ASP.NET MVC 4 WebApplication. Save it in another location than your previously installed EPiServer site.

When the Web application project is created, copy all files except Global.* och Web.* and paste them in the location of the EPiServer site

Set up groups and users

To be able to log in to the administartion interface we need to create the “WebAdmins” and “Administrators”-group, as stated in the <authorization>-element in web.config.

Make sure that roleManagers defaultProvider is set to “SqlServerRoleProvider” and that the defaultProvider of the membership is set to “SqlServerMembershipProvider”. This is done so that we can create groups and users in the database next.

You do this by going into the ASP.NET Configuration site from Visual Studio (se picture below)

Create an “admin” user as well and put it in the “WebAdmins” and “Administrators” group.

Go to the administration interface by, in my case, entering the following URL in your favourite web browser: http://epi7mvc/sec/UI/CMS/Admin/

You will get a warning text stating that the site has no content. Do as the text says and set pageStartId=”1″ on the siteSettings-elementin episerver.config

Save your changes and once more enter the admin url in your browser: http://epi7mvc/sec/UI/CMS/Admin/ .

Log in using your newly created “admin”-user.
You should now get the new admin interface of EPiServer 7

Creating your first content

What would a site be without any content or pages, not much if you ask me… ;)
So it’s time to dive into Visual Studio and start creating a PageType.

We start with the creation of a StartPage-pageType. Create an folder “Types” and in that create a new class “StartPage” (as can be seen in the picture below)

Create a partialView for yout type in “Views/StartPage”. Name it “Index.cshtml”.

@using EPiServer.Web.Mvc.Html
@model EPi7Web.Types.StartPageModel

<h1>@Html.PropertyFor(x => x.MainTitle)</h1>
@Html.PropertyFor(x => x.MainBody)

Create a controller named “StartPageController.cs” in the “Controller”-folder.

using System.Web.Mvc;
using EPi7Web.Models;
using EPi7Web.Types;
using EPiServer.Web.Mvc;
namespace EPi7Web.Controllers
{
 public class StartPageController : PageController<StartPage>
 {
    //
    // GET: /StartPage/
    public ActionResult Index(StartPage currentPage)
    {
      var model = new StartPageModel() { MainBody = currentPage.MainBody, MainTitle = currentPage.MainTitle};
      return View(model);
    }
 }
}

Go into the edit interface and create a new page (“Home”) based on the StartPage-type.

Notice the pageId (“4″) that this new page received when it was created. Insert this pageStartId  into the siteSettings-element.

Update the page with some content and then “Publish” it

Hopefully you will see your new page when going into the view-/editmode.

Hope that you have found this blog post helpfull!

Tagged , ,

Vi har två nya certifierade Sitecore utvecklare

Vi på Advise Solutions fortsätter vår CMS-satsning med att två av våra konsulter, Emil Paulsen och Jonas Peterson, nu även är Sitecore Certified Developers!

Sitecore är ett  enterprise CMS baserad på .Net och har sin största marknad i USA. Systemet har dock på senare tid vuxit starkt i Sverige, där främst stora multinationella företag har börjat att använda det. Det känns kul att vi på Advise Solutions nu kan erbjuda en bred kompetens på produkten!

Tagged , ,

Advise höst-kick-off

Dags att göra en snabb återblick till höstens konferens med Advise. I år var den förlagd till spa- och konferenshotellet Vann i Bohuslän, i närheten av Lysekil.

Vi lämnade Göteborg sen förmiddag, för att komma fram lagom till att avnjuta den väldigt trevliga lunchbuffén på Vann.

Efter lunchen följde lite företagsinformation innan vi drog igång med föreläsningarna. Först ut var Emil med en dragning om knockout.js samt sammy.js

Dessa var snyggt exemplifierade med en listning av Formel 1 förare och deras stall, klart manskall använda exempel som ligger nära hjärtat ;)

Efter en fika så fortsatte Mikael med att göra en dragning av de tekniska frågeställningarna kring ett av sina projekt som han har arbetat med under våren, sommaren och hösten. Mycket intressant det med!

Nu var det dags att testa Vanns spaanläggning. Efter några dopp och en kort vända i bastun hamnade vi i baren och ämnet kröp snabbt in på Dry Martinique.

Efter en snabb uppfräschning på rummen var det nu dags för middag. Det visade sig att det både ingick ett rejält coverband som körde schlagers och en hel del virriga servitörer. Men det gjorde inte så mycket eftersom vi istället omgrupperade till baren för fortsatta intellektuella överläggningar.

Pigga och alerta efter en god natts sömn fortsatt vi föredragen med att Jonas gick igenom den kommande nya Advise-hemsidan byggt på N2 CMS.

Efter Jonas föredrag fortsatte vi med att vår praktikant Johanna redovisade hur arbetet med vår CV databas fortlöpte. Mycket roligt att se att hon har kommit så långt på relativt kort tid. CV databasen byggs mha TDD samt med en teknikstack innehållande MVC 4, nHibernate, Bootstrap, Service Stack, samt vårt egna Simple Mock

Det skall bli väldigt kul att se det här systemet i drift under nästa år!

Vi avslutade med ännu en god lunch för att sedan bege oss tillbaka till Göteborg, nu med nya kunskaper och nya ideér.

Tagged , , ,

Gilla oss och vinn boken C# Smorgasbord

Filip Ekberg, systemutvecklare hos våra vänner på Star Republic har skrivit boken C# Smorgasbord. En bok som täcker en varieté av tekniker, patterns och best practices. Vi på Advise är speciellt stolta  över att Filip har valt att använda sig av vårt mockningsramverk
Simple.Mocking
 för att beskriva teststrategier. Eftersom vi gillar testdriven utveckling, Simple.Mocking och såklart boken så mycket kommer vi lotta ut 10 böcker till någon av er. För att vara med i utlottningen behöver du bara göra två saker:

  1. Gilla vår sida på Facebook.
  2. Gilla detta inlägg.

Vi kommer dra dom lyckliga vinnarna den 31/10 och vinnarna kommer presenteras här några dagar senare. Och du, om du redan gillar eller följer oss är du givetvis automatiskt med i utlottningen.

Vi kommer med lite (o)jämna mellanrum lotta ut produkter som vi tycker är bra. Så om du inte vinner den här gången kan det vara din tur nästa gång. Lycka till!

Vi är på inget sätt affilierade eller sponsrade av Filip, Star Republic eller Facebook. Utlottningen är inte öppen för våra anställda eller dess anhöriga. Eventuell vinstskatt betalas av vinnaren och utlottningen är bara öppen för boende i Sverige som fyllt 18 år

 

Gilla oss och vinn #1

Uppdatering: Tävlingen är avgjord. Vinnaren blev Mats Karlsson som får en ett års prenumeration på Pluralsight. Grattis! Ny tävling kommer snart.

Som nybliven förälder är det inte alltid jag har möjlighet att åka på de där grymt inspirerande konferanserna som ofta går av stapeln i södra europa eller på andra sidan Atlanten. Visst, Scandinavian Developer Conferance som anordnas här i Göteborg varje år är naturligtvis ett alternativ men ibland känns det inte som det räcker för att stilla behovet av kunskap.

Därför skaffade jag för ett par månader sedan ett konto hos Pluralsight. Pluralsight är ett företag som varje vecka publicerar ett antal utbildningsvideor i varierande ämnen. Ämnen som avhandlas kan vara allt från introduktion till HTML5 till avancerade kurser i AOP. Fördelen är att jag kan sitta hemma och köra igenom en utbildning i min egen takt. Det fungerar i webbläsaren eller om man så önskar så finns det appar för iPhone/iPad, Android och Windows Phone.

Eftersom vi gillar Pluralsight så mycket kommer vi lotta ut en helårsprenumeration, värde ca 2100 kr, till någon av er som gillar vår sida på Facebook, eller som följer oss på Twitter. Så, gå in och gilla och/eller följ oss och ta chansen till lite ny kunskap. Vi kommer dra den lyckliga vinnaren den 31/8 och vinnaren kommer presenteras här några dagar senare. Och du, om du redan gillar eller följer oss är du givetvis automatiskt med i utlottningen.

Vi kommer med lite (o)jämna mellanrum lotta ut produkter som vi tycker är bra. Så om du inte vinner den här gången kan det vara din tur nästa gång. Lycka till!

Vi är på inget sätt affilierade eller sponsrade av Pluralsight, Facebook eller Twitter. Utlottningen är inte öppen för våra anställda eller dess anhöriga. Eventuell vinstskatt betalas av vinnaren och utlottningen är bara öppen för boende i Sverige som fyllt 18 år

Vår företagsfilosofi

När vi startade Advise för snart två år sedan var det ett antal principer vi ville skulle genomsyra företaget. Vi ville skapa ett företag där våra medarbetares idéer och önskemål tas till vara. Vi ville bygga vårt företag på idén att att framgångsrikt företagande i mångt och mycket handlar om att skapa och underhålla långsiktiga relationer. Relationer med kunder och anställda men även leverantörer. Långsiktighet har varit, och kommer alltid förbli, ett av våra ledord i allt vi gör.

Våra kunder

Vi vet att vi aldrig skulle existera utan det förtroende vi fått, och fortsätter att få, av våra kunder. Vår ambition är att vi ska ha långsiktiga relationer med alla våra kunder då detta ger vårt företag viktig stabilitet. Vi åstadkommer detta genom att bl.a. alltid endast offerera konsulter som vi vet kommer passa kunden och uppdraget. Vi chansar således aldrig med att skicka in profiler som vi vet inte är en bra match. Vi vet att varje profil som inte passar kostar kunden värdefull tid vilket vi aldrig vill medverka till. Vidare exploaterar vi inte kundens eventuella brist på resurser vid ett givet tillfälle. Vi tar alltså inte tillfället i akt att öka våra arvoden utan vi strävar efter arvodesnivåer som både vi och kunden kan leva med långsiktigt.

Vi är alltid öppna mot kunden med vilken eller vilka av våra medarbetare som jobbar med uppdraget. Vilken roll, vilken kompetens och vilken erfarenhet varje medarbetare har är till 100% transparant mot kunden. Vi låter aldrig en konsult ta ett större ansvar än vad vi, eller för den delen kunden, anser konsulten är mogen att göra. Det gör att vi kan stå för varje leverans. Detta är ytterligare ett sätt att bygga ett långsiktigt förtroende hos våra kunder.

Våra medarbetare

Vi kommer inte, iallafall inte under överskådlig framtid, vara ett stort företag. Vi kommer inte kunna konkurrera genom att ha en stor organisation som hanterar personalfrågor. Vi tror däremot att vi kan vara en attraktiv arbetsplats för personer som hellre jobbar i ett mindre företag med korta beslutsvägar.

Vi har som mål att vara den mest attraktiva arbetsplatsen i vår branch och storleksklass i Göteborg. Det är ett ambitiöst mål som vi arbetar hårt med att leva upp till. Vi strävar efter att mycket konkurrenskraftiga villkor för våra medarbetare. Förutom en bra lön har alla självklart övertidsersättning och en tjänstepension. Vi har tjänstebilsavtal, bra friskvårdspeng och inte minst så satsar vi på bra arbetsverktyg såsom dator, telefon, licenser etc. Kompetensutveckling prövas individuellt men vi ser det som positivt att ha intresserade, välutbildade medarbetare som brinner för att utvecklas. Vi försöker skicka några medarbetare på konferens varje år, det ger en vitamininjektion dels för de som åker men även för resten av företaget då nya idéer alltid kommer ut ur dessa resor.

Våra leverantörer

På samma sätt som vi arbetar långsiktigt med våra kunder och medarbetare vill vi göra samma sak med våra leverantörer. Vi jobbar hellre med några få leverantörer som delar våra värderingar än att ständigt jaga nya samarbetspartners.

Företagskultur

Vi arbetar för att ha en prestigelös stämning i företaget. Vi vill att alla medarbetare ska känna sig sedda och samtidigt vågar blotta sina svagheter. Vi tror att det är vägen att bygga upp varandra och sprida den kollektiva kompetens vi besitter. Vi arbetar också för att låta varje medarbetare komma till tals i frågor gällande företaget. Rent konkret träffas vi allihop två gånger per år under två dagar för att sätta riktningen för företaget under nästa halvår. Hela företaget äter också frukost tillsammans en dag i veckan. Dessa aktiviteter främjar lagkänslan och är mycket uppskattade.

Vi planerar aldrig med övertid. Det kan naturligtvis inträffa att övertid kan behövas av olika anledningar, men det ska aldrig någonsin bero på att vi sålt in en medarbetare till mer än 100%.

Vi bygger inte vår organisation på enskilda hjältar utan vi arbetar för att våra medarbetare ska känna att man kan be om hjälp när arbetet känns tufft.

Socialt ansvar

I dagens samhälle kan det som nyutexaminerad vara svårt att få en chans i arbetslivet. Vi försöker ta in praktikanter med jämna mellanrum för att ge en ung person chansen. Vi får hjälp med ett internprojekt och en ung person får viktig erfarenhet.

Detta är alltså kortfattat den filosofi vi har inom Advise. Med tanke på det resultat vi visat under företagets relativt korta existens tror vi att vi är ganska rätt ute.

Page 1 of 41234