August 6, 2017

Node,js

What is Node.js?
- Node.js enables JavaScript to be used for server-side scripting
- It has an event-driven architecture capable of asynchronous I/O
- It contains a built-in library to allow applications to act as a Web server without software such as Apache HTTP Server or IIS
- It is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
- It contains 2 type of modules
- Built in module
- Custom module


Where should we use it? 
It became the best choice in Real Time web

- Node.js works on a non-blocking I/O model that makes it clean and usable, ideal for the data-intensive real-time applications that have to perform in varied environments.
- It is useful for Real time web application like chat, video and audio streaming, uploading files, browser games etc.
-It can Insert, Delete, Select, Update a record in database.

How to implement in .Net project
- install .Node.js setup from site
-Install node.js template for visual studio but we can use other IDE because it uses javascript lang only



August 5, 2017

Software design concepts


Software design Principle
  • Should have Domain and software knowledge
  • Give more time to rewrite the design of software
  • Take the time to review design
  • Keep the code simple. Simple help you to solve critical problem
  • Make small method
  • Single level of abstraction - 
  • YAGNI - You aren't gonna need it (or you don't have much idea about it) wait to implement it later (cost of implementation will be less if we postponed) 
  • High Cohesive - Like things stay together (indirectly one responsibility)
  • Low coupling - Keep less dependency between the class
  • DRY - Don't repeat the code
  • Single Responsibility Principle - Give only one responsibility to single object
  • Open Closed Principle - Open for extension but close for modification
  • Liskov Substitution Principle - Derived class must completely substitutable for their base types
  • Interface Segregation Principle - Clients should not be forced to depend upon interfaces that they do not use.
  • Dependency Inversion Principle - removing direct dependencies between classes.  
  • If we can't name a variable or function properly it may be sign..we have not yet understood its true purpose.
  • Modularity -  dividing the software into uniquely named and addressable components
  • Understand design pattern

https://msdn.microsoft.com/en-us/library/ee658098.aspx

http://www.oodesign.com/

https://code.msdn.microsoft.com/windowsapps/OOPS-Principles-SOLID-7a4e69bf

http://ecomputernotes.com/software-engineering/techniques-for-maintenance


Software Architecture and Design
http://msdn.microsoft.com/en-us/library/ee658093.aspx


Design Fundamentals
http://msdn.microsoft.com/en-us/library/ee658116.aspx

MSDN Library
http://msdn.microsoft.com/en-us/library/ms123401.aspx

Pattern and Practice
http://msdn.microsoft.com/en-us/library/ff921345.aspx