Future of certification with Microsoft.
Over the next 10 months the learning & certification program at Microsoft will change drastically. This post is really just a cheat sheet of the new certifications and exams that are coming, as always for the latest source of news on this check out: http://www.microsoft.com/learning/en/us/default.aspx
High level
At a high level the three tiers will change as follows:
- The MCP will certification will drop away and be replaced with MCSA (Microsoft Certified Solutions Associate). This applies to IT Pro’s & DBA’s – there is no MCSA for developers!
- The MCPD & MCITP will be replaced with MCSD (Microsoft Certified Solutions Developer) & MCSE (Microsoft Certified Solutions Expert) - yes, those are the same names from about a decade ago.
- The top level MCM will be replaced with MCSM (Solutions Master). I am not covering that in this post.
IT Pro’s
MCSA for IT Pro can be obtained in two ways:
- MCSA - Server 2012. Made up three exams:
- 410*: Installing and configuring Windows Server 2012
411*: Administering Windows Server 2012
412*: Configuring Advanced Windows Server 2012 Services - Can upgrade with the 417 exam from
- MCSA: Windows Server 2008
MCITP: Virtualisation Administrator
MCITP: Enterprise Message Administrator
MCITP: Lync Server Administrator
MCITP: SharePoint Administrator
MCITP: Enterprise Desktop Administrator - MCSA - Server 2008. Made up of three exams:
- 640: Windows Server 2008 Active Directory, Configuring
642: Windows Server 2008 Network Infrastructure, Configuring
646: Windows Server 2008, Server Admin - Can upgrade with the 417 exam from
- MCSA: Windows Server 2008
MCITP: Virtualisation Administrator
MCITP: Enterprise Message Administrator
MCITP: Lync Server Administrator
MCITP: SharePoint Administrator
MCITP: Enterprise Desktop Administrator
There are three ways to get an MCSE as an ITPro:
- MCSE Server Infrastructure: You need a MCSA – Server 2012 & the 413* (designing and implementing a server infrastructure) & 414* (implementing and advanced server infrastructure).
- MCSE Private Cloud: You need a MCSA – Server 2012 or MCSA – Server 2008 & the 246 (monitoring and operating a private cloud with system centre 2012) & 247 (Configuring and deploying a private cloud with system centre 2012).
- MCSE Desktop Infrastructure: You need a MCSA – Server 2012 & the 415* (implementing a desktop infrastructure) & 416* (implementing desktop application environments).
DBA’s
MCSA for a DBA can be obtained in one way:
- MCSA - SQL 2012. Made up of three exams:
- 461: Querying Microsoft SQL Server 2012
462: Administering a Microsoft SQL Server 2012 Database
463: Implementing Data Warehouses with Microsoft SQL Server 2012 - Can upgrade by doing both the 457 & 458 exams from any MCTS on SQL Server 2008
There are two ways to get an MCSE as a DBA:
- MCSE Data Platform: You need a MCSA – SQL Server 2012 & the 464 (developing Microsoft SQL Server 2012 databases) & 465 (designing databases solutions for SQL Server 2012).
- MCSE BI: You need a MCSA – SQL Server 2012 & the 466 (Implementing Data Models and Reports with Microsoft SQL Server 2012) & 467 (Designing business intelligence solutions with Microsoft SQL Server 2012)
Developers
There is no MCSA for developers so the three ways to get a MCSD are:
Web Application Developers requires three exams:
- 480: Programming with HTML 5 with JavaScript and CSS
- 486: Developing ASP.NET 4.5 MVC Web Applications
- 487: Developing Windows Azure and Web Services
- You can also upgrade to this from MCPD: Web developer 4 by doing
- 480: Programming with HTML 5 with JavaScript and CSS
- 492: Upgrade exam
Windows Store Apps using HTML 5 requires three exams:
- 480: Programming with HTML 5 with JavaScript and CSS
- 481: Essentials of developing Windows Store Apps using HTML 5 and JavaScript
- 482: Advanced Windows Store App Development using HTML 5 and JavaScript
- You can also upgrade to this from MCPD: Windows developer 4 by doing
- 480: Programming with HTML 5 with JavaScript and CSS
- 490: Upgrade exam
Windows Store Apps using C# requires three exams:
- 483: Programming with C#
- 484: Essentials of developing Windows Store Apps using C#
- 485: Advanced Windows Store App Development using C#
- You can also upgrade to this from MCPD: Windows developer 4 by doing
- 483: Programming with C#
- 491: Upgrade exam
*Beta exams currently - will change.
Rapid Business Development: LightSwitch vs. Dynamics CRM vs. SharePoint vs. ASP.NET MVC
Over a year ago I wrote a post where I compared four technologies that can be used to build business applications rapidly. The original post was inspired by how similar a number of products have become over the last few years and more importantly how Visual Studio LightSwitch, which is a specialized rapid business tool development platform built on top of Visual Studio, is going to affecting the development eco-system. That post was written in the LightSwitch Beta 2 timeframe and the world has changed a lot since then – LightSwitch has shipped, not once but TWICE! So it is about time it got a refresh.
As with the previous post I am going to compare LightSwitch against Dynamics CRM, SharePoint & ASP.NET MVC Scaffolding. If you are not aware of these different products see my older post for a brief overview of them.
I think the differences between these four are very interesting and while each has its strong & weak points, this should definitely not be looked at as a pick one only post. There are many scenarios where you want to combine them for even better experiences.
To be clear that ASP.NET MVC is greater than ASP.NET MVC Scaffolding – you can do almost anything with MVC, however for this article we are looking at the concept of rapid development and comparing MVC with MVC scaffolding, scaffolding will give you a more rapid development with trade-offs. An example of this is databases supported, where MVC supports anything .NET does but scaffolding is a subset of databases.
I have broken down the issues into twenty two (!) aspects (key points we can compare them against each other) which are grouped into six scenarios to make it easier to digest. Each scenario starts with a list of the aspects and a brief description followed by a comparison table of those aspects. All the aspects are numbered so you can easily scan the table & if there are notes available the information will give you the relevant note numbers (see image below for more info).
Starting
- Ready to go out of the box: Once installed, can it do anything? Seems silly, but quick turnaround at the start, even if actual development is longer is important as it helps with prototyping, shows some rapid development and hints at how hard it is to learn (for me at least, if it does something I find I can experiment and learn quickly). Important to note, we are not looking at making it align with your company needs here, we just want it to do something. Eating CPU cycles & RAM is not something either.
- Northwind Style Sample development costs: This aspect looks further than the above aspect and looks at how much more would it take to get it tailored for a company, like the fictional Northwind, to have a XRM type system as it can be done across all four. Fewer $ signs means less time and/or resources for the functionality.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Ready to go out of the box | Medium (see note 1) | Fastest (see note 2) | Fast | Slowest (see note 1) |
|
Aspect 2 Northwind Style Sample development costs | $ (see note 2) | $$ | $$ | $$$ (see note 1) |
|
Finishing
- Cost for on-premise deployments: This looks at the money cost for licensing to get the solution up and running on premise (i.e. in your company). Licensing is, of course, flexible and this will vary based on who you are – so this is not indicative for all. It does not include such things as server hardware or common costs, for example operating system licensing.
- Deployment Complexity: Getting a solution up and running shouldn’t be difficult for an organization and a lot of time can be lost (and costs incurred) changing, upgrading and troubleshooting systems that do not want to be deployed.
- Deployment Documentation: When it happens that you need to deploy, having a wealth of documentation (be that video’s, best practice guides, troubleshooting material) is vital and plays a large part in getting a solution up that works every time.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Cost for on premise deployments | $$ Visual Studio licenses. No per user costs. (see note 2) | $ to $$$ Cost per user & cost per server. Visual Studio only if you are doing integrations or custom workflows. (see note 1) | $$$$ to $$$$+ Cost per user & cost per server. Visual Studio licenses for any serious work. | $$ Visual Studio licenses. No per user costs. (see note 2) |
|
Aspect 2 Deployment Complexity | Easy (see notes 1 & 2) | Hard (see note 1) | Hardest (see note 1) | Easiest (see notes 1 & 3) |
|
Aspect 3 Deployment Documentation | Yes (see note 2) | Yes (see note 2) | Yes (see note 2) | Yes (see note 1 & 2) |
|
User Experience
- Front End Technology: A good looking, feature rich UI can seriously ease adoption, and what we are looking at here is the richness level of technology used for the out of the box front end user interface.
- How good the standard UI looks: Completely subjective and really this is based on what I think looks best.
- Flexibility of out of box front end: In this aspect we are concerned about how easy it is to adjust and tweak the out of the box front end.
- Themability: Corporate branding is massive business and making sure the application out of the box looks like it is part of your business is important. It is important to note that both CRM & SharePoint can have custom front ends built which enable this scenario, but that requires extra development, and we are focusing on the out of the box options here and assuming you have the theme built already.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Front End Technology | Silverlight. Supports out of browser (desktop) & in browser (see note 1) | Web Just ASP.NET | Web ASP.NET under the covers with sprinklings of Silverlight | ASP.NET (see note 2) |
|
Aspect 2 How good the standard UI looks (very subjective) | Medium (see note 2) | Medium (see note 3) | Today: Very Low Future: Medium (see note 1) | Depends on your web designer (see note 3) | This is the most subjective aspect:
|
Aspect 3 Flexibility of UI development in the tool | High (see note 1) | Medium (see note 2) | Medium (see note 2) | High (see note 1) |
|
Aspect 4 Themability | Today: High Future: Highest (see notes 1, 2 & 3) | Low (see note 4) | Medium (see note 3) | Highest (see note 1) |
|
Extensibility
- API for integration: In the short term having an API means it is easy to get data into your new solution, in the medium term it means more ways to sync data and mash up your systems and in the long term it gives you a way to get your data out. It is vital to have an API.
- Marketplace: Apple kicked the idea of having an AppStore into reality for many of us and now having a marketplace to get extensions, customisations or themes is an important aspect. I am ignoring public sites, like Codeplex for example, and only focusing on an official marketplaces. Galleries are just marketplaces with no vetting, which means they are bigger but the quality bar is not guaranteed.
- Additional Authentication Options: Only your employees or customers (which may be everyone if you are lucky enough) should access your solutions. What do we get out of the box to limit access to the system? All four systems support Windows & Forms based authentication so I am only listing other options which are available.
- Permission Structure (Authorisation): Being able to control what parts of a solution you can access, once you have logged in is also vital and having a lot of flexibility in this space is also important as very seldom will one structure work for everyone.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 API for integration | Yes (see note 2) | Yes (see note 3) | Yes - at least 5 of them. (see note 3) | Yes (see note 1) |
|
Aspect 2 Marketplace | Gallery available (see note 3) | Yes (see note 1) | Nope (see note 2) | Gallery available (see note 3) |
|
Aspect 3 Additional Authentication Options | Anonymous, Custom, Windows Authentication (AD) & Forms based. (see notes) | Claims based authentication via STS | Anonymous and more available through custom development (e.g. Windows Live). Claims based authentication (custom development required). | Anonymous and more available through custom development (e.g. Windows Live). Claims based authentication (custom development required). | LS makes use of ASP.NET Authentication Provider so it fits nicely into the technologies developers already know. |
Aspect 4 Permission Structure (Authorisation) | Very complete model for permissions. Minor coding required. (see note 2) | Fantastic out of the box option, plus plenty of extensibility if needed. (see note 3) | Good structure with many levels of customisation. Out of the box is very simple. (see note 3) | Basic support for it but can be extended through development. A lot of XML work though may be needed. (see note 1) |
|
Information Worker Features
- Offline support: Being able to work when you are not in the office is a vital need for many people. So how do these platforms enable that scenario? In theory it is always possible to build this, so we are just looking at the out of box offering. This scenario is focused on offline with a laptop, not a tablet or mobile phone.
- Easily Import Data: How do we get information into the solution, besides the API? Does the product make this easy with out of the box tooling?
- Printing: Despite the promise of a paperless office, it still is not the case and being able to print is important, even if it is just to XPS or PDF for invoicing.
- Office Integration: Integration into Microsoft Office products (i.e. Word, Excel, Outlook, PowerPoint, Access, Publisher, and InfoPath & OneNote) means that your IW’s will be able to work in the tools that they are comfortable with, easing adoption and productivity.
- Mobile Device Support: Information workers are increasingly mobile and having good mobile device support is a critical feature. When I look at this I am not just thinking about the simple, does it support it but also how well it supports mobile devices.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Offline support | No (see notes) | Yes (see notes) | Yes (see notes) | No (see notes) | Being able to work offline is important if you are a roaming user. LS & MVC offer nothing in this space while CRM & SP both offer offline via Outlook. |
Aspect 2 Easily Import Data (out of the box) | Nope (see notes) | Yes, from CVS. (see notes) | Yes. Multiple options. (see notes) | Nope (see notes) | In all cases there are tools and other ways to import data (for example LS has the http://officeintegration.codeplex.com extensions) but CRM & SP have an out of the box options. |
Aspect 3 Printing (out of the box) | Nope (see note 1) | Yes (see note 4) | Yes – Poor (see note 3) | Browser Level (see notes 1 & 2) |
|
Aspect 4 Office Integration | Low One way export to Excel in out of browser mode only. Others can be custom developed or use the OfficeIntegration extensions (http://officeintegration.codeplex.com) | Medium One way to Excel. Mail merge with Word & Outlook. Deep integration with Outlook is available too. | High Only Publisher doesn’t have some integration with SharePoint. Every other Office product does, some like Excel are one way while others like Access are two way. SP internally has features that understand Office files too, for example PowerPoint Libraries show thumbnails. | None Can be custom developed. | |
Aspect 5 Mobile Device Support | Today: Limited Future: Fantastic (see note 1) | Good (see note 2) | Okay (see note 3) | Fantastic (see note 4) |
|
Other
- Databases Supported: Where the data can come from for your application is a critical piece of the puzzle because it means the difference between building ETL solutions to handle moving it around if the source is supported or having it just work.
- Minimum Skills for Tailoring: Tailoring is what I refer to when I think of customisation of a system, without the need for a programming language. At some point you will need a developer but how far away that is and what can be done by a analyst or super user early on is important from a time to solution and cost perspective. Lower is better here.
- Can run in the cloud? If you not thinking about how you can leverage the cloud, then you are not thinking. Making sure the solutions can cater for the cloud is an important consideration. All four solutions can run in the cloud but how do they run is also important
- ALM Experience: How does this tool work with a full ALM experience? Can I unit test it easily? Will it go into source control easily and what happens when multiple developers are updating the same files? How about build server and development tool integration? All important questions in understanding a complete picture of that these tools cost or what you sacrifice with some of them.
- Requires Silverlight: Despite decent market penetration and ease of deployment in corporate scenarios, the requirement for Silverlight can be a deterrent to business, especially those where the CEO uses an iPad. This is not answered in the table as only LightSwitch requires Silverlight today (in the future it will support HTML). CRM has no dependencies, SharePoint has a fall back mode and if you used Silverlight with MVC it would be possible to have a fallback mode, provided you developed it.
- Data performance: This is also not in the table since it only applies to LightSwitch. For CRM, MVC & SharePoint I assume your front end (web) is always close enough, for example the same LAN, to the database but in LightSwitch you can really separate them. Here it is important to note LightSwitch is NOT great with data performance between backend & frontend out of the box, however with careful tailoring of data sources & screens you can greatly improve it. It sends massive amounts of data around. In my view it really does not feel optimised for low bandwidth WAN scenarios.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Databases Supported | Out of the box:
| SQL Server | SQL Server normally. With advanced skills can use external data sources with BDC. External content types can also be used in place of BDC with a lower skill set (power users) but at a smaller feature set supported. | For scaffolding anything supported by LinqToSQL or Entity Framework. | |
Aspect 2 Minimum Skills For Tailoring | Low (see note 3) | Lowest (see notes 1 & 3) | Low (see note 1) | Highest (see note 2) |
|
Aspect 3 Can run in the cloud? | Platform as a service using SQL Azure for database & compute instances for front end. Also supports the new Azure Websites options. | Software as a service: Can get it from Microsoft & Partners at a cost per user per month. | Software as a service: Can get it from Microsoft (Office 365) & Partners at a cost per user per month. | Platform as a service using SQL Azure for database & compute instances for front end. Also supports the new Azure Websites options. | |
Aspect 4 ALM Experience | Medium (see note 3) | Low (see note 3) | High (see note 2) | Highest (see note 1) |
|
Finally
A post like this is not possible to do without some amazing people providing feedback and I want to say a special thanks to:
Outlook 2013 Preview: The Case Of The Missing Email
Office 2013 is available in preview and being the fan boy researcher I am, I am running it. In the last week I have had an odd problem – it started when someone told me they had emailed me, but I never got it. I logged a call with the IT desk at work and they were able to find it in OWA (Outlook Web Access), and then suddenly I had it in Outlook too. I am over worked and tired maybe I just missed it – that was the thought I had, so I left it and went on believing I need a holiday.
Then yesterday I was in OWA and saw I had 25 unread while Outlook had 0 – I AM NOT CRAZY.
I logged a call again with the IT desk and got some awesome feedback – it is still too early to say it is fixed but I will update this post as I know more.
Patches
There is a patch already for Outlook 2013 available at: http://support.microsoft.com/kb/2737132
Not sure what it exactly does, but I am sure it is worth applying (blind faith that patches bring magic is a key requirement of a fan boy). It is worth nothing that Windows Update is not pushing this out – so you must manually get it.
Other sources of Help
There is a FANTASTIC page with 29 common issues for Outlook 2013 that is worth reading: http://www.howto-outlook.com/faq/outlook2013newandchanged.htm
One of those on their is about caching, which leads to…
Caching in Outlook 2013 is very different
Prior to 2013 Outlook would grab all the mail from the server and store it locally in an OST file giving you a locally cached copy of all the mail. Starting with Outlook 2013 that has changed, by default only the last 12 months are cached.
To change this to work like it used to:
Click File, then Account Settings ,then Account Settings…
Next double click on your Exchange account.
Here you’ll find a “Mail to keep offline” slider.
Move that all of the way to the right to select "ALL" and restart your Outlook.
Finally wait for it to update.
It is a preview
The last thing is a personal one – this is a preview, it is not promised to work. I have been so spoilt by great releases from Microsoft in the preview stages (Windows 8 & Visual Studio 2012) that I forget that it is a preview and could be broken. It is important to always have a backup & a way to verify it is working. For me this means I will be checking with OWA daily now.
Where do I start to learn Windows 8?
I have been asked at the talks I do, where can I go to learn Windows 8? What material is available? There is a LOT of content available for Windows 8. For me personally I learnt initially from the Windows 8 Camp in a box and building my own test apps. However the ever amazing Bruce Nicholson provided me with a fantastic list recently (so go thank him):
- Designing Apps with Metro Principles and Windows Personality: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV351
- Building Windows 8 Metro style UIs: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV354
- Building Metro style Apps with XAML: What .NET Developers Need to Know: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV353
- Windows 8 Touch Language: Covered in Build 2011 session “Designing Metro style apps that are touch-optimized” (http://channel9.msdn.com/events/BUILD/BUILD2011/APP-391T) , and MSDN deign guidance document “Touch interaction design (Metro style apps)” (http://msdn.microsoft.com/en-US/library/windows/apps/hh465415)
- Declaring capabilities: Covered in Build 2011 session “How to declare your app’s capabilities” (http://channel9.msdn.com/Events/BUILD/BUILD2011/APP-398T)
- AppBar: Covered in MSDN design guidance document “Commanding design for Metro style apps” (http://msdn.microsoft.com/en-us/library/windows/apps/hh761499.aspx), and
- Search - Covered in Teched 2012 session “Integrating with Windows 8 Experiences” (http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV356 )
- Live tiles – Covered in Webcast “Bring Your Windows 8 Metro Style Apps to Life with Tiles and Notifications” (http://channel9.msdn.com/Events/Windows-Camp/MSDN-Webcast-Series-Building-Windows-8-Metro-Style-Apps/Bring-Your-Windows-8-Metro-Style-Apps-to-Life-with-Tiles-and-Notifications)
- Async programming in C# 5.0 – Covered in Teched 2012 session “Async Made Simple in Windows 8, with Visual C# and Visual Basic” (http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV332)
- HTML5/JS discussion – Covered in Teched 2012 sessions “Building Metro style Apps with HTML and JavaScript” (http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV366)
- “A Lap Around Microsoft Expression Blend for HTML” (http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV368)
- Networking – MSDN documentation: “Networking (Metro style apps)” (http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452751(v=win.10).aspx)
- External data – MSDN article: “Accessing data and files (Metro style apps using C#/VB/C++ and XAML)” (http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh758319.aspx)
- Settings – MSDN guidance documents “Guidelines for app settings (Metro style apps)” (http://msdn.microsoft.com/en-us/library/windows/apps/hh770544.aspx), and “Managing application data (Metro style apps using C#/VB/C++ and XAML)” (http://msdn.microsoft.com/en-US/library/windows/apps/xaml/Hh465099(v=win.10) )
- Sharing – Content is covered in Teched 2012 session “Integrating with Windows 8 Experiences” (http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV356)
- PLM – MSDN guidance documents “Launching, resuming, and multitasking (Metro style apps using C#/VB/C++ and XAML)” (http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh770837(v=win.10).aspx)
- SDK sample pack: http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples
- Guidance for porting IOS and Web applications
- Design case study: iPad to Metro style app: http://msdn.microsoft.com/en-US/library/windows/apps/hh868262
- Design case study: Website to Metro style app: http://msdn.microsoft.com/en-US/library/windows/apps/hh868264
- Deploying apps in the enterprise without using the Windows Store (how to) http://technet.microsoft.com/en-us/library/hh832040#BKMK_SideLoad
- Printing from a Metro Style app – Build session “Building Metro style apps that print” (http://channel9.msdn.com/events/BUILD/BUILD2011/PLAT-679T)
Lightswitch & the HTML Client - what does this mean?
Lightswitch Recap
For you to understand the rest of this post it is vital you have a high level understanding of Lightswitch and how it works. Lightswitch is a RAPID development platform from Microsoft that makes development of line of business (LOB) apps really easy. The team at Microsoft often talk about citizen developers – i.e. people who are not full time developers, but are the “IT guy” in the department or company that need to put together a great looking solution. The team also talk about no-code solutions – where you can build great systems without code.
Both statements from the team are true and false at the same time. Sure your accountant can build a CRM system with no code in Lightswitch, but Lightswitches true value is that it is a professional development tool, and in reality unless it is a really simple solution you will need a touch of code.
What is great is that Lightswitch allows the citizen developer to write a system that can be matured by professional developers later on – it’s power is that it does not lock you into being too simple or too complex a development system.
For me the value proposition is that you get REAL rapid development, that citizen developers can put together and extend solutions that are well architected and that when the need is there a professional developer can extend that solution and hand it back over to the citizen developer – it is the circle of Lightswitch.
Architecture
When you craft a (avoiding the development term here on purpose) Lightswitch create a multi-tier architecture, that is either two tier (client & database) or three tier (client, server & database). Two tier is really three tier but the server & client are just one package.
The database can be any support by Lightswitch, the middle tier is OData and the front end is Silverlight. The choice of front end has recently hurt Lightswitch because Silverlight is dying. However if you step back for a second and think about it Lightswitch provides the easiest and fastest way to build a complete (and I mean complete, authentication, methods, proper designed) OData solution… you could always ignore the client portion and build on top of the OData server.
Making a HTML Client
The HTML client mode for Lightswitch is a recently announced new feature that allows you to build a client that runs in a browser, and not just Internet Explorer on Windows (Dynamics CRM I am looking at your shameful behaviour) but pretty much any browser, say on an iPad:
This is possible because of two things, the OData server which allows really any technology to connect to it, and the second piece of the Lightswitch system the LSML file.
I hope you have never heard of the LSML file, as it is not a nice place to go to – it is a MASSIVE (even simple demo’s I build are thousands of lines) XML file that stores ALL of the Lightswitch system in a “Lightswitch domain language”. This enables the team to take that information, parse it and produce output based on it. So the concept of producing a parser that creates HTML rather than Silverlight is really simple… just build the parser.
What do we know about this HTML client so far?
It is early days, in fact there are no bits available yet, but we do know some things from the demo’s and screen shots that are available.
- Multiple themes will be supported (their is a dark & a light at least) – thanks to the jQuery Mobile that powers it.
- It is a separate client – so you will have a Silverlight experience and then also have the HTML experience added in.
- It follows the true Lightswitch model of being easy to build with no code, but if you need that little extra, the JavaScript can be edited.
The Important Two Issues
To wrap this up it is a very exciting point in time for the Lightswitch world with so much happening that I think it is important to take a step back and find a few key aspects about this amazing feature that will help position it. There are two that really stand out to me from all the announcements:
Separate Client
This is not a Silverlight to HTML generator – it is separate. This means that awesome Silverlight chart you use today will not magically work in the HTML client. This has both advantages and disadvantages, but if you think about the dying of Silverlight I am very glad that they have a whole new growth path.
It also allows for the real scenario of supporting a rich experience in Silverlight in a company (where we control all the machines and know we can run Silverlight for a long time still) and having a mobile or companion experience in HTML for those people on the road. Sure they do not get the great sales forecast chart but they can still capture their sales on their iPad.
Web Developers
A recent did an survey of app developers looked at what they are building today, what they were building and what they intend to build in the future (future = one year in this survey). Interestingly there are only TWO platforms that are getting growth in the future? HTML & Windows Phone. Android, iPhone and many others are all expected to decline.
If you think about those numbers and add in the MASSIVE investments in HTML development that are in Windows 8, it should not surprise you that web development is a MAJOR area in the future of all developers. It also means that web developers can start to have way more opportunities in the market outside of building websites & portals, and that is very exciting as that little garage web designer company today could be a major line of business developer in a few years.
Windows 8 Boot Camp: Johannesburg 24 May
Yesterday Rudi Grobler & I had awesome fun with a full room of amazing people who took time off work to attend a full day of free Windows 8 training. The audience was amazing, breaking a lot of my expectations of how audiences react at free events, which really honoured Rudi & I to have most people stay to the very end of the day.
For those people who attended the training, or those who didn’t but want the content too:
- You can get the slides: http://bit.ly/win8-slides
- You can get videos from Build on the topics we discussed: http://bit.ly/win8-videos
- The demo’s I built are available to download from below.
JSinSA 2012
This past weekend was the ever fantastic JavaScript in South Africa (JSinSA) conference. This year focus was on HTML 5, JavaScript & CSS 3 – easily some of the MOST important topics for developers regardless of platform to know about.
It was it’s second year and while I was very lucky to go to it as an attendee in the first year, this year I was even more lucky to be a presenter at the conference. I was also very lucky to present on a topic I am passionate about: Windows 8.
The talk provided an introduction to Windows 8 & how development works, and in the 45mins I was done, we built an application which could take a photo from a web cam and send it to Twitter (the actual photo is to the right).
You can get the slides and bits from the talk below.
Why the harder you work to prove to Microsoft you know better, the less chance it will ever happen
Disclaimer: I do not work for Microsoft and these are my views based on discussions with multiple people at Microsoft which I have stitched together – maybe I misunderstood everyone and this is all wrong too. All examples I use are my own. I am no lawyer – check with a lawyer for legal & license advice.
tl;dr: Microsoft is really worried about being sued and thus is risk adverse to “stuff from the internet”. It is better to tell Microsoft what you dislike, not how to fix it. Learn about licensing content.
Paper Work
A few years ago I went on an amazing trip to work with Microsoft but before I could do that I needed to sign not only a NDA, but also waivers for the work I would do – which makes sense. I did it for free and Microsoft didn’t want me to sue them for money later for my work. Not only that I had to sign them, my employer had to do the exact same thing. Once again because I work for someone else who could claim money from Microsoft and Microsoft lawyers had deemed that a risk and needed to be protected.
This involved a lot of time and money, it is VERY expensive to have lawyers review documents from other lawyers and the DHL the originals half way round the world, but it is far cheaper than being sued.
I know that neither myself of BBD would sue Microsoft for the work I did, but that doesn’t still the hearts of those lawyers who live in a world of ugly mean liars that will cheat the system if it was easy and good. I wish it wasn’t this way but some wishes don’t happen.
The Users Voice
A while back Microsoft started spinning up loads of uservoice.com (UV) sites to collect feedback and I believe they are successful in getting some things changed. There is an odd issue I see on UV especially with how Microsoft deals with it, that being as technology advanced users & developers we are taught to give the most detail as possible – really there is nothing like too much detail… however in UV, it seems that Microsoft ignores them and favours those who do and give very little. A great example of this, is in Visual Studio land where we can compare the current top two ideas: this short idea which is “under review”
versus to this guy who has pages of details and even as taking the design and proving a lot of it could work – for all his hard work, nothing.
WTF?! Microsoft doesn’t listen to me
If you read both suggestions they seem to say the same thing except the lazy guys one got the reward, right? No – it is more fundamental than that. The first one is really just discussing the what & why the VS colour change that is an issue, the second piece of feedback though is discussing how to fix it. The problem for Microsoft is if they take the second guys stuff, a person who hasn’t signed a waiver, the how guy has a legal ability to sue Microsoft for the money they owe him for work/royalties etc… And Microsoft legal won’t allow that to happen because that is their job, to protect Microsoft legal issues.
This is not a complaint about legal, I am sure they are nice people that are just doing their job and it is annoying their job and my wishes do not align...
The thing about taking the what feedback is Microsoft is pretty safe in taking and improving VS in anyway they see fit and that is why the what & why is under review and not the how.
Licensing & Public Domain
The next that will be brought up is that this is work in the public domain and thus “free”… wrong. Public domain work is more a legal trap than anything, and there is so many steps that you need to jump through to get access to using that “free” work that often it is easier to redo it yourself. This is why ANYTHING you do should have a license, even if you want to just give it away and never see it again or if you want someone like Microsoft to be able to use it.
For software check out a good open source license, such as BSD 3-clause which basically says do what you like with my work and I promise I won't sue you except if you use me as an endorsement for your product which contains my work. For non-code items, like art, music or blog posts have a look at the creative commons licenses.
Microsoft can fix this too
Microsoft could reach out to people with good ideas and get them to sign waivers (WAY too much work and also maybe risky after the work is provided), but better would be to adopt an approach like StackExchange (SE) does. SE states if you provide feedback on their sites it is creative commons.
Microsoft could do the same and even put in a waiver clause on UV, I don’t know if UV allows for this, but Microsoft is big enough to get it done. It doesn’t solve great ideas that are posted elsewhere, those still required YOU to take the time to learn a little about licensing, public domain and so on and take the right steps so we can ALL benefit… not just the lawyers who get paid to say no.
IntelliTrace vs. PreEmptive Analytics
IntelliTrace
Visual Studio 2010 introduced an amazing feature: IntelliTrace which allows for deep debugging experiences inside Visual Studio by collecting an AMAZING amount of information (basically a stack trace for every call in your code + meta data) and allowing you to use it later to replay the way the application was used. With this feature you could eliminate those “No Repro” bugs! The catch in 2010 was it was NOT allowed to be used in production. In Visual Studio 11 that has changed and we can use it in production: http://msdn.microsoft.com/en-us/library/hh398365(v=vs.110).aspx & http://msdn.microsoft.com/en-us/hh440472
PreEmptive Analytics
This change in licensing may seem to put IntelliTrace in direct competition with another great tool, PreEmptive Analytics (PA). I have mentioned this amazing tool before and with Visual Studio 11 it is included “in the box” so there seems to be a conflict brewing – but there isn’t.
Two sides of the same coin
These two tools are both part of the collect information so you can react to it later and fix bugs set of tools, but they have very different use cases. IntelliTrace is specific to the scenario of replaying an application for diagnosis and debugging purposes. It is not meant to be an always on tool and it is a tool that writes to a local file that needs to be collected some how.
PA on the other hand is a tool to always have on, it does capture error information but nothing more than the simple Exception + Stack which is not as useful, detailed or integrated into VS when compared to IntelliTrace. In addition PA allows me to do a lot of a lot of analytics on my application that are not possible in IntelliTrace:
- what features are people using
- where in the world are they
- when are they using it
- what are their machines like
In addition the PA reports get automatically sent to a server (that they run or that you can run if you have privacy/security concerns) so there is not need to waddle around collecting files.
I can also see scenarios that these two work hand in hand – PreEmptive getting higher level info that shows a lot of users having issue X, then the support guys contact some users and do a more detailed capture of the issue with IntelliTrace.
.NET 4.5 and how it sits in the .NET ecosystem
tl;dr
- .NET 4.5 – 8th major release.
- .NET 4.5 is an in place replacement of .NET 4.0.
- Installing it could cause issues for .NET 4.0, but is very unlikely and likely shows your app is using undocumented features or using features incorrectly.
- .NET vesions, CLR versions & language versions are not in sync.
- There is an awesome chart below which makes it easy to see the relationships in the ecosystem.
Introduction
.NET 4.5 is the next release and it is important to take a look how it fits in the .NET ecosystem. This is the 8th major release of .NET! What do I mean by major release? I mean any release that is not a patch/support only release, or put another way a major release it included major new features in the CLR and/or a new language options.
SxS vs. Replacement
In .NET we are lucky that many versions can run side by side (SxS) provided they have different versions of the CLR, however if a new major release shares the same CLR it is a replacement/additive version. For example: .NET 3.0 used the same CLR as .NET 2.0 (the CLR 2.0) and when installed replaced many of the files in .NET 2.0 with new versions and it is only via compiler directives that some things are turned on and off. The advantage of the SxS model is installing a new version doesn’t influence apps on the previous version in any way (i.e. if the app is 1.1 and works fine before .NET 2.0 was installed, it will keep working fine after .NET 2.0 is installed).
The problem with replacement model is that there is a chance that installing a new version breaks apps on the original version – however Microsoft does a RIDICULOUS number of testing to make sure this doesn’t happen, so that chance is very small. In fact if you happen to hit one, the chance is higher you are using undocumented features or using features incorrectly.
The reason for this explanation of SxS vs. replacement is that .NET 4.5 is an in place replacement for .NET 4.
Version Naming
Part of the confusion I suspect around me saying that .NET 4.5 is the eighth release is because Microsoft naming of versions is about as far from logic as you can get – the worst examples are the .NET Version 3.5 SP 1 is a major release labelled a Service Pack 1?! and the fact we do not have a version 3 of the CLR, it was just skipped?!
The other aspect is that versions of the CLR, versions of the Framework and versions of the languages are completely out of sync, so .NET 4.5 runs on the CLR version 4 and we write code in C# version 5.0 or VB version 11.0 – cause that makes sense :S
Awesome Poster
Here is an awesome poster to help remind you of all the above!