Browsed by
Category: Software Engineering

Fastest way to create instance of a Type in Runtime C#

Fastest way to create instance of a Type in Runtime C#

When working with refactoring and loading and creating instances of types in run time using c# the important factor you should take care of is the performance and time needed to create this instance. we always need to create objects of a type and we should use the method that will not take too much time to create this object. In this thread, I am going to explain the most famous ways to do this and we will see the…

Read More Read More

Difference between static class and singleton pattern?

Difference between static class and singleton pattern?

Static Class:- You cannot create the instance of static class. Loaded automatically by the .NET Framework common language runtime (CLR) when the program or namespace containing the class is loaded. Static Class cannot have constructor. We cannot pass the static class to method. We cannot inherit Static class to another Static class in C#. A class having all static methods. Better performance (static methods are bonded on compile time) static objects are stored in stack. we can not clone the static…

Read More Read More

C# Plugin Manager

C# Plugin Manager

Plugins and modules are widely used in almost any type of application. They enhance them with additional features. Beside adding features, plugins have the big advantage, that they separate code in a very clean and testable way. Even hundreds of plugins can be managed without problems, as their functionality is encapsuled in a single place. This tutorial will explain you, how to implement a C# plugin- and module application-architecure, which is quite simple, clean and easy to maintain! Differences between…

Read More Read More

Learn how to design large-scale systems

Learn how to design large-scale systems

The System Design Primer Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.https://github.com/donnemartin/system-design-primer6,882 forks.50,523 stars.60 open issues.Recent commits: Update Scalability for Dummies link (#224), Donne Martin Resolve #214: Add reference links to message queues section (#218), Donne Martin Update README intro (#216), GitHub Update Cassandra architecture links (#213), Donne Martin zh-Hans: Update translation (#209), Donne Martin

These 5 “clean code” tips will dramatically improve your productivity

These 5 “clean code” tips will dramatically improve your productivity

Most people who code naturally know what quality code should look or feel like. It should be very easy to read and understand quickly, there shouldn’t be any major faults, edge cases should be handled, and it should be “self documenting”. Still, many people miss the mark when trying (hopefully) to write quality code. The cause of the mistakes are understandable in many cases. It can be challenging to predict how people will interpret your code, whether they will find it easy…

Read More Read More

Dynamic Validator

Dynamic Validator

Hello Again, In this tutorial I am using dependency injection to add rules for any class and use these rules later in validation process. using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace DynamicValidator { class Program { static void Main(string[] args) { Emp e1 = new Emp(); e1.id = 123; bool vv = e1.validate(); Console.WriteLine(“Validate: ” + vv.ToString()); e1.name = “Ahmed”; vv = e1.validate(); Console.WriteLine(“Validate: ” + vv.ToString()); e1.email = “[email protected]”; vv = e1.validate(); Console.WriteLine(“Validate: ” + vv.ToString()); Console.ReadKey(); } }…

Read More Read More

Dynamic Workflow

Dynamic Workflow

I tried to implement Dynamic Workflow and how we can create dynamic workflow functions and execute it in sequence, I used Inversion of control to achieve this . here is the idea code: using System; using System.Collections.Generic; namespace a1 { class Program { static void Main(string[] args) { WorkFlow wf = new WorkFlow(); wf._worklist.AddLast(new CreateEmpList()); wf._worklist.AddLast(new CreateEmpList()); wf._worklist.AddLast(new PrintEmpList()); wf._worklist.AddLast(new CreateEmpList()); wf._worklist.AddLast(new CreateEmpList()); wf._worklist.AddLast(new PrintEmpList()); wf.execute(); Console.ReadKey(); } } public interface IFunction { void execute(); } public interface IValidator {…

Read More Read More