Tuesday, 10 January 2023

What is cloud computing?

Cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale.

here are several examples of cloud computing applications -

1. Cloud service would be streaming platforms for audio or video, where the actual media files are stored remotely.

2. Data storage platforms like Google Drive, Dropbox, OneDrive

Saturday, 7 August 2021

Can an abstract class have a constructor ?

Yes, an abstract class can have a constructor. 

In general, a class constructor is used to initialize fields. Along the same lines, an abstract class constructor is used to initialize fields of the abstract class.

An abstract class constructor can also be used to execute code that is relevant for every child class. This prevents duplicate code.


You can not create an instance of an abstract class, so what is the use of a constructor in an abstract class?

You can not create an instance of the abstract class, we can create instances of the classes that are derived from the abstract class.

So, when an instance of the derived class is created, the parent abstract class constructor is automatically called.

Note: Abstract class cant be directly instantiated, The abstract class constructors get executed thru a derived class. So, it is a good practice to use a protected modifier with an abstract class constructor,using public doesn't make sense.



Thursday, 5 August 2021

.NET Framework vs .Net Core 3.1

 

Sr. No. Comparison .Net Framework .Net Core 3.1
1 Cross Platforms .Net framework runs only on windows .Net core is cross-platform, it operates on Windows, Linux, and Mac operating systems
2PerformanceSlow Better
3 Application supported the .NET framework is for developing desktop applications, web applications, and web services, WPF, ASP.NET MVC MVC core 3.x
4 WCF/ WPF/WWFYes No
5 Desktop Based WPF, Winforms. Nothing for desktop
6 Packaging Packaged as big framework Delivered via modularity using Nuget
7 Microservice Support NoYes
8 CLI ToolsMore IDE Based Full CLI command supported
9 Mobile Compatibility  No direct support with .Net standard compatible with Xamarin
9 Cloud  Runs only on windows Yes

Wednesday, 4 August 2021

What is the differnece between Abstract class & Interface?

In an abstract class, we can create the functionality and that needs to be implemented by the derived class. The interface allows us to define the functionality or functions but cannot implement that. The derived class extends the interface and implements those functions.

Abstract ClassInterface
Abstract classes are inherited.Interfaces are Implemented.
It is a half-defined parent class.It is a contract.
Share some common logic in child classesPlanning Abstraction.
It contains both declaration and definition parts.It contains only a declaration part.
It contains both declaration and definition parts.It contains only a declaration part.
Multiple inheritance is not achieved by abstract class.Multiple inheritance is achieved by interface.
It contain constructor.It does not contain constructor.
It can contain static members.It does not contain static members.
It can contain different types of access modifiers like public, private, protected etc.It only contains public access modifier because everything in the interface is public.
The performance of an abstract class is fast.The performance of interface is slow because it requires time to search actual method in the corresponding class.
It is used to implement the core identity of class.It is used to implement peripheral abilities of class.
A class can only use one abstract class.A class can use multiple interface.
If many implementations are of the same kind and use common behavior, then it is superior to use abstract class.If many implementations only share methods, then it is superior to use Interface.
Abstract class can contain methods, fields, constants, etc.Interface can only contain methods .
It can be fully, partially or not implemented.
It should be fully implemented.
Sr. No.KeyAbstract ClassInterface
1DefinitionIn terms of standard definition, an Abstract class is, conceptually, a class that cannot be instantiated and is usually implemented as a class that has one or more pure virtual (abstract) functions.On other hand an Interface is a description of what member functions must a class, which inherits this interface, implement. In other words, an interface describes behaviour of the class.
2ImplementationAs like of other general class design in C# Abstract class also have its own implementation along with its declaration.On other hand an Interface can only have a signature, not the implementation. While its implementation is being provided by the class which implements it.
3InheritanceAs per specification in C# a class can extends only one other class hence multiple inheritance is not achieved by abstract class.On other hand in case of Interface a class can implements multiple interfaces and hence multiple inheritance is achieved by interface.
4ConstructorLike other classes in C# for instantiation abstract class also have constructor which provide an instance of abstract class to access its non-static methods.On other hand Interface do not have constructor so we can't instantiate an interface directly although its method could get accessed by creating instance of class which implementing it.
5ModifiersAs abstract class is most like of other ordinary class in C# so it can contain different types of access modifiers like public, private, protected etc.On other hand as Interface needs to be get implemented in order to provide its methods implementation by other class so can only contains public access modifier.
6PerformanceAs abstract class have its method as well as their implementations also for its abstract methods implementation it have reference for its implementing class so performance is comparatively faster as compare to that of Interface.On other hand the performance of interface is slow because it requires time to search actual method in the corresponding class.
Watch video to clear the concept-

What is AJAX?

 Asynchronous JavaScript and XML (AJAX) is a development technique used to create interactive web applications or rich internet applications. AJAX uses a number of existing technologies together, including: XHTML, CSS, JavaScript, Document Object Model, XML, XSLT, and the XMLHttpRequest object.


With AJAX, web applications can retrieve data from the server asynchronously, in the background, without reloading the entire browser page. The use of AJAX has led to an increase in interactive animation on web pages.

Advantages
  • Reduces the traffic travels between the client and the server. 
  • No cross browser pain.
  • Better interactivity and responsiveness.
  • With AJAX, several multi purpose applications and features can be handled using a single web page(SPA).
  • API's are good because those work with HTTP method and JavaScrtipt.
Disadvantages
  • Search engines like Google would not be able to index an AJAX application. 
  • It is totally built-in JavaScript code. If any user disables JS in the browser, it won't work.
  • The server information can not be accessed within AJAX.
  • Security is less in AJAX applications as all the files are downloaded at client side.
  • The data of all requests is URL-encoded, which increases the size of the request.

For more details- 

Wednesday, 15 July 2020

Basics of .Net Framework

.Net Framework
  • The .Net framework is a software development platform developed by Microsoft.
  • The .Net framework was meant to create application, which would run on the windows platform.
  • The first version of the .net framework was released in the year 2002.

C# Version History  

 C# Framework  Visual studio     Features                                                                               
 1.0 1.0/1.1               2002    
  1. First Release of C#
 2.0 2.0 2005
  1. Generics
  2. Partial Types
  3. Anonymous method
  4. Null-able types
  5. Iterators
  6. Covariance & Contra-variance 
 3.0 3.0/3.5 2008
  1.  Auto Implemented properties
  2. Anonymous types
  3. Query Expression
  4. Expressions tree
  5. Lambda expression
  6. Extension method  
 4.0 4.0 2010
  1. Dynamic binding
  2. Named/Optional Argument
  3. Generic Covariant & Contra-variant
  4. Embedded Inter-op types 
 5.0 4.5 2012/1013
  1. Asynchronous 
  2. Caller info attributes 
 6.0 4.6 2013/2015
  1. Static imports 
  2. Exceptions filters
  3. Property initializes
  4. Expression bodied members
  5. Null propagator
  6. String Interpolation
  7. Name of operator
  8. Dictionary initializer 
 7.0 .Net Core 2017
  1. Improved performance & productivity
  2. Azure support
  3. AI Support
  4. Game development
  5. Cross platform 
  6. Mobile app development 
  7. Window app development 


Application Execution



The application execution consist 2 steps:
  • Compilation - Source code to IL.
  • JIT Compilation - IL to native code.
Common language runtime (CLR) -
  • The heart of .Net frame work is a runtime environment called the CLR. 
  • The CLR manages the life cycle and executed .net application. 
  • It converts a MSIL code into the native code, 
  • It is the execution engine for .net framework application. 
  • It is a virtual machine components that manages the execution.
  • Programmers write code in any languages VB.Net, C#, J# then they compile their programs into in intermediate language in a portable execution file (PE), that can be managed & then CLR converts it into native/machine code.
Component of .Net CLR
  1. Class Loader- used to load all classes.
  2. JIT 
  3. Garbage collector - It manages the menory, collect all unused object and deallocate them to reduce memory.
  4. Exception Handler- It handels exception at runtime.
  5. Thread support - It supports multi threading at our application
  6. Interoperability - Suppose if you had an application built in an older version, say 2.0 and if you tried to run the same application on a machine which had the higher version of the .net framework, say 4.5, the application would still work. this is because with every release, microsoft ensure that older framework version get with the latest version.
  7. Portability- Application built on .net can be made to work on any windows platform. 
Benefits of .Net CLR
  1. Performance improvments
  2. The ability to use components developed in other languages.
  3. Support for structured exceptions handling.
  4. SUpports for custom attributes.
  5. Garbage collection.
  6. Support for explicit free threading that allows creation of multithreading application.

Tuesday, 23 June 2020

Design Patterns in .NET

There are three types of  Design Pattern : 

1. Creational - This type deals with the object creation and initialization. 
2. Structural  - This type deals with the class & object composition.
3. Behavioral - This type deals with the communication between class & object.

The four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides are collectively introduced Gang of Four Design Patterns in Software development. In 1994, they published a book (Design Patterns: Elements of Reusable Object-Oriented Software) for explaining the concept of Design Patterns.

The 23 Design patterns are defined by the Gang of Four programmers, These 23 patterns are divided into three groups:

Creational Design Patterns: 
  1. Factory Method : Create instances of derived classes
  2. Abstract Factory : Create instances of several classes belonging to different families
  3. Builder : Separates an object construction from its representation
  4. Prototype : Create a duplicate object or clone of the object
  5. Singleton : Ensures that a class can has only one instance



Structural Design Patterns:
  1. Adapter : Match interfaces of different classes
  2. Bridge : Separates an object’s abstraction from its implementation
  3. Composite : A tree structure of simple and composite objects
  4. Decorator : Add responsibilities to objects dynamically
  5. Façade : A single class that represents an entire complex system
  6. Flyweight : Minimize memory usage by sharing as much data as possible with similar objects
  7. Proxy : Provides a surrogate object, which references to other object


Bhavioural Design Patterns:
  1. Chain of Responsibility: Passes a request among a list or chain of objects.
  2. Command: Wraps a request under an object as a command and passed to invoker object.
  3. Interpreter: Implements an expression interface to interpret a particular context.
  4. Iterator: Provides a way to access the elements of a collection object in sequential manner without knowing its underlying structure.
  5. Mediator: Allows multiple objects to communicate with each other’s without knowing each other’s structure.
  6. Memento: Capture the current state of an object and store it in such a manner that it can be restored at a later time without breaking the rules of encapsulation.
  7. Observer: Allows an object (subject) to publish changes to its state and other objects (observer) that depend upon that object are automatically notified of any changes to the subject's state.
  8. State: Alters the behavior of an object when it’s internal state changes.
  9. Strategy: Allows a client to choose an algorithm from a family of algorithms at run-time and gives it a simple way to access it.
  10. Visitor: Creates and performs new operations onto a set of objects without changing the object structure or classes.
  11. Template Method: Defines the basic steps of an algorithm and allow the implementation of the individual steps to be changed.

Source- 
https://www.dotnettricks.com/learn/designpatterns/gang-of-four-gof-design-patterns-in-net

Youtube -Kudvenkat Sir

https://www.youtube.com/playlist?list=PL6n9fhu94yhUbctIoxoVTrklN3LMwTCmd






Thursday, 6 February 2020

What is SELF JOIN and when would you use it?

A self join is simply when you join a table with itself. There is no SELF JOIN keyword, you just write an ordinary join where both tables involved in the join are the same table. One thing to notice is that when you are self joining it is necessary to use an alias for the table otherwise the table name would be ambiguous.
A self-join can be an inner join or an outer join. A table is joined to itself based upon a field or combination of fields that have duplicate data in different records. The data-type of the inter-related columns must be of the same type or needs to cast them in same type.
It is useful when you want to correlate pairs of rows from the same table, for example a parent - child relationship.
Some practical uses of SELF JOIN are to obtain running counts and totals, identify which data under a particular column satisfy a certain set of conditions, and generate another table by extracting data from the original table. 

select * FROM Table t1, Table t2 WHERE t1.Id = t2.ID

Example: Using SELF JOIN to find the products supplied by more than one vendor.

Because this query involves a join of the ProductVendor table with itself, two different aliases (pv1 and pv2) are used in the FROM clause. These aliases are used to qualify the column names in the rest of the query.

Syntax:
SELECT DISTINCT pv1.ProductID, pv1.VendorID
FROM Purchasing.ProductVendor pv1
INNER JOIN Purchasing.ProductVendor pv2
ON pv1.ProductID = pv2.ProductID
AND pv1.VendorID <> pv2.VendorID
ORDER BY pv1.ProductID

How to improve applications performance which is hosted in cloud ?

Improving the performance of an application hosted in Microsoft Azure involves a combination of optimizing your application code, leveraging...