Saturday, September 08, 2012

My ASP.NET MVC Architecture(Database Layer,AutoMapper) - 6



CustomerDatabase




CustomerDataAccess





My ASP.NET MVC Architecture (Service Layer, Orchestrator) - 5



Customer Service

























IService














CustomerOrchestrator




StructureMapHelper
 
 

My ASP.Net MVC Architecture(Controller,Model) - 4



Controller uses StructureMap to get Service  Layer to get list of customers.

This decouples the Service

CustomerController

CustomerController 





















ICustomer

ICustomer 









Customer


My ASP.NET MVC Architecture (View ) - 3

Global.asax.cs








CustomerList.cshtml


My ASP.NET MVC Architecture (Main Features) - 3



Salient Features of ASP.NET MVC Architecture

1. follows Layered Architecture
2. follows multi-tiered Architecture.
3. follows Plug-in Architecture with the help of DI/IOC Container (Using StructureMap)
4. using ORM(Entity Framework) in Data Access Layer.
5. ORM is lightly coupled to Architecture with the help of  DI/IOC Container(StructureMap) and AutoMapper Framework(Converts  EntityFramework Classes to Domain Classes)
6. Encourages Domain Driven Design, Object-Oriented Programming and  Design, Design Patterns.
7. Follows Service-Oriented Design (Ready to be deployed across multiple Nodes)
8. Geared towards TDD and BDD


My ASP.NET MVC Architecture (My Solution View) - 2


This is how my solution looks like


Sunday, August 05, 2012

Time Management Techniques

Pomodoro  Technique  (http://www.pomodorotechnique.com/)
   - Plan your tasks for day.
   - Set the Timer to 25 minutes
   - Take a 5 minutes break
   - After 4 Pomodoro's take 30 minutes Break



80/20 Principle:
   Use the principle to prioritize the work

GTD (Getting Things Done)
   Use these techniques to  handle interruptions


First things first
    User these principle to prioritize the work .


Sunday, July 15, 2012

Non-Technical books that every technical person should read


Must Read
1.   The Seven Habits of Highly Effective People - By Stephen Covey
2.   8th habit: from Effective to greatness - By Stephen Covey
3.  Getting Things Done - The Art of Stress-Free Productivity - By David Allen
4.  The Now habit - A Strategic Program for Overcoming Procrastination and Enjoying Guilt-Free Play
5.  Greatest Salesman in the world - By Og Mandino
6.  Think and grow Rich
7. Crucial Conversations: Tools for Talking When Stakes Are High

Good Read
1. 4 hour work week - By Timothy Ferriss
2.  The 4-hour body - By Timothy Ferriss
3. The 80/20 Principle: The Secret to Achieving More with Less - By Richard Koch
4. Kiss that Frog
5. Never Eat Alone: And Other Secrets to Success, One Relationship at a Time

Sunday, July 08, 2012

What is new in Visual Studio 2012 Unit Tests.


What is new in Visual Studio 2012 Unit Tests
1. Can search a unit test from IDE
2. The new Fake environment let you test anything in isolation, even when it has external dependencies.
Stubs:- Concrete Implementations of interfaces or abstract classes that you can pass in to your system-under-test to isolate it from real implementations
Shims:- generated classes that enable you to intercept and replace calls to existing classes, even those from the .NET BCL.
They are evil.
Use them and then refactor your code to remove them.
Better code coverage analysis

Sunday, May 06, 2012

Books that I am reading

1. Think Stats
http://www.amazon.com/Think-Stats-Allen-Downey-B/dp/1449307116
2. Programming Collective Intelligence
http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325/ref=pd_sim_b_4
3.  Complete Idiots Guide to Statistics

http://www.amazon.com/Complete-Idiots-Guide-Statistics-Edition/dp/1592576346/ref=pd_sim_b_1

Arduino Useful Links

Arduino Home Page
http://www.arduino.cc/

Arduino  is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists,designers,hobbyists and anyone interested in creating interactive objects or environments.

Arduino can sense the environment by receiving input from variety of sensors and can affect its surroundings by controlling lights, motors and other actuators.

The micro controller on the board is programmed  using the Arduino programming language (based on Wiring) and the Arduino development environment(based on Processing).

Designed to make the process of electronics in multidisciplinary projects more accessible.

Audrino micro controller is pre-programmed with boot loader that simplifies uploading of programs to the on-chip flash memory compared with other devices that typically need an external programmer.

Making Thing See
3D Vision with Kinect, Processing , Arduino and MakerBot
http://shop.oreilly.com/product/0636920020684.do
provides the technical and conceptual information  you need to build cool application with Microsoft's Kinect, the amazing motion-sensing device that enables computers to see.
How to create gestural interfaces for software , use motion capture for easy 3D character animation, 3D scanning for custom fabrication and many other applications.

1. Create Kinect applications on Mac OS X,Windows or Linux
2. Track people with pose detection and skeletonization  and use blob tracking to detect objects
3. Analyze and manipulate point clouds
4. Make models for design and fabrication, using 3D scanning technology
5. Make MakeBot, RepRap , or Shapeways to print 3D objects
6.Delve into motion tracking for animation and games
7. Build a simple robot arm that can imitate your arm movements.
8. Discover how skilled  artists have used Kinect to build fascinating projects



Programming Interactivity, 2nd Edition
A Designer's Guide to processing , Arduino and openFrameworks.

You will explore several themes in interactive art and design - including 3D graphics , sound, physical interaction, computer vision and geolocation - and learn the basic programming and electronics concepts that you need to implement them.
1.Learn interaction design from leading artists and designers.
2. Let users provide input throgh buttons,dials and other physical controls.
3. Produce graphics and animation, including 3D images with OpenGL
4. Use sounds to interact with users by providing feedback , input or an element they can control.
5. Work with motors , servos and appliances to provide physical feedback.
6. Turn a user's gesture and movements into meaningful inputs, using open CV

http://pragprog.com/book/mrhome/programming-your-home
This books suggests some projects to automate your home
1.Water Level notifier
2. Electric Guard Dog ( System barks when detects intruder using IR rays)
3. Tweeting Bird Feeder
4. Package Delivery Detector
5. Web Enabled Light switch
6. Curtain Automation
7.Android door lock
8. Giving your home a voice


Useful Tips from the book:
1. Start small
2. Search Youtube with keywords like audrino, home and automation
3. Ask an engineer. Adafruit,Sparkfun and Element14 have experienced engineers ready to help in forums.
4. Be safe. While most home automation projects don't call upon radical amounts of electrical current  to operate ,electricity can be very dangerous if not handled with respect and understanding the risks. When  in doubt call upon the expertise of an experienced electrician before manipulating anything having to do with home electric wiring.
 5. Have fun

Arduino At RadioShack

Arduino Boards
Arduino UNO connects to the computer with a standard USB cable and contains the software capabilities you need to program and use the board. Capabilities can be extended with a variety of custom shields that highlight specific features.
MicoController: ATmega320p Memory:32KB Digital I/O: 14 Analog Inputs:6

Arduino Mega has similar functionality as the UNO but with eight times the memory. It provides greater extensibility for more complex interactive projects.
MicroController:ATmega2580 Memory:256KB Digital I/O:54 Analog Inputs:16

Arduino ADK can be used to develop projects or accessories specifically for Android mobile phones and tablets using Google ADK2 . Implements a USB host interface that can be used to communicated with large number of USB devices.
Microcontroller:ATmega2560 Memory:256KB Digital IO:54 Analog Inputs:16

Here are some Shields that RadioShack is selling
1. Make MakerShield ProtoTyping Kit
2. Seeed Relay Shield;- smart module with four mechanical relays
3. Arduino SD shield :- for a standard SD card
4. Arduino Motor Shield :-control DC motors and read encoders with Arduino’s Motor Shield
5. Seeed  Bluetooth Shield
6. Arduino Ethernet Shield w/o PoE Module

here are some Sensors that RadioShack is selling
1. Parallax Ping Sensor: measures distance using sonar.
2. Parallax 27800 2-Axis Joystick – add analog input to your next project
3. Parallax PIR Sensor detects motion up to 20 ft.
4.  Parallax 4-6VDC Standard Servo:- the general purpose servo motor holds any position between 0-180 degree and is ideal for robotics.
5. Parallax 27801 5-Position Switch
6. Parallax 29133 –RT 3-Axis Compass Module
7. Parallax 27911-RT 3 Axis Gryoscope Module
8. Parallax 32440-RT XBee Wireless Pack
9. Parallax 28500 –RT PMB – 648 GPS SiRF Internal Antenna.
10. RadioShack Mermsic 2125 Dual-Axis Accelerometer

Useful Links
http://bildr.org/