Monday 31 October 2011

Windows 8 Server Developer Preview

PREVIEW

What's clear is that Windows 8 Server isn't a revolutionary change. Instead, it's an evolution that builds on features introduced in Windows Server 2008, optimising it for private cloud operation and for operation at scale, while retaining the features that small and medium-sized organisations need. It's a balancing act that's a big challenge for Microsoft, and one the company needs to handle carefully if Windows Server is to continue to be successful.
This, of course, is pre-beta code — although it's pretty much beta quality. We did have some minor crashes, with user interface elements restarting and reloading quickly. If you're going to spend some time with the Windows 8 Server developer preview, we wouldn't recommend using it for production purposes, even if its new features are just what you need. With development still underway we expect plenty of changes between now and release, even if they are mostly fit-and-finish user interface tweaks.

No more server GUI?
Perhaps the biggest change is one that should simplify the Windows 8 Server line-up. Instead of a separate UI-less Server Core release, all versions of Windows 8 Server will be able to run in any of three different UI modes. One is the familiar Windows GUI, while another is the UI-less command-line approach that's been used in Server Core; a new third role removes the graphical shell and browser, while still letting you run Server Manager and use Microsoft Management Console snap-ins. Server Core will be the preferred installation for Windows 8 Server, with the shell an optional component that can be added and removed as required. Removing UI components from deployed servers should reduce the attack surface, helping protect your server infrastructure. Microsoft's aim for Windows 8 Server is a server that has just the functions necessary to run your operations — not only reducing security risks, but also reducing the need for patching and for planned downtime.

The key to this change is a massive increase in the number of available PowerShell cmdlets — over 2,300. That means you can use PowerShell to handle almost all system management tasks — both locally and remotely. Server UI is now a thin layer on top of PowerShell commands, with every action triggering PowerShell actions. You can also use management tools to administer several servers at once, with remote PowerShell calls on other machines. There will be a Windows 8 Server version of RSAT (Remote Server Administration Tools) that can be used to manage servers from a desktop PC, while a PowerShell history will allow you to copy cmdlets used by Windows' management tools and then customise them for use in your own management scripts.


The heart of Windows 8 Server is the Server Manager Dashboard, which runs on a standard desktop and gives you a Metro-like way of working with one or many servers

Microsoft is giving Windows 8 Server a new Server Manager, with a very Metro-like look and feel, that incorporates lessons learned from the System Center management tools. Server Manager is now a dashboard that lets you see information from all the servers you manage, quickly colour-coding the views to show you where action is required, with information displayed in role-based tiles. You can use filtering tools in the dashboard to quickly reduce noise (for example temporarily removing alerts from a server that may be down for hardware or software maintenance). The Server Manager lets you quickly add additional servers, using Active Directory or by IP address, automatically updating the server numbers and roles on the dashboard. You can view information using single server views, or aggregate several servers and see all the relevant events in a single view.

There's no Action Pane in the new server manager. That's partly due to changes in screen resolutions, with large wide-screen displays becoming increasingly common. Instead, you interact directly with tiles, with tiles for specific services and the ability to group by server with queries and filters that can be saved and re-used. It's an approach that should simplify working with large server farms, while still making it easy to work with one or two machines in a small office. A new version of the PowerShell scripting environment includes IntelliSense and makes it simpler to build and test your management scripts.

Microsoft has made significant changes to the PowerShell stack, with everything remotable and with no calls to private APIs. More importantly there's also support for long-running operations on tens, hundreds or even thousands of machines. Support for workflow and complex tasks means that PowerShell can be used to handle remote deployments, and for sites working with virtual servers, it'll be possible to use it to work with offline virtual hard disks. If you're using PowerShell to handle deployments, scripts can be exported and used via Windows 8 Server's automation tools.

One of the key features of WMI (Windows Management Instrumentation) in Windows 8 Server is support for standards. Instead of working with custom interfaces, PowerShell will use standards to communicate with applications and hardware — for example using SMI-S (Storage Management Initiative - Specification) to work with storage arrays from multiple vendors. Microsoft has also made it easier to write WMI-providers, so that third parties can add their own tools for use with PowerShell — including task-oriented abstractions that simplify handling complex actions. PowerShell cmdlets in Windows 8 Server can be used to work with REST and JSON interfaces, simplifying interactions with web services.

Powering the private cloud: Hyper-V v3
With Microsoft describing Windows 8 Server as a 'cloud-ready OS', the Windows hypervisor is increasingly important. Intended for both on-premises and hosted private clouds, Hyper-V v3 adds native PowerShell support, making it easier to automate virtualised machines, with tools for handling a range of different workloads and for providing continuous availability. Certainly the new Hyper-V is looking impressive. According to Microsoft it can run on machines with up to 160 logical processors (cores and threads), with up to 2TB of physical memory, and with each hosted VM having up to 32 virtual processors and up to 512GB of memory. There's no longer a ratio between logical and virtual processors, and you can run as many VMs as your hardware will support. There are also tools that optimise for NUMA (Non-Uniform Memory Access) architectures, making virtual machines more efficient on large and powerful servers.

Hyper-V's NUMA support is important. Non-uniform memory access architectures partition cores and memory into nodes, using memory locations relative to processors to reduce latency. High-performance applications can detect this, and optimise for performance. With the current generation of hypervisors there's no relationship between VMs and NUMA, so performance can be reduced. Using Hyper-V v3's Guest NUMA mode there's a mapping between the physical arrangement of processors and memory and VMs, so applications can detect that they're running on NUMA systems and optimise appropriately. The result is impressive, with almost linear scaling as additional virtual processors and memory are added to a virtual machine.

Private clouds must be stable, and must be able to adapt to hardware failures and continue running until maintenance downtime can be arranged. Hyper-V v3 adds support for WHEA, the Windows Hardware Error Architecture. This detects errors in memory, and handles them to ensure that applications continue running. With multiple VMs on a single server, a WHEA event will suspend all the VMs and determine if the error can be isolated to a single VM; if it can be, WHEA will terminate that VM, mark the memory page as bad, and restart the affected VM while resuming the paused VMs.

That means that a memory fault won't take down an entire server, just the one affected VM. Similarly, predictive failure analysis will use the error count features of ECC memory to mark pages that are showing signs of failure, taking them offline and warning system administrators.

Microsoft has also improved Hyper-V's storage support, with tools for handling scalable virtual disks and metering storage use, plus a new VHDX virtual disk format. Hyper-V will now support virtual fibre channel connections using SMB, along with tools that allow you to merge VHDs and to create parent disks without any downtime. VHDX virtual disks can be larger than 2TB (there's currently a 16TB limit) and have better performance, as well as using logs to reduce the risk of corruption. If you're using a SAN you can offload data transfer to the SAN, significantly reducing network and CPU load for large data transfers and live migrations. Other new storage features mean that cluster volumes can be encrypted using BitLocker, making it easier to secure data in hosted private clouds.

Although WHEA support makes individual VMs more reliable, there's also improved support for clusters. You can use this to build continuously available file servers, using fibre channel for high availability. There's support for more than 32 nodes and over 4,000 VMs in a cluster, with live migration and failover clustering, and I/O redundancy — including network load balancing and multichannel SMB. You're going to need this type of technology to build a large-scale private cloud, and it's not suitable for everyone.

On a smaller scale, Hyper-V can also handle disaster recovery, with asynchronous replication to a remote site. It's easy to set up a Hyper-V replica — all you need do is send a snapshot on a disk to a remote site and then start up replication — so you're ready to go a lot more quickly than if you had to upload a complete copy of your server to a recovery site. It's a very flexible approach, with support for active-passive failover, as well as active-active links between two sites, and for using hosted sites or branch offices as shared recovery sites. There are no limits; you can have replicas of as many VMs as you want. You can speed things up still further by using a separate virtual disk for page files, which don't need to be replicated to recovery sites. Failover to a recovery site will automatically inject the correct IP address settings into a new VM as well as updating your DNS, so you can be up and running on a new network.

Migrating VMs is a lot easier, too — all you need is some Ethernet — and you can move the history of your VM workload with the VM. Once you've moved a VM you can use the same PowerShell to script and batch moves for multiple VMs, with support for high- and low-priority VMs. Shared-nothing live migration simplifies setting up new servers, and helps smaller businesses build a virtual infrastructure more quickly.

At a lower level, there's support for multiple tenancy on Hyper-V's network switch, with tools for handling NIC teaming and for managing quality of service — as well as supporting private VLANs and networking access controls. The switch is now extensible, with the ability for third parties to add new functions — either as listeners, or for working with the network traffic directly. It's easy to imagine extensions to the Hyper-V network switch that add data loss prevention features, or enhanced intrusion detection. There are three types of extension, capture, filtering and forwarding, and there will be a Windows Logo programme to certify third-party extensions.

Windows 8 Server networking
Treating Windows 8 Server as the building block for cloud services has meant significant changes to the way it handles networking, focusing on handling multi-tenancy. Designing networks that work for separate isolated systems running on the same physical infrastructure is very different from traditional networks, but the techniques and tools work well for both approaches.

One change is the introduction of DHCP Guard, which blocks virtual machines from exposing services to other VMs on other virtual networks. Isolation is important if you're creating a multi-tenant network, as is performance, and there are now tools that control the traffic sent by virtual machines. You can define both minimum and maximum bandwidth guarantees, allowing you to offer a level of performance that can be exceeded if (and only if) there is spare capacity on the network. As these controls are managed by the Hyper-V network switch, you can use them on any and all VMs, with just a PowerShell cmdlet — making sure you manage your SLAs.

Virtual networks in Windows 8 Server mean that you can have multiple VMs on a physical server, operating as if they're on different hardware, giving the illusion of running on a dedicated network. This makes your services much more portable, making it possible to move from on-premises to the cloud without changing any network settings — even if you need to split functions between your datacentre and the cloud.

You can use Windows 8 Server's NIC teaming features to bundle up network cards into single networking functions, with faster connections, reduced congestion and the ability to failover for load-balancing or for hardware issues. It's vendor-agnostic too, so you can team network resources from different vendors, using either PowerShell or Server Manager.

Of course, this all means changes at a low level in the networking stack, and an increased reliance on DNS and DHCP. Windows 8 Server adds tools for handling DHCP failover, with pairs of DHCP servers for active-active and active-passive failover. You're likely to use them in active-active mode, as this also means you get load-balancing. DNS security is improved, with support for DNSSEC, which lets you use encryption to ensure data integrity and authority, with signed zones deployed to all your DNS servers.

Windows 8 Server also adds new tools for IP address management. A new console, the IP Address Management (IPAM) Center, lets you manage all the IP addresses in an organisation. It's a complex tool, but then managing IP addresses is complex — especially if you're managing a global organisation with many hundreds of address ranges, and with both dynamic and static IP addresses (plus IPv4 and IPv6). The IPAM Center will scan your network, loading dynamic and static addresses, whereupon you can sort and tag your data. It's an extensible tagging model, so you can add your own tags — for example, indicating which building and which floor have which IP address ranges. You can get reports on utilisation, so you can see whether ranges need to be consolidated or have extra addresses added, as well as planning future address assignments.
Windows 8 isn't just a new version of the familiar desktop client — it's also a new version of Microsoft's server software. And as with the Windows desktop, Microsoft's BUILD conference has seen the release of a developer preview of Windows 8 Server, focusing on what Bill Laing, head of Microsoft's Server and Cloud Division, calls "optimising your IT for the cloud". We spent some time before BUILD in Redmond talking with the Windows Server development team and looking at many of the next release's key new features.

Monday 24 October 2011

New Zealand Rugby 2011

I am so Glad New Zealand won the World cup they deserved it so much..
Go on All Blacks Hold that Cup high

Friday 21 October 2011

iOS 5 Developer Training Tour Announced

Apple announced a "world tour" of developer training for iOS 5 today, offering to bring a day's worth of free sessions to nine cities across the globe. The iOS 5 Tech Talk World Tour 2011 kicks off in Europe at the beginning of November and continues into the United States until the end of January.  
Sessions will cover topics like iPhone and iPad UI design, using XCode, iCloud storage and implementing in-app purchases, among several others.

Apple is being very strict about who can attend these trainings. They're intended exclusively for established developers, so simply having iOS developer account isn't enough to attend. The press is out of luck too. Apple says that "taking photographs, recording video and engaging in any form of live blogging during Tech Talk sessions is expressly prohibited." Apple doesn't want any broadcasting to happen at developer events like this because it's possible they will include a sneak peak at future software and services.
In terms of new features, iOS 5 is one of the biggest updates ever made to Apple's popular mobile operating system. Among its over 200 new features is iCloud, which lets developers build Web-based storage for documents and other data into their apps.

The new OS was released to the public last week and has alread seen over 25 million installs.
ios5-tour-schedule.png

Twitter CEO: 'We must respect the user's voice'

Speaking during the Web 2.0 summit in San Francisco, Twitter's chief executive officer Dick Costolo has revealed that one of the company's core values is to respect the user's voice.
Referring to the London riots in August and the use of social media to instigate violence, Costolo defended Twitter, claiming the majority of tweets sent were done so in a positive manner to organise clean ups and to help others.

http://www.bbc.co.uk/news/technology-15403448

Costolo added that with Twitter being a public publication, you have to hope that "the majority of the publications are going to help matters, not to forment violence".

Wednesday 19 October 2011

Upgrading an ASP.NET MVC 3 Project to ASP.NET MVC 4

ASP.NET MVC 4 can be installed side by side with ASP.NET MVC 3 on the same computer, which gives you flexibility in choosing when to upgrade an ASP.NET MVC 3 application to ASP.NET MVC 4.
The simplest way to upgrade is to create a new ASP.NET MVC 4 project and copy all the views, controllers, code, and content files from the existing MVC 3 project to the new project and then to update the assembly references in the new project to match the old project. If you have made changes to the Web.config file in the MVC 3 project, you must also merge those changes into the Web.config file in the MVC 4 project.
To manually upgrade an existing ASP.NET MVC 3 application to version 4, do the following:
  1. In all Web.config files in the project (there is one in the root of the project, one in the Views folder, and one in the Views folder for each area in your project), replace every instance of the following text:
  2.   
    System.Web.Mvc, Version=3.0.0.0 
    System.Web.WebPages, Version=1.0.0.0 
    System.Web.Helpers, Version=1.0.0.0 
    System.Web.WebPages.Razor, Version=1.0.0.0
    with the following corresponding text:
      
    System.Web.Mvc, Version=4.0.0.0 
    System.Web.WebPages, Version=2.0.0.0 
    System.Web.Helpers, Version=2.0.0.0, 
     System.Web.WebPages.Razor, Version=2.0.0.0,
  3. In the root Web.config file, update the webPages:Version element to "2.0.0.0" and add a new PreserveLoginUrl key that has the value "true":
  4. <appSettings> 
      <add key="webpages:Version" value="2.0.0.0" /> 
      <add key="PreserveLoginUrl" value="true" /> 
    <appSettings>
  5. In Solution Explorer, delete the reference to System.Web.Mvc (which points to the version 3 DLL). Then add a reference to System.Web.Mvc (v4.0.0.0). In particular, make the following changes to update the assembly references. Here are the details:
    1. In Solution Explorer, delete the references to the following assemblies:
      • System.Web.Mvc (v3.0.0.0)
      • System.Web.WebPages (v1.0.0.0)
      • System.Web.Razor (v1.0.0.0)
      • System.Web.WebPages.Deployment (v1.0.0.0)
      • System.Web.WebPages.Razor (v1.0.0.0)
    2. Add a references to the following assemblies:
      • System.Web.Mvc (v4.0.0.0)
      • System.Web.WebPages (v2.0.0.0)
      • System.Web.Razor (v2.0.0.0)
      • System.Web.WebPages.Deployment (v2.0.0.0)
      • System.Web.WebPages.Razor (v2.0.0.0)
  6. In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj.
  7. Locate the ProjectTypeGuids element and replace {E53F8FEA-EAE0-44A6-8774-FFD645390401} with {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
  8. Save the changes, close the project (.csproj) file you were editing, right-click the project, and then select Reload Project.
  9. If the project references any third-party libraries that are compiled using previous versions of ASP.NET MVC, open the root Web.config file and add the following three bindingRedirect elements under the configuration section:
    <configuration> 
      <!--... elements deleted for clarity ...--> 
      
      <runtime> 
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
          <dependentAssembly> 
            <assemblyIdentity name="System.Web.Helpers"  
                 publicKeyToken="31bf3856ad364e35" /> 
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> 
          </dependentAssembly> 
          <dependentAssembly> 
            <assemblyIdentity name="System.Web.Mvc"  
                 publicKeyToken="31bf3856ad364e35" /> 
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/> 
          </dependentAssembly> 
          <dependentAssembly> 
            <assemblyIdentity name="System.Web.WebPages"  
                 publicKeyToken="31bf3856ad364e35" /> 
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> 
          </dependentAssembly> 
        </assemblyBinding> 
      </runtime> 
    </configuration>

New Features in ASP.NET MVC 4 Developer Preview

This section describes features that have been introduced in the ASP.NET MVC 4 Developer Preview release.

Enhancements to Default Project Templates

The template that is used to create new ASP.NET MVC 4 projects has been updated to create a more modern-looking website:

In addition to cosmetic improvements, there’s improved functionality in the new template. The template employs a technique called adaptive rendering to look good in both desktop browsers and mobile browsers without any customization.

To see adaptive rendering in action, you can use a mobile emulator or just try resizing the desktop browser window to be smaller. When the browser window gets small enough, the layout of the page will change.
Another enhancement to the default project template is the use of JavaScript to provide a richer UI. The Login and Register links that are used in the template are examples of how to use the jQuery UI Dialog to present a rich login screen:

Mobile Project Template

If you’re starting a new project and want to create a site specifically for mobile and tablet browsers, you can use the new Mobile Application project template. This is based on jQuery Mobile, an open-source library for building touch-optimized UI:

This template contains the same application structure as the Internet Application template (and the controller code is virtually identical), but it's styled using jQuery Mobile to look good and behave well on touch-based mobile devices. To learn more about how to structure and style mobile UI, see the jQuery Mobile project website.
If you already have a desktop-oriented site that you want to add mobile-optimized views to, or if you want to create a single site that serves differently styled views to desktop and mobile browsers, you can use the new Display Modes feature. (See the next section.)

Display Modes

The new Display Modes feature lets an application select views depending on the browser that's making the request. For example, if a desktop browser requests the Home page, the application might use the Views\Home\Index.cshtml template. If a mobile browser requests the Home page, the application might return the Views\Home\Index.mobile.cshtml template.
Layouts and partials can also be overridden for particular browser types. For example:
  • If your Views\Shared folder contains both the _Layout.cshtml and _Layout.mobile.cshtml templates, by default the application will use _Layout.mobile.cshtml during requests from mobile browsers and _Layout.cshtml during other requests.

  • If a folder contains both _MyPartial.cshtml and _MyPartial.mobile.cshtml, the instruction @Html.Partial("_MyPartial") will render _MyPartial.mobile.cshtml during requests from mobile browsers, and _MyPartial.cshtml during other requests.

  • If you want to create more specific views, layouts, or partial views for other devices, you can register a new DefaultDisplayMode instance to specify which name to search for when a request satisfies particular conditions. For example, you could add the following code to the Application_Start method in the Global.asax file to register the string "iPhone" as a display mode that applies when the Apple iPhone browser makes a request:
    DisplayModes.Modes.Insert(0, new DefaultDisplayMode("iPhone") 
    { 
        ContextCondition = (context => context.Request.UserAgent.IndexOf 
            ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) 
     });
    After this code runs, when an Apple iPhone browser makes a request, your application will use the Views\Shared\_Layout.iPhone.cshtml layout (if it exists).

    jQuery Mobile, the View Switcher, and Browser Overriding

    jQuery Mobile is an open source library for building touch-optimized web UI. If you want to use jQuery Mobile with an ASP.NET MVC 4 application, you can download and install a NuGet package that helps you get started. To install it from the Visual Studio Package Manager Console, type the following command:
    Install-Package jQuery.Mobile.MVC
    This installs jQuery Mobile and some helper files, including the following:
  • Views/Shared/_Layout.Mobile.cshtml, which is a jQuery Mobile-based layout.

  • A view-switcher component, which consists of the Views/Shared/_ViewSwitcher.cshtml partial view and the ViewSwitcherController.cs controller.

  • After you install the package, run your application using a mobile browser (or equivalent, like the Firefox User Agent Switcher add-on). You'll see that your pages look quite different, because jQuery Mobile handles layout and styling. To take advantage of this, you can do the following:
  • Create mobile-specific view overrides as described under Display Modes earlier (for example, create Views\Home\Index.mobile.cshtml to override Views\Home\Index.cshtml for mobile browsers).

  • Read the jQuery Mobile documentation to learn more about how to add touch-optimized UI elements in mobile views.

  • A convention for mobile-optimized web pages is to add a link whose text is something like Desktop view or Full site mode that lets users switch to a desktop version of the page. The jQuery.Mobile.MVC package includes a sample view-switcher component for this purpose. It's used in the default Views\Shared\_Layout.Mobile.cshtml view, and it looks like this when the page is rendered:
    If visitors click the link, they’re switched to the desktop version of the same page.
    Because your desktop layout will not include a view switcher by default, visitors won't have a way to get to mobile mode. To enable this, add the following reference to _ViewSwitcher to your desktop layout, just inside the <body> element:
    <body> 
        @Html.Partial("_ViewSwitcher") 
        ...
    The view switcher uses a new feature called Browser Overriding. This feature lets your application treat requests as if they were coming from a different browser (user agent) than the one they're actually from. The following table lists the methods that Browser Overriding provides.

    HttpContext.SetOverriddenBrowser(userAgentString) Overrides the request's actual user agent value using the specified user agent.
    HttpContext.GetOverriddenUserAgent() Returns the request's user agent override value, or the actual user agent string if no override has been specified.
    HttpContext.GetOverriddenBrowser() Returns an HttpBrowserCapabilitiesBase instance that corresponds to the user agent currently set for the request (actual or overridden). You can use this value to get properties such as IsMobileDevice.
    HttpContext.ClearOverriddenBrowser() Removes any overridden user agent for the current request.

    Browser Overriding is a core feature of ASP.NET MVC 4 and is available even if you don't install the jQuery.Mobile.MVC package. However, it affects only view, layout, and partial-view selection — it does not affect any other ASP.NET feature that depends on the Request.Browser object.
    By default, the user-agent override is stored using a cookie. If you want to store the override elsewhere (for example, in a database), you can replace the default provider (BrowserOverrideStores.Current). Documentation for this provider will be available to accompany a later release of ASP.NET MVC.

    Recipes for Code Generation in Visual Studio

    The new Recipes feature enables Visual Studio to generate solution-specific code based on packages that you can install using NuGet. The Recipes framework makes it easy for developers to write code-generation plugins, which you can also use to replace the built-in code generators for Add Area, Add Controller, and Add View. Because recipes are deployed as NuGet packages, they can easily be checked into source control and shared with all developers on the project automatically. They are also available on a per-solution basis.

    Task Support for Asynchronous Controllers

    You can now write asynchronous action methods as single methods that return an object of type Task or Task<ActionResult>.
    For example, if you're using Visual C# 5 (or using the Async CTP), you can create an asynchronous action method that looks like the following:
    public async Task<ActionResult> Index(string city) { 
        var newsService = new NewsService(); 
        var sportsService = new SportsService(); 
         
        return View("Common", 
            new PortalViewModel { 
            NewsHeadlines = await newsService.GetHeadlinesAsync(), 
            SportsScores = await sportsService.GetScoresAsync() 
        }); 
    }
    In the previous action method, the calls to newsService.GetHeadlinesAsync and sportsService.GetScoresAsync are called asynchronously and do not block a thread from the thread pool.
    Asynchronous action methods that return Task instances can also support timeouts. To make your action method cancellable, add a parameter of type CancellationToken to the action method signature. The following example shows an asynchronous action method that has a timeout of 2500 milliseconds and that displays a TimedOut view to the client if a timeout occurs.
    [AsyncTimeout(2500)] 
     [HandleError(ExceptionType = typeof(TaskCanceledException), View = "TimedOut")] 
    public async Task<ActionResult> Index(string city, 
        CancellationToken cancellationToken) { 
        var newsService = new NewsService(); 
        var sportsService = new SportsService(); 
        
        return View("Common", 
            new PortalViewModel { 
            NewsHeadlines = await newsService.GetHeadlinesAsync(cancellationToken), 
            SportsScores = await sportsService.GetScoresAsync(cancellationToken) 
        }); 
    }

    Azure SDK

    ASP.NET MVC 4 Developer Preview supports the September 2011 1.5 release of the Windows Azure SDK.

    Known Issues and Breaking Changes

    • The "Add Controller" item template in Visual Basic projects generates an incorrect namespace when invoked from inside an area. When you add a controller to an area in an ASP.NET MVC project that uses Visual Basic, the item template inserts the wrong namespace into the controller. The result is a "file not found" error when you navigate to any action in the controller.
    • The generated namespace omits everything after the root namespace. For example, the namespace generated is RootNamespace but should be RootNamespace.Areas.AreaName.Controllers.
    • There are issues when running ASP.NET MVC 3, ASP.NET MVC 4, and Windows Azure Tools for Visual Studio 2010 1.5 side by side. Windows Azure Tools for Visual Studio 2010 1.5 provides ASP.NET MVC 3 and ASP.NET MVC 4 web roles. Installing ASP.NET MVC 4 on a computer that already has ASP.NET MVC 3 installed causes the Azure deployment packages that contain an ASP.NET MVC 3 web role to fail to run after deployment. The workaround is to right-click the project, select Add Deployable Assemblies, and then choose ASP.NET MVC.
    • Creating an ASP.NET MVC 4 project with unit tests that targets the .NET Framework 4.5 results in a unit test project that won’t compile. The workaround is to change the unit test project to target the .NET Framework 4.5. To retarget the project, right-click the project in Solution Explorer and then select Properties. Make sure the Application tab is selected and then change the Target Framework to .NET Framework 4.5.
    • There is a compatibility issue when using scaffolding with the .NET Framework 4.5 Developer Preview installed on Windows 8 Developer Preview. The .NET Framework 4.5 Developer Preview on Windows 8 introduces a breaking change into the Visual Basic compiler that affects the Add Controller dialog box for ASP.NET MVC 3 in Visual Studio 2010. If you use the Entity Framework controller scaffolder in an ASP.NET MVC 3 project that uses Visual Basic, you'll see the error message "There is not enough information to call IEnumerable.GetEnumerator on Windows Runtime object …"
    • Breaking changes in the Razor View Engine. As part of a rewrite of the Razor parser, the following types were removed from System.Web.Mvc.Razor:
      • ModelSpan
      • MvcVBRazorCodeGenerator
      • MvcCSharpRazorCodeGenerator
      • MvcVBRazorCodeParser
      The following methods were also removed:
      • MvcCSharpRazorCodeParser.ParseInheritsStatement(System.Web.Razor.Parser.CodeBlockInfo)
      • MvcWebPageRazorHost.DecorateCodeGenerator(System.Web.Razor.Generator.RazorCodeGenerator)
      • MvcVBRazorCodeParser.ParseInheritsStatement(System.Web.Razor.Parser.CodeBlockInfo)
    • When WebMatrix.WebData.dll is included in in the /bin directory of an ASP.NET MVC 4 apps, it takes over the URL for forms authentication. Adding the WebMatrix.WebData.dll assembly to your application (for example, by selecting "ASP.NET Web Pages with Razor Syntax" when using the Add Deployable Dependencies dialog) will override the authentication login redirect to /account/logon rather than /account/login as expected by the default ASP.NET MVC Account Controller. To prevent this behavior and use the URL specified already in the authentication section of web.config, you can add an appSetting called PreserveLoginUrl and set it to true:
      <appSettings> 
          <add key="PreserveLoginUrl" value="true"/> 
      </appSettings>
    • Installing ASP.NET MVC 4 Developer Preview breaks ASP.NET MVC 3 RTM applications. ASP.NET MVC 3 applications that were created with the RTM release (not with the ASP.NET MVC 3 Tools Update release) require the following changes in order to work side-by-side with ASP.NET MVC 4 Developer Preview. Building the project without making these updates results in compilation errors. Required updates
      1. In the root Web.config file, add a new <appSettings> entry with the key webPages:Version and the value 1.0.0.0.
      2. <appSettings> 
            <add key="webpages:Version" value="1.0.0.0"/> 
            <add key="ClientValidationEnabled" value="true"/> 
            <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
        </appSettings>
      3. In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj.
      4. Locate the following assembly references:
        <Reference Include="System.Web.WebPages"/>  
        <Reference Include="System.Web.Helpers" />
        Replace them with the following:
        <Reference Include="System.Web.WebPages, Version=1.0.0.0, 
        Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>  
        <Reference Include="System.Web.Helpers, Version=1.0.0.0, 
        Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
      5. Save the changes, close the project (.csproj) file you were editing, and then right-click the project and select Reload.
    • Mobile Project Template support for VB.NET. There is currently no mobile project template for Visual Basic. Changes for Visual Basic project templates will be available in a future release.
    • View without @model declaration results in a compiler error. A Razor view that does not declare the model type using the @model declaration and that accesses server side code using the @ syntax results in a compiler error. This is a regression from the behavior of ASP.NET MVC 3. As a workaround, use the @model declaration. If you don’t want to specify a type, use @model dynamic.

    ASP.NET MVC 4 Developer Preview Released

    //BUILD keynote, Scott Guthrie announced the availability of ASP.NET MVC 4 Developer preview. Note those words, developer preview. This is not even a Beta release. But there sure is a lot of cool stuff inside.

    One great thing about this release is that the runtime libraries as well as JavaScript libraries are available as NuGet packages. So if you write packages that depend on the ASP.NET MVC 4 runtime, you can have them depend on your packages.

    Also included in this release is NuGet 1.5 which was released just recently. If you already have NuGet 1.5 installed, you may notice there’s a new update available.  This new version includes support for Visual Studio 11 Developer Preview

    Tuesday 18 October 2011

    RIM announces PlayBook 2.0 Developer Beta with BlackBerry Runtime and ADT plug-in

    Research in Motion announced the developer beta of BlackBerry PlayBook 2.0 today at its DevCon keynote.

    Developing..

    Monday 17 October 2011

    Microsoft reveals Data Explorer tool, gets into the sorbet business (video)

    Redmond houses quite a few little teams beavering away on quirky projects and one of those has just gone public with its latest creation. It's codenamed "Data Explorer", which perhaps isn't an ideal codename since it describes exactly what the enterprise-focused service does. Instead of manually searching and copying data into a report, Data Explorer pulls information from SQL databases, spreadsheets and other "random sources" that could be relevant, and then attempts to "clean it up, transform it, merge it together and then publish it out" as a coherent report. You can learn more and sign up for the beta at the source link, or click past the break to watch a Microsoft exec demo the tool using a real-world case study -- we found it a bit dense, but you'll be fine as long as you remember that kids love frozen yogurt.

    Saturday 15 October 2011

    eSynergy Solutions NEW Website

    eSynergy Solutions new Web site is now live and looking fantastic ...

    Click on the Link below and have a look

    http://www.esynergy-solutions.co.uk/

    Friday 14 October 2011

    eSynergy Solutions NEW Website

    So excited today just saw our new website and its looking excellent...

    Keep your eyes on this space as it will be going live soon.

     http://www.esynergy-solutions.co.uk/

    Thursday 13 October 2011

    Windows 8 details: new features, UI enhancements and everything in between

    Facebook And eBay Team Up To Breathe New Life Into Social Commerce

    facebook-surpasses-ebay-in-terms-of-value
    “We’re at an inflection point”, eBay CEO John Donahoe said from the stage at Innovate, eBay’s brand new developer conference that launched today in San Francisco. “We’ll see more change in how consumers shop and pay in the next three years than we’ve seen in the last 15 years”.

    Donahoe’s prediction for the future came as context for giving a more complete introduction today to X.commerce, the platform formed by eBay and its nest eggs PayPal, Magento and GSI — designed to create a robust, full-service and “open” eCommerce solution. The eCommerce solution “to rule them all”, one might say.
    But the real kicker is that, as Leena wrote earlier today, what X.commerce really symbolizes is the first instance of eBay creating a business that truly caters to developers. In the past, eBay developers have been divided into the eBay marketplace, PayPal, etc., but now developers have all those technologies in one place, allowing them to create “new shopping and eCommerce experiences based on these interconnected suite of tools”.

    One of the more anticipated announcements to come out of Innovate was a partnership between the world’s largest social network and eBay, which will see the latter integrating Facebook’s Open Graph (the tree of connections Facebookers create by sharing and interacting with friends and content on the social network) into its Magento and GSI global commerce platforms.
    What does this mean? The partnership will basically give third party developers a bigger voice in the development of social commerce, allowing them to build new social shopping experiences for consumers and retailers, share their ideas, and create personalized apps for buying, selling, and sharing that have Facebook’s social features baked right into them.

    While building Facebook’s features into eCommerce offerings may allow them to make shopping more personalized and display friends’ thoughts about products right in their eShops, the truth is that social commerce hasn’t exactly taken off over the last year. Merchants already have the opportunity to set up storefronts on Facebook to sell directly to their customers while they’re networking or surfing a brand’s fan page, but so far sales on the platform haven’t impressed.

    It seems that consumers aren’t particularly jazzed about doing their shopping on Facebook — part of which may be due to the novelty of Facebook’s eCommerce or it could simply be a reluctance to embrace new commerce functionality on what is really a platform designed to share pictures and stalk former romances. It also may have something to do with the fact that many consumers are worried that their credit card and personal information is being scooped up by Facebook in the transaction process. Either buyers are redirected to a brand’s own online store, or they buy on Facebook and often have to accept an app request to make a purchase. That app request can give away a bunch of information on the user and it’s really something many consumers are still loathe to do.
    Indeed, it’s a result of this that, as VP and General Manager of X.commerce Matthew Mengerink said today, online shopping remains “a very individualistic and lonely experience”. Which is a shame considering the fact that Facebook’s Director of Platform and Mobile Marketing Katie Mitic told the Innovate crowd that shopping is inherently a social activity and that the world is really just beginning to get a taste of “what’s possible with social commerce”.

    Of course, to achieve what’s possible with social commerce eBay and Facebook need the developer community to get excited and want to be on board. Yet, as Reuters pointed out, some analysts and eCommerce experts were hoping for a deeper and perhaps more full-featured partnership between the two companies. And Mitic’s announcement was met with little to no applause from the 3,000+ developers and techies on hand.
    This could of course be that they were tired, or that the recent changes to Facebook’s platform that took users beyond the “like” button to allowing them to share what they’ve “read” or want to “taste” just don’t sound that enthralling when applied to social commerce. With eBay’s new Facebook integration, developers will now be able to build social commerce apps that allow users to share what products they “buy”, “want”, “own”, or “recommend”. But is this enough to really change the face of social commerce?
    Mengerink said that, in the market today, too many shopping apps target the point of sale, but that the real-life process of browsing, discussing what products are appealing or not, and trying different things on, for example, is inherently social, but it doesn’t always involve buying.

    “What we’re encouraging developers to think about is to try out the more ‘pre-shopping’ social experience”, he said. Meaning that the process of joining friends at an online store, browsing, sharing, and chattering via enhanced social features is a way to encourage brand recognition, organic word-of-mouth familiarity with products — and is integral to making the online shopping experience more resemblant of offline shopping. And to grow online sales. The question is, of course, whether or not this is truly possible just with “want” and “own” buttons, and just how much these new pre-shopping features can boost a brand’s bottom line.

    The virtual shopping experience is a long ways off from one that mimics its offline counterpart, and I’ve yet to be convinced that just because one of my grade school friends interacted with a product on Facebook, which then popped up in my news stream, that I’m more likely to interact with that product and buy it just because of some loose social connection manifesting while I’m in the process of turning off more Facebook sharing features. Yes, it adds to a brand’s network, and if I’m browsing friends’ profiles and see a product I want to learn about before buying, this is a great conversation starter.

    What do you think? Is this a win for developers, consumers, eBay, or Facebook (or all of the above)?

    The Ultimate Phone Fight

    Blackberry vs Iphone




    Lets get the fight started ....Who do you think would win

    Like for Iphone  /  Comment For Blackberry

    Microsoft officially launches Windows Phone in India with trio of Mango devices

    Wednesday 12 October 2011

    iOS 5 review