Updating Angular 2 + ASP.NET Core Web Template for Visual Studio 2017 RTM

I am currently starting a new project for ASP.NET Core 1.1 when I suddenly realized that there’s a template that I can probably use for this.  Unfortunately though, the VS extension isn’t updated yet for Visual Studio 2017.

blog-01-vs2015

If you try to install this with only VS 2017 installed in your machine, you won’t be able to and you’ll be faced with this error –

blog-02-install-error

Fortunately, not all is lost yet. You can still install this template on your machine by doing the following:
Continue reading “Updating Angular 2 + ASP.NET Core Web Template for Visual Studio 2017 RTM”

ASP.NET SignalR – Beyond the Chat Application

Last January 30, I talked about ASP.NET SignalR 2.0 and what are the other uses of the technology aside from the chat application that’s widely available in the internet.

The first time I talked about SignalR (Q2 2013) is about the overview of the technology, and how it is used based on the chat application. From that point, I haven’t seen any implementation yet on how can it be used in business applications – a world where I actually work in. Although a quick check now on the project’s SignalR GitHub page, there are some projects/applications published using this technology.

Fortunately, an unfortunate incident that was reported before by a friend was a good business case where this technology can be implemented. The scenario is something like this:

Employee was working on an application where the users are located on multiple locations and multiple timezones. Employee worked with the business partner to schedule the production release of the approved enhancements. Business sent out prior notifications to the departments through e-mail and employee worked on the technical team that will assist in the release. Departments are responsible for cascading this information to their respective units as they are more aware of the specific roles for their group.

The release was made but had to be pulled out minutes after due to business reasons. The time in between the post release and the time it had to be reverted, data corruption happened and these needs to be corrected. It took a long time and large effort to reach out to different users to remediate data fixes.

A root cause analysis was conducted and one of the suggestions is that in the future releases, introduce the app_offline.htm file in the root folder of the application to make sure that no one is actually working on the application on the time of the release.

While the app_offline.htm file effectively excludes everyone from the application (aka “soft offline”), this might be costly for some who are currently working on the application. Either they had to re-upload a large file, re-input lots of data once an abrupt “activation” of the app_offline.htm file is put into place. It would be nice if these people would be notified of the upcoming outage ONLY if there’s a way to identify their current site activity and send them notices as warning to save their changes.

Building up a prototype using SignalR might be useful for these reasons:

  • Current users of the application are considered as “clients” connected to the server. Application administrators don’t need access to the web server just to get the number of users online (through perfmon) OR use an application level variable (and using that nasty Application.Lock() method) that can probably cause performance penalties.
  • I can treat the whole application as a glorified “chat session” and send broadcast messages to all or specific users (more on the sample application). I can send notifications individually or to everyone, as I desire through divs triggered according to events.

In my talk, I used two pages to demonstrate SignalR. It all started with converting a SignalR 1.x application to version SignalR 2.0.x and build the demo from that.

Client Page (signalr-Notification.aspx)

The client page provides three different ways of participating in the application session (or “chat”) – using the current windows identity, a client-input name, or a value taken from the web.config.

Image

Once you have selected your “identity”, you would see a familiar chat window similar to the chat demo. What made this demo different is that you have three functionality that builds on top of the chat demo.

The first two buttons in this page provide notification to all connected users, while the last one just provide notification to the user calling the function. The first button sends notification based on a fixed value. This could either be a standard greeting to those joining the session or any hardcoded value (e.g. name of the application, etc) that you wish to broadcast.

The second button broadcasts value from the web.config file. As indicated in the scenario above, it would have been better if the current users using the application prior the updates be notified that the application would go offline in x number of minutes. Case for example, if the website is scheduled to go offline in a specific time, you can get the value of the offline schedule (date or datetime) from the web.config and broadcast it to the users. This button is quite flexible on what data to broadcast or notify since you have control on what data to display to the connected users.

The third button simply displays how many users are connected to the application at that point. That’s just it. You would know how many people are actually having an active session with the application. Previously on ASP.NET Membership, the basis of number of users online is based on the users’ login session. However, if I say I login and close the browser after authentication, I would still be recognized as “online”.

Admin Page (signalr-Admin.aspx)

Getting through the admin page needs you to be identified again in the system. I just basically reused the first page and added admin-related items.

In the admin page, I displayed all connected users and their corresponding connection IDs. From this point, the “admin” can send individual messages to the user or broadcast to all a message. This is similar to a Facebook notification wherein people associated or a specific person gets notified for an update or message.

Admin

The demo files can be downloaded through my Skydrive folder and is provided as is.

There are other enhancements/items that I am working on this project:

  • Ability to return back to the admin who among the users have acknowledged the notification. An event can be raised and capture the current username of the user who clicked the notification.
  • Do a comparative speed/latency test on connections coming from different browsers. Note that SignalR’s mode of transport depends on the type of browser that a user uses to work with the application.

Questions? Feel free to ask them in the comments. 🙂

Updating from Windows 8.1 to 8.1 Pro

Today marked the General Availability of Windows 8.1. While I am a MSDN subscriber, the slow connection getting the bits made it through the GA of the OS. The road to updating from Windows 8 Pro to Windows 8.1 Pro wasn’t a smooth one – at the least on my current setup. Here are the issues that I passed through:

1) My Windows 8 Pro installation sits on a virtual hard drive. Given that, I cannot “upgrade” my image with 8.1 with an ISO. While I haven’t tried updating it via the Windows Store, I prefer having an ISO lunging around. What I did is to back-up the files in my Windows 8 Pro installation to another storage and followed the VHD installation again.

It went smoothly and as far as I can remember, the installation is faster as compared to Windows 8.

2) During the post-install process, I accidentally keyed-in a Windows 8.1 product key (other SKUs being 8.1 Pro and Enterprise but the image of the non-Pro and Pro is just the same). I didn’t realize it until I installed Visual Studio 2013 and an error was reported that I cannot add myself to the Hyper-V Administrator’s group. I launched the MMC snap-in and tried adding the Local Users and Groups section – it said though that the version of Windows 8.1 doesn’t allow me to do it. I checked the product key that I got hours earlier and indeed it is the base SKU product key that I keyed-in. I tried changing the product key clicking this area:

Unfortunately, despite best efforts to click on it – it doesn’t help. Then I scrolled around, looked for forum posts and never I did realize that the answer to my question is in the same screen as above.


That prompted me to a 2 step process of providing the pro product key. After 1 restart and voila,  I am updated to the pro version! Much more I like it and the fact that I can now boot directly to the desktop is a wow!

We sometimes overlook things, it happens. 🙂

Second Time Around

This year’s Microsoft MVP Summit is my second (2011 was the first) and so far the best that I have experienced! It was without my knowledge that this year, if not for my friend that 2013 would be the 20th year that the program is in place and making it in this momentous event has caught me by surprise.

The range of topics for my specific area of expertise are exciting in the sense that I can’t wait to get dirty with my hands as well using those. Of course, what they’re are – are still covered by NDA hence, it can’t be released in public until Microsoft makes it public themselves. I could remember that during the last summit, what we are currently using were previewed then but with MVPs’ input and in various CTP releases, they have shipped a good product where everyone is pleased (not giving specifics but it is released in VS 2012). 🙂

Prior to the summit, selecting my sessions, I realized that most of ASP.NET/IIS related topics are assigned in Hyatt. In a way, I am disappointed by it as the previous summit that I have attended, sessions were held in the main campus in various buildings. Given that I have attended only 2, there were some differences with the range of activities held however, I am pretty much satisfied with how things worked this time – logistics, food, internet (a must!) and activities.

This slideshow requires JavaScript.

But more than the sessions, I really liked as well the activities on socialization where I got to meet not only Microsoft People that I look up to but also different MVPs from other countries such as Germany, Switzerland, Japan, and UK. Likewise, I was able to meet Filipino MVPs who are based on other countries as well. Aside from pleasantries, the exchange of communication was the highlight of the event. That is where we put faces behind the names and talk about common interests and share techniques and approaches that would help fill up best-practices in our respective organizations. The camaraderie has shown that the MVPs are not just techie guys but fun guys as well fueled with passion to use and share about the Microsoft technologies. This passion drives the most of us to PASS It ON to others to make lives, experiences, and computing better!

Happy 20th Microsoft MVP!

A Week With The Lumia 920

It’s been a week since I had my Yellow Nokia Lumia 920. I already bought the unit since the second week of January but I was only able to get it last 2 February 2013. I didn’t source my phone here in the Philippines but from Singapore from which an ex-colleague referred me to a reputable gadget store that provides online payment for their products. Quite reasonable I may say and was lucky enough to get the last unopened yellow unit which I think is the “flagship” color (I might be wrong) for the flagship Windows Phone 8 Lumia.

image

The quest to secure a unit started last year when Microsoft and Nokia announced Windows Phone 8. I would admit, at first I have been awed with the simplicity of the design of the OS and how it is different from the rest of row of icons implementation of other mobile OS’s. WP8 is indeed a welcome update from the previous versions as it is more functional and would give users of other platforms to easily adopt to this OS. I have been using several platforms prior to this – Android (Nexus One, Galaxy Note), a Blackberry (9780), and iOS  (iPad 2 and iPod Touch 5th Gen). While it is obvious that what’s missing is the Windows Phone Series device in my collection but the previous iteration of Windows Phone could be something to be liked but not really worthy owning yet. From the demo models available in stores and some owned by friends, the phone isn’t ripe yet for my own personal consumption. I actually like the form factor of the Lumia 900 – something closer to the large screens of the Androids but the screen resolution is too limiting for me.

There was a huge silence on the part of Nokia Philippines (based on their FB page) with regards to the availability of the Windows Phone 8 units not until in a forum that they’ve said that the new Lumias would come out by January 2013 (I can’t find the screenshot but they mentioned that January 2013 is the target release date). I was in a way a bit surprised in a bad way because the holidays is where people tend to spend more money and they are releasing a phone after people have spent their extra cash for gadgets. I just let it go since it would give me more time to research about the device.

The Tweet Reply of @NokiaPilipinas
The Tweet Reply

Till now, Lumia 920 is still elusive in the official channels of Nokia. Some are sourcing theirs in grey market online stores (e.g. Kimstore) or importing them from other countries.

Upon claiming my device, I went to Globe to convert my almost 13 year old simcard to a nano sim and bought a converter after. Reason for this is I want to test how this device would fare on LTE connection. Officemates are generous enough to lend me at least for 10 minutes to test their iPhone 5 postpaid subscriptions equipped with LTE. Prior testing, I ensured that they get LTE connection so that it would be a good basis to say that LTE exists in our area.

With the numerous reviews of Lumia 920, I won’t be doing any review on the phone features but rather chronicle how is it for someone a heavy Android user move to a relatively young platform such as Windows Phone 8. Did I miss something or would I turn back to Android? Let’s see. =)

Out of the Box

photo

The phone is charged around 40% when I turned it on. I am not sure when the device was released from the factory but it’s more than enough to juice to configure the device granted you have wifi or data plan with it.

Aside from the device itself (listed as a Singapore variant), the package comes with earphones with the same color as the phone, USB cable and the plug where the USB can be connected.

The good thing that even I have a Singapore-based plug, I can plug in any of my OEM chargers on the phone as it uses the standard microusb connection. I can easily switch chargers of my Android or Blackberry with this.

Contrary to iOS device packaging, there’s a lot of stuff with the box. Some stickers of barcode which I don’t really care about, LTE connection notice (saying it might not work on some carriers) and a thick booklet which is not necessarily a phone guide per se but a Windows Phone guide in general.

wp_ss_20130204_0001

Configuration

This slideshow requires JavaScript.

Setting up the phone is quite easy. No need for rocket science to get things started. If Android requires a Google Account, here, its obviously you need a Microsoft account (aka Hotmail, Windows Live ID or Outlook.com ID). Accounts in different social networks can be set up (e.g. Facebook, Twitter) in the accounts. Without these, you cannot share items or the option to these networks in the context menus won’t appear. I noticed as well that the Facebook for Windows Phone is not made by Facebook but by Microsoft. A handful of Nokia apps are also in the phone but these need to be downloaded or updated. I remember setting up City Lens where I had to download something as well as Nokia Maps.

Transferring Contacts

wp_ss_20130206_0024

The phone came with an application called “Transfer My Data”. I think this is a Nokia exclusive application (or should I say an app made by Nokia) and it transfers contacts from a previous phone through bluetooth to your Windows Phone. After copying, one would be able to combine contacts from other services (such as Facebook, Twitter, etc).

This slideshow requires JavaScript.

LTE

I did mention earlier that I am using a nano sim in my phone with microsim adapter. I asked my colleagues using LTE-enabled iPhone 5 postpaid plans to borrow their sim card and check if LTE works. Note that both sim cards tested from different networks receive LTE in our office area hence, it should work as well with my phone. As per checking in this list, Globe is using band 3 (1800Mhz) and Smart is using bands 5,3, and 1 (850/1800/2100 Mhz).

WP_20130212_001

From the picture above, it shows that all LTE frequencies in the Philippines is supported by the phone. In theory, it should work right? There’s no scientific process for the test that I did. I just used the simcard the way an ordinary user would use a smartphone.

With SMART, the network where I wish to sign-up for a postpaid line, it didn’t work. I only got Edge at most and the speeds are terribly low. I did ask them through twitter and their reply was this. Take note that their reply was based on service availability on the dates indicated:

IMG_0607

With Globe, I think it works. Here’s what I’ve got.

wp_ss_20130212_0005

I did ask in Philmug if 4G is LTE, no one answered. Lolz! But I suspect it is LTE since it can be used interchangeably with 4G (correct me if I’m wrong if ever). Some forums in other country say that to use LTE, one must set the highest connection speed to 4G to enable LTE.

wp_ss_20130203_0002

I also asked the @talk2Globe twitter account regarding their LTE service and I think I have enough proof that Globe’s LTE is not device dependent.

This slideshow requires JavaScript.

Further research led me that indeed, Smart’s LTE offering for iPhone 5 is different from other devices.

wp_ss_20130206_0011

Possibly, that means that you need to have an add-on to your existing postpaid plan to enable LTE while it is available outright for iPhone 5 devices. Quite discriminatory to make it easily available for inferior phones while too restrictive for value smartphones. He he he!

Bundled Software

There’s a bunch of Nokia bundled software. Nice to have for me. 🙂

This slideshow requires JavaScript.

Battery Life

I removed the charger one time around 5am. With normal usage of calls, text, WIFI, music, < 2 hours data connection, one whole charge lasted me 34 hours and 35 minutes (phone “died” at battery level 3% at 3:35pm the next day). I have data on my phone but I don’t really do an always on connection so this might be different for users on an always on setting. A friend of mine said that he got 12 hours on an always on Lumia 800. I took it with a grain of salt. 😛

As recommended by raypin, a PhilMugger, using the dark theme than the light theme makes a difference on the battery life. I did search on this over the internet and indeed, it’s one of the recommendation.

USB Storage

usb_storage

It works! Just plug in your microusb cable to your machine and to the phone and voila (tested in Windows 7 and 8 machines)! If you want to use custom ringtones in your device, place your MP3 files it in the “Ringtones” folder and you can use them as your custom tones. Note that I am not sure what file extensions it support but MP3 is working for me. For some of the items, while you can transfer them to the device, there’s no assurance that they will be seen by the device (e.g. a video placed directly through explorer to the “Videos” folder will not necessarily mean it would be visible in the apps).

Camera

PureView camera rocks! It really do wonders in low light photography!

WP_20130209_008

Quirks/Wishlist

Of course, no mobile phone OS is perfect. Here’s some of my observations:

  • No notification center? Yes, live tiles give information but I hope there’s something like the one in BB10 where I don’t have to necessarily give up what I am currently doing or looking to just to check for new updates. Hardware wise, a notification light is a welcome idea.
  • Had to install the application “Connectivity Shortcuts” to enable shortcuts to radio signals (WIFI, Bluetooth, Data, and Airplane Mode). These are just shortcuts and they don’t toggle on/off right away. Hopefully, there’s a native live tile that will trigger those radios on or off. 
  • Bundled software Angry Birds Roost is a blah. Enough said.
  • Games are not in the application menu. One has to go to “Games” and select the game that you have just installed/purchased.
  • Album art of music is awfully designed. They could have integrated the style of the Zune desktop for displaying album arts. Nokia Music won’t display album art either. Likewise, for various artists collection, the album art for the whole album is that for the first song only. The rest of the songs even if they have their own album art, will display the first song’s cover (unlike in iPod)
  • No native battery meter. Yes, it is in the settings but it’s too tedious to check on it.
  • NFC transfer doesn’t work on Androids.
  • Select text position is not in place!IMG_0604

Conclusion

While there are still some social apps that I miss in Android, I guess this phone would be more than enough to perform your day to day functions. I am not sure how this would benefit those who use their smartphones for work (those connected to the office domain) but I think the tight integration of the Microsoft ecosystem would be a very good fit. For now, I still have all my 4 devices with me. Of them all, the Android seem to be going away from me. Seems like my setup would be in the near future is a BB, iOS (iPod Touch) and this WP8. I am not saying Android is bad, it’s just that WP8 is growing better on me. 🙂

Microsoft WebsiteSpark

untitled

 

If you are a team of independent web developers that build web applications and websites for others, Microsoft has a new program targetting you.  Scott Guthrie, Microsoft Corporation’s VP for the Developer Division has announced the WebSiteSpark program, on top of the two existing start-up programs BizSpark and DreamSpark (for students). This program enables you to get software, support, and business resources from Microsoft at no cost for three years.

In a nutshell, the programs that you can immediately use upon confirmation of enrollment are the following:

  • 3 licenses of Visual Studio 2008 Professional Edition
  • 1 license of Expression Studio 3 (which includes Expression Blend, Sketchflow, and Web)
  • 2 licenses of Expression Web 3
  • 4 processor licenses of Windows Web Server 2008 R2
  • 4 processor licenses of SQL Server 2008 Web Edition
  • DotNetPanel control panel (enabling easy remote/hosted management of your servers)

For more information, you can check the official announcement of the program here.

Silverlight 3.0 Released!

I am a bit excited with the release of Silverlight 3.0 and while searching the pages of Silverlight, a download link has been made available for the public to get the Released To Web (RTW) version. Likewise, developers can also take advantage of the Silverlight 3.0 SDK though you need to remove any beta pre-RTW Silverlight 3.0 SDK. Aside from that, Silverlight 3.0 Tools for Visual Studio 2008 is also available for download.

sl30

Here are some useful links that you can check out (links open in a new window):

Key improvements for the release are grouped into 4 categories:

  • Media: GPU hardware acceleration, new codec support (H.264, AAC, MPEG-4), raw bitstream Audio/Video API, and improved logging for media analytics
  • Graphics: GPU Acceleration and hardware compositing, perspective 3D, bitmap and pixel API, pixel shader effects, and Deep Zoom improvements
  • Application development: Deep linking, navigation and SEO, improved text quality, multi-touch support, 60+ controls available, and library caching support
  • Data: Data-binding improvements, validation error templates, server data push improvements, binary XML networking support, and multi-tier REST data support

Still, I am waiting for the launch of the site See The Light (www.seethelight.com). It is already 10 July 2009 here in Manila but perhaps the launch of the site would be the time in the US. 🙂