Microsoft is cleaning house. Now that it has to maintain SharePoint for thousands of enterprises and millions of users in Office 365, Microsoft is working to clean up all the odd and messy bits of its flagship collaboration product. In a recent training course on Microsoft Virtual Academy, Microsoft urged developers to change the way they package and deploy their code in order to clean up a mess that has been building since 2003.
In this case the problem doesn’t really affect the customizations themselves (though most existing customizations are not cloud-ready); instead, the change is with the way custom solutions are installed into SharePoint and deployed in SharePoint sites. Instructors Vesa Juvonen and Steve Walker were careful to say they aren’t deprecating anything (at least not now) – but they admitted to some design shortcomings in SharePoint’s Feature framework and encouraged everyone to adopt a different approach.
The new approach eliminates a lot of problems that affect SharePoint upgrades and migration, and that can introduce quirky behavior and broken content if everything isn’t done perfectly. That’s the good news. The other news is that where the tools for the old approach are mature and familiar to SharePoint developers, there is virtually no tooling for the new one, just a collection of code samples at this point. So adopting the new model will be more costly until better tools are available.
This article will summarize the changes and analyze their impact on SharePoint developers and customers.
In technical terms, Microsoft is recommending that developers stop using SharePoint’s Feature framework and list, web, and site templates in their solutions. The Feature framework was added in SharePoint 2007, and allows site administrators to activate “Features” that provision content such as site columns, content types, lists, files, web part definitions, and all sorts of other things in SharePoint. List, web, and site templates are similar, except that a whole list or site is created. All of this is enabled by an arcane set of XML schemas called CAML, or Collaborative Application Markup Language. Now, instead of defining SharePoint content in CAML, Microsoft wants everyone to start creating content programmatically using a pattern called remote provisioning.
Let’s face it, Features and Templates are flaky. Activate a feature and things “light up” in SharePoint; that’s the cool part. However when you deactivate a feature, the content it created might persist, go away, or just break. Versioning and updates are black art. If an admin forgets to deactivate a feature before uninstalling the code that supported it (and it might have been activated in thousands of sites), the feature is “orphaned” resulting in errors and upgrade headaches. And perhaps you’ve noticed that if you create a site from a template and then change the template, the site doesn’t pick up the change. Over time all these problems add up and users just blame SharePoint.
Microsoft has seen the error of their ways and wants developers to stop using CAML-based deployment and instead use a pattern called “remote provisioning” in which a remote process is used to create SharePoint content ranging from from sites to site columns. Actually this pattern isn’t new, it’s been available as long as there have been remote API’s to create content; it’s just that all the tooling and MSDN documentation pointed towards using Features and Templates instead. Here are some examples of remote provisioning:
- .NET Code running in a Provider Hosted App using a client API (CSOM or REST) to create content in SharePoint. The Patterns and Practices team chose this for theirlarge collection of samples.
- .NET code running in a console application using a client API (CSOM or REST)
- Client-side calls made from PowerShell (here is a Codeplex project that may help)
- The Mechanical Turk approach: a person manually creates content using a web browser
The remote provisioning advice has been coming from Microsoft since last summer, but the Virtual Academy training is by far the strongest in telling developers to stop using features and templates. The main focus of the course was on transitioning from full-trust “farm” solutions to cloud-ready approaches based on the “app model.” The instructors played fast and loose with the term “app model”, extending it to mean nearly any approach that runs code outside of SharePoint and avoids the Features and Template packaging. Developers would be well advised to watch the course in its entirety, and to dig into the Patterns and Practices wiki and Yammer group. The training includes many live demos and code walk-throughs on Remote Provisioning and the reasoning behind the changes.
Existing SharePoint customers may be comforted that Microsoft reiterated its plans to continue to support farm solutions for the foreseeable future, but only on premises. The instructors offered detailed advice on developing farm solutions in order to avoid the problems with Features and Templates:
- Provision content types and site columns in code rather than using Features. The big problem with this is that when content type or site column is created by a farm solution Feature, the definition is stored directly on web servers instead of in the content database. Thus if the feature is removed, or the content is connected to a farm that doesn’t have exactly the same solution and feature installed, all lists and libraries using the content types and site columns will break.
- Avoid list templates. This is awkward advice because Microsoft introduced a new list template designer in Visual Studio 2013; clearly this change in direction is a very recent one. The problem with list templates is that they are dependent on a file called schema.xml which is stored on web servers; if the solution is removed, all lists based on the templates will stop working. Instead of using list templates, build out the list in code running in a feature receiver or use remote provisioning.
- Avoid custom field types. This has been the advice for a while now; it’s too bad because custom field types were really cool (they allow you to create a new type of content in SharePoint).
What Microsoft is trying to do is remove problems in which SharePoint content is invalidated when it gets out of sync with a particular set of solutions installed on a SharePoint farm. These problems make it difficult or impossible to upgrade SharePoint, and lead to big challenges with disaster recovery, when content is restored to a new SharePoint farm from backup or in a DR replication scenario.
How many versions of SharePoint do you run?
When I speak at conferences I often ask audiences to raise their hands if they’re using more than one version of SharePoint; invariably the majority of hands go up. The reason is always the same: there is some kind of customization or ISV product that won’t survive the upgrade. The most conspicuous example of this was the Microsoft “Fab 40” web site templates for SharePoint 2007, some of which would not upgrade to SharePoint 2010; some customers still maintain a SharePoint 2007 farm just to run them. If Microsoft couldn’t get it right, what about the rest of us?
Maintaining more than one version of SharePoint is very expensive for enterprises; the extra SharePoint farms require extra hardware and a lot of extra maintenance work, much of it arcane knowledge of old and outdated technology. The worst part is that end users are constantly switching between versions making for an inconsistent user experience.
The vision is for SharePoint content to be self-contained and independent of custom and version-specific code that may be installed. Thus, a content database could be connected to a new SharePoint farm – even a new version of SharePoint – and it would just work. If Microsoft had figured this out ten years ago, you’d probably only be running one version of SharePoint right now.
These changes are a mea culpa from Microsoft; they’re admitting that it was too hard and they want to move to something better. But it’s painful for developers, who have spent years learning how to use Features and Templates, and who enjoy excellent tooling in Visual Studio. Switching to Remote Provisioning is a big step backward in productivity. Just remember that however painful it is to change the way we package and deploy our customizations, the goal is to ease a perennial pain with upgrading SharePoint.
The future of sandboxed solutions, however, is extremely doubtful at this point. You may recall that sandboxed solutions were officially deprecated in SharePoint 2013, but then Microsoft recanted and said that only the ability to run custom server code would be discontinued. In the class, one of the top recommendations is to avoid sandboxed solutions, not only the custom server code but sandboxed solutions of any kind. They pointed out problems with orphaned options that are left behind when sandboxed solution artifacts are retracted.
This is a little awkward, because Microsoft has been using sandboxed solutions in support of newly introduced features such as the Design Manager, a branding tool introduced in SharePoint 2013. Steve Walker took a hard line nonetheless, and hinted that the sandbox would eventually be shut down once and for all. (Skip to 43:40 in the second video to hear it directly.)
During the Virtual Academy class, Microsoft provided quite a bit of branding guidance. With the exception of the new Office 365 themes, there wasn’t a lot new here, but the advice bears repeating because it once again relates to issues with SharePoint upgrades.
The traditional way to brand a SharePoint site is to change its master page, but master page changes generally do not survive SharePoint upgrades. This isn’t news; Microsoft changes the look and feel in every version of SharePoint, and master pages have needed a rewrite every time. (In many cases the old master page still works, but hides all the added functionality in the new version of SharePoint).
The problem is worse in Office 365, since new versions arrive more frequently. Microsoft has already changed the master page three times since 2013; if you had written a new master page, you would have missed the improved navigation and Office 365 app launcher.
The advice is to take as light of a touch as possible. Here are the options from lightest (and least flexible) to heaviest (the very flexible master page):
- Consider not branding your site. “You do not brand Outlook or Word, why do you need to do branding on collaboration sites?”
- Use Office 365 Themes. Changing the theme in one place will change it on every SharePoint site as well as in other Office 365 products such as Outlook Web Access and Delve. You can include a logo, URL for clicking the logo, background color, and colors for an Office 365 theme.
- SharePoint Themes. These affect only one SharePoint site, so the need to be changed in every site. This could be automated through a PowerShell script or custom code. You may find the SharePoint Color Palette Tool helpful in creating SharePoint themes.
- Alternate CSS. With this strategy, a developer builds a custom style sheet that is added to every page in SharePoint. Using this technique you can change colors and fonts, and to move things around on the page. Microsoft began allowing the alternate CSS to be set using the client API (CSOM) in March 2014 online, and in the April 2014 CU for SharePoint 2013. The Patterns and Practices group is working with the SharePoint engineering team to lock down some consistent element ID’s and classes that will not change across new versions of SharePoint so an alternate CSS file won’t break as SharePoint is upgraded.
- Custom Master Page. This allows major changes such as introducing responsive design or making the site “not look like SharePoint.” However there is an ongoing need to tweak or rewrite the master page as SharePoint upgrades occur. This is especially problematic when master pages are installed into individual site collections, which is the only option in Office 365. If the master page is in an on-premises farm solution, it can be updated centrally, but if it’s placed into each site’s content then every site collection needs to be upgraded when changes occur.
Microsoft was clear that custom master pages are still supported. They called them a “tax” however; the responsibility of keeping the master page in sync with SharePoint belongs to the customer, not to Microsoft. In Office 365 where changes are ongoing and master pages are distributed, this will be an ongoing maintenance cost for the customer.
Relationship to the SharePoint and Office 365 App Models
The instructors used the term “app model” to mean nearly any approach that runs code outside of SharePoint and avoids the Features and Template packaging, however there is an important distinction between the App models and solutions that reside within a SharePoint site!
Apps run alongside of sites – they’re isolated because the code comes from a store and was written by who knows who, so they’re less trusted. All three app models (SharePoint Hosted Apps, Provider Hosted Apps, and Office 365 Apps) provide this isolation. The isolation can be limiting; it makes many scenarios such as SharePoint branding impossible to run in an App, and it means that App Parts run within IFrames, which bring their own set of challenges.
This idea of using an App as an installer has been around for years actually; I used to call it “content injection” but now they call it “remote provisioning.” You probably won’t see this kind of app in the Office Store as it requires too much permission; it’s a pattern to use within an enterprise. Just keep in mind that you don’t need to use an app to do the installation; it could be a PowerShell script, a console app running in an Azure web job or Windows scheduled task, or really anything that is remote and provisions sites and content in SharePoint.
No, SharePoint is not dead, Apps are not dead, and the Earth will continue to spin on its axis for the foreseeable future.
If you build or use custom SharePoint solutions, you don’t have to change anything right now. The top-line advice from Microsoft was to move gradually to the app model and remote provisioning. But you should pay attention because the existing way of deploying content and customizations is really problematic, especially when SharePoint upgrades occur.
It’s probably OK to continue to use the old methods on existing projects; they could be converted later and the tooling is likely to improve over the next couple of years. Right now remote provisioning requires extra development work compared with the Feature framework, mainly due to the excellent tools in Visual Studio for building Features. So there’s a tradeoff between doing the extra work now and waiting for better tools to arrive. In any case, you should be aware of the new approach and try to favor it in any new customization projects.
(cross-posted to Bob German’s Vantage Point Blog)
[Cross-posted from blog.davemdavis.net]
On January 21, 2015, Microsoft announced that the science fiction of holograms has become science fact. They announced a new product, based on Windows 10, called HoloLens, the first self contained, wearable computer that can create holograms. This announcement has generated a buzz. If you haven’t seen the video Microsoft put out, take a minute, follow the link above and watch it, I’ll wait….. You’re back. Were you blown away? I was. My mind was immediately racing to what problems I could solve if this truly pans out. More on that in a bit.
“Virtual Reality (VR), sometimes referred to as immersive multimedia, is a computer-simulated environment that can simulate physical presence in places in the real world or imagined worlds. Virtual reality can recreate sensory experiences, which include virtual taste, sight, smell, sound, touch, etc.” Wikipedia
When Microsoft announced HoloLens, some people mistakenly called it “virtual reality.” Although Microsoft showed immersive experiences, the fact that you can still see the world around you precludes it from being virtual reality. A prime example of virtual reality is the Oculus Rift.
“Augmented reality (AR) is a live direct or indirect view of a physical, real-world environment whose elements are augmented (or supplemented) by computer-generated sensory input such as sound, video, graphics or GPS data.” Wikipedia
HoloLens is really just augmented reality plus much more. I will go into what I mean in a bit. Augmented reality is not really new. There are phone apps such as Yelp that use the phone’s camera to display the world around it while superimposing restaurant information based on the direction the phone is pointed. There is also the translator app for Windows phone that superimposes translated text over written text, allowing you to switch between languages.
Another recent example is Google Glass (though they have suspended the program). Google Glass is a pair of glasses that puts a heads up display on the lens, providing information to the wearer. That information is in a static location, no matter which direction the user is facing.
“Holography is a technique which enables three-dimensional images (holograms) to be made. It involves the use of a laser, interference, diffraction, light intensity recording and suitable illumination of the recording. The image changes as the position and orientation of the viewing system changes in exactly the same way as if the object were still present, thus making the image appear three-dimensional.” Wikipedia
The HoloLens can create realistic three-dimensional images and place those images in the world around you. So, I would say that HoloLens is a combination of all three concepts. Although it may not be truly creating holograms, they seem to be real enough to the wearer.
To be clear, I have not had an opportunity to try HoloLens. Although I was not one of the chosen few who got to attend the event, the reactions from those who did get to try the canned demos were overwhelmingly positive. Until I get to try it, I can only rely on what they have said and I am excited at the possibilities that this opens up. I do have some questions as well.
First, is Microsoft targeting consumer, or enterprise, or both? The thing that will really determine that is price. When the Xbox One first came out, it was $499 and adoption was slow. When they dropped the price to $350 this past holiday season, they sold like hotcakes. Granted, there is no direct competitor to HoloLens (as of yet), but if they price it too high, it may be just out of reach for the average consumer.
The next question I have is with the form factor itself. If this is intended to be worn for long periods of time, it needs to be comfortable. Google Glass was a pair of glasses, so they were easy to wear for long periods of time. HoloLens will have way more functionality than Google Glass. All that functionality requires some pretty heavy computing power. Microsoft has packed all of that computing power into a self-contained device, or “donut,” as my coworker likes to call it. Is v1 going to be too big or too bulky? With all that computing power, what is the battery life going to be?
Finally, can Microsoft truly deliver on the experience they showed in the videos? That will be the true test to the success of the device. Judging from the reaction of the reporters at the event, they are pretty close. Microsoft has gotten a lot of people excited with this announcement, a lot of people that have all but written them off. If they mess this up, they may drive those people away for good.
A couple of years ago, Microsoft released a vision video that captured my imagination. They showed off a lot of “imagined” technologies. They showed how technology will blend into the environment around you and become ingrained in everyday life. Most of the stuff they showed was not real, but with HoloLens and Surface Hub, some of those use cases are now possible.
I am excited at the possibilities this opens up. Microsoft has said that HoloLens apps are just Universal Apps with some added APIs. Hopefully, they will release an SDK during their Build conference. If you weren’t able to get in or can’t attend, they usually make the sessions available online soon after.
The video that Microsoft released shows all kinds of use cases for HoloLens. I have a few of my own and I am excited to see what others come up with.
In recent years, these press events had very few surprises. Look for instance at the last Apple launch; there was nothing announced that had not previously leaked. Microsoft did a great job keeping the HoloLens a secret. There were rumors of an Xbox gaming helmet, but this is so much more. You can see pieces of these technologies in various Microsoft research projects. It is great to see them finally capitalizing on some of that research. Only time will tell if HoloLens will be a success, but you have to admit that living in a time where holograms can be real is pretty cool.
As we embark on the 22nd year of everyone’s favorite RDBMS, I decided to create a tuple of SQL Server New Year’s resolutions. Hopefully you can find some things in this list that ring true for you.
Test your database backups – When is the last time you successfully restored a production database backup file? Ideally this is a regularly scheduled process. Make sure your backups are good, and make sure you know what to do in the event of an emergency. Do you have scripts ready to restore to a point in time if you had to?
Update your maintenance jobs – Are your databases being maintained properly? If you haven’t looked under the hood of your database maintenance jobs lately, now is a good time to make sure your indexes, statistics and consistency checks are all squared away. If you’re already using best-in-class scripts, like Ola Hallengren’s, double check that you have the latest version and are taking advantage of all the spectacular options available.
Implement a baseline – Do you know what your SQL Server looks like under normal conditions? When someone complains that the system is “slow”, can you tell if something unusual is happening? If not, it’s time to start collecting some metrics. Create a simple database and one SQL Agent job with a handful of steps to capture the basics: CPU Usage, Memory Usage, I/O, Index Usage, and Top Queries. Keep an eye on the database size, and be sure to setup a purge process.
Study up on DMVs – I don’t know if there is anyone who has completely mastered the SQL Server system catalog. I do know that there is always another gem of a diagnostic query out there just waiting for me to learn about. My favorite authority on the subject is Glenn Berry. His scripts are priceless.
Learn Extended Events – In a crunch it’s easiest to fall back on good old SQL Server Profiler, but you know it’s time to bite the bullet and learn how to use Extended Events.
Attend a user group meeting – If you’re not already doing so, get yourself out to a local PASS chapter meeting. Even if you’re shy and/or well-versed in the topic being discussed, just sitting in a room with other database professionals can be inspiring. It’s nice to be reminded that there are others out there with the same challenges you face.
There you have it. With only 6 resolutions, you could procrastinate for 2 months on each task before you’re ready for the 2016 list.
What are your SQL Server resolutions for 2015?
Recently, I was in the throes of writing some deep, well thought out, frustratingly simple yet mind-numbingly complex DAX calculations. I had things just about where I wanted them and had started cleaning up my model a bit by doing some typical housekeeping (renaming, reordering, etc). I don’t know for sure if that did it but I am pretty sure. By “it”, I mean leave my model in a state where I could not modify anything leaving me in a mix of blind rage and baby-like tears. Here is the error message I received when trying to open PowerPivot.
I’ve posted the entire error message below for search sake but, long story short, my PowerPivot model was hosed. When I click ok to the above error message, I’m served with a blank ‘Grid’ PowerPivot canvas. Because you are smart, you’re thinking, try to switch to ‘Diagram’ view and make your changes there. Good idea. I was able to view my tables in ‘Diagram’ view. However, I could not extract the DAX calculations and any attempt to change anything in the model resulted in a never ending spinning icon.
I’d given up trying to recover the PowerPivot model in its entirety. If I could just get my hands on those sweet DAX calculations I had constructed, I could easily recreate the model itself. I tried EVERYTHING. I even tried opening the excel sheet in good ole notepad and extracting what I could out of there. I thought to myself, “There is no way this is going to work.” And I was right. It didn’t.
I was just about ready to give up when, what to my wondering eyes should appear, a related post about importing your PowerPivot model into an SSAS/Tabular instance. Need to give credit to Gerhard Brueckl for his write-up. Of course! If I could restore my broken down PowerPivot model into a new SSAS Tabular model, I may be able to save those captive DAX calculations. I fired up the trusty VM, and went to work. Open SSMS, connect to your Tabular instance of SSAS, right click on ‘Databases’ and select ‘Restore from PowerPivot’
It worked! I was able to restore into a SSAS Tabular model, then open that in SQL Data Tools where I could retrieve all of my DAX calculations. I have yet to figure out exactly what caused the corruption or if there is a cleaner way of fixing this but this worked for my purposes. I ended up recreating my model from scratch but most of the work (writing and testing those DAX calc’s) was already done.
Want another and perhaps more straightforward option? Open SQL Server Data Tools and use the handy wizard to create a new SSAS project using the ‘Import from PowerPivot’ type.
I sent this blog post around to people smarter than me for review and one particularly bright chap wrote back with tasty tidbit. After restoring your PowerPivot model into Tabular/SSAS, you can actually convert it back to an Excel PowerPivot file. Thus, completing the circle of life. There’s not a wizardy type interface to do this but this post walks through the steps pretty clearly. It’s a further testament to the fact that identical technologies are employed in both PowerPivot models in Excel and Tabular models in SSAS
An item with the same key has already been added.
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Microsoft.AnalysisServices.Common.LinguisticModeling.SynonymModel.AddSynonymCollection(Tuple`2 measure, SynonymCollection synonyms)
at Microsoft.AnalysisServices.Common.SandboxEditor.set_Sandbox(DataModelingSandbox value)
at Microsoft.AnalysisServices.XLHost.Modeler.ClientWindow.RefreshClientWindow(String tableName)
We at BlueMetal have a great deal of experience in creating solutions that leveraged connected devices streaming millions of records to cloud hosted repositories, leveraging historical and predictive analytics engines to provide insight and creating immersive experiences that give our clients agility and speed in their daily business activities. Case in point…EnerNOC.
Using Lean Engineering a small team from BlueMetal was able to provide EnerNOC with an amazing user experience in 10 weeks. The application spans twenty four 55” high definition displays combining data streaming from over 35,000 devices around the globe connected to the energy grid with geo-political, social media, environmental and financial data creating a visually stunning global view of EnerNOC’s business domain that is visible to all employees and every visitor to their downtown Boston office.
While this solution was clearly focused on the energy sector, the effort produced a reference architecture for Internet of Things solutions that spans verticals. To prove out the viability of this reference architecture in other verticals, BlueMetal created a Pharmaceutical Trial Scenario and implemented a live reference implementation.
At BlueMetal we apply Lean Engineering principles to help our clients guide the creation and deployment of software products at high velocity with low risk. In this article, Bob Familiar, Practice Director for Cloud & Services, gives readers an overview of Lean Engineering, the historical underpinnings and detail on the principles that guide the process, methodology and architecture for the products we create with our clients.
The Internet of Things is not a futuristic technology vision. It’s here today, and you probably have elements in your operations already.
Join us for an inside look at how the Internet of Things can take your business to the next level. BlueMetal and Microsoft are presenting the following two roundtable events:
December 2, 2014 – Microsoft – Great Valley Corporate Center – 45 Liberty Blvd, Suite 210 – Malvern, PA 19355 – health care focus
December 5, 2014 – Microsoft - One Cambridge Center – 255 Main St., Cambridge MA - broad focus, keynoted by Dr. Abel Sanchez, Massachusetts Institute of Technology
Agenda for both events:
8:30–9:00 Registration and Breakfast
9:30–10:30 Industry Solutions & Demos
10:30–11:30 Discussion and Close
We hope to see you there!
Last week a group of BlueMetal’s software architects and engineers attended Xamarin’s Evolve conference in Atlanta, and we wanted to share their key takeaways from this exciting conference.
Xamarin Evolve was a lot of fun. Besides all of the great updates from Xamarin I had a chance to experience great sessions from some leading experts in UX mobility and design. I had a chance to meet and socialize with fellow Bluemetalers from other offices as well as with Matt Larson, our partner manager from Xamarin.
My takeaways are not much of a surprise given the following major announcements:
• The new cross-platform Xamarin Profiler to profile applications on Xamarin.iOS and Xamarin.Android. This is a huge improvement from their previous mono log profiler. The new profiler looks and behaves more like Apple’s instruments profiling tool. Although you could profile a Xamarin.IOS application using native tools such as Instruments it did not provide a consistent cross-platform unified experience for both Xamarin.IOS and Xamarin.Android.
• Another major announcement was the Xamarin Android Player. This is a godsend for anyone who has done Android development. The Android emulator provided by Google takes eons to bootstrap and load an application for a debug session. The new player from Xamarin cuts that time significantly from minutes to seconds. Anyone doing native Android development should feel jealous and should be sending complaint letters to Google to do the same with their native Android emulator. Just proves that Xamarin is a great company building great tools and a smart company who knows that keeping developers productive and happy is integral to their success.
• Conversely, Sketches was announced. Another great tool along the theme of keeping developer productivity and happiness high. Sketches allows developers to improve on the typical write, build, test, and deploy workflow. It allows developers to write code and instantly see the intermediate results without building and deploying their code. This is not limited to just a watch-list output seen in a standard debug session, but what the UI may look like as well. In sum, Sketches is a cross platform tool that allows developers to quickly prototype and iterate ideas when creating both Xamarin.IOS and Xamarin.Android applications.
• The other major announcement was related to improvements made to the Xamarin Test Cloud. The Xamarin Test Cloud is an invaluable tool to any organization taking on a native cross platform project especially when it comes to testing Android devices. Based on this article there are over 19,000 distinct Android devices in the world (http://9to5google.com/2014/08/21/there-are-almost-19000-distinct-android-running-devices-in-the-wild/). The major takeaways was a new cross platform automated UI testing framework called Xamarin.UITest. Also, test execution enhancements that allow for parallel execution of test scripts across devices in order to improve overall testing performance in the Test Cloud. Before this feature submitting test scripts against the test cloud could create a queue of requests that ran one after another on the same device. Finally, there was a new video playback capture of the application UI while its running though test scripts.
Some other notable announcements was Xamarin support for AWS mobile services, and support of XIB files for their Xamarin.IOS. However, it was not disclosed when they are going to release the new designer features. When they do roll out XIB file support developers will no longer need to use XCode’s Interface Builder to create views.
I would say Xamarin is “evolving” to support the fuller spectrum of mobile development. We now have Sketches for quick prototyping, upgraded platform tools for building (resource monitor and Android virtual machine), a pretty sweet looking testing platform (Xamarin Test Cloud), and Xamarin Insights, a real time monitoring tool that gives you pretty rich user behavior reporting, error logging, and user notifications (“we fixed that bug you were complaining about”).
So Xamarin is becoming more involved in the project plan as you move from left to right…which is smart and necessary. Test Cloud in particular is a potentially killer feature. The company is committed to getting developers tools to make mobile as awesome as possible.
In general, the Xamarin team seems to be growing at a pretty amazing pace. They were very engaged with conference participants and they’re easy to talk to (and work with).
XAML/MVVM XAML support was very basic in Xamarin Forms – it supported only object creation and initialization. C# equivalent (using object Initializers) is equally concise and seems to be very popular. There is not yet a visual designer for XAML. In fact, Charles Petzold mentioned that the preview of his “Creating Mobile Apps with Xamarin.Forms” book did not contain any XAML code at all. Anyway it was still possible to create MVVM based application (and really cool ones as Charles presented in his “Xamarin.Forms is Cooler than You Think” session). Here is a game changer: Technical preview of the Xamarin Forms 1.3.0 release was announced on October 8. It has behaviors, triggers, styles, dynamic resources, styles based on dynamic resources. MVVM Light V5 with full Xamarin support was released by Laurent Bugnion on October 8. Xamarin Forms 1.3.0 with MVVM Light framework could be very attractive to WPF/SL/WinRT developers. It allows almost seamless transition into mobile development.
Custom renderers Another hot topic – may be the hottest, session room was packed. Custom renderer allows to implement platform-specific customization (look and behavior) of Xamarin Forms controls. This technique is especially important for custom control vendors. Major vendors already have native UI controls sets for Xamarin Forms.
Mobile backend as a service (MBaaS) There were two MBaaS providers which presented at the conference: KidoZen and AnyPresence (along with Microsoft and Amazon).
BlueMetal was a proud sponsor of this conference.
Bob German will co-present a session on OneDrive for Business with Chris Chalmers at two Beyond Tech-Ed events this week:
October 7, 2014 Hartford Marriott 200 Columbus Blvd Hartford, CT 06103
October 9, 2014 Microsoft Corporation 255 Main Street Cambridge, MA 02142
Beyond Tech-Ed 2014 brings you the latest information on Microsoft products and solutions based on the most popular sessions at Microsoft Tech-Ed, Microsoft’s premier technical conference. This free, one day event consists of four technical tracks delivered by Microsoft product experts. Registration starts at 8:30am, and both Breakfast and Lunch will be served.
Recently, BlueMetal was selected as a finalist for a best UX – product award at MITX, an esteemed network of technology marketers. This was for a large scale data visualization wallboard produced for the energy monitoring company EnerNOC.
What’s really impressive about this experience is we went from this:
in under 8 weeks. Most of our clients and colleagues are astounded by this result and have many questions:
- Which process did we use: Agile or Waterfall?
- How many iterations?
- When did the data architect come on board?
The answer is very simple – we put the team (a UX lead, a data architect, a UI engineer, an animator and a visual designer) all in one room, on site where the wallboard was being installed.
We used parallel streams of work to ensure design was aligned with architecture and that communication between the team was constant and consistent. Due to proximity with the client, the team was able to rapidly problem-solve on the fly. This became crucial as visual design and data got closer together.
There was a classic waterfall process but compressed: Discover, Define and Design, or as we call it: BlueSky, BluePrint and BlueMetal.
During BlueSky, interviews allowed the designer to sketch out the experience quickly, and the developers were part of that brainstorming. This allowed both the UI engineer and data architect to understand the scope of requirements, course-correcting as the design became more established.
With BluePrint we whiteboarded every piece of data that needed to be displayed on the wallboard in a single brainstorming session. Both the client and project team were part of this and a firm agreement was put in place that the brainstorming could not be considered complete until we were all in agreement on every piece of functionality. Drawing this line in the sand created intense focus and a rapid approach to design.
Finally during the BlueMetal stage (Design and Build) we ran separate streams of visual design, UI framework and data architecture, working side by side to not only converge on a rapid prototype but to iteratively create a solid high quality final deliverable.
The key to success on intense projects like this involves rapidly solving problems together, and a lot has to do with location. By ensuring everyone was sitting side by side, every team member got equal accountability on the success or failure of the project, driving the team forward to ensure a favorable result.
An example is shown below of how location affects team dynamics.
Though both team members are looking at the same screen, they are looking for different things. The visual designer on the left is looking at the readability of the typeface, the colors presented and the meaningfulness of what’s being shown. At the same time, the data architect is looking to see how the live data is feeding into interface and can not only troubleshoot, but work with the designer if the type size doesn’t work with the amount of characters the data is expected to pull in. Similarly, on the live file that both developers and designers worked on in WPF (Windows Presentation Format), designers used styleguide marking to indicate to the UI engineer how to adhere to the style, but also allowed the engineer to communicate in the same design language if certain parameters were not working.
Another simple example is the need for world clocks (shown below), something we observed was needed in the 24/7 work environment of EnerNOC. By having a cohesive team, the creation, placement, styling and implementation of the clocks was something we could easily do within a very short time span.
This type of constant communication, rapid problem solving and parallel streams of work can only happen when your team is in the same room, and you should always decide on WHERE your team delivers before you decide on HOW.