Wednesday, July 12, 2017

Angular ASP.NET MVC with WebAPI

Tuesday, June 13, 2017

Angular 2 with ASP.NET MVC WebApi

Tuesday, May 9, 2017

WinSock2 for Games

Rock Paper Scissors Game Project:

Wednesday, May 3, 2017

Naushad Microsoft ASP.NET MVC Angular Training as Professional

Naushad Visual Studio .NET MVC Angular Training as Professional

Other series
Step-by-step ASP.NET MVC Tutorial for Beginners mosh udemy
Learn ASP NET MVC 5 Complete Tutorial 2016 COMPLETE  Hershey computing Nearly 4 hours


00:01 - The MVC Mindset 04:36 - Requests Handled by Actions 11:52 - ASP . NET Routing 18:36 - Action Result Types 22:13 - Action Selectors 27:40 - Filters 34:00 - Razor Syntax 38:44 - Layouts 43:00 - HTML Helpers 48:58 - Building and Minification 56:24 - Responsive Design with BootStrap 1:03:22 - Models in Actions and Views 1:08:34 - Display and Validating Model Properties 1:14:52 - View Models 1:19:19 - Database Objects and Entity Framework 1:24:46 - Entity Framework Code First Migrations 1:33:04 - Challenge: Adding Transactions 1:34:28 - Challenge: Solution 1:42:04 - OWIN and Katana 1:46:33 - Local Authentication 1:50:31 - Facebook Login 1:56:27 - ASP . NET Identity and the User Manager 2:02:02 - Role-Based Authorization 2:05:51 - Roles and Assignments 2:10:50 - Unit Testing 2:15:17 - Unit Tests 2:20:31 - Mocking Dependencies 2:26:35 - Test-Driven Development 2:33:09 - Partial Page Updates with Unobtrusive Ajax 2:38:23 - Partial Page Updates With jQuery Ajax 2:42:18 - Model Binding with Knockout 2:48:51 - Paged Grid with Knockout (skipta niðurstöðum í bls) 2:57:30 - Deploying to Azure Web Sites 3:03:10 - Deploying to AppHarbor 3:11:57 - Deploying Without Automatic Migrations 3:17:16 - Web.config Transformations 3:24:24 - Challenge: Implementing Transfers 3:28:23 - Challenge: Solution

MVC Training Part 1 What is MVC? and Defference between Asp.Net webForm and Asp.Net MVC

 MVC Training Part 2 My First HelloWorld Application In Asp.Net MVC

Tuesday, May 2, 2017

Mosaic Software Cambridge MA Chartman, Integrated-7, and The Twin 1-2-3-alike

Mosaic Software Cambridge MA Chartman, Integrated-7, and The Twin 1-2-3-alike

I'm Arthur Hu and for me the good old days were in the 80s from 1983-1989 when I stumbled on this company peddling a device independent graphics package for MS-BASIC for no money then got offered a salary if I could write a spreadsheet program for the PC like Lotus 1-2-3 or Microsoft Multiplan. 

According to wikipedia, I was actually the 2nd Bexley alumni (MIT '80, graduates with 2 degrees in 1981) to do a spreadsheet as the original Visicalc was done by Dan Bricklin, which in turn was reworked into Lotus 1-2-3 much like a spin-off before the Visi-On debacle. Bexley hall legendary as center of counterculture on campus since the 1960s and 70s and even into the 2010s until it was demolished allegedly due to water structural damage and is now the site of a park which does not bear a memorial.

After the success of 1-2-3, the industry was abuzz with the idea of who would be first to create an integrated software package that did everything. Lotus eventually came up with Symphony. Mosaic had started with the BASIC based Chartman and the idea was to use C to make an integrated package.  The result was Integrated-7 which was a spreadsheet with a very basic word processor and database, and the spreadsheet which was based mostly on 1-2-3 with its own file format was adapted to use the published 1-2-3 file format and became The Twin which was one of the first successful PC programs written in C using data abstraction which was taught at MIT in the late 1970s using PL/I before CLU was created.

At the time it was common practice to create programs that emulated other programs at a byte for byte compatibility level as long as you did not actually copy source code, which we didn't do. 

The Intel 8086/8088 was the original x86 processor which got around the 16 bit 64k addressing barrier which frequent afflicted minicomputers by adding a 4 bit segment hack which extended addressing to 1 million bytes or 1M memory which was fine for about 4 years. Lotus 1-2-3 which was written in 16 bit assembler with 16 bit pointers which was the most efficient way to to processing. Using Lattice C meant code would be bigger and worse, to simplify things we used Lattice C 32 bit LONG pointer,  but it wasn't bad as it was about twice as big and half as fast but usually memory got twice as big and twice as fast if you just waited for next year's PC. 

The hardest trick in matching was how they got lightning fast screen repaints because sprintf took FOREVER  to paint a screen full of floating point numbers. If you broke down the process manually, the bottleneck was floating point multiply by 10.0 to convert a number into a long decimal integer. 

The hack I figured out was to take the fraction and exponent out of the IEEE floating point to get a binary number, then use a shift and add (mult by 2 and add 1) to multiply by five and shift again which gives you ten, and then stick it back into the fraction and exponent add or subtract an exponent or two, and we got times similar to 1-2-3. This could all be done in C. The only assembler was to do the rpn push and pop for expression evaluation of tokens, and later to interface to Intel  

Franklin Hu

I was so inspired by your story, that I recovered i7 from my ancient 701C butterfly laptop and created an Integrated 7 museum. Find it at:

Send us a picture with your retro system running i7, I can add it to the museum.


Welcome to the Integrated 7 (i7) Museum

Integrated 7 was a multipurpose spreadsheet/wordprocessing/database/communication, etc. etc. program that included many of (seven of them) the most commonly needed applications on a personal computer.
This program also contained the very first implementation of the Helvetica font which can be accessed by specifying Font =3 in the Graph Options menu.
This program was created in 1988 and I consider it abandonware. If anyone has any objections I will remove it, but for now, get it here.
This is a zip file, just unzip it to a directory like c:\i7
This can be run in a modern operating system if you use DosBox
After you start it, you can use the command
mount x: c:/i7
This will mount the x drive to where you unzipped i7.
Then just switch to the x: drive and run i7:
I have verified that if you change the configuration file (Use the menu to access Options/DosBox .74 Options)
machine = hercules
Then start i7 with the i7h.bat file, you can run it in high resolution black/white Hercules graphics card mode, so you can see that nice Helvetica font in all its glory.
-Thanks for dropping by, enjoy

I got this letter from my brother Franklin who was also there:

my e-mail is arthur no-space 98021 at gmail
 Elmer Robinson elmerrobinson at yahoo
Date: May 1, 2017 at 5:35:12 PM PDT
To: "franklinhu at yahoo 
Subject: The Twin and Integrated 7
Mr. Hu,

I apologize for reaching out to you uninvited like this. I came across your resume while I was searching for the Twin and Integrated 7.

I am a 30+ year computer network engineer and security consultant, and my career in computers was launched in part because of my time with these two applications. The first computer I bought in 1986 I purchased with two 5 1/4" floppy drives and a copy of The Twin. What I could do with that program on that old machine was simply magic to me, and made me fall in love with computers. I had an experience where I found a bug in the Twin while I was working with it, called Mosaic's help line, spoke with someone who knew exactly what I was talking about and sent me out an update disk right away. From that point on I was hooked.
I'm reaching out to you because I've been bitten by the nostalgia bug, and I've been trying my best to re-create my first computer system. The only physical thing I need to find at this point are copies of The Twin, and Integrated 7. I have found internet archives with running copies of the Twin, but nothing is out there for I7. After years of searching I found an incomplete set of I7 disks and manuals, but the Library, Terminal and Help disks are missing preventing an full install.

So this is a wild, crazy shot in the dark to see if you have any idea where I could find copies of these programs that I love so much?

If nothing else, I wanted to tell you how much your work meant to me personally, and to thank you for your part in that.

Elmer Robinson

It's really a pleasure to meet you both. I always thought the Twin was a great product that was better and cheaper than 123. It's too bad Lotus decided to sue the competition, rather than innovate and improve their product like they should have done. Especially since they just copied VisiCalc.

As I mentioned, I consider it the program that got me hooked on computers and I have a real soft spot for it.

I appreciate you keeping me in mind if you find something Twin or I7 related that you could part with. I'd be happy to pay what you think it's worth. 

Wednesday, April 26, 2017

Microsoft: ASP.NET Core tutorials

ASP.NET Core tutorials

The following step-by-step guides for developing ASP.NET Core applications are available:

Building web applications

Building web APIs

Working with data

Authentication and authorization

Client-side development


Publishing and deployment

Master Chef (Part 4) ASP.NET Core MVC and Angular 2 Implement CRUD Single Page Application

Master Chef (Part 4) ASP.NET Core MVC and Angular 2 Implement CRUD Single Page Application

Master Chef (Part 1) ASP.NET Core MVC with Fluent NHibernate and AngularJS

21 Sep 2016 CPOL
In this article, I want to show how to build a Single Page Application – MasterChef with ASP.NET Core MVC, Fluent Hibernate, and Angular JS.
ASP.NET 5 is dead, and is being renamed to ASP.NET Core 1.0. However, though naming the new, a completely written from scratch ASP.NET framework "ASP.NET 5" was a bad idea for a one major reason: 5 makes it seem like ASP.NET 5 is bigger, better, and replaces ASP.NET 4.6. Not so. So ASP.NET 5 is now ASP.NET Core 1.0, and NET Core 5 is now .NET Core 1.0. Why 1.0? Because these are new. The whole .NET Core concept is new. The .NET Core 1.0 CLI is very new. Not only that, but .NET Core isn't as complete as the full .NET Framework 4.6.
One of the big new features of working with ASP.NET Core is cross-platform compatibility. As of this version, we can both develop and run ASP.NET Core on Windows, which has always been the case, but also on Mac OS X and Linux operating systems.
ASP.NET Core and MVC are the server side of things, but as we touched on earlier, in a single-page application, there is also a client-side component. Angular is actually one of the more popular frameworks. It's built on top of the web technologies – HTML, CSS, and JavaScript – and follows a model view whatever pattern, which basically allows us to create apps that have a decoupling between the presentation and the business logic.
NHibernate is an object-relational mapping (ORM) solution for the Microsoft .NET platform. It provides a framework for mapping an object-oriented domain model to a traditional relational database. Fluent NHibernate offers an alternative to NHibernate's standard XML mapping files. Rather than writing XML documents (.hbm.xml files), Fluent NHibernate allows you to write mappings in strongly typed C# code. This allows for easy refactoring, improved readability and more concise code.
In this article, I want to show how to build a Single Page Application – MasterChef with ASP.NET Core MVC, Fluent Hibernate, and Angular JS.

Master Chef (Part 2) ASP.NET Core MVC with Fluent NHibernate and AngularJS

3 Oct 2016 CPOL
In this article I talk about how to use ASP.NET Core MVC, Fluent NHibernate and Angular JS to implement a CRUD SPA (Single Page Application).
In Maser Chef Part 1, I introduced how to integrate ASP.NET Core MVC with Fluent NHibernate and Angular JS. In this article I talk about how to use ASP.NET Core MVC, Fluent NHibernate and Angular JS to implement a CRUD SPA (Single Page Application).

Master Chef (Part 3) ASP.NET Core MVC with Entity Framework Core and Angular2

26 Jan 2017 CPOL
From this article, I’d like create ASP.NET Core (Net Core) application with Angular 2.


In Master Chef Part 1 and Master Chef Part 2, I introduced how to integrate ASP.NET Core (Framework) with Angular JS and Fluent NHibernate. In this article, I’d like create an ASP.NET Core (Net Core) application. You should know NHibernate doesn’t have Net Core version yet, so I switch to Entity Framework Core. On 9/14/2016, Angular 2 Final release was out. Angular 2 is the second major installment of AngularJS and is entirely written in TypeScript. For the developers who are working with Angular 1.x, you might find a big change in Angular 2, as it is entirely component based and an object orientation, is much easier with enhanced DI capability. I’ll show you how to build Angular2 application in Visual Studio 2015 Update 3.

Create MasterChef2 Application in Visual Studio 2015 Update 3

Form Visual C#/Web, select ASP.NET core Web Application (.NET Core).
ASP.NET Core has two kinds of applications.
  1. ASP.NET Core .NET Framework Application is application running on Windows using .NET Framework.
  2. ASP.NET Core .NET Core Application is cross-platform application running on Windows, Linux, and OS X using .NET Core.

Master Chef (Part 4) ASP.NET Core MVC and Angular 2 Implement CRUD Single Page Application

25 Apr 2017 CPOL
Inthis article, I talk about how to use ASP.NET Core MVC, Entity Framework Coreand Angular 2 to implement a CRUD SPA (Single Page Application).


In Master Chef (part 3), I’ve introduced how to create ASP.NET Core MVC and Angular 2 applications. In this article, I talk about how to use ASP.NET Core MVC, Entity Framework Core and Angular 2 to implement a CRUD SPA (Single Page Application).

Server Data Model

Create, read, update and delete (as an acronym CRUD) are four basic functions of persistent storage.
We need to implement CRUD on database level in our repository class first. Add a basic Entity class.
    public class Entity
        public virtual Guid Id { get; set; }

        public virtual Guid? ParentId { get; set; }
Then let RecipeRecipeStep and RecipeItem inherit Entity class, and use Id and ParentId these generic names to replace the corresponding keys and references.