NinjaCodeGen — SPA’s and Code Generation (Angular, .NET, C#, CRUD, …), a look back.

in #angular7 years ago (edited)

Hey fellow coders! 

My personal journey to create NinjaCodeGen (NCG), an Angular code generator code for Angular apps and more, started with a love for SPA’s (Single Page Application) and the never-ending world-wide need for software, especially CRUD (Create, Read, Update, Delete) applications.

Since the dawn of the compute age, programmers have been coding the same type of screens over and over to manage lists and items. Today, companies are still paying millions of dollars and taking months or years for apps that are delivering this basic functionality. They are often doing this with poor code-generation, no automated e2e testing, older ui frameworks, and targeting only one platform (web, mobile, desktop). I have seen this first-hand at places like Microsoft, HP, SanDisk, etc., and it is surprisingly common.

NinjaCodeGen is all-in on Angular 4+. The app is Angular, the templates are Angular components, and the code generated is Angular (and more). There is no need to learn non-Angular languages, frameworks, or template engines like JAVA, .NET, C#, mustache, handlebars, T4, or any others. With NinjaCodeGen, if you want great starting Angular code, and need the ability to modify the generator app codes and code templates for your own custom needs, all you need to know is Angular.

NCG’s goal is to save you time and money while creating beautiful and well-designed and properly-tested CRUD apps. Kick ass kick-starting kick-ass apps and SaaS’s

 In 2002, I created a code generator for a SPA framework I designed, and it was based on XML/XSLT, along with .NET/C# and JavaScript. I called my company DNA (.NET Architects), and I named this “DNA Generator” since it created code for digital-life.

(From an XML schema I generated from SQL Server, I was able to code an XSLT to transform that into the two XSLT’s I needed to 1. “transform XML data into the xHTML to display the UI” and 2. “transform XML info the SQL that I needed to update the database”. I thought using XSLT to generate XSLT was mind-boggling cool!)

It worked beautifully; I was able to login/logout, navigate around, and add/edit/delete without any post-back or refresh of the screen and transforming the heck out of data everywhere. Later that year, I presented it at the Houston .NET Users Group, which I co-founded. The talk was titled “XML/XSLT Transformation, More Than Meets the Eye”. I think I did not realize the power of it then and lost interest, but it was in many ways like Angular.

I have also since then dabbled with other code generators and tools like Swagger Code Gen, Olymars (SQL Server Centric Code Generator), CodeSmith, yeoman generator, angular cli, ionic cli, T4 templates, mustache, handlebars, Visual Studio templates and extensions. Each had its own strengths, but usually too cumbersome to learn, or they were just not simple or cutting-edge enough for my needs and interests.

3 years ago, while still running my outsourcing business, I had spare cycles and we started on generating code for AngularJS 1.x. We landed a big contract to use it, but got devastated by an unethical client; and so work on it ceased. I also was distracted somewhat by 2 of my other ideas, iloveuGIFTS and MakeWorkFun!, which are on hold for now.

When Angular 2 beta came out, I was still determined and convinced that yet another code generator would be very valuable and make the world a better place. And so work on NinjaCodeGen commenced. I did not want the regrets of the past and give up on this mission. I and one remaining loyal developer toiled night and day and dreamed of a day we would level-up Earth’s developer skills. I don’t get out of the house for several days at a time, and my fiance is not too happy about that, but she understands :). 

 Aided with the impressive high quality courses from @pluralsight, and thanks their master trainers like John Papa, Dan Wahlin, Scott Allen, Joe Eames, Deborah Kurata, Jim Cooper, and Shawn Wildermuth, we were equipped with the ninja coding skills to make legendary progress. We forever thank them for their passion and sharing their knowledge. The entire Angular team, as well has countless github contributors, also were of great help to us.

We combine the best seed/starter/scaffolding apps with the most beautiful UI components and UI templates. Angular cli, Angular Class Webpack, (twitter) Bootstrap4, Material Design, Telerik Kendo UI, WijMo, themeforest Angular templates like primer, free open source Angular templates like Akveo. We are adding more all the time. 

 We generate well-designed CRUD/list/item with best-practice advanced design patterns such as inheritance and generics, something that was extremely difficult to do in the web world before TypeScript. And we follow other best — practices such as the official Angular coding style guide from John Papa.

We also generate e2e testing code with selenium/protractor to test it, so there is no excuse to not have code or time for automated UI testing.

Another super useful feature we include is an in-memory database service which the user can use to test the app with no REST service. Things like filtering, paging, sorting, add, edit, and delete all work, so it’s fast to prototype without any dependence on a working service/database. When the service is ready, you can just switch to the included REST API Angular service.

We also have Ionic2 and Electron app templates to cover hybrid-mobile and desktop applications, so you can target ALL platforms

 Having said that, NCG can also be used to generate code for anything, including ReactJS, VueJS, Xamarin, .NET/C#, SQL Server, iOS, Android, JAVA, Ruby on Rails, python, php, HTML, TypeScript, CSS, etc.; the possibilities and endless!

Our IDE of choice is Visual Studio Code, which is what the Angular team is using. We are big fans at its speed, popularity, features and extensions, all of which are always improving. 

 So, have you seen projects that could benefit from something like this? Do you like where we’re going with this?

Visit us at http://NinjaCodeGen.com, http://facebook.com/ninjacodegen, https://twitter.com/NinjaCodeGen/, let us know what you think and help us to Make Coding Fun Again! #MCFA!

Let’s go play with some code! 

Sort:  

Congratulations @chauey! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published your First Post
You got a First Vote
You made your First Vote
You made your First Comment
Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 57483.55
ETH 3066.62
USDT 1.00
SBD 2.29