MVC REST API Builder
About Me and the MVC API Builder app
Hello, there!
My name is Eric Ingamells, and I'm going to tell you a little bit about myself, how this software came to be, and what it can do for you.First off, I'm a software developer. I started learning how to program computers in 8th grade with the LEGO Logo program. I learned the Turtle language and tried desperately to get the Lego robot we built to follow the path on the desk the little triangle onscreen said it should do. But that's not where I first got interested in technology. That was when I was a tiny kid and fell in love with robots.
But that's not why you are here. I could go into detail about the first 15 years of my career as a computer repair tech, but that's also not why you are here, either. You are here for what I've learned over the last 11 years as a professional software developer.
And what I learned is what I learned a lot of other places: people want you to do a lot of work in a small amount of time, and most of it is repetitious, repetitive, and redundant, even when they tell you not to be. I mean, the D in SOLID is DRY, Don't Repeat Yourself. Yet when we build most software, that's exactly what we do. That is until we try to be fancy and use something like Reflection, and then we just make things complicated plus need a whole bunch of exceptions for why it's not working for dozens of special cases.
For some of it, we build scripts, or macros, or utilities, or some other thing to help out, but we don't get to spend enough time on them to make them actually work the way we need it to, so we end up still having to do repetitive tasks to get things that are "close enough" to be "closer enough" so that we can actually do the real work, which is usually the business logic that the script we wrote simply can't build. Or we try the AI route and hope that what it spits out is reliable, or even halfway close to what we need.
Well, I did most of that, too. My first real attempt, which was such an early prototype of this app that I didn't even consider putting it "out there" for others to use, was a script that took a single SQL table and converted it into a C# model. And then I added another output for a JavaScript model of the same table. I needed it for both the backend and front end, and the tables I had to work with had so many columns that I often lost track and either duplicated columns or didn't include them when I was doing it manually. This was for a project where we were completely rewriting a legacy suite of products into a single C# .Net web app with an ExtJS front end.
There were dozens of tables and some of those tables had dozens of columns, so not exactly an afternoon project. Well, not unless you use my software.
I wrote that original script on company time, so I had to write it again at my next job. And the next job, too.
But now I have my own version, written on my own time, using my own app rewrite to prompt me to, well, repeat what I'd done before, but now for the last time. Now I can share this with everyone. And I went a lot further, too. Not only did I write a conversion between SQL and C#, but I've now included MVC controllers, repos, and a lot more. Instead of taking 30-60 minutes to write all of that by hand, including the REST methods, interfaces, and all the other basics, but I also wrote a fairly comprehensive Search functionality that will return JSON in a format that's compatible with a variety of front end paged grids that have column sorting. That Search functionality might take a couple hours all on it's own to manually write.
I also made this app capable of converting a whole database at once, instead of requiring you to do each table separately, like my first script did. And I made sure to include options for various different versions of SQL, so it doesn't matter if you use Oracle, MS SQL Server, MySQL, SQLite, or pretty much whatever, your datatypes will be converted accurately.
So, all you have to do is put your SQL schema into my app, add a little more more information specific to your project, and you'll get those controllers, repos, models, interfaces, search methods, and more written specifically for your use, using your table names as model names, and using column names in the search method. And all of that is written as if it was written by a human, because that's how I wrote the software. This isn't AI that plagiarizes other people's work, or tries to cobble something together, even though it really doesn't know how any of it works. No, this is me as a software developer designing the code to look and work as I've done it for over a decade now for a variety of different companies.
And the generated code works with a wide variety of .Net frameworks, without build warnings or errors. Ok, so it's not perfect, so there might be a few things that aren't quite right, but for the most part, it'll let you avoid the boring part of programming and let you get back to what you want to do, the interesting work. Ok, so you have me there, too. Business logic might not always be interesting, but it's a heck of a lot better than copy & pasting REST methods and changing their names to match the new controller, repo, or interface they are in.
So yeah, lets make programming interesting again, and let the computer do the boring work for you, which is what they are there to do anyway, right? I mean, 5 minutes to fill out a form to save you hours or even days of work is worth it, if you're anything like me.