Day Two changes things up from the Day One and Day Three single-track format. There are breakout sessions focused on a specific topic as well as chances to sit down and ask questions of others who have expertise in Angular, including members of the Angular team themselves. It’s a good chance to listen to how others are approaching their development challenges and opportunity to discuss lots of interesting details in depth.
The first session of the day had a few large organizations talk about the things they are doing within their organization to manage Angular projects, how they approach analyzing the performance of these applications, and what kinds of things might help them improve these operations.
In terms of analysis, there was a great emphasis on metrics (“plan and measure”). This included low level tracking of “time to first paint”, “time to meaningful content”, and “time to interactive”. But it also included higher-level tracking of things like “perceived performance” (obtaining feedback about how the user perceives the performance of the application).
Tools were mentioned that help in this analysis. The primary tool, of course, is the Developer Tools within the browser (there was a lot of praise for the capabilities of Chrome Developer tools particularly).… Read more
I’m glad to be back again at ng-conf in Salt Lake City. I’ve used Angular since the very beginning and it continues to get better. Here are some of the highlights that stood out to me from the first day of the conference.
During the keynote, there was discussion about gauging the success of Angular. They estimated that the community is around 1.3 million users of AngularJS (version 1 of the framework) and 810 thousand users of Angular (versions 2 and 4 of the framework, they skipped version 3). Of all the applications out there, about 90% of them are internal applications (ones we can’t see because they are behind the corporate firewall). 17% of the public Angular applications are already on version 4 of the framework.
There are over 200 applications internal to Google that are using the framework. These applications serve as an initial test bed for all updates of the framework, helping to ensure smooth updates to new versions.
Version 4, released a short time ago, has some great improvements in performance and the size of payloads. The team worked hard to ensure that upgrades went smoothly and there were no breaking changes in the framework APIs.… Read more
On Thursday Wintellect held a live hand’s-on webinar on Xamarin mobile development for building cross-platform apps including IOS, Android and Windows Devices. The agenda included an interactive and coding presentation from Jason Bell, including the mobile landscape and development options, the Xamarin development platform, Xamarin application architectural options and building shared application components.
After a couple of requests, I added WiX 4.0 support to my Paraffin project, the file harvester, which makes maintaining installer projects a lot easier. As part of this update, I moved the code to Visual Studio 2017 and moved to .NET Framework 4.6.2. I nearly went down the path of making a .NET Core version of the console application, but will save that for another day.
Instead of rehashing the scope and purpose of Paraffin here, head over to your favorite search engine and search “Wintellect Paraffin” and you will find all the links that show how to use it. Also, if you don’t want to mess with compiling the application, head on over to the Releases tab page on the Git Hub project page and you can download the compiled binary along with it’s PDB file.
Thanks so much for using Paraffin! Who knew that a quick sample I wrote to learn about LINQ to XML would grow into a useful utility.… Read more
In this week’s Introduction to GraphQL & Relay webinar attendees learned how GraphQL could help improve upon Rest Services by allowing them to view data as a graph. This data can also be queried to serve data in the shape and amount needed by the consumer. Relay was also introduced showing how it is a great framework for React applications to consume GraphQL services.
Through polling we found most attendees hadn’t used GraphQL so it was a very informative session for the audience to understand the benefits and how to use it. After reviewing the GraphQL code there was a live demo to experiment with the code followed by a demonstration of Relay and a final code review. We ended the session with a live Q & A so the audience could ask any questions regarding the topics discussed.
Eric covered the differences between Angular 1 and 2 as well as a live coding session for the essentials of building components, building templates, data binding and handling events.
We have a new version of Visual Studio coming soon so I did the work to update my WintellectPowerShell module to support it. And, what a huge adventure that turned out to be! I will discuss why its support for Visual Studio 2017 was hard a bit later in this blog entry. For those of you who are new to WintellectPowerShell, it is a module that brings a number of useful cmdlets for setting up symbol and source servers for Visual Studio 2013-2017 as well as WinDBG. Other cmdlets automatically download and extract all the lovely goodness of the SysInternal tools, automate the analysis of lots of minidump files, and so on. The module has been helpful to me over the years. You can look at all the source code on GitHub: https://github.com/Wintellect/WintellectPowerShell. To install WintellectPowerShell directly, execute the following command in PowerShell:
If you have a previous version of WintellectPowerShell installed, you will see an ‘Authenticode issuer’ error when you try to update. The error is because since I last released a WintellectPowerShell build, my code signing certificate needed to be renewed. When PowerShellGet does checks a signed module, it checks all the certificate fields.… Read more
Having end-to-end tests and running them locally can definitely be beneficial, but one of the main reasons to have them is to run them automatically during a nightly build. Getting these tests to run in Visual Studio Team Services isn’t trivial. Here’s some tips on how to get them going.
When first setting up a build for your Spectron tests all the build definitions need to be manually entered. However, the first step is to actually specify what repository you want to use. This gets set when you start your first build definition.
Select the “Empty” template when the dialog pops up.
From there you can then choose what repository you want to from VSTS or even choose a repository from GitHub.
Here we can set up our steps to have our tests run. If you recall from our [first post on Spectron with our demo project I set up an
npm run script to run our tests. In this case, we only have two tasks to create for our build definition:
So the easy part is done. I only say that, though, because this next part was a bit tricky and wasn’t very well documented on what to do to get these types of tests to run.… Read more
Testing where the entire application is tested in a real-world scenario such as communicating with the database, network, hardware and other applications.
The above is the general definition of what an end-to-end test is. Most of these tests are written to make sure general flows of the application that a user may take are working correctly and as expected. However, there are other benefits to running and writing these tests that may not be as well known.
True, end-to-end tests are supposed to find bugs, but that’s mainly when you run tests that have already been written to make sure no bugs were introduced as the project is being developed on. However, there are a lot of bugs you can find when you’re writing end-to-end tests. In my experience, I’ve usually found an issue while writing an end-to-end test on a specific functionality that I’m testing.
Unit tests will do this, too, but end-to-end tests can find issues that aren’t always logical, such as UI issues and components not interacting as expected. This, to me, is probably the most useful thing about having end-to-end tests.
Applications depend on all components of the application interacting and working correctly.… Read more
Having purchased a 15 inch MacBook Pro with Touch Bar recently, I’ve been having a good time seeing how that Touch Bar can be used. With applications that know about the Touch Bar, it is an interesting UI approach. But with many macOS applications not having full Touch Bar support, I’ll reserve full judgment until most apps support it. I will say that the Photos app shows a tremendously useful way to use the Touch Bar.
One app I use all the time, the virtual machine program Parallels, does not currently support the Touch Bar, so whenever you are in it, you see the default Touch Bar view:
The only problem is that for Windows development, you really, really need those function keys. Sure you can press the FN key to have them come back, but I wanted the function keys to be the default. A little poking around in System Preferences, Keyboard settings, Shortcuts, showed the Function Keys section. I added Parallels Desktop to the list and, voila, now Parallels defaults to showing the function keys whenever Parallels has focus. Not the most earth shattering of tips, but one that certainly made my life better.
Now if only Apple would sell a Touch Bar external keyboard…… Read more