Best Development Solution For a Development Apprentice Like Myself
-
After almost 4 years as IT Director and SOLO IT guy, the time for me to dig in to development has come. I've gotten this place as upgraded and stable as I can and nothing much left but day to day issues and plenty of time for development.
I've dabbled in Visual Basic .Net for years but never, truly developed anything useful for production.
I came to my current job in March of 2011. Place was so bad, from an admin/server stance and especially on backups, which took 3 days to backup one day of data. But that's another story.
This place is made up of Excel spreadsheets, Excel spreadsheets and more Excel spreadsheets, most of them with Macros and heavy, messy VBA code. It has been a struggle enough to know what the coders meant when they wrote these things. And I've come to realize that VBA is my friend because off all off the customization options we have for our business. I don't think VBA will be going anywhere else any time soon at my workplace.
The main, business critical spreadsheets are for quoting and contracting metal building sales...it imports raw, text data from a very complicated metal building suite called MBS. It combines the data from the initial design template, provides a quote and also makes a contract...it then heads to engineering and finally drafting for production. The drafting spreadsheet handles a ton of calculations and then we export that data into a CSV for the machines to import and cut to specification...it is quite complex...and I do not plan on changing that any time soon.
But, I have a vision...since we have so much data scattered about, I have envisioned an internal customer portal, a web based app where people in the company can go, enter a customers info and locate information that is stored on these spreadsheets...obviously, I know it would be good to make at least an Access back end, if not SQL...one of these does cross references SQL...
At my disposal, I have Office 2013, Access and a SQL Server. We also have SharePoint Online. I've also completed a few Software Development Classes on MVA and I've gone through a lot of Lynda.com Excel classes that have been helpful...
I have used LightSwitch in the past but with Silverlight perhaps being a thing of the past, it was best to steer clear of it in the future.
I've had advice here and there in these forums but it is time to finally see what some may suggest the best route to go. I've decided to work on this customer portal first as a way to lean a new language (say ASP.NET or a durative) as I also learn what makes up these other spreadsheets and learn how to gather data from them and collaborate the data. Then perhaps one day in the future, work on getting off Excel, if possible, on many of these projects.
-
I'll have a lot of thoughts here so I will try to throw them at you one at a time
First one: ASP.NET isn't a language, it's a web extension to .NET which, itself, is a platform and not a language. The languages that you should consider on .NET are C# and F#. F# is super crazy advanced and awesome but until you are a full time developer I would not even look at it. So, if doing anything in the .NET or ASP.NET world, I would stick to C# exclusively. It is an excellent, powerful and easy to use language. It's Microsoft's flagship.
-
If you do end up using ASP.NET, make sure you look into MVC. This is how most modern web application development is done. No matter what tool set you use, MVC is the standard. The most common MVC toolkit out there is Rails (from Ruby on Rails fame.)
ServerFault and StackOverflow were pioneers on ASP.NET's MVC framework. It is very mature and robust now.
-
Avoid tools like Access and LightSwitch. These are "lock in" tools meant to duplicate the mistakes of the past (locking people into expensive databases, clients, etc.) When developing your own code, don't create technical debt for no reason. Use this as a chance to make things better.
-
@scottalanmiller said:
I'll have a lot of thoughts here so I will try to throw them at you one at a time
First one: ASP.NET isn't a language, it's a web extension to .NET which, itself, is a platform and not a language. The languages that you should consider on .NET are C# and F#. F# is super crazy advanced and awesome but until you are a full time developer I would not even look at it. So, if doing anything in the .NET or ASP.NET world, I would stick to C# exclusively. It is an excellent, powerful and easy to use language. It's Microsoft's flagship.
Yes, my next MVA course is C#...there is also a lot of good Channel 9 C# classes in addition to my Lynda.com...:)
-
I would, when looking at fresh (green field) development of this nature, consider very, very strongly moving to neutral tooling rather than tooling that exists only for a single platform. C# and .NET are great tools, really powerful, and Visual Studio is now free and .NET is beginning to be ported to other platforms (like Mac OSX and Linux) but it is very Microsoft-centric unnecessarily and today, it is not neutral yet.
Moving to neutral tools means cost savings and protection against future licensing changes. It means greater flexibility and less technical debt. It is protection against future changes.
Tools to heavy consider include Python + Django, Ruby on Rails, Node.js (JavaScript) and even PHP. Also avoid SQL Server and look to PostgreSQL or even MariaDB instead.
-
Ruby on Rails has really been the industry darling for a while now. Very powerful, tons of users out there, good tools available and very easy to rapidly make applications.
Although these days Node.js is getting a LOT of attention.
-
Ruby, Node, Python... all good choices.
-
Node.js is what is used to run MangoLassi. Spiceworks is built on Ruby on Rails.
-
I tend to want to put all my eggs in one basket and learn all of this at the same time...backing up, I simply have to become pretty good at VBA...got another sheet today doing funky things...I've got to study VBA arrays and get a grasp on them too as most of these sheets have a lot of arrays and a ton of loops...
-
VBA is so far removed from any other development.... it would be best to completely just consider that to be a different animal. VBA is not VB. There is no escaping VBA for Office automation, just how it is. But there is no real benefit to tying everything else that you do to that. Just going to make things horrible going forward.
-
@scottalanmiller said:
VBA is so far removed from any other development.... it would be best to completely just consider that to be a different animal. VBA is not VB. There is no escaping VBA for Office automation, just how it is. But there is no real benefit to tying everything else that you do to that. Just going to make things horrible going forward.
I hear ya...there may be no escaping VBA...and I want to absorb all the training I can on it because it will also help me better understand the mounds of data that goes into these from our Metal Building Software...
But that said, I've got C# and Ruby on Rails on my list once this is done...
-
I wouldn't work on C# and Ruby, I would just do one or the other. At least until you are pretty comfortable. Doing both will make things much harder.
-
@scottalanmiller said:
I wouldn't work on C# and Ruby, I would just do one or the other. At least until you are pretty comfortable. Doing both will make things much harder.
Right...should have said C# is next...then Ruby...may take the rest of 2015 considering even getting up at 4:30 for more study time, I still don't have much study time...
-
@garak0410 said:
@scottalanmiller said:
I wouldn't work on C# and Ruby, I would just do one or the other. At least until you are pretty comfortable. Doing both will make things much harder.
Right...should have said C# is next...then Ruby...may take the rest of 2015 considering even getting up at 4:30 for more study time, I still don't have much study time...
I meant until you are a professional developer not doing a role in IT, you should stick to just one.
-
Start here for Ruby on Rails...
-
I recommend using BitBucket and RubyMine too. BitBucket is my favourite hosted GIT repo. RubyMine is widely considered the best IDE for Ruby, although it is super powerful meaning that it takes a bit of work to get everything working properly.
-
I should mention that it is $99 for RubyMine out of your own pocket. But a great investment if you are going to be writing a lot of Ruby.
For free, I would use Atom which can be downloaded from Github.
-
@scottalanmiller said:
@garak0410 said:
@scottalanmiller said:
I wouldn't work on C# and Ruby, I would just do one or the other. At least until you are pretty comfortable. Doing both will make things much harder.
Right...should have said C# is next...then Ruby...may take the rest of 2015 considering even getting up at 4:30 for more study time, I still don't have much study time...
I meant until you are a professional developer not doing a role in IT, you should stick to just one.
Got it...
-
Oh, I wont cram it in during my VBA push, but I'd love to brush up on scripting too...:)