I was at the Build conference in San Francisco from 26th of June till 28th of June 2013. Even though some time has passed since then and there are a great number of articles online about what has been presented at the conference, I’ve decided to post a summary of what I have seen and learned. Better late than never, right? So here it goes!
Warning: this post is going to be a long one, although it doesn’t cover all sessions and it barely scratches the surface on some of the topics, but nevertheless go get yourself some popcorn and drinks. If you want to go right to the pictures, here you go: Build 2013 🙂
The Keynote session was presented by the man himself Steve Ballmer, the CEO of Microsoft, along with several influential Microsoft employees like:
- Scott Guthrie, Vice President of Microsoft Server & Tools Business
- Scott Hanselman, Principal Community Architect for Web-Platform & Tools
- Satya Nadella, Executive Vice President of Microsoft Cloud and Enterprise
- Antoine Leblond, Vice President of Microsoft Windows Web Services
- Steve Guggenheimer, Vice President of Microsoft Developer & Platform Evangelism
- and many more…
The Breakout sessions, presented by Microsoft Program Managers and developers, had the following topics:
- Windows 8.1 Preview (currently version RTM, to be released on 18th of October)
- Visual Studio and TFS 2013 Preview (currently version RC)
- Internet Explorer 11 Preview
- .Net Framework 4.5.1
- 3D printing with Windows
Microsoft is changing strategies regarding their product development. Microsoft is focusing on shorter iterations and continuous delivery of products, meaning that companies should expect new versions of the Microsoft products released more often. This is already the case of the Visual Studio, the version 2012 was released on 15th of August 2012 and we can expect 2013 in the next months.
Microsoft is also trying to involve the developer community in their feature planning, so developers can now directly discuss with the .Net Framework team which features are more important and urgent.
Microsoft will use the package manager Nuget to make is possible for the developers to install .Net Framework more easily and faster. When installing a Nuget package, the files will be copied directly into the solution and the projects and references will be updated automatically. When removing a package, Nuget will reverse every changes made. This means less time and effort for the developers and generally an easier integration of libraries into productive code.
Microsoft is also going open source with some of their products, for example the ASP.NET code is already available open-source:
Flexible source control with TFS & GIT
TFS (Team Foundation Service) supports currently TFVC (Team Foundation Version Control, formerly known as Team Foundation Server). TFVC is a Centralized Version Control designed for large databases. The code is centrally located on the server and the developers work on this server using the Checkout-Edit-Commit model.
Distributed Version Control is the second category and it is used for offline mode. In this case there is a repository which has to be cloned by the developers locally on their computers. The Pull-Edit-Commit-Push model is used for this type of version control.
It was planned for TFS 2013 to integrate a Distributed Version Control system in addition to the Centralized Version Control System that is TFS. The choice being Mercurial or GIT, the latter was selected.
So as of TFS 2013, GIT is supported and completely integrated into Visual Studio 2013, meaning that the developers can do operations like Commit to local, Push to server, Merge between GIT Branches and solve conflicts directly in VS 2013. However Visual Studio 2013 will not support a Solution Explorer for repositories so it won’t be possible to browse through the repository on the server directly from VS2013, like for TFVC using the Source Control Explorer.
TFSVC and GIT cannot be combined within a project, the decision if TFVC or GIT should be used must be met on the project level.
CI Builds for GIT projects will be coming soon as well.
Innovations in high performance 2D graphics with DirectX
In Windows 8.1 the following improvements will be available:
- Multi-colored fonts,
- Geometry realization for a better performance in geometry rendering,
- Compressed image formats for less memory and faster creation of images.
Backward compatibility of these new features in earlier versions of Windows will not be provided by Microsoft, so this has to be handled in the application itself by checking the runtime version and handling fallback, if the application is running on Windows older than 8.1.
2D Geometry Rendering performance
Rendering of geometrical objects is CPU-bound. Bitmaps take a lot of resources and are not robust for operations like rotation or scaling.
The solution in Windows 8.1 Preview is using DirectX 11.1 hardware combined with the new feature called Geometry Realization.
With the new Geometry Realization applications can improve the performance of rendering geometrical shapes without the disadvantage of geometrical rasterization for bitmaps.
Geometry Realization is dependent on the device and should be used for static geometrical objects. With the new class Geometry, introduced in D2D, drawing will use less CPU and is GPU-optimized. Generating geometrical objects depends on the scale factor and operations like transformation, rotations and scaling will be uniform.
Image effects performance
Rasterization means delayed rendering: if only a part of the image is displayed, the whole image doesn’t have to be drawn. Unnecessary rasterization should be avoided, for example when drawing the shadow of an object where the drawing routine is called twice: once for the shadow and a second time for the object itself. If the same image with effects is drawn multiple time, RenderTarget should be used.
A lot of memory and more startup time is needed currently for images. JPEG images are expensive for the CPU and currently support only the RGBA format. With the new YCbCr JPEG format up to 63% can be saved.
Starting from Windows 8.1 applications can render images using the new YCbCr format without having to convert them to RGBA. This will lead to smaller graphical memory usage and less time for creating resources.
Additionally, in Windows 8.1 applications can use images with block compression (BC1-BC3 for D2D), only by configuring the properties of the image directly in Visual Studio. Block compression has the same advantages like the new YCbCr image format and could lead up to 75-87.5% savings.
What is new in ASP.NET and Visual Studio 2013
- There is going to be only one ASP.NET, regardless of WebForms or MVC.
- The „New project“ dialog is cleaned up.
- Friendly URLs for ASP.NET Webforms .aspx pages as well.
- Scaffold available for everyone.
- Search inside Visual Studio using the new search field on the top right corner.
- Map mode is re-introduced in the scrollbars.
- Async support for Entity Framework 6.
- New emulators in Visual Studio, e.g. for Mobile.
- Browse With: set multiple browsers as default.
- Refresh in all Browsers without having to close the browser windows, accomplished with the integration of Signal R in Visual Studio.
- Preview of images inside Visual Studio.
- Color Picker dialog
- Display of browser support on hover on a css setting inside Visual Studio.
What’s new in.Net Development
The new .Net Framework 4.5.1 tried to improve the following points:
- Developer Productivity
- Continuous innovation
- Application performance
- The return value is displayed in the Autos and Immediate Window dialogs.
- Asynchronous methods cal be traced in the Call Stack and Tasks dialogs.
The .Net Framework is as of now available on Nuget.
- On-demand Large Object Heap Compaction,
- Multi-core JIT support for ASP.NET automatically enabled, which will lead to minimal startup time with multicore CPUs.
Developing .Net applications for devices and services
The evolution of the applications is shifting slowly from client-server to devices-services.
Today the goal of the applications running on multiple platforms is portability and this can be achieved with re-usability of code and binary files.
For this purpose, the PCL or Portable Class Library was introduced in .Net Framework 4.5 for applications which target multiple platforms, like smartphones, tablets, desktop, cloud. With the new PCL Project in Visual Studio 2012 a common source code, project and binary file can be achieved, without having to make any kind of changes for Windows 7, Windows 8, Silverlight, Windows Phone o Xbox 360.
The MVVM (Model-View-ModelView) pattern is recommended. The business logic is implemented in the PCL project in order for the ViewModel and the Model, all the abstract base functionalities for all applications and platforms to be portable and that these BL classes can be then later referenced by multiple applications. The View in the MVVM model, specific to each platform, will be implemented in each project which references the PCL.
With the PCL project, time and costs can be saved during development and testing of multi-platform application by having the Business Logic layer implemented only once and reused by all applications. Without the PCL project, the code must be copied and adjusted in each application separately.
Internet Explorer 11
The goal of the new Internet Explorer 11 is a fast, fluid and efficient website browsing experience. For this purpose, the following points have a high priority from the performance point of view:
- Page/application loading time
- User interface responsiveness
- Fluid scrolling, panning and animations
Inspecting and debugging using the new Developer Tools (F12)
Internet Explorer 11 brings a lot of improvements in the Developer Tools, giving the developers the possibility to analyze and optimize websites faster and easier. The new F12 Toolkit has the following new features:
- Web Worker
- UI Responsiveness: diagnosis of webpage loading time
- Diagnosis of memory usage in Visual Studio (Javacript Memory)
- Heap snapshot
- Live DOM explorer
- Trace points