Really happy I had this class to be honest. Learned a lot about ASP.NET (granted, that should be the case considering this is a class towards my degree) and how it to use C# to code the page functionality. The format of the class was nice. Each week had a lab that culminated in the final course project due in the final week. Have to admit, it was fairly easy and I can see setting up my own multi-page site fairly quickly. Granted, I’m restricted to Windows based on what I learned if I were to build a site. Haven’t dug into how .NET Core works with ASP.NET and if/how it would be possible to deploy an ASP.NET site on a Linux system. At least I understand how ASP.NET works now.
Now I just need to review the website I administer at work built using ASP.NET. Biggest hurdle with that though is the fact it was built using Visual Basic about 10 years ago. Not a fan of Visual Basic and haven’t played with it in over 10 years.
Side note, while I was taking the class, I came to find out Microsoft also released Blazor WebAssembly 3.2.0. While I’m thinking of a side project to setup an ASP.NET site, I’m now thinking about digging into Blazor first. Not sure if I’ll completely deploy it though based on how easily I can deploy it for a minimal cost. Thinking my first site will be a static site written in HTML/CSS hosted on S3. No cost unless I go over 5GB, or traffic spikes enough. So many options.
Back to expanding my knowledge with a new class at DeVry. This time, developing an ASP.Net website with C#. Looking forward to this as this will directly help me with an ASP.Net site that I took over as admin last year. Fortunately, I still have a few developers who are familiar with the code; but I can’t say it has been easy trying to figure it out only having experience setting up basic websites just with HTML. Granted, the site at work uses Visual Basic; but the the underlying idea is the same. Main page file that defines the page, and and an underlying file that controls the more advanced programming logic.
The first few chapters I had to read helped out immensely as now I understand how ASPX files actually work with the two files. That is what has honestly been throwing me off this whole time with the website at work. I would see the top ASPX file and kept wondering how the hell it actually worked. Now I know. Granted, I should have been able to figure this out as it isn’t that difficult, I just never had time at work since I still had two developers and had other tasks needing to be completed. Now I can better understand how the hell it works.
Back to my class though. Got through the first week without any issue. The class is setup to have a final project that we progressively build throughout the course each weak via the lab assignments. First lab was basically to get familiar with Web Forms by creating two. One that just displayed simple text and the other to have a very basic salary calculator. Since that wasn’t to bad, I spent the rest of the time setting up an Azure DevOps project to track this course project. I’ve got each week setup as an Sprint on my Scrum board and I have a the code setup in the project repository so I can control project versioning. Struggled a bit trying to setup a lab branch tied to my Task, so I held off on branching for now. Going to give another go at setting up a dev/LabWork branch this next week so I can better familiarize myself with GIT branching.
This should be fun and I am legitimately looking forward to this.
Well, this year isn’t starting out quite like I was hoping. Between dealing with a family emergency and COVID-19, I haven’t had much time to really focus on anything. Thankfully, work is not a current concern as I can work remote.
However, I’m still trying to keep in mind my goal of learning how to use Unity through all of this. Apparently, the tech gods decided to help throw me a bit of a bone to help keep me going. Spotted what to me looked like a fairly good deal that Unity shared via a LinkedIn post. They are offering a $1000 Mega Bundle for 90% off. Includes a one year subscription to their Unity Learn Premium service ($99 by itself) and a load of assets to use in Unity.
Figured what the hell and picked it up. Now to make sure I do something with it. Offer is good until the end of March in case anyone else is interested.
Grow Your Skills Mega Bundle
While supporting a number of MS SQL servers that I took over as DBA this year, I ran into a scheduled job that handles a nightly data feed started failing. After reverse engineering exactly how this job worked, I found a specific stored procedure failing with the “String or binary data would be truncated” error.
What does this mean? Basically, the process is trying to run an insert query and is trying to insert data into a column that is not big enough. For example, say I have a column defined as type nvarchar(3) and I’m trying to insert ‘testing’ into that column. This will generate this error as ‘testing’ is 7 characters and that column is limited to 3.
Solution! I have two options, ignore the error and let SQL truncate the data; or I can find the offending data increase the size of the destination column.
Ignoring the error by adding “SET ANSI_WARNINGS OFF” to the query will get me around the error; but be warned it will truncate the data and is not recommended.
This leaves increasing the size of the destination column. However, when my source data has over 100k rows of data and my destination table has over 35 columns, that is easier said then done. I could just increase the size of every column in my destination table; but that is overkill in my case. I know there are likely more elaborate ways of going about finding the offending data; but due to time, I needed to find the offending data quick. While this query is very simple, it worked perfectly to help me find the offending data:
select top 1 COLUMN
from table t
order by len(COLUMN) desc
Just changed “COLUMN” to the name of each column of data I need to check until I found all offending data. Very simple and easy to tweak as needed. I found plenty of complex solutions; but sometimes all it takes is a simple solution.