Posts

Boilerplate: Vue.js + ASP.NET MVC 5

Image
If you need to start as soon as possible with a project using Vue.js 2.0 and ASP.NET MVC 5 , here I bring you a light Boilerplate/Template with the minimum setup 👍: https://github.com/mejiamanuel57/Boilerplate-VueJS2-ASPNETMVC5 Let's make this run: 1) First, clone the repository 2)  cd VueJS2-MVC5 3)  npm install 4)  npm run dev   ...And the  Vue.js  is running with h ot reloading on port 8080 Now let's go to the server-side: 1)  npm run build to build the web project "for production use" 2)  Open the solution in Visual Studio 3)  Make sure to run the web project on  http://localhost:54490 4) Press F5 and another window will open showing the built project on port  54490 Test the connexion between Vue.js and ASP.NET MVC: 1) Go to the windows  running the Vue.js project on  http://localhost:8080/ 2) Click on the button "Go and test the backend" 3) If the result sa...

Clean Code, even under pressure

Image
We all have been in the position at work when the pressure comes, and delivering on time is a "life-or-death situation". There are a lot of factors that influence a bad project planning like wrong time estimation, workload distribution, team choice, etc...and maybe it will happen more than once, after all, we are humans and we are really bad forecasting. Certainly, nobody wants to work under pressure, we can't think clearly,  we try to work faster, making more mistakes than in a normal situation, it sucks I know. In those moments we tend to focus more on delivering at all costs, even sacrificing our reputation...and that's why I wanted to write this post. Keep in mind, when you are coding, maybe alone or within a team, you are building something to solve a problem, it doesn't matter how big or small it is, I'm pretty sure that problem will evolve over the time. Having said that, more and more code will be written. This code should be maintainable over ...

My experience adopting Vue.js with my coworkers

Image
This year I had the opportunity to lead 2 projects at work, one was an API for the company's Mobile App and the most recent one was a Web App, this last one was the most joyful for me and I want to share my experience adopting Vue.js with my coworkers in this project. Prior to the projects, I assigned a task to the team, "choose a JavaScript Framework" to use in our future projects based on 3 simple criteria: 1) Learning curve 📚 2) Speed 🚀 3) Documentation 📑 Maybe there are better criteria but I didn't want to overwhelm the team with a bunch of trivial ideas of how to choose the best JS framework, and we had to start with something as soon as possible. Also, my team was really worried about 2 hidden criteria: 1) Experience among the team member in any JS framework to be adopted. We were going to face new concepts, paradigms, technologies, therefore we wanted someone who could guide us during the process which is normal when you're facing new...

Material Design guidelines,The Lighthouse

Image
Probably, you have been hearing about Material Design for a while and yes it has been with us since 2014. Also,  you have seen it in almost all the Google Apps on your phone and desktop. But... what really is Material Design and why should you take advantage of its guidelines ? Well, in a nutshell, Material Design is the way Google describes the best practices of how your object and everything on your app should look and feel . This whole thing about Material Design comes after years of study of how users react to the different interfaces in different apps. Now, the real question is, what are the advantages of reading the Material Design guidelines ? Sometimes frontend developers and UX/UI designers meet the problem of how an app should look like on some point of the user interface development and some questions that come to mind  are: Should be this button here?  Is this notification in the right place? What can I show when I perform...

.NET Core handling Client-Side Routes

Image
If you are using any client-side framework like  Vue ,  Angular ,  React   and so, you are probably doing client-side routing which is letting the browser handles the routes E.g.  myapp.com/about , myapp.com/account/user etc... By default, the server only recognizes the root (/) and if you try to refresh the page (f5) or  enter directly the  URL  myapp.com/about   you will get 404 ERROR because you are sending an HTTP request to the server in the route  /about,   but your server doesn't handle routes different from (/). To solve this problem I found a really nice approach  which is a  simple fallback handler in the  Startup.cs of our .NET Core app:  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { ....Your configuration app.UseMvc(routes => { routes.MapRoute( ...

Improve your skills as developer with Code Katas

Image
Maybe, the first thing that comes to your mind when you hear the word "KATA" is a movie of Bruce Lee or maybe, the movie Kung Fu Panda  😛 . According to Wikipedia Kata is:  "Japanese word, are detailed choreographed patterns of movements practiced either solo or in pairs. The term form is used for the corresponding concept in non-Japanese martial arts in general." In other words, a set of movements very well synchronized which simulates a fight in real life, and the more you practice those movements, the better you become at fighting. But....we are going to talk about Code Kata ,  instead of practicing how to kick and throw punches, we are going to practice by writing some beautiful code. The first time I heard the term "Code Kata" was in the book The Clean Coder by Robert C. Martin, but the original term was credited by Dave Thomas in his book The Pragmatic Programmer.I recommend them both in my post Books you must read as a develope...

Web.config no longer exists in .NET Core

Image
I thought to write a post about my journey making projects with .NET Core but that will be a long post and maybe nobody will read it; instead, I will make a series of posts with some topics I found interesting to talk about. Many of us come from ASP.NET 4 and old versions, we used to work with Web.config in our web projects, a file to place our settings in XML format, but it no longer exists in .NET Core (or at least in our Solution Explorer). In .NET  Core we use appsettings.json to place our settings in JSON format. Let's see how this works by getting our hands dirty: 1) Create a .NET Core Web Application project: You will see a bunch of files generated from the template in the Solution Explorer. appsettings.json is meant to replace settings previously located in Web.config . To catch these configurations in the project, the Startup.cs file has the following lines: As you can see the appsettings.json file is added to the ConfigurationBuil...

Books you must read as a Developer

Image
The title says "Must" but in fact, this is my recommendation for you as a developer. The following books changed my vision and the way I work, this took me from having spaghetti code to a more structured and easier to maintain code base.  Also, helped me to improve my way of thinking in front of certain circumstances . Let's start: The Clean Coder by Robert Martin  Before I talk to you about the book itself, let me explain to you shortly who is the author: Robert Martin a.k.a. Uncle Bob has been writing code since 1970, he is one of the writers of the Agile Manifesto which defines better ways to do the whole development cycle. He is one of the most influential authors in OO programming. The book "The Clean Coder" talks from the perspective of his experience, as I said before he has been coding since the 70's,  a lot of time on the keyboard as you can imagine. The main point of this book is not to show you how to write good code per se, but how to...

Logging from ASP.NET Core with Elmah.io

Image
Log and log often ~ Nobody said that. There's a quote that says "You can't improve what you can't measure". Logging events in web apps is one of those things developers tend to underestimate. In this tutorial, I will explain shortly how to implement  Elmah in ASP.NET Core for logging errors, important info, warnings, or any other kind of level.... and send it to the Elmah.io cloud service. You are maybe wondering, why Elmah.io? there are others Third-party logging providers, but I chose this for 4 main reasons: * Vast documentation. * Public and private support of the product itself. * Cool user interface. * Cost (a freemium pricing model)   free plan discontinued :( First step: get everything ready with an Elmah.io account, go directly to their website and sing up. Once you are registered, sing in --> Dashboard --> click on the gear symbol of the organization  --> API Keys. Now create your API or use the default one: Second Step: To save y...

Back to the game

Image
Yeap! I’m back and this is my new blog where I plan to publish at least twice a month. I'll try to write about software development, useful tools, tips, share some experiences and tutorials, I do really like tutorials 😀 . About me Ok, I will copy-paste that from my personal website : I am a software developer who primarily works with Web Applications based on ASP.NET framework, I’m currently playing with ASP.NET Core. I have been involved in many tech projects, in the field of business, government, and startups, always working on both the back-end and the front-end. I consider myself a person with hunger for knowledge and always looking for new ideas to improve what the market has to offer. Why am I blogging again? Back in 2008, I met Ubuntu while I was taking a Cisco course, I fell in love with it and after one year I started a blog with some friends about Linux and everything related. I was blogging for about 4 years, but as an effect of the market in m...