• Program ⇒ set of instructions.

  • There is Three types of programming:
    1. Linear (Sequential) programming ⇒ Block of code excuted line by line.

      • Disadvantages ⇒ لما الكود يعدي حد معين بيكون صعب في التعديل واصلاح الاخطاء وبياخد وقت ومجهود

        linear.png

    2. Structural programming ⇒ Group of building blocks (functions)

      • Disadvantages ⇒ لما الفنكشنز تكتر والكود يكبر بتكون نفس مشكلة السيكوينشيال

        structure .png

    3. Object-Oriented programming ⇒ Blocks of data and methods

      oop.png


  • C ⇒ C++ ⇒ C#
    • C ⇒ Structured programming language.
    • C++ ⇒ OOP Language.
    • C# ⇒ OOP Language (support cross platform).

  • C++ Compilation (Native Code Compilation) ⇒
    • To excute the C++ file the cpp must convert to exe or dll.

    • Excution is done by a Compiler that convert the source code to native (machine) code.

    • file.cpp => compiler (gcc.exe) => file.exe (file.dll)

    • This arrangement is platform dependent.

      cpp compiler.png


  • Platform ⇒ Hardware + Operating System.
    • Ex ⇒ Win - Linux/Unix - Mac - Mobile - Web

  • any Native Code is Platform dependent.

  • Pre 2002 (Pre .Net) ⇒ The GUI of Win was generated by
    • MFCs (Microsoft Framework Classes)
    • Visual C++, Visual Basic and Delphi.

  • There was Two concepts the community wanted to achieve:
    1. Cross Platform ⇒ كود واحد بيشتغل علي كل البلاتفورمز
    2. Cross Language ⇒ عاوز اخد جزء من كود بلغة استعمله في كود بلغة تانية من غير ما اكتب من جديد (عندي كلاس في فيجوال بيزك عاوز استعمل منه اوبجكت في سي ++)

  • .NET versions names:
    • .Net framework 1.0 ⇒ released 2002 (cross language & platform).
    • .Net framework 4.8 ⇒ released 2019.
    • .Net Core 1.0 ⇒ released in 2014 shipped in 2016.
    • .Net Core 3.x ⇒ released in 2019.
    • .Net 5 ⇒ released 2020 (merging between .Net framework and Core).
    • .Net 6.0 ⇒ Mono Framework + .Net 5.0 (released in 2021).

  • Languages appeared with .Net:
    1. Visual Basic .Net (VB .Net).
    2. C# (Pure OOP Language).
    3. Visual C++ .Net.
    4. F# (Functional programming language).
    5. J# (Java Inspired) (Removed).