1. What are the four tenets of an OOP language?
    Abstraction- refers to hiding the internal operations of a class from anything that consumes that class.
    Encapsulation- refers to the bundling of data and methods into a single object or class
    Inheritance- refers to the ability of one class to use properties of another class
    Polymorphism- refers to the ability to use different object types through the same interface.

  2. What is boxing and unboxing?
    Boxing is the ability to store a value type into an object.  
    Unboxing is the ability to take an object variable and convert it to a specific value type.

  3. What is a generic?
    A genericis a placeholder type. It allows the developer to use an object without immediately determining a typeset. Used primarily in collections.

  4. What is LINQ?
    LINQ(Language Integrated Query) is a methodology for querying data and objects.

  5. What is a Lambda Expression?
    A Lambda Expression is the shorthand syntax for writing LINQ statements. 

  6. What are delegates?
    Delegates allow the developer to set variables as function calls. It can be thought of as to a pointer to a function.

  7. What is an Abstract Class?
    An abstract class is a class that cannot be instantiated. Abstract classes can, however, be inherited.

  8. What is an Interface?
    An interfaceis a collection of abstract methods.

  9. What is the difference between overloading and overriding?
    Overloading - multiple functions of the same name, using different input parameters.
    Overriding - use of a subclass to override(replace) the method functionality of a main class.

    Overloading is a static binding, while overriding is a dynamic binding.

  10. What are the Access Modifiers?

  11. What is the difference between Public, Static and Void?
    Public - the object or method is available to anything able to consume it.
    Private - the object is available only to the class that contains it.
    Static- the object is globally accessible without instantiating a class. 
  12. What is a Constructor?
    A constructor is a function that has the same name as its containing class.

  13. What is Serialization?
    Serialization  is the act of turning an object into a stream of bytes. This stream can then be stored into another platform (like a file.)

    A class can be made serializable by declaring it as ISerialize.

  14. What is Deserialization?
    Deserialization is the conversion of a byte array into a set object.

  15. What's the difference between Read-Only variables and Constant variables?
    Constant variables are set once during compile time and cannot be changed. Read-Only variables are used only when setting a value at runtime.

  16. Can you override the methods in an interface?
    No. All of the interface methods are virtual, so they can only be overridden in the class that inherits them.

  17. What is the difference between a Struct and a Class?
    A Struct is a value-type variable, where a Class is a reference type.  Structs cannot be inherited, and are stored on the stack for speed of access.

  18. What is the difference between Stack and Heap memory?
    Stack memory is more structured and managed by the system.  Heap memory is managed by the application.

    Value types are allocated to the Stack.  Reference types are allocated to the Heap.

  19. What is a sealed modifier?
    A sealed modifier prevents the object from being inherited, 

  20. What is Jagged Array?
    A jagged  array is an array of arrays.

  21. What is Managed code?
    Managed Code is any code executed by the CLR. The code is 'managed' by the .NET Framework.

  22. What are the different types of classes in C#?
    Keyword: Partial Class - A 'shared' class allows its members to be used by multiple .cs files.
    Keyword: Sealed class - A class that cannot inherited. To access its members, you need to instantiate the class directly.
    Keyword: Abstract class - A class that cannot be instantiated. This class can only be inherited, and will contain at least one method.
    Keyword: Static class - A class that does not allow inheritance. Members of a static class are also static.

  23. What are the steps taken in C# code compilation?
    1. Compiling the source code to Managed Code
    2. Combining newly created code to Assemblies
    3. Loading the Common Language Runtime (CLR)
    4. Executing the assembly by the CLR

  24. What's the difference between a Virtual Method and an Abstract Method?
    Abstract Method - always has a default implementation. It can be overridden in its derived class, though not necessarily mandatory. It can be overridden using the keyword: override.
    Virtual Method - does not have an implementation, and resides in the abstract class. It is mandatory that the the derived class implements the abstract method.

  25. What are Events?
    Events are actions that generate some type of notification.
(To be continued)


So- it looks like running client-side Blazor on a 'classic' IIS site as a static page works well! Blazor is starting to become something where someone besides a true, heads-down hard-nosed developer can experiment!

I was excited about Blazor since it really opens up the world of WebAssembly to C# development.  Truth be told, JavaScript just isn't as much fun as it was back when I was learning code.

 I managed to host the default Blazor template on my own site. The initial upload content looks a bit messy with lots of tiny dlls (which surprised me a bit), but the speed of the site is respectable.

My next task is to try and access my web API to see if I can call my image stores.  I'm definitely refactoring my base website to use Blazor, since it's technically an SPA anyway.

You should give it a try here.

The extended list:

  • I have created a database to mirror the Flickr API.  I still need to create the tables to match the photo API.  Once that's done, I'll start writing the ETL process.

  • I plan to add a selector for the Gallery app.  I also need to include links in the page that will take the user back to the original Flickr image.  I also plan to add a Twitter link so a user can add the image to their feed via link.

  • I plan to look into the portability of BI Reports.

Big donuts

Welcome to my blog!!

There's nothing to see so far - just me giving it a quick tests to ensure it works the way I want it to.

I initially wanted to have the two sites working in the same space, it it turned out I was spending a bit too much time retrofitting the code across, so I simply stood up a sub domain, built it up there, and called it a day.

Now I can start working on the really fun stuff!

Some fun projects -
  • I need to work on a backup procedure for my post. I selected this particular engine because of its performance. But since I'm not actually running an enterprise setup here, I'll need to work out a process to preserve the content.

  • I've already built a base Web API for controlling my Flickr feed to this website. What I'd like to do is add a new API that will serve as an ETL manager from the Flickr API to a yet-to-be-created SQL Server database.  The goal is to create a report engine where I can search Flickr images by the available EXIF data.

  • I need to work out a method of limiting the image size when I post.  I may simply set up a selection process that accesses my Flickr feed.

  • I'll want to re-introduce my image gallery at some point. The API is up, so I need to finish building up the gallery site. This time, I'll build it using MVC 5 so it matches the rest of the site infrastructure.
I think that's enough to get started this week!