tag:blogger.com,1999:blog-5788408240545868462024-02-19T21:49:23.029-08:00TechnobelitiesBy subhadipghosh.com Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-578840824054586846.post-61387873837939372232023-05-29T05:24:00.002-07:002023-05-29T05:24:23.226-07:00Design Patterns<p><b> Creational Patterns:</b></p><p><u>Singleton Pattern:</u></p><p>Scenario: Ensure that only one instance of a class is created throughout the application, and provide a global access point to that instance.</p><p>Example: Database connection manager, where you want to ensure there is only one connection to the database throughout the application.</p><p><u>Factory Pattern:</u></p><p>Scenario: Delegate the responsibility of object creation to a factory class, allowing subclasses to decide which class to instantiate.</p><p>Example: Abstract factory pattern for creating different types of shapes (e.g., creating instances of Circle, Square, Triangle) based on the input provided.</p><p><u>Prototype Pattern:</u></p><p>Scenario: Create new objects by cloning existing objects, avoiding the need for explicit instantiation.</p><p>Example: Prototypical object creation in JavaScript, where you clone an existing object to create a new object with the same properties and behaviors.</p><p><u>Builder Pattern:</u></p><p>Scenario: Separate the construction of complex objects from their representation, allowing the same construction process to create different representations.</p><p>Example: Building a complex document (e.g., a report) where you have different builders for constructing the header, body, and footer sections. The same construction process can create different types of reports.</p><p><u>Abstract Factory Pattern:</u></p><p>Scenario: Provide an interface for creating families of related or dependent objects without specifying their concrete classes.</p><p>Example: Creating furniture objects (e.g., chair, table) in different styles (e.g., Victorian, Modern) using an abstract factory. The concrete factories create furniture objects that belong to a specific style.</p><p><br /></p><p><b>Structural Patterns:</b></p><p><u>Adapter Pattern:</u></p><p>Scenario: Convert the interface of a class into another interface that clients expect, enabling classes with incompatible interfaces to work together.</p><p>Example: Adapting a legacy API to a new system by creating an adapter class that translates the new system's expected interface to the one provided by the legacy API.</p><p><u>Decorator Pattern:</u></p><p>Scenario: Dynamically add additional responsibilities to an object by wrapping it with a decorator class, without modifying its underlying structure.</p><p>Example: Adding features to a text editor, such as spell checking or text formatting, by creating decorator classes that wrap the base text editor class.</p><p><u>Proxy Pattern:</u></p><p>Scenario: Provide a surrogate or placeholder object to control access to another object, allowing additional actions to be performed before or after accessing the original object.</p><p>Example: Remote proxy for accessing objects over a network, where the proxy handles network communication and forwards requests to the remote object.</p><p><u>Composite Pattern:</u></p><p>Scenario: Compose objects into tree structures to represent part-whole hierarchies. Clients can treat individual objects and compositions uniformly.</p><p>Example: Representing a file system hierarchy, where files and folders are treated uniformly as components, and a folder can contain both files and subfolders.</p><p><br /></p><p><b>Behavioral Patterns:</b></p><p><u>Observer Pattern:</u></p><p>Scenario: Establish a one-to-many dependency between objects, where changes in one object (subject) trigger updates in its dependent objects (observers).</p><p>Example: Event handling system, where multiple event listeners (observers) are registered to an event source (subject), and when an event occurs, all registered listeners are notified and updated.</p><p><u>Strategy Pattern:</u></p><p>Scenario: Define a family of algorithms, encapsulate each one, and make them interchangeable. Clients can use and switch between algorithms dynamically.</p><p>Example: Sorting algorithms, where different strategies (e.g., bubble sort, merge sort, quicksort) can be encapsulated and selected dynamically based on the specific sorting requirements.</p><p><u>Command Pattern:</u></p><p>Scenario: Encapsulate a request as an object, allowing clients to parameterize clients with queueable requests and support undoable operations.</p><p>Example: Implementing an undo/redo functionality, where commands representing user actions are encapsulated as objects, allowing the execution and reversal of those actions.</p><p><u>Iterator Pattern:</u></p><p>Scenario: Provide a way to access elements of an aggregate object sequentially without exposing its underlying representation.</p><p>Example: Iterating over elements in a collection (e.g., list, array) using an iterator object that provides methods to retrieve elements one by one, abstracting the specific structure of the collection.</p><p><u>Template Method Pattern:</u></p><p>Scenario: Define the skeleton of an algorithm in a base class, allowing subclasses to override certain steps of the algorithm without changing its structure.</p><p>Example: Defining a template for different types of reports, where a base report class defines the overall structure and common steps, while subclasses provide specific implementations for individual report sections.</p><p><u>State Pattern:</u></p><p>Scenario: Allow an object to alter its behavior when its internal state changes, by encapsulating state-specific logic into separate state objects.</p><p>Example: Implementing a vending machine, where the behavior of the machine (e.g., accepting coins, dispensing products) depends on its current state (e.g., idle, selecting product, accepting payment).</p><p><u>Chain of Responsibility Pattern:</u></p><p>Scenario: Create a chain of objects, each of which has the ability to process a request and pass it to the next object in the chain. The request is processed by the first object that can handle it.</p><p>Example: Handling requests in an application, where each handler object checks if it can process the request and either handles it or passes it to the next handler in the chain.</p><p><u>Interpreter Pattern:</u></p><p>Scenario: Define a grammar for a language and interpret sentences in the language by creating objects representing expressions in the grammar.</p><p>Example: Implementing a calculator, where mathematical expressions are parsed and evaluated using interpreter objects representing different types of expressions (e.g., addition, subtraction).</p><p>These behavioral patterns provide solutions for managing interactions and behaviors between objects in a flexible and decoupled manner, allowing for easier extensibility and maintainability of the software system.</p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-92012140221727018132017-03-17T00:07:00.000-07:002017-03-17T00:11:38.618-07:00Zonejs Overview with Example<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Zonejs is one of the core library used in Angularjs 2. Zonejs is to maintain contextual execution for single or multi-leveled asynchronous methods. So, it means it helps to keep track of the parent context of currently executing asynchronous method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;">Example-</span></b></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;"><br /></span></b></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">Zone.current.fork({}).run(function(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> Zone.current.myZoneVar = true;</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('Assigned myZoneVar');</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> setTimeout(()=>{</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('In timeout', Zone.current.myZoneVar);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> },1000);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">});</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">console.log('Out side', Zone.current.myZoneVar);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>Run </b>- <a href="https://jsfiddle.net/subhadipghosh/0uqc9rdr/">https://jsfiddle.net/subhadipghosh/0uqc9rdr/</a></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Here we created a fork of our current Zone and run is invoking the method under the Zone. The method has an asynchronous call (setTimeout). But as it is under zone we have the access of Zone variable. In last line we can see out of zone we are trying to access same variable, but it will have undefined in it.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Forking a zone will basically inheriting an existing context and you can override it if required.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;">Example-</span></b></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;"><br /></span></b></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">function main(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('Start ' ); </span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> setTimeout(function(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> throw new Error('Oops End- Error');},1000);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('In Progress ');</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">Zone.current.fork({</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> onHandleError: (parentZoneDelegate, currentZone, targetZone, error) =>{</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('error handler ->',error)</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> }</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}).run(main);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>Run </b>- <a href="https://jsfiddle.net/subhadipghosh/5tky5c6k/">https://jsfiddle.net/subhadipghosh/5tky5c6k/</a></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Here, we are overriding current zone error handler using onHandleError.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">State changes tracking of context using interception very easy using zone events handlers.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;">List of events-</span></b></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;"><br /></span></b></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows the interception of zone forking.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* When the zone is being forked, the request is forwarded to this method for interception.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param zoneSpec The argument passed into the `fork` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onFork</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, zoneSpec: ZoneSpec) => Zone;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows interception of the wrapping of the callback.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param delegate The argument passed into the `warp` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param source The argument passed into the `warp` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onIntercept</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, delegate: Function, source: string) => Function;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows interception of the callback invocation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param delegate The argument passed into the `run` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param applyThis The argument passed into the `run` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param applyArgs The argument passed into the `run` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param source The argument passed into the `run` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onInvoke</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, delegate: Function, applyThis: any, applyArgs: any[], source: string) => any;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows interception of the error handling.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param error The argument passed into the `handleError` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onHandleError</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, error: any) => boolean;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows interception of task scheduling.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param task The argument passed into the `scheduleTask` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onScheduleTask</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, task: Task) => Task;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">onInvokeTask?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, task: Task, applyThis: any, applyArgs: any) => any;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Allows interception of task cancelation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param task The argument passed into the `cancelTask` method.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onCancelTask</b>?: (parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, task: Task) => any;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* Notifies of changes to the task queue empty status.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param parentZoneDelegate Delegate which performs the parent [ZoneSpec] operation.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param currentZone The current [Zone] where the current interceptor has beed declared.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param targetZone The [Zone] which originally received the request.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">* @param isEmpty</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">*/</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>onHasTask</b>?: (delegate: ZoneDelegate, current: Zone, target: Zone, hasTaskState: HasTaskState) => void;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Zone js can be used for any js app. It's just a helper library for implementing contextual execution for asynchronous methods. Bellow we can see, we can implement error stack trace using Zone.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Handler details created in longStackTraceZoneSpec custom property of Zone. See the running example code.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;">Example-</span></b></div>
<div style="margin-bottom: 0cm;">
<b><span style="font-family: "verdana" , sans-serif;"><br /></span></b></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">function grandChild(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('set grandchild');</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> setTimeout(function(){ throw new Error('Error--');},1000);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">function child(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('set child');</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> grandChild();</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">function parent(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> console.log('set parent');</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> child();</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">function start(){</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"> parent();</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">}</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">var forkVal = Zone.longStackTraceZoneSpec;</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">/*forkVal.onHandleError= function (parentZoneDelegate, currentZone, targetZone, error) {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">console.log('error handler ->',error)</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">};*/</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">//Uncomment upper section to see default error with out longStackTraceZoneSpec---|</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">Zone.current.fork(forkVal).run(start);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: yellow;"><span style="font-family: "verdana" , sans-serif;">// see the console... You will see full error stack trace with method name ref...</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>Run </b>- <a href="https://jsfiddle.net/subhadipghosh/gz6uqyn8/">https://jsfiddle.net/subhadipghosh/gz6uqyn8/</a></span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;">The last </span>example is to get the total time count for nested asynchronous call using zone. As the bootstrap method is under zone context, Zone variables and functions will be accessible to all asynchronous call under parent /root zone. This is the core flavor of Zone.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><b>Run </b>- <a href="https://jsfiddle.net/subhadipghosh/0zbpfkrn/">https://jsfiddle.net/subhadipghosh/0zbpfkrn/</a></span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">To conclude, we can say " <span style="background-color: white; color: #222222;">A </span><b style="background-color: white; color: #222222;">Zone</b><span style="background-color: white; color: #222222;"> is an execution context that persists across async tasks. You can think of it as thread-local storage for </span><b style="background-color: white; color: #222222;">JavaScript</b><span style="background-color: white; color: #222222;"> VMs."</span> </span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Angular 2 is utilizing Zonejs for change detection. Whenever any change happens, it is detected by following code in Angular 2 - </span></div>
<pre style="box-sizing: border-box; line-height: 1.5; margin-top: 40px; overflow: auto; padding: 0.8em;"><code class="language-javascript" data-lang="javascript" style="box-sizing: border-box;"><span style="background-color: yellow; font-family: "verdana" , sans-serif;"><span class="nx" style="box-sizing: border-box;">ObservableWrapper</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">subscribe</span><span class="p" style="box-sizing: border-box;">(</span><span class="k" style="box-sizing: border-box;">this</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">zone</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">onTurnDone</span><span class="p" style="box-sizing: border-box;">,</span> <span class="p" style="box-sizing: border-box;">()</span> <span class="o" style="box-sizing: border-box;">=></span> <span class="p" style="box-sizing: border-box;">{</span>
<span class="k" style="box-sizing: border-box;">this</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">zone</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">run</span><span class="p" style="box-sizing: border-box;">(()</span> <span class="o" style="box-sizing: border-box;">=></span> <span class="p" style="box-sizing: border-box;">{</span>
<span class="k" style="box-sizing: border-box;">this</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">tick</span><span class="p" style="box-sizing: border-box;">();</span>
<span class="p" style="box-sizing: border-box;">});</span>
<span class="p" style="box-sizing: border-box;">});</span>
<span class="nx" style="box-sizing: border-box;">tick</span><span class="p" style="box-sizing: border-box;">()</span> <span class="p" style="box-sizing: border-box;">{</span>
<span class="c1" style="box-sizing: border-box;">// perform change detection</span>
<span class="k" style="box-sizing: border-box;">this</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">changeDetectorRefs</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">forEach</span><span class="p" style="box-sizing: border-box;">((</span><span class="nx" style="box-sizing: border-box;">detector</span><span class="p" style="box-sizing: border-box;">)</span> <span class="o" style="box-sizing: border-box;">=></span> <span class="p" style="box-sizing: border-box;">{</span>
<span class="nx" style="box-sizing: border-box;">detector</span><span class="p" style="box-sizing: border-box;">.</span><span class="nx" style="box-sizing: border-box;">detectChanges</span><span class="p" style="box-sizing: border-box;">();</span>
<span class="p" style="box-sizing: border-box;">});</span>
<span class="p" style="box-sizing: border-box;">}</span></span></code></pre>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Angular zone emits onTrunDone event to start change detection in the app.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Ref to Angular2 Repo- <a href="https://github.com/angular/angular/blob/3dca9d522a79d037b3c2deba537ed547fc3f65b8/modules/angular2/src/core/application_ref.ts#L374">Zone_Start</a></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><a href="https://github.com/angular/angular/blob/3dca9d522a79d037b3c2deba537ed547fc3f65b8/modules/angular2/src/core/application_ref.ts#L462">Zone_Tick</a></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;">Further study -</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: navy; font-family: "verdana" , sans-serif;"><span lang="zxx"><u><a href="https://github.com/angular/zone.js/blob/master/dist/zone.js.d.ts">https://github.com/angular/zone.js/blob/master/dist/zone.js.d.ts</a></u></span></span></div>
<br />
<div style="margin-bottom: 0cm;">
<span style="font-family: "verdana" , sans-serif;"><a href="https://github.com/angular/zone.js/tree/master/example">https://github.com/angular/zone.js/tree/master/example</a></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-15823976573126772402017-02-25T02:08:00.000-08:002017-02-25T02:08:15.906-08:00RxJs Quick start<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><b>Reactive Programming</b> is a pattern of development that works with asynchronous
data stream created of UI Events, HTTP Requests, File System, cache etc. So
data stream is an ongoing event sequence in time orderly manner. Stream can
emit value, error, and status signal.<o:p></o:p></span></div>
<span style="font-family: Verdana, sans-serif;"><br /></span><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW4EdKavogZsER5mbbiIqZaOPtzb9GIBFyB_EXsIeZFKVIjGxfKOCALQrmcyOerisA2KNmF15aFLTazhgzmd0IpE1KqPDkFZcP-qbJB7utEUXU1HHsLGYKlWigtBm1IBkT8gm9edLEuVjf/s1600/rx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW4EdKavogZsER5mbbiIqZaOPtzb9GIBFyB_EXsIeZFKVIjGxfKOCALQrmcyOerisA2KNmF15aFLTazhgzmd0IpE1KqPDkFZcP-qbJB7utEUXU1HHsLGYKlWigtBm1IBkT8gm9edLEuVjf/s320/rx.png" width="320" /></span></a></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Observables are to watch these streams and trigger function
on anything occurs in the stream. Observers can subscribe to observables. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><b>RxJs</b> is the library which helps us to do the exact same
implementation in our project. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">As per MSDN - <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Reactive Extensions (Rx) is a library for composing asynchronous and
event-based programs using observable sequences and LINQ-style query operators.
Reactive Extensions represents all these data sequences as observable
sequences. An application can subscribe to these observable sequences to
receive asynchronous notifications as new data arrive. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Great let’s see some RxJs Code and see how it works - <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;">Example 1 –<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">import Rx from 'rxjs/Rx'; //import Rxjs</span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> </span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const src$ = new Rx.Observable.create(function (observer)
{ //Create observable <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">// Each next inside Observable will trigger subscribed
function. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> observer.next('hi'); <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
observer.next('hello');<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
setTimeout(function () {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
observer.next('bye');<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
observer.complete();// Will end the observer<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }, 3000);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
//observer.error(new Error('Error'));// <-- uncomment the throw error<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">});<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">src$.subscribe(<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (e) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(e);// will execute when any change in Observable <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> },<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (er) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(er);// will be called when error<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }, function () {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log('completed'); // will be called when done<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="background-color: #cccccc;"> );</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">See comments for detail understanding.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">See running example here - <a href="https://jsfiddle.net/subhadipghosh/x3natp6y/">https://jsfiddle.net/subhadipghosh/x3natp6y/</a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;">Few more examples.<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><br /></span></b></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;">Example 2 – (Event Observable)<o:p></o:p></span></u></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">import $ from 'jquery'; //import jquery<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">import Rx from 'rxjs/Rx'; //import Rxjs<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const btn = $('#</span><span style="background-color: #cccccc; font-family: Verdana, sans-serif;">btn'); // get element<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const input = $('#inp');<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> </span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const btnStream$ = Rx</span><span style="background-color: #cccccc; font-family: Verdana, sans-serif;">.Observable.fromEvent(btn, 'click'); //
set observable event<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">btnStream$.scbscribe( // Subscribe to the event, to call
function when event occurs<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (e) { <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(e);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> },<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (er) { //
error handling <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(err);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }, function () {
// called when completed<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> //completed<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> });<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const inputStream$ = Rx.Observable.fromEvent(input, 'keyup');<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">btnStream$.scbscribe(<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (e) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(e);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> },<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (er) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(err);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }, function () {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> //completed<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="background-color: #cccccc;"> });</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;">Example 3- (Observable Array)<o:p></o:p></span></u></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">import Rx from 'rxjs/Rx';<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> </span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const numbers = [1, 2, 3, 4, 5];<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">const numberStream$ = Rx.Observable.from(numbers);// Make
array Observable<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">numberStream$.subscribe( // Subscribe to the array
observable <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (e) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(e);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> },<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> function (er) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;">
console.log(err);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> }, function () {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #cccccc; font-family: Verdana, sans-serif;"> //completed<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="background-color: #cccccc;"> });</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"> <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Further study - </span><span style="font-family: Verdana, sans-serif;">https://xgrommx.github.io/rx-book/why_rx.html</span></div>
<div class="MsoNormal">
<o:p></o:p></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-37377514674728902832017-02-17T06:00:00.002-08:002017-02-17T06:00:57.176-08:00TypeScript Intro<br /><div class="MsoNormal">
“<b>TypeScript </b>is a typed superset of Javascript. “ </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Let’s see what does this line means. TypeScript is typed; it has the ability to define typed variables. In core javascript, we use “var” to initialize a variable or function. But in TypeScript, we can specify the type (Like- string, number, Boolean, etc.) of it while initializing. TypeScript is also a superset of javascript, that means any javascript code should work properly inside TypeScript. In other words, all Javascript is valid inside TypeScript. So we can say, it is javascript with some more advanced features.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Ok, now let’s think, we created a web application using TypeScript. If we try to run that in our browser, it will not work as it is not core javascript, so it is not compilable by our browser engine. So to overcome we have something called transpiler, which will compile TypeScript code to core javascript which can get executed in a browser.</div>
<div class="MsoNormal">
Microsoft has created this TypeScript transpiler. It comes with typescript package. So it install TypeScript, open your terminal and run-</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="background-color: #f3f3f3;">>npm install –g typescript</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So now typescript is installed. If you now run following, you should see the typescript transpiler version.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="background-color: #f3f3f3;">>tsc --version</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now use VSCode editor for coding. It has inbuilt .ts type support.</div>
<div class="MsoNormal">
Well, open your working folder in VSCode and create a file, name it Employee.ts. Yes , the extension will be .ts not .js. Put the following code in the file-</div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"><br /></span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">//Interface</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">interface IEmployee { //defining interface </span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> yearOfJoin: number;// interface property</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> loyality : () => number;// interface function</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">}</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">//Base Class</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">class Company { //create class</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> constructor(public name: string, public country: string) { //define constructor</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> this.name = name;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> this.country = country;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> public Details(details: string) { </span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> return ('Company Name:' + this.name + ' Country: ' + this. country + ' Details: ' + details);</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">}</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">//Child Class implements IEmployee and inherits from Company</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">class Employee extends Company implements IEmployee { //create class extend company and implement IEmployee</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> firstName: string; // typed variable</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> lastName: string;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> yearOfJoin: number;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> //private _company: Company;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> //Constructor </span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> constructor(firstName: string, lastName: string, companyName: string, country: string, yearOfJoin: number) {</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> super(companyName, country);</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> this.firstName = firstName;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> this.lastName = lastName;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> this. yearOfJoin = yearOfJoin;</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> loyality () { </span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> return 2017 - this. yearOfJoin; // as 2017 is current year </span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> CompanyDetails() {</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> var y = super. Details (' Software Company with CMMI lavel');</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> console.log(y);</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> printDetails(): void {</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> alert(this.firstName + ' ' + this.lastName + ' Company is: ' + this.name);</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="background: yellow; mso-highlight: yellow;">}</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Save the file and run-</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="background-color: #f3f3f3;">><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: "Courier New"; font-size: 10.5pt; line-height: 115%;">tsc Employee.ts --target ES5 --outDir js --watch</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here we are running typescript transpiler with following arguments –</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; tab-stops: 136.5pt; text-indent: -.25in;">
1.<span style="font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span>Typescript files to be compiled.</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; tab-stops: 136.5pt; text-indent: -.25in;">
2.<span style="font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span>Compiled to which js version.(ES5/ES6)</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; tab-stops: 136.5pt; text-indent: -.25in;">
3.<span style="font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span>What should be the output directory.(js)</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; tab-stops: 136.5pt; text-indent: -.25in;">
4.<span style="font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span>Watch the files as mentions in the first argument, and whenever any changes, compile it to js.</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; tab-stops: 136.5pt; text-indent: -.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 136.5pt;">
Note: for more options execute- </div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 136.5pt;">
<b style="background-color: #f3f3f3;">> tsc –help</b></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 136.5pt;">
<br /></div>
<div class="MsoNormal">
After the execution you should see a <b>js</b> folder inside your current folder. And the js folder will contain your compiled <b>.js</b> files form provided <b>.ts</b> files.</div>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
See code comments for clear understanding.</div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-52969621527138674592017-02-03T22:31:00.001-08:002017-02-15T06:24:14.293-08:00Express With MongoDB - Quick start<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Let's access MongoDB from Nodejs using Express. </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<b>What is Express? </b></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">As per Express site, it'</span><span style="color: #555555; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">s a minimal and flexible Node.js web application framework that provides a robust set of features for the web and mobile applications.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="background: white; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Features</span></b><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Robust routing</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Focus on high performance</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Super-high test coverage</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">HTTP helpers (redirection, caching, etc)</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">View system supporting 14+ template engines</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Content negotiation</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 15.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: baseline;">
<!--[if !supportLists]--><span style="font-family: "symbol"; font-size: 10pt;">·<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><!--[endif]--><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Executable for generating applications quickly</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Great.Lets start. (Assumed you have Nodejs and MongoDB installed, if not ,check <a href="http://technobelities.blogspot.in/2017/01/nodejs-intro.html" target="_blank">Nodejs </a>& <a href="http://technobelities.blogspot.in/2017/01/nosql-mongodb.html" target="_blank">MongoDb</a><span id="goog_1544793421"></span><span id="goog_1544793422"></span><a href="https://www.blogger.com/"></a><span id="goog_1544793412"></span><span id="goog_1544793413"></span><a href="https://www.blogger.com/"></a>)</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Create a folder and run following command on your terminal-</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /> <b><span style="background: #F3F3F3;">> npm init</span></b></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />It will ask you few questions (Like- Name for the project, author, version). For now, you can keep all the default values. This will give you your <b>package.json</b> inside the same folder.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Greate execute this now-</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<b><span style="background: #F3F3F3;">> npm install --save express </span></b></span><b><span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">mongoose </span></b><b><span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">morgan body-parser</span></b><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f0f0f0; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
</span><span style="background: white; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">So here, we actually installed <b>Express </b>along with <b>mongoose </b>which is a Node.js library that provides <b>MongoDB</b> object mapping similar to ORM with a familiar interface within Node.js and <b>Morgan </b>which is basically used for logging request details. And <b>body-parser</b> parses incoming request bodies in a middleware before your handlers, available under the </span><b><span style="background: whitesmoke; border: none 1.0pt; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt; padding: 0in;">req.body</span></b><span style="background: whitesmoke; border: none 1.0pt; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt; padding: 0in;"> </span><span style="background: white; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">property.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: white; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
</span><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Now you should see a folder named <b>node_modules</b> inside your current folder. Inside node_modules all your installed node packages reside. We are now ready to go further.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Let's create a file and name it <b>server.js</b>. Put the following code and save it.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<span style="background: #F3F3F3;">var express = require('express'); // load express module in your project</span></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />var morgan = require('morgan'); // load morgan module </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />var mongoose = require('mongoose'); //load mongoose module </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />var bodyParser = require('body-parser'); // load body-parser module </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />var app = express(); //init express</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">var port = process.env.PORT || 6064; //allocate the port for your server</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.use(express.static('./public')); // set folder for public items , such as - image , css, html, client side js</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.use(morgan('dev')); // init morgan for logging request details</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.use(bodyParser.json()); // support json encoded bodies</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />mongoose.connect('mongodb://localhost/mongodbtest'); // mongodb connection</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />routesetup(app);// set your route details with path and its handlers </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.listen(port);// start your server</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">console.log("App listening on port " + port); </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<br />function routesetup(app) { // function for route setup</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> app.use( function (req, res, next) { // will be executed for all request</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> console.log(req.url);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> next();</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> app.use( function (err, req, res, next) { // will be executed for all error</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> console.log(err);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> next();</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> }); </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">// REST API to access from client side js--> </span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> app.get('/api/todos', function (req, res) { // get method route</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> todo.find(function (err, todos) { // used mongoose model to get data</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> if (err) {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> res.send(err);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> }</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /> res.json(todos);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">app.post('/api/todos', function (req, res) { //post method route</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> var td = new todo({</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> val: req.body.val</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /> td.save(function (err, td) { // use mongoose model to dave data</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> if (err) {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> return res.status(500).json({</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> message: 'Error when creating todo',</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> error: err</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> }</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> return res.status(201).json(todo);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">});</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> app.get('*', function (req, res) { // get method for html</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> //throw new Error('err');</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> res.sendFile(__dirname + '/public/index.html');</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">}</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />var todo = mongoose.model('Todo', { //mongoose model</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> val: {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> type: String,</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> default: ''</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> }</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">});</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Now create a folder <b>public </b>and inside it create a file <b>index.html </b> and add following -</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<span style="background: #F3F3F3;"><html></span></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /><head></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <script></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $(document).ready(function () {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $("#btn").click(function () {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $.post("/api/todos",</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> val: $("#txttask").val()</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> },</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> function (data, status) {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> console.log("Data: " + data + "\nStatus: " + status);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /> $("#txttask").val('');</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> getData();</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> function getData() {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $.get("/api/todos", function (data, status) {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> var listVal = "";</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $.each(data, function (index, val) {</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> listVal += val.val + "<br>";</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> })</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> $("#listtask").html(listVal);</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> }</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> getData();</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> });</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"></script></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"></head></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /><body></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <b>Express Running</b></div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <label> Task:</label><input type="text" id="txttask" /><button id="btn">Save</button></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> </div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <b>Task List</b></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> </div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"> <div id="listtask"></div></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"></body></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: #f3f3f3; color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /></html></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Save both the files.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<u>Note: Please read all the inline comments carefully for better understanding.</u></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Greate . Now we are ready to run our first Express application with MongoDB.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /></span> <span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Run you mongoDB, before going further.(go to your mongo installation folder and then ./bin folder using a new terminal window)</span><br />
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /></span>
<b style="background-color: #f3f3f3;"><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">> </span><span style="color: #353535; font-family: verdana, sans-serif; font-size: 13.2px;">mongod --directoryperdb --dbpath <folder path></span></b><br />
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /></span>
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br /></span>
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">To Run the application, execute following in your terminal-</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
<b><span style="background: #F3F3F3;">> node server.js</span></b></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />Now Try to open - <a href="http://localhost:6064/"><span style="color: blue;">http://localhost:6064/</span></a></span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">If you have done it properly, you should see your HTML page with heading <b>Express Running. </b>Using the api created in server.js you can save and see the saved list of items in the page.</span><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />That's it.</span></b><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;"><br />
</span></b><u><span style="color: #444444; font-family: "verdana" , "sans-serif"; font-size: 10.0pt;">Feel free to ask if you have any queries. </span></u><span style="font-family: "verdana" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<br />
<div class="MsoNormal">
<br /></div>
</div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-29281086555992767982017-02-03T13:33:00.001-08:002017-02-03T13:36:23.861-08:00Nodejs Create Server<span style="font-family: "verdana" , sans-serif;"><br /></span>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">We know what nodejs is, and up to now, we are able to run basic node server. If you have not gone through the previous tutorial please check it <a href="http://technobelities.blogspot.in/2017/01/nodejs-intro.html">here</a>. </span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Cool, let’s go ahead. Now we will create a more sophisticated application. So what we have up to now-</span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> var http = require('http');</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> </span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> function onRequest(request, response){</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> console.log('request '+ request.url);</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> response.writeHead(200,{"Context-Type": "text/plain"});</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> response.write('Server running');</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> response.end()</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> </span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> }</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> http.createServer(onRequest).listen(9000);</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> console.log('Server Running');</span></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Add and modify few line of code in it-</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt;">
<span style="font-family: "verdana" , sans-serif;"><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> var http = require('http');</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> <span style="background: yellow; mso-highlight: yellow;">function send404(response){</span></span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> response.writeHead(404,{"Context-Type": "text/plain"});</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> response.write('Error 404');</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> response.end();</span></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"> }</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> function onRequest(request, response){</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> console.log('request '+ request.url);</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> <span style="background: yellow; mso-highlight: yellow;">if(request.method == 'GET' && request.url == '/'){</span><br /> response.writeHead(200,{"Context-Type": "text/plain"});<br /> response.write('Server running');<br /> response.end();<br /> <span style="background: yellow; mso-highlight: yellow;">}</span></span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> else{</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> send404(response);</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;"><span style="background: yellow; color: #353535; font-size: 10pt; line-height: 115%;"> }</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><br /> }<br /> http.createServer(onRequest).listen(9000);</span><span style="color: #353535; font-size: 10pt; line-height: 115%;"><br />
</span><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> console.log('Server Running');</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Save the file as server.js and run it (>node server.js). If you can see “<b>Server Running” </b>message, then we are good to go. Open <a href="http://localhost:9000/">http://localhost:9000</a> in your browser. You should see “<b>Server Running</b>” in the browser also. </span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Now change the URL to http://localhost:9000/somethingelse. You will get a message “Error 404”.<b> </b></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Now let me explain what exactly happened. When we request http://localhos:9000, it comes to the server , and as we setup onRequest as a handler function, it starts executing. Now depending on the condition check on request type & properties, it creates a response and sends it back to the browser. For error handling, we used <b>send404</b> function. Now same way we can create multiple request and error handler.</span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;">Example –</span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;"><span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"> function onRequest(request, response){</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> <span style="background: yellow; mso-highlight: yellow;">if(request.method == 'GET' && request.url == '/'){</span><br /> response.writeHead(200,{"Context-Type": "text/plain"});<br /> response.write('Server running');<br /> response.end();<br /> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> <span style="background: yellow; mso-highlight: yellow;">else if(request.method == 'GET' && request.url == '/somethingelse'){</span><br /> response.writeHead(200,{"Context-Type": "text/plain"});<br /> response.write('Something else from server');<br /> response.end();<br /> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> else{</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> send404(response);</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> }<br /> }<br />
<br />
</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">Replace your existing onRequest with just above onRequest and again hit http://localhost:9000/somethingelse . You should see “Something else from server”.</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;"><u>Return physical files </u>–</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">Now instead of sending string response, let’s send files. To do that we need to add below line at the top of the server.js file–</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: rgb(204 , 204 , 204); color: #353535; font-size: 10pt; line-height: 115%;"><span style="font-family: "verdana" , sans-serif;"> var fs = require('fs');</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">Now just update your onRequest function. </span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;">function onRequest(request, response){</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> if(request.method == 'GET' && request.url == '/'){</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> response.writeHead(200,{"Context-Type": "text/html"});</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> fs.createReadStream('./index.html').pipe(response); </span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> else if(request.method == 'GET' && request.url == '/script.js'){</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> response.writeHead(200,{"Context-Type": "text/plain"});</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> fs.createReadStream('./script.js').pipe(response); </span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> else{</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> send404(response);</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background: silver; mso-highlight: silver;"><span style="font-family: "verdana" , sans-serif; font-size: x-small;"> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><span style="background: silver; mso-highlight: silver;"> }</span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><span style="background: silver; mso-highlight: silver;"><br /></span></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">[Note : Make sure you have index.html and script.js file in the folder]</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">Lets see what exactly we did. First we imported <b>fs</b> module (node module) for accessing files. Now in onRequest function we used that <b>fs</b> module to read an existing file and send it back as response. </span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">Example -</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">index.html- </span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;"><html></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;"><head><script src="./script.js"/></head></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;"><body>test</body></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;"></html></span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">script.js -</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;">(function(){</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>console.log('test')</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif; font-size: x-small;">})();</span></div>
<div>
<br /></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">In browser and in console you should see "test".</span></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<br />
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "verdana" , sans-serif;">That’s it for now. </span></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-48585693849525479922017-01-21T21:43:00.002-08:002017-01-21T21:44:24.142-08:00Nodejs Intro<span style="font-family: "verdana" , sans-serif;"><b><u>Nodejs introduction</u></b></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><br /><iframe allowfullscreen="true" frameborder="0" height="299" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/1qkQ1Tl_DrXhFchgA8R21PjrJB2ySeiwqQwjJzTxun0o/embed?start=false&loop=false&delayms=3000" webkitallowfullscreen="true" width="480"></iframe> </span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Nodejs is having lots of inbuilt modules/packages and also custom packages (<b>npm </b>manages packages). </span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Fine, Now how to use those packages? </b></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Simple - just use require('<package name>') (<a href="https://www.google.co.in/search?q=does+node+use+commonjs&oq=node+use+common&aqs=chrome.1.69i57j0.7090j0j1&sourceid=chrome&ie=UTF-8#q=node+use+commonjs">commonjs </a>approch).</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Example - var http = require('http');</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif; font-size: x-small;">(Here we can see http module is imported. You can import multiple modules as required.)</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Note: <u>Any javascript code is valid under nodejs, as it uses V8.</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Start the server-side coding using Javascript-</b></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><span style="background-color: #cccccc;"> var http = require('http');</span></span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> </span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> function onRequest(request, response){</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> console.log('request '+ request.url);</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> response.writeHead(200,{"Context-Type": "text/plain"});</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> response.write('Server running');</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> response.end()</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> </span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> }</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> http.createServer(onRequest).listen(9000);</span><br />
<span style="background-color: #cccccc; font-family: "verdana" , sans-serif;"> console.log('Server Running');</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Now save it, say server.js.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">To run this application run following in console - </span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">> <span style="background-color: #cccccc;">node server.js</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><span style="background-color: #eeeeee;">Server Running </span><span style="font-size: x-small;">// this line will be printed in console.</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Cool, it's running. </span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Now if you open localhost:9000, you will see "Server running" text in the page.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Congratulation it's your first nodejs application. </span><br />
<br />Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-76710215416651797832017-01-20T17:31:00.003-08:002017-01-21T01:14:19.649-08:00NOSQL -MongoDB<h3>
<span style="font-family: "verdana" , sans-serif;"><b><u>Introduction</u></b></span></h3>
<div>
<span style="font-family: "verdana" , sans-serif;"><b><u><br /></u></b></span></div>
<span style="font-family: "verdana" , sans-serif;"> <iframe allowfullscreen="true" frameborder="0" height="400" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/1Mndso8FaDQ-YeJLcSbfrKjiiN7N4ve0h00qK-k4nfxQ/embed?start=false&loop=false&delayms=3000" webkitallowfullscreen="true" width="550"></iframe> </span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><br /></span><br />
<span style="font-family: "verdana" , sans-serif;"><u><b>Setup Mongo</b></u></span><br />
<span style="font-family: "verdana" , sans-serif;"><u><b><br /></b></u></span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Download & Install Mongo from- <a href="https://www.mongodb.com/download-center?jmp=nav#community"><span style="color: #666666;">MongoDB site</span></a></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">Now you need a folder to store the data. So, Create one and </span><span style="font-family: "verdana" , sans-serif;">Setup mongo.</span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><u>Run MongoDB command in console-</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">mongod --directoryperdb --dbpath <folder path> --logpath <file path> --logappend --rest </span><br />
<u><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;"><b>Mongo commands</b></span></u><br />
<u><span style="font-family: "verdana" , sans-serif;"><b><br /></b></span></u> <span style="font-family: "verdana" , sans-serif;">Great, you are ready to do DB functionalities. For <span style="background-color: white;">this,</span> you have to run following command in the console. </span><br />
<u><span style="font-family: "verdana" , sans-serif;"><b><br /></b></span></u><span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">mongo</span><br />
<span style="font-family: "verdana" , sans-serif;"><b><br /></b></span><span style="font-family: "verdana" , sans-serif;"><u>That's it. It will open a shell for executing mongo commands.</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><b><br /></b></span>
<span style="font-family: "verdana" , sans-serif;"><b>Show list of DBs-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>show DBS</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;"><b>Create/Use the DB-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>use local</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>See selected DB-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Create user for db-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.createUser({user:"test",pwd:"1234",roles: ["readWrite","dbAdmin"]});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Create a collection in DB-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.createCollection('employee');</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Show all collections in DB-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>show collections</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Insert document in a collection-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.insert({first_name:"sudhir", last_name:"ghosh"});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Fetch the documents-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find();</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Insert multiple documents-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.insert([{first_name:"sakti", last_name:"ghosh"},{first_name:"subha", last_name:"ghosh", gender:"M"}]);</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Get Collection-</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find().pretty();</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Update commands -</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"sakti"},{first_name:"sakti", last_name:"ghosh",gender:"M"});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"sudhir",{$set:{age: 40}});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"sudhir",{$inc:{age:5}});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"sudhir",{$unset:{age}});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"rnga"},{first_name:"ranga", last_name:"ghosh"},{upsert:true});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.update({first_name:"rnga"},{$rename:{"gender":"m"}});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><b>Remove commands -</b></span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.remove({first_name:"rnga"});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.remove({first_name:"rnga"}, {justOne:true});</span><br />
<span style="font-family: "verdana" , sans-serif;"><b><br /></b></span> <span style="font-family: "verdana" , sans-serif;"><b>Find Commands -</b></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="background-color: #eeeeee;">>db.employee.find({first_name:"sudhir"})</span>;</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find({$or:[{first_name:"sakti"},{first_name:"sudhir"}]});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find({age:{$lt:40}}); //$gt/$gte/$lte</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find({"address.city":"kol"});//json path</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find().sort({last_name:1});//asc/desc (-1)</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find().count();</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find().limit(4);</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find({deot:{$in:['software','testing']}});</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">>db.employee.find().forEach(function(doc){</span><br />
<span style="background-color: #eeeeee; font-family: "verdana" , sans-serif;">print('name:'+ oc.first_name)});</span><br />
<span style="font-family: "verdana" , sans-serif;"></span><br />
<br />
<br />
Further study - <a href="https://docs.mongodb.com/manual/">https://docs.mongodb.com/manual/</a>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-30080054551328788432016-03-04T01:46:00.003-08:002016-03-04T01:48:32.512-08:00ES6 and Babeljs<section id="sidenav-introduction">
<h1>Introduction</h1>
<p> In the implementation of control tool kit we will be using ES6 or ECMAScript6. As the code developed using ES6 is not compilable in browser, we need babeljs to compile it and run it in browser. The development stack discussed below.</p>
<section id="sidenav-introduction-es6">
<h2>
What is ES6?
</h2>
<p>ES6 is ECMAScript 6. It is a scripting language specification created by a committee called TC39. Currently the JavaScript we use for development is basically following ES5. All the modern browsers has support for it with different JavaScript engines, like - V8 (in google chrome). For ES6, the browsers dose not has full support. So if we do code in ES6, browser compilers will through compile time (Syntax) error, as this version of ECMAScript has many new syntactical and implementation level changes, which we will discuss shortly. So, to overcome this and to use new features of ES6, we need some compiler which will take ES6 code as input and give us something browser compliable.</p>
</section>
<section id="sidenav-introduction-babel">
<h2>
What is Transcompiler or Transpiler?
</h2>
<p>Transpiler is a tool or engine to compile one source code to another source code. To use ES6 now , we need to use some kind of transpiler to convert ES6 to something browser compliable(e.g ES5). There are several transpiler is market now, which facilitates us to use ES6 now . Babeljs is one such transpiler, which we will be focusing now.</p>
</section>
<section id="sidenav-introduction-babel">
<h2>
What is Babel?
</h2>
<p>Babeljs is a transpiler to convert ES6 code to ES5. Babel supports pre and run time compilation. Pre compilation is for compiling our ES6 code to ES5 in the time of project build. For production environment pre compilation is preferable. Runtime compilation is straight forward process to compile your ES6 code to ES5 in the browser itself, which is time consuming for sure and not preferable for practical implementations. </p>
<h3>How to convert ES6 to ES5-</h3>
<p>As discussed above there are two ways to do it. Lets discuss preferable way first- </p>
<p><u>Per- compilation of ES6 code using Babeljs.</u></p>
<p>There is a npm module called babel, which we need to install in our app.</p>
<code>npm install babel</code>
<p>Then it's pretty straight forward to compile the ES6 code to current javasctipt code.</p>
<code>babel script.js</code>
<p>Babeljs also has gulp support. We can use gulp-babel to do the same using gulp build process.</p>
<p>First install it-</p>
<code>npm install --save-dev gulp-babel</code>
<p>In gulp file-</p>
<code>var gulp = require('gulp');
var babel = require('gulp-babel');
gulp.task('default', function () {
return gulp.src('src/app.js')
.pipe(babel())
.pipe(gulp.dest('dist'));
});
</code>
<p>It will compile app.js ES6 code files to vanilla JavaScript and put it in dist folder.</p>
<p>Now let's see, how the runtime compilation works. We need to add reference of browser.js in our web page from babel-code folder after npm installation of babel. This will basically convert all the scripts with type text/babel from ES6 to JavaScript (ES5).</p>
<code>
<script src="node_modules/babel-core/browser.js"></script>
<script type="text/babel">
class Test {
test() {
return "test";
}
}
var test = new Test;
test.test();
</script>
</code>
<p>But as discussed previously, it will make the application perform slowly. <br>That's all we need to know about babeljs for now. </p>
</section>
</section>
<section id="sidenav-es6">
<h1>ES6 Feature</h1>
<p>ES6 gives us a true programming language flavor in javascript just like Java, C# and so on. We can utilize all the features like - class, inheritance, anonymous function, scoped variable, string template, destructuring, itaitarator, etc. </p>
<section id="sidenav-es6-XXX-1">
<h2>
Class
</h2>
<p>More oop type approach than using prototype.</p>
<code>
class Rectangle extends Shape {<br>
constructor (id, x, y, width, height) {<br>
super(id, x, y)<br>
this.width = width<br>
this.height = height<br>
}<br>
}<br>
class Circle extends Shape {<br>
constructor (id, x, y, radius) {<br>
super(id, x, y)<br>
this.radius = radius<br>
}<br>
}<br>
</code>
</section>
<section id="sidenav-es6-XXX-2">
<h2>
Constant
</h2>
<p>Const variable declaration support </p>
<code>const PI = 3.141593</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Arrows
</h2>
<p>Simplified anonymous function declaration</p>
<code>nums.forEach(v => {<br/>
if (v % 5 === 0)<br/>
fives.push(v)<br/>
})<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Get-Set
</h2>
<p>Like modern language seter and geter method for properties.</p>
<code>class Rectangle {<br/>
constructor (width, height) {<br/>
this.width = width<br/>
this.height = height<br/>
}<br/>
set width (width) { this._width = width }<br/>
get width () { return this._width }<br/>
set height (height) { this._height = height }<br/>
get height () { return this._height }<br/>
get area () { return this.width * this.height }<br/>
}<br/>
var r = new Rectangle(50, 20)<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Block-scoped variables
</h2>
<p>Variables are now scoped within a code block using let key word. </p>
<code>
for (let i = 0; i < a.length; i++) {<br/>
let x = a[i]<br/>
�<br/>
}<br/>
for (let i = 0; i < b.length; i++) {<br/>
let y = b[i]<br/>
�<br/>
}<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Default Parameter
</h2>
<p></p>
<code>
function f (x, y = 7, z = 42) {<br/>
return x + y + z<br/>
}<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Rest Parameter
</h2>
<p>'a' can take n number of params and keep it in array of params ,can be accessed by index.</p>
<code>
function f (x, y, ...a) {<br/>
return (x + y) * a.length<br/>
}<br/>
</code>
</section> <section id="sidenav-es6-XXX-3">
<h2>
New Built-In Methods
</h2>
<p>Helper methods to do searching , validation , verification with lesser code.</p>
<code>
Object.assign(dst, src1, src2)<br/>
[ 1, 3, 4, 2 ].find(x => x > 3)<br/>
"hello".startsWith("ello", 1) // true<br/>
"hello".endsWith("hell", 4) // true<br/>
"hello".includes("ell") // true<br/>
"hello".includes("ell", 1) // true<br/>
"hello".includes("ell", 2) // false<br/>
Number.isNaN(42) === false<br/>
Number.isNaN(NaN) === true<br/>
Number.isFinite(Infinity) === false<br/>
Number.isFinite(-Infinity) === false<br/>
Number.isFinite(NaN) === false<br/>
Number.isFinite(123) === true<br/>
Number.isSafeInteger(42) === true<br/>
Number.isSafeInteger(9007199254740992) === false<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
String Interpolation
</h2>
<p>In build String tinplating. No more - str + val </p>
<code>
var customer = { name: "Foo" }<br/>
message = `Hello ${customer.name}`<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Property Shorthand
</h2>
<p>Smart way to declare {x:'x',y:'y'}</p>
<code>
obj = { x, y }
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Method notation
</h2>
<p>Smart way to declare {x:function(){}} as shown below</p>
<code>
obj = {<br/>
foo (a, b) {<br/>
...<br/>
},<br/>
bar (x, y) {<br/>
...<br/>
},<br/>
*quux (x, y) {<br/>
...<br/>
}<br/>
}<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Modules
</h2>
<p>Import and export modules just as importing name space.</p>
<code>
// lib/math.js<br/>
export function sum (x, y) { return x + y }<br/>
export var pi = 3.141593<br/>
<br/>
// someApp.js<br/>
import * as math from "lib/math"<br/>
console.log("2p = " + math.sum(math.pi, math.pi))<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Map & Set
</h2>
<p></p>
<code>
let m = new Map()<br/>
m.set("hello", 42)<br/>
m.set(s, 34)<br/>
m.get(s) === 34<br/>
m.size === 2<br/>
for (let [ key, val ] of m.entries())<br/>
console.log(key + " = " + val)<br/>
<br/>
let s = new Set()<br/>
s.add("hello").add("goodbye").add("hello")<br/>
s.size === 2<br/>
s.has("hello") === true<br/>
for (let key of s.values()) // insertion order<br/>
console.log(key)<br/>
</code>
</section>
<section id="sidenav-es6-XXX-3">
<h2>
Promise
</h2>
<p></p>
<code>
function msgAfterTimeout (msg, who, timeout) {<br/>
return new Promise((resolve, reject) => {<br/>
setTimeout(() => resolve(`${msg} Hello ${who}!`), timeout)<br/>
})<br/>
}<br/>
msgAfterTimeout("", "Foo", 100).then((msg) =><br/>
msgAfterTimeout(msg, "Bar", 200)<br/>
).then((msg) => {<br/>
console.log(`done after 300ms:${msg}`)<br/>
})<br/>
</code>
</section>
</section>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-4182489201692120162014-08-26T01:06:00.000-07:002014-08-29T11:38:09.120-07:00How to stop double tap or multi tap problem in android Xamarin <div class="MsoNormal">
It is a common problem for android or any mobile developer,
to stop unwanted multi tap in a button or view. This may cause blockers and
crashes also. So, it’s a kind of serious and common issue. To fix this there
are multiple solutions you can approach to. You can use timer or you can track
down view event or even you can use a flag also. But again you have to change
the flag after the button click occurrence. You can assign a different handler
after first click. But also again you have to assign the real handler after the
click occurs. All these may not give you 100% solution; as well it can be
another piece of code for a new error.</div>
<div class="MsoNormal">
Here I found a solution which may solve this issue in much
secure and smart way. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Note:</b> <u>Same idea will work for Android Java developers.</u></div>
<div class="MsoNormal">
<u><br /></u></div>
<div class="MsoNormal">
Let get in to it-</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Step 1: Create <span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%; mso-highlight: white;">SingleClickListener</span><span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;">class, with following
code.</span></b></div>
<div class="MsoNormal">
<b><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><br /></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">public</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">SingleClickListener</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">public</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> SingleClickListener(</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Action</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">object</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">, </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">EventArgs</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">> setOnClick)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> _setOnClick = setOnClick;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">private</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">bool</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> hasClicked;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">private</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Action</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"><</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">object</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">, </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">EventArgs</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">> _setOnClick;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">public</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">void</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> OnClick(</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">object</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> v, </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">EventArgs</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> e)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">if</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> (!hasClicked)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> _setOnClick(v, e);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> hasClicked = </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">true</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> reset();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">private</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">void</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> reset()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> Android.OS.</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Handler</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> mHandler = </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">new</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> Android.OS.</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Handler</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> mHandler.PostDelayed(</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">new</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Action</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">(() => {
hasClicked = </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">false</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">; }), 500);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> }</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><b>Step2: Use it everywhere you need it, in following way-</b><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><b><br /></b></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Button</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> myButton= FindViewById<</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Button</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">> (</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Resource</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">.</span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Id</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;">.myButton);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">myButton.Click += </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; line-height: 115%; mso-highlight: white;">new</span><span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%; mso-highlight: white;">SingleClickListener</span><span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">( myButtonClickEvent).OnClick;</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">void</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> myButtonClickEvent (</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">object</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> sender, </span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">EventArgs</span><span style="background: white; font-family: Consolas; font-size: 9.5pt;"> e)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">{</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-indent: .5in;">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;">//your button click code
goes here.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;">}<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><br /></span></div>
<br />
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;">That’s it. :)</span></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com1tag:blogger.com,1999:blog-578840824054586846.post-6358785921288141502014-08-22T22:47:00.000-07:002014-08-22T22:58:56.408-07:00Android app development start up with Xamarin + C# <!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:RelyOnVML/>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:none;
mso-hyphenate:none;
text-autospace:ideograph-other;
font-size:12.0pt;
font-family:"Times New Roman","serif";
mso-bidi-font-family:Mangal;
mso-font-kerning:1.5pt;
mso-ansi-language:EN-IN;
mso-fareast-language:ZH-CN;
mso-bidi-language:HI;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1029"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
<br />
<div class="Standard">
<span lang="EN-IN">When I get to know the about Xamarin ,
following questions are popping up in my mind. I believe, right now in your mind,
same questions are floating in gray cell area. Let’s try to have a brief over
view.</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-IN">Why?</span></b></div>
<div class="Standard">
<span lang="EN-IN">Android app development industry is booming
now. That means the market requirement is getting very high. When a development
industry grows, it needs more developer. To fill the gap experienced developer
need to shift their technical domain. It’s a very challenging situation when a
set of developer need to develop a new skill quick and do it efficiently. After
working years with a development environment and language, it takes some time
span to do the shift. As an example, when a c# developer need to shift from c#
and visual studio to Eclipse and java for android development , it is definitely
not a smooth transition for them and also require some time. Xamarin is
basically is the answer to it.</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-IN">How
it is helpful?</span></b></div>
<div class="Standard">
<span lang="EN-IN">Xamarin provides a development environment
which is just same as c# development environment for android app development.
Not only android but also iPhone, and windows app can be developed using
Xamarin. And the best thing is reusable code. The same code can be used in iPhone,
android, windows phone, as we are using Xamarin.</span></div>
<div class="Standard">
<span lang="EN-IN">Basically normal c# code is running on its
own Mono (.net) framework on the top of android os and talking with hardware.
Mono framework officially release in 2004 for linux. Mono is nothing but .net
for the environment other than windows.</span></div>
<div class="Standard">
<span lang="EN-IN">Java libraries or existing code also can be
imported using c# binding. It is really awesome to have this feature. We can
use any existing java library created for Android native environment.<span style="mso-spacerun: yes;"> </span>Java code will be wrapped by c# code to use
in c# Xamarin development. To build android app, we may need access to java
widget and sdk. We can expose those using bindings. It will expose any java
class or library as per needed. We can use these classes in c# code just as in
c# itself. Awesome. </span><span lang="EN-IN" style="font-family: Wingdings; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-IN">How
it works?</span></b></div>
<div class="Standard">
<span lang="EN-IN">It acts like almost desktop app development
for c#.<span style="mso-spacerun: yes;"> </span>The compiler is producing IL (Intermediate
Language), then package that IL in apk. The apk is running on top of .net mono
framework which runs over Andrid os. There is no java involvement in
deployment. It runs over Mono and Delvik runtime, which runs parallel in
android os. Other things like- view, resources, manifest are maintained as in
android native development. These are the simple self explanatory xml files. I
will not talk about android development here. Please refer to android
development tutorial blogs- http://www.xoriant.com/blog/?s=android+basics</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN">Ok, enough. Now give it a try.</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-IN">Setting
up development environment</span></b></div>
<div class="Standard">
<a href="https://www.blogger.com/blogger.g?blogID=578840824054586846" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=578840824054586846" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span lang="EN-IN">Download latest Xamarin from <a href="http://xamarin.com/"><b style="mso-bidi-font-weight: normal;"><span style="color: windowtext; text-decoration: none; text-underline: none;">http://xamarin.com</span></b></a>
and install it.<span style="mso-spacerun: yes;"> </span>After you finish, you will
get free GUI xamarin studio and visual studio integrated development
environment. You can use any of them. Xamarin studio is free, almost feels like
visual studio and has intellisense also. If you have visual studio licence, you
can use visual studio flawlessly. To run & test the app in simulator you
need to use <b style="mso-bidi-font-weight: normal;">ADT</b>. You can create a
virtual device using <b style="mso-bidi-font-weight: normal;">Android virtual
device manager</b>. But it is slower than you can imagine. You can also use third
parties, like- <b style="mso-bidi-font-weight: normal;">Genymotion </b>(faster,
but not free</span><span lang="EN-IN" style="font-family: Wingdings; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">L</span></span><span lang="EN-IN"> )</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN"> </span></div>
<div class="Standard">
<span lang="EN-IN">Let’s create a project using following
instruction-</span></div>
<div class="Standard">
<br clear="ALL" style="mso-ignore: vglayout;" />
<span lang="EN-IN">Open <b style="mso-bidi-font-weight: normal;">Xamarin studio</b>.</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
</div>
<div class="Standard">
<a href="data:image/png;base64,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" imageanchor="1"><img alt="" border="0" src="data:image/png;base64,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" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="Standard">
<br clear="ALL" style="mso-ignore: vglayout;" />
<span lang="EN-IN">Fellow these steps: <b style="mso-bidi-font-weight: normal;">File
-> New -> Solution</b></span></div>
<div class="Standard">
<span lang="EN-IN">Select <b style="mso-bidi-font-weight: normal;">Android
Application</b> as shown bellow. Provide suitable name to the project and path
to save.</span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN"> </span><img alt="" src="data:image/png;base64,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" /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN">After saving project, you will get a first
view of code, which is basically associated with the views</span></div>
<div class="Standard">
<br clear="ALL" style="mso-ignore: vglayout;" />
<span lang="EN-IN">in xml in “resource/layout” folder. It (MainActivity.cs) is inherited
from activity which acts like view controller, just as in android. </span></div>
<div class="Standard">
<span lang="EN-IN"><img alt="" src="data:image/png;base64,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" /> </span></div>
<div class="Standard">
<span lang="EN-IN">Now as you
can see, the code is pretty simple. It is basically associating a click event
to a button on view creation time, and printing the number of clicks on the
button itself. Run the above code by clicking Run (>) button to see the
actual effect on simulator. </span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN">The stage is set for you to play around. <span style="mso-spacerun: yes;"> </span></span><span lang="EN-IN" style="font-family: Wingdings; mso-ascii-font-family: "Times New Roman"; mso-char-type: symbol; mso-hansi-font-family: "Times New Roman"; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"></span></span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<span lang="EN-IN">So you are ready to go further. Create your
own native apps using Xamarin. </span></div>
<div class="Standard">
<br /></div>
<div class="Standard">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-IN">Further
study & ref:<span style="mso-spacerun: yes;"> </span></span></b></div>
<div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-IN" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="EN-IN"><a href="http://api.xamarin.com/">http://api.xamarin.com/</a></span></div>
<div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-IN" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="EN-IN">http://developer.xamarin.com/samples/android/all/</span></div>
<div class="Standard" style="margin-left: .5in; mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-IN" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="EN-IN">http://www.genymotion.com/</span></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-65334111101569213082014-02-17T05:36:00.003-08:002014-05-18T04:15:56.157-07:00MongoDB with MVC4 Web-API C#<div class="MsoNormal">
Mongo db is a document oriented database. Mongo db has a
free and commercial version. It is scalable, open source and document oriented.
All Nosql db are document oriented mostly.
Main data base types are RDBMS, OLAP & NoSql. NoSql db are for Big
data store and faster access. It is scalable. Scalable means db can be stored
in commodity computers, so NoSql databases is horizontal scalable. (Hadoop).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u>NoSql has mainly 3 types- </u><o:p></o:p></div>
<div class="MsoNormal">
1>Key-Value, 2> Tabular, 3> Document Oriented.
Mongo is document oriented NoSql Db. NoSql does not have relations. It does not
support complex database. But the features are there is - Fast Performance, Query-able,
scalable. In brief, NoSql is for
performance, RDBMS is for functionality, though it is not cent right from all
aspects.<o:p></o:p></div>
<div class="MsoNormal">
In case of Mongo, collections are same as tables in RDBMS.
Table has recorded in row. But in mongodb stores document (BSON) in collection.
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u>Example-</u><o:p></o:p></div>
<div class="MsoNormal">
<b>{_id:”123”, name:”subhadip”,address:”agarpara”},{_id:”124”,name:”nemo”,addresses:[{address:”add1”},{address:”add2”}]}</b><o:p></o:p></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
You can see an unstructured data collection.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now , query to extract data from collection is there in
No-Sql. <o:p></o:p></div>
<div class="MsoNormal">
<u>Example-</u> db.employee.find({name:”subhadip”});<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Indexing is possible in MongoDB. Ad hoc queries like- search
by field, regular expression can be used. Distributed database supported in
mongodb. Load-balancing is a build in feature. Mongodb has file storage
functions available (<u>GridFS</u>). Aggregation in MongoDB is possible using map
reduce. Mongo db understands longitude and latitude in its own. For business
logics no need to convert record to object, it is already structured as object
in code.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It supports almost all popular OS (Windows, Linux, Mac, etc). <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now lets jump to code using MVC 4, C#, MongoDriver.<o:p></o:p></div>
<div class="MsoNormal">
Create a db in mongo called company and it should have a collection
-employees.[_id,Name,Address](_id will be auto generated).<o:p></o:p></div>
<div class="MsoNormal">
Create DB Command- >use Company (enter)</div>
<div class="MsoNormal">
Create Collection Command-> db.Employees.insert({Name:'Subha',Address:'agarpara;}) (enter)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Install MongoC#Driver from <u>Add Libary Package Reference</u>. <o:p></o:p></div>
<div class="MsoNormal">
Ok, Lets start coding.</div>
<div class="MsoNormal">
First , Create Model-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">class</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> [</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ScaffoldColumn</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">(</span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">false</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">)]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> [</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">BsonId</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ObjectId</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> EmpId { </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">get</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">set</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> [</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ScaffoldColumn</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">(</span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">false</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">)]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">string</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> Name { </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">get</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">set</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> [</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ScaffoldColumn</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">(</span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">false</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">)]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">string</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> Address { </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">get</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">set</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }</span><span style="color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
Now , Create MongoDBContext-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">class</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoDBCS</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoDatabase</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> db;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> MongoDBCS()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">var</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> con =<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">new</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoConnectionStringBuilder</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">(</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ConfigurationManager</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">.ConnectionStrings[</span><span style="background: black; color: #a31515; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">"MongoDBString"</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">].ConnectionString);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">var</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> server = </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoServer</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">.Create(con);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> db =
server.GetDatabase(con.DatabaseName);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoCollection</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">> Employees<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">get</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">return</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> db.GetCollection<</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">>(</span><span style="background: black; color: #a31515; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">"Employees"</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">set</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> { }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }</span><span style="color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now, Create controller(API)-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">class</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">EmployeeController</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> : </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">ApiController</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">private</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoDBCS</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> MongoContext;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> EmployeeController()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> MongoContext = </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">new</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">MongoDBCS</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: green; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">// GET api/employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">IEnumerable</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">> Get()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">var</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el = MongoContext.Employees;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">return</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el.FindAll();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: green; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">// POST api/employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">void</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> Post(</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Employee</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> emp)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">var</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el = MongoContext.Employees;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el.Save(emp);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: green; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">// DELETE
api/employee/5</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">public</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">void</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> Delete(</span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">string</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> name)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> </span><span style="background: black; color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">var</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el = MongoContext.Employees;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> el.Remove(</span><span style="background: black; color: #2b91af; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">Query</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">.EQ(</span><span style="background: black; color: #a31515; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">"Name"</span><span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;">, name));<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: black; color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri; mso-highlight: black;"> }</span><span style="color: #b7ffb7; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Web.config will have db connection string –<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><</span><span style="color: #a31515; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">add</span><span style="color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"> </span><span style="color: red; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">name</span><span style="color: blue; font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">=</span><span style="font-size: 12.0pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">"<span style="color: blue;">MongoDBString</span>"<span style="color: blue;"> </span><span style="color: red;">connectionString</span><span style="color: blue;">=</span>"<span style="color: blue;">server=127.0.0.1;database=company</span>"<span style="color: blue;"> /><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
That’s it.Now, You know how to work with MongoDB and C#
MVC4.<o:p></o:p></div>
<br />
<div class="MsoNormal">
<br /></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-80093248619768256952014-02-08T00:49:00.003-08:002014-05-18T04:13:49.900-07:00Knockout Js Quick Start<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Knockout js is a Javascript library which follows MVVM. It
interacts or binds model with dom(view) element using ViewModel. <span style="mso-spacerun: yes;"> </span>Now through this we can bind text, events, conditions
and iterators(loop). The syntax is-<span style="color: blue;"> data-bind=”<kind of binding> :<scope
param></span>.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span>Example-</div>
<div class="MsoNormal">
<span style="color: blue;"> <span data-bind="text: name"></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Another example-</div>
<div class="MsoNormal">
<span style="color: blue;"> <div data-bind="if: address!=''"><span
data-bind="text: address"></span></div></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here, a conditional data binding is happening and under it,
another text binding shown.<br />
<br />
Now, let have a bit more in to it. It will cover few real scenarios- <br />
<br />
<u>HTML</u><br />
<span style="color: blue;"><div id="div_test"><br /> <ul data-bind="foreach: products"><span style="color: lime;"><!--scope starts--></span><br /> <li><label data-bind="text: $index" ></label>&nbsp;<span style="color: lime;"> <!--shows index count--></span><br /> <span data-bind="text: name"></span>&nbsp;<span style="color: lime;"><!--conditional binding template starts-</span>-><br /> <div data-bind="ifnot: rate > 20"><span data-bind="text: rate"></span></div><br /> <div data-bind="with:plot"><br /> <span data-bind="text: width + '-' +height"></span></div> <br /> <a data-bind="attr: {href:'#/'+name}" >click</a> <br /> <div data-bind="if: address!=''"><span data-bind="text: address"></span></div><br /> </li></span><br />
<span style="color: lime;"><!--conditional binding template starts--></span><br />
<span style="color: blue;"><span style="color: blue;"> </span> </ul></span><br />
<span style="color: lime;"><!--scope ends--></span><br />
<span style="color: blue;"><span style="color: blue;"> </span> <button data-bind="click: onclick">Click</button><!--event binding--><br /> </div></span><br />
<br />
<u>Javascript</u></div>
<div class="MsoNormal">
<br />
<span style="color: blue;">function scope(){<br /> var $scope=this;</span><br />
<span style="color: blue;"><span style="color: lime;">//Json binding----></span><br /> $scope.products=[{name:"test",</span><br />
<span style="color: blue;"> address:"agarpara",</span><br />
<span style="color: blue;"> rate:22,</span><br />
<span style="color: blue;"> plot:{width:1110,height:800}</span><br />
<span style="color: blue;"> }, </span><br />
<span style="color: blue;"> {name:"test2",</span><br />
<span style="color: blue;"> rate:18,</span><br />
<span style="color: blue;"> plot:{width:1500,height:600}}];</span><br />
<span style="color: blue;"><span style="color: lime;">//Event binding------></span><br /> $scope.onclick=function(){<br /> alert("Clicked");<br /> };<br />}<br />ko.applyBindings(new scope(),document.getElementById("div_test"));<span style="color: lime;">//apply a scope by a dom id</span></span><br />
<br />
Few more working examples are in <a href="http://jsfiddle.net/subhadipghosh/6MJgd/2/">here</a></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-43187273650615277482013-06-24T15:37:00.000-07:002013-06-24T15:37:11.378-07:00Site creation tools assistance - ( Search domain, Online meta tag generator (for SEO ), Global site ranking )<b><u><span style="font-family: Georgia, Times New Roman, serif;">Search available domain quickly
</span></u></b><br />
<b><u><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></u></b>
<b><u><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></u></b>
<center>
<iframe frameborder="0" id="ids-widget" name="ids-widget" scrolling="no" src="http://instantdomainsearch.com/widget/336x280/" style="height: 280px; overflow: hidden; width: 336px;"><a href="http://instantdomainsearch.com/">Instant Domain Search</a></iframe></center>
<br />
<br />
<span style="font-family: Georgia, Times New Roman, serif;"><b><u>Meta Tag generator For your sites
</u></b></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><b><u><br /></u></b></span>
<center>
<iframe allowtransparency="false" frameborder="0" height="650px" scrolling="no" src="https://dl.dropbox.com/u/63968842/Meta-Tag-Generator%28www.fblatest.in%29.html" width="700px"></iframe>
</center>
<div style="text-align: center;">
<b><u><span style="font-family: Georgia, Times New Roman, serif;">Check your websilte ranking globally.</span></u></b><br />
<table cellspacing="1" style="border: 1px solid #888; margin: 10px auto 40px; text-align: center; width: 400px;">
<tbody>
<tr><td style="background: #D1FFA4; vertical-align: middle;"><div style="color: #666666; font-family: Verdana; font-size: 11px; margin: 0px; padding: 2px;">
<strong>Check Page Rank of your Web site pages HERE:</strong></div>
</td></tr>
<form action="http://www.prchecker.info/check_page_rank.php" method="post" style="margin: 0px; padding: 0px;">
</form>
<tr><td style="background: #DDD; border: 1px solid #CCC; padding: 10px;"><input name="action" type="hidden" value="docheck" />
<input maxlength="150" name="urlo" style="font-family: Arial; font-size: 13px; margin-right: 10px; padding: 1px 2px 2px 3px; width: 250px;" type="text" value="http://" />
<input name="submit" style="font-family: Arial; font-size: 11px; padding: 1px; width: 80px;" type="submit" value=" Check PR " />
</td></tr>
<tr><td><div style="color: #aaaaaa; font-family: Verdana; font-size: 9px; margin: 0px; padding: 3px 0px 1px 0px;">
This page rank checking tool is powered by <a href="http://www.prchecker.info/" target="_blank">Page Rank Checker</a> service</div>
</td></tr>
</tbody></table>
</div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-57444978229797648962013-06-19T11:27:00.001-07:002013-06-19T11:27:30.542-07:00Detect hardware in PC (windows) through C# code by Win32_PnPEntity and ManagementObjectSearcher <div class="MsoNormal">
I was working with some hardware (Smart card reader), which needs
to interact with my C# code. When I was starting, I was really a fresher in
this area. My objective is to detect the device attached in my pc. If it is
attached an event will fire, and same will happen on the remove. To do that, I
created a windows service. But now the challenge is device detection on my pc.<o:p></o:p></div>
<div class="MsoNormal">
To do that, I have to get the details from hardware manager
of my pc. I got the solution from c# itself.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="font-family: Consolas; font-size: 9.5pt;"> System.Management;<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It will help to get hardware information from pc using c#
code. The code is as follows-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">static</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">bool</span> getDeviceFromHWM(<span style="color: blue;">string</span> deviceGuid)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: #2b91af;">ManagementObjectSearcher</span> mos =<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">new</span> <span style="color: #2b91af;">ManagementObjectSearcher</span>(<span style="color: #a31515;">@"\root\cimv2"</span>, <span style="color: #a31515;">@"Select
* From Win32_PnPEntity WHERE ClassGuid = '"</span>+deviceGuid+<span style="color: #a31515;">"'"</span>);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: #2b91af;">ManagementObjectCollection</span> moc = mos.Get();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">foreach</span> (<span style="color: #2b91af;">ManagementObject</span>
mo <span style="color: blue;">in</span> moc)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: #2b91af;">PropertyDataCollection</span> devsProperties
= mo.Properties;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">foreach</span> (<span style="color: #2b91af;">PropertyData</span>
devProperty <span style="color: blue;">in</span> devsProperties)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">if</span> (devProperty.Type == <span style="color: #2b91af;">CimType</span>.DateTime)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (devProperty.Value != <span style="color: blue;">null</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">else</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">" {0}----->{1}"</span>,devProperty.Name,
devProperty.Value);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (moc.Count > 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">return</span> <span style="color: blue;">true</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">else</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">return</span> <span style="color: blue;">false</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Now, function receives
one input “deviceGUID”. It is nothing but the device type id, common for
windows. So , to find a smart card reader and smart card from my pc I have to
use a GUID -<span style="color: green; font-family: Consolas; font-size: 9.5pt;">{990a2bd7-e738-46c7-b26f-1cf8fb9f1391}
</span><span style="font-family: Consolas; font-size: 9.5pt;">and <span style="color: green;">{50DD5230-BA8A-11D1-BF5D-0000F805F530}</span>. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<u><span style="font-family: Consolas; font-size: 9.5pt;">Basic Class GUID table<o:p></o:p></span></u></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="background: white; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 100%px;">
<tbody>
<tr>
<td style="padding: 0in 0in 0in 0in;">
<div align="center" class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Class<o:p></o:p></span></b></div>
</td>
<td style="padding: 0in 0in 0in 0in;">
<div align="center" class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">GUID<o:p></o:p></span></b></div>
</td>
<td style="padding: 0in 0in 0in 0in;">
<div align="center" class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<b><span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Device Description<o:p></o:p></span></b></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">CDROM<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E965-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">CD/DVD/Blu-ray drives<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">DiskDrive<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E967-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Hard drives<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Display<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E968-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Video adapters<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">FDC<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E969-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Floppy controllers<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">FloppyDisk<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E980-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Floppy drives<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">HDC<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E96A-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Hard drive controllers<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">HIDClass<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">745A17A0-74D3-11D0-B6FE-00A0C90F57DA<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Some USB devices<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">1394<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">6BDD1FC1-810F-11D0-BEC7-08002BE2092F<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">IEEE 1394 host controller<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Image<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">6BDD1FC6-810F-11D0-BEC7-08002BE2092F<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Cameras and scanners<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Keyboard<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E96B-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Keyboards<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Modem<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E96D-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Modems<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Mouse<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E96F-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Mice and pointing devices<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Media<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E96C-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Audio and video devices<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Net<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E972-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Network adapters<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Ports<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E978-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Serial and parallel ports<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">SCSIAdapter<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E97B-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">SCSI and RAID controllers<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">System<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">4D36E97D-E325-11CE-BFC1-08002BE10318<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">System buses, bridges, etc.<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">USB<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">36FC9E60-C465-11CF-8056-444553540000<o:p></o:p></span></div>
</td>
<td style="padding: 0in 0in 0in 0in;" valign="top">
<div class="MsoNormal" style="line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 9.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">USB host controllers and hubs<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<u><span style="font-family: Consolas; font-size: 9.5pt;">Now, there is a problem</span></u><span style="font-family: Consolas; font-size: 9.5pt;">, if we remove and add device very
quickly. It will not update the status in system table. So, after removing a
device from PC, it shows, device is still attached. To overcome the problem, I
used following code- <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">static</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Win32Api</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">public</span> <span style="color: blue;">const</span> <span style="color: blue;">int</span> CM_LOCATE_DEVNODE_NORMAL = 0x00000000;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">public</span> <span style="color: blue;">const</span> <span style="color: blue;">int</span> CM_REENUMERATE_NORMAL = 0x00000000;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">public</span> <span style="color: blue;">const</span> <span style="color: blue;">int</span> CR_SUCCESS = 0x00000000;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> [<span style="color: #2b91af;">DllImport</span>(<span style="color: #a31515;">"CfgMgr32.dll"</span>,
SetLastError = <span style="color: blue;">true</span>)]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">public</span> <span style="color: blue;">static</span> <span style="color: blue;">extern</span> <span style="color: blue;">int</span>
CM_Locate_DevNodeA(<span style="color: blue;">ref</span> <span style="color: blue;">int</span>
pdnDevInst, <span style="color: blue;">string</span> pDeviceID, <span style="color: blue;">int</span> ulFlags);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> [<span style="color: #2b91af;">DllImport</span>(<span style="color: #a31515;">"CfgMgr32.dll"</span>,
SetLastError = <span style="color: blue;">true</span>)]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">public</span> <span style="color: blue;">static</span> <span style="color: blue;">extern</span> <span style="color: blue;">int</span>
CM_Reenumerate_DevNode(<span style="color: blue;">int</span> dnDevInst, <span style="color: blue;">int</span> ulFlags);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">And use it just at the beginning of your code-<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">int</span><span style="font-family: Consolas; font-size: 9.5pt;"> pdnDevInst = 0;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (<span style="color: #2b91af;">Win32Api</span>.CM_Locate_DevNodeA(<span style="color: blue;">ref</span> pdnDevInst, <span style="color: blue;">null</span>,
<span style="color: #2b91af;">Win32Api</span>.CM_LOCATE_DEVNODE_NORMAL) != <span style="color: #2b91af;">Win32Api</span>.CR_SUCCESS) { }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (<span style="color: #2b91af;">Win32Api</span>.CM_Reenumerate_DevNode(pdnDevInst,
<span style="color: #2b91af;">Win32Api</span>.CM_REENUMERATE_NORMAL) != <span style="color: #2b91af;">Win32Api</span>.CR_SUCCESS) { }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<u><span style="font-family: Consolas; font-size: 9.5pt;">Full code-<o:p></o:p></span></u></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">static</span> <span style="color: blue;">void</span> Main()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">int</span><span style="font-family: Consolas; font-size: 9.5pt;"> pdnDevInst = 0;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (<span style="color: #2b91af;">Win32Api</span>.CM_Locate_DevNodeA(<span style="color: blue;">ref</span> pdnDevInst, <span style="color: blue;">null</span>,
<span style="color: #2b91af;">Win32Api</span>.CM_LOCATE_DEVNODE_NORMAL) != <span style="color: #2b91af;">Win32Api</span>.CR_SUCCESS) { }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (<span style="color: #2b91af;">Win32Api</span>.CM_Reenumerate_DevNode(pdnDevInst,
<span style="color: #2b91af;">Win32Api</span>.CM_REENUMERATE_NORMAL) != <span style="color: #2b91af;">Win32Api</span>.CR_SUCCESS) { }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">if</span> (getDeviceFromHWM(<span style="color: #a31515;">"{50DD5230-BA8A-11D1-BF5D-0000F805F530}"</span>))<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt;"> Console</span><span style="font-family: Consolas; font-size: 9.5pt;">.WriteLine(<span style="color: #a31515;">"Card reader is connected"</span>);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt;">Further reference-<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa394353(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/windows/desktop/aa394353(v=vs.85).aspx</a><o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<a href="http://library.wmifun.net/cimv2/win32_pnpentity.html">http://library.wmifun.net/cimv2/win32_pnpentity.html</a><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: green;"><o:p></o:p></span></span></div>
<br />
<div class="MsoNormal">
<br /></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-8470208947391868192013-03-31T09:12:00.002-07:002013-03-31T09:12:33.704-07:00Dynamic property or Extended property in C#<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 14.0pt; line-height: 115%;">I was busy to create architecture of asp.net (C#) project. In
the time of development, I faced a situation where it will be good to have a
dynamic property generation. I did some search, and found many examples. But
after going through all, I found something, which is really nice and solve my
problem. My problems are-<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; tab-stops: 298.05pt; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-size: 14.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">1><span style="font-size: 7pt; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 14.0pt; line-height: 115%;">I need to get all the data fetched from
table in DB in a custom and pre-defined model in c#, but sometime DB queries
can return some columns which are not in the defined properties of predefined
model.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo1; tab-stops: 298.05pt; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-size: 14.0pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">2><span style="font-size: 7pt; line-height: normal;"> </span></span><!--[endif]--><span style="font-size: 14.0pt; line-height: 115%;">When I do serialization of the model
in c#, it should serialize in normal and proper way, with or without extra
columns returned from DB.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<b><span style="font-size: 14.0pt; line-height: 115%;">Example-<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">Suppose, I define a model –<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">Public class EmpModel{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">Public string EmpName{get; set;}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">Public string EmpId{get; set;}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">And I also write three SQL queries-<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">SELECT EmpName,EmpId,EmpAddress from tbl_Employee<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">SELECT EmpName,EmpId,EmpDept from tbl_Employee<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">SELECT EmpName,EmpId,EmpDOB from tbl_Employee<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .25in; tab-stops: 298.05pt;">
<span style="font-size: 14.0pt; line-height: 115%;">Now, as you can see, the queries are returning
three columns, but the model only has two properties. I cannot manage EmpAddress,
EmpDept and EmpDOB in model. As well as, the 3<sup>rd</sup> field will be different
in type also. To manage this situation, I found-<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->1><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">AssemblyBuilder<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->2><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">ModuleBuilder<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->3><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">TypeBuilder<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->4><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">FieldBuilder<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->5><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">PropertyBuilder<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->6><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">MethodAttributes<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in;">
<!--[if !supportLists]-->7><span style="font-size: 7pt;">
</span><!--[endif]--><span style="color: #2b91af; font-family: Consolas; font-size: 14.0pt;">MethodBuilder<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<span style="font-size: 14.0pt;">These are the main
building blocks of my solution.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<b><span style="font-size: 14.0pt;">The theory of the solution is</span></b><span style="font-size: 14.0pt;">, I have to create a class which will have EmpModel as
a base class and with the properties (Extra properties) needed. All these, need
to be done dynamically. <o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<b><span style="font-size: 14.0pt;">For all these</span></b><span style="font-size: 14.0pt;">,
I managed to write two method sets(Three methods), which will handle everything
for me-<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in;">
<b><span style="font-size: 14.0pt;">MethodSet 1 (to bind DB columns with Model properties)-[Contains
two methods]<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 10.0pt;">public</span><span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">void</span>
getModelFromObject<T, T1>(<span style="color: blue;">object</span> valu, <span style="color: blue;">ref</span> <span style="color: #2b91af;">List</span><T>
el,<span style="color: #2b91af;">Dictionary</span><<span style="color: blue;">string</span>,<span style="color: #2b91af;">Type</span>> props) <span style="color: blue;">where</span>
T1 : T, <span style="color: blue;">new</span>()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">DataTable</span> dt = ((<span style="color: #2b91af;">DataSet</span>)valu).Tables[0];<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">Type</span> dynamicType = getType(<span style="color: blue;">typeof</span>(T).Name+ <span style="color: #a31515;">"Ext"</span>,
props, <span style="color: blue;">typeof</span>(T1));<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">foreach</span> (<span style="color: #2b91af;">DataRow</span>
dr <span style="color: blue;">in</span> ((<span style="color: #2b91af;">DataSet</span>)valu).Tables[0].Rows)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
T item = (T)<span style="color: #2b91af;">Activator</span>.CreateInstance(dynamicType);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
getObject<T>(dr, <span style="color: blue;">ref</span> item, dt);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
T tsts = item;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
((<span style="color: #2b91af;">List</span><T>)el).Add(item);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 10.0pt;">public</span><span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">void</span>
getObject<T>(<span style="color: #2b91af;">DataRow</span> dr,<span style="color: blue;">ref</span> T obj, <span style="color: #2b91af;">DataTable</span>
dt)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">foreach</span> (<span style="color: #2b91af;">DataColumn</span>
dc <span style="color: blue;">in</span> dt.Columns)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: blue;">if</span>
(obj.GetType().GetProperty(dc.ColumnName) != <span style="color: blue;">null</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
obj.GetType().GetProperty(dc.ColumnName).SetValue(obj,
dr[dc.ColumnName], <span style="color: blue;">null</span>);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-size: 14.0pt;">MethodSet 2(to create extended
properties)-[Contains one method]<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">public</span> <span style="color: #2b91af;">Type</span>
getType(<span style="color: blue;">string</span> dynamicClassName, <span style="color: #2b91af;">Dictionary</span><<span style="color: blue;">string</span>,
<span style="color: #2b91af;">Type</span>> propertyList, <span style="color: #2b91af;">Type</span> baseClassType)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">bool</span> isNewProperties = <span style="color: blue;">false</span>;
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">AssemblyBuilder</span> assemblyBilder = System.Threading.<span style="color: #2b91af;">Thread</span>.GetDomain().DefineDynamicAssembly<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
(<span style="color: blue;">new</span> <span style="color: #2b91af;">AssemblyName</span>(dynamicClassName
+ <span style="color: #a31515;">"Assembly"</span>), <span style="color: #2b91af;">AssemblyBuilderAccess</span>.Run);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">ModuleBuilder</span> moduleBilder =
assemblyBilder.DefineDynamicModule(dynamicClassName + <span style="color: #a31515;">"Module"</span>);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">TypeBuilder</span> typeBilder =
moduleBilder.DefineType(dynamicClassName, <span style="color: #2b91af;">TypeAttributes</span>.Public
| <span style="color: #2b91af;">TypeAttributes</span>.Class, baseClassType);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">string</span> propertyName = <span style="color: blue;">null</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">Type</span> propertyType = <span style="color: blue;">null</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">var</span> baseClassObj = <span style="color: #2b91af;">Activator</span>.CreateInstance(baseClassType);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> prop <span style="color: blue;">in</span> propertyList)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
propertyName = prop.Key;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
propertyType = prop.Value;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: blue;">var</span> propExist =
baseClassObj.GetType().GetProperty(propertyName);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: blue;">if</span>
(propExist != <span style="color: blue;">null</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: blue;">continue</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">FieldBuilder</span> filedBilder =
typeBilder.DefineField(<span style="color: #a31515;">"_"</span> +
propertyName, propertyType, <span style="color: #2b91af;">FieldAttributes</span>.Private);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">PropertyBuilder</span> propertyBilder =
typeBilder.DefineProperty(propertyName, System.Reflection.<span style="color: #2b91af;">PropertyAttributes</span>.None, propertyType,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">new</span> <span style="color: #2b91af;">Type</span>[] {
propertyType });<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">MethodAttributes</span> GetSetAttr = <span style="color: #2b91af;">MethodAttributes</span>.Public | <span style="color: #2b91af;">MethodAttributes</span>.HideBySig;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">MethodBuilder</span> currGetPropMthdBilder =
typeBilder.DefineMethod(<span style="color: #a31515;">"geter"</span>,
GetSetAttr, propertyType, <span style="color: blue;">null</span>);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">ILGenerator</span> currtGetIL =
currGetPropMthdBilder.GetILGenerator();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currtGetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ldarg_0);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currtGetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ldfld,
filedBilder);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currtGetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ret);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">MethodBuilder</span> currSetPropMthdBilder =
typeBilder.DefineMethod(<span style="color: #a31515;">"seter"</span>,
GetSetAttr, <span style="color: blue;">null</span>, <span style="color: blue;">new</span>
<span style="color: #2b91af;">Type</span>[] { propertyType });<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: #2b91af;">ILGenerator</span> currSetIL =
currSetPropMthdBilder.GetILGenerator();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currSetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ldarg_0);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currSetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ldarg_1);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currSetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Stfld,
filedBilder);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
currSetIL.Emit(<span style="color: #2b91af;">OpCodes</span>.Ret);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
propertyBilder.SetGetMethod(currGetPropMthdBilder);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
propertyBilder.SetSetMethod(currSetPropMthdBilder);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
isNewProperties = <span style="color: blue;">true</span>; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">if</span> (isNewProperties == <span style="color: blue;">false</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
<span style="color: blue;">return</span> baseClassType; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">return</span> typeBilder.CreateType();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-size: 14.0pt;">And now, the use of these methods-<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.5in;">
<span style="color: #2b91af; font-family: Consolas; font-size: 10.0pt;"> List</span><span style="font-family: Consolas; font-size: 10.0pt;"><<span style="color: #2b91af;">IEmp</span>>
obj = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">IEmp</span>>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">Dictionary</span><<span style="color: blue;">string</span>,
<span style="color: #2b91af;">Type</span>> props= <span style="color: blue;">new</span>
<span style="color: #2b91af;">Dictionary</span><<span style="color: blue;">string</span>,
<span style="color: #2b91af;">Type</span>>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;">
props.Add(<span style="color: #a31515;">"EmpAddress"</span>, <span style="color: blue;">typeof</span>(<span style="color: blue;">string</span>));//if
more then one add more.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: #2b91af;">modelPlatform</span>.init().getModelFromObject<<span style="color: #2b91af;">IEmp</span>,<span style="color: #2b91af;">Emp</span>>(ds,
<span style="color: blue;">ref</span> obj, val);//ds- is the dataset returned from DB<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10.0pt;"> <span style="color: blue;">return</span> obj;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-size: 14.0pt;">Same for two other queries also.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-size: 14.0pt;">That’s it, Enjoy.<o:p></o:p></span></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-68562506256332025992013-03-19T02:03:00.000-07:002013-06-06T11:07:58.961-07:00Advance LED display<br />
<div class="MsoNormal">
I did some betterment in Led display. By using 8051/52, this
display is working smoothly. All the code and the character generation is done
by C. I used only 15 pins of Micro-controller for this display. Another important
component used here is 74HC595. To use minimum amount of PINs, I used parallel
to serial conversion. 74HC595 is basically used as a parallel to serial
converter. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Demo is here- youtu.be/WFTibkb-cx4</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/WFTibkb-cx4?feature=player_embedded' frameborder='0'></iframe></div>
<div class="MsoNormal">
<br />
<b>To get the code provide your mail id in comment section-</b></div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-29612934796288353912013-03-05T12:41:00.001-08:002014-06-25T23:03:08.639-07:00MVPC (semi- MVVM) implementation for Android app Development<br />
<div class="MsoNormal">
<b><u>Introduction<o:p></o:p></u></b></div>
<div class="MsoNormal">
When I was trying to implement MVC for Android Application,
the concept of “Observer” really attracts me. It really put me in a situation,
where, I have to think, should I go for MVC or MVPC. Because, I think, MVPC would be more
organized and maintainable way for this Android application. Along with this thinking, possibility of
total segregation of event listeners in code, make me think about MVPC for this
project seriously.<o:p></o:p></div>
<div class="MsoNormal">
[Note: <code><span style="font-size: 10.0pt; line-height: 115%; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">Observer</span></code>
is the interface to be implemented by objects that receive notification of
updates on an <code><span style="font-size: 10.0pt; line-height: 115%; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">Observable</span></code> object. (<code><span style="font-size: 10.0pt; line-height: 115%; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">Observer</span></code> Triggers, when <code><span style="font-size: 10.0pt; line-height: 115%; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">Observable </span></code>notifies any
changes on it)]<o:p></o:p></div>
<div class="MsoNormal">
<b><u><br /></u></b></div>
<div class="MsoNormal">
<b><u>Why MVPC?<o:p></o:p></u></b></div>
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Model-View-Presenter-Controller. In MVC, View
notifies Controller, Controller notifies Model, and Model notifies View. It is
really very compact and smart enough Architecture. But, Presenter is another
useful architecture entity. It will give another level of abstraction to the
project between View and Controller. This will make the view much independent
and make controller more flexible. With
this architecture, we can replace the existing view with a new one, so smartly,
that we may have to do no changes in Controller. <o:p></o:p></span><br />
<b><u><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></u></b>
<b><u><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Do we
really need MVPC in Android Application?<o:p></o:p></span></u></b><br />
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">We may not need MVPC for today or tomorrow, but
day after tomorrow. As year goes, a View of an application becomes monotonous
to the user, or else, we may need to implement different views (Theme) to the
project. To do all the above, we really don’t want to hamper any application
flow. MVPC will be one of the best fit
architecture for this.<o:p></o:p></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPBj739788wWxMXJYlbQfZcvkVNg576aU2jhjFhyzHCw2VqGtlVVyyp0yrsBiW7y_581xic3VQa51pWrf9PS-HEGkthVm7UBSJJM3AlyGt_o3hDCFRX1-3n_X1zgoOeZdSC1IfT1YVcJTg/s1600/mvpc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPBj739788wWxMXJYlbQfZcvkVNg576aU2jhjFhyzHCw2VqGtlVVyyp0yrsBiW7y_581xic3VQa51pWrf9PS-HEGkthVm7UBSJJM3AlyGt_o3hDCFRX1-3n_X1zgoOeZdSC1IfT1YVcJTg/s200/mvpc.png" height="200" width="188" /></a></div>
<div align="center" style="text-align: center;">
<br /></div>
<br />
<b><u><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Code
Example-<o:p></o:p></span></u></b><br />
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">In MainActivity.java-<o:p></o:p></span><br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">class</span></b><span style="font-family: Consolas; font-size: 10pt;"> MainActivity </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">extends</span></b><span style="font-family: Consolas; font-size: 10pt;"> Activity {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> User </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> UserController
</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">controller</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> UserPresenter
</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">presenter</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #646464; font-family: Consolas; font-size: 10.0pt;">@Override</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">protected</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">void</span></b><span style="font-family: Consolas; font-size: 10pt;"> onCreate(Bundle
savedInstanceState) {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">super</span></b><span style="font-family: Consolas; font-size: 10pt;">.onCreate(savedInstanceState);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> setContentView(R.layout.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">activity_main</span></i><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">= </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">new</span></b><span style="font-family: Consolas; font-size: 10pt;"> User();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">controller</span><span style="font-family: Consolas; font-size: 10pt;">= </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">new</span></b><span style="font-family: Consolas; font-size: 10pt;"> UserController(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">this</span></b><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">.addObserver(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">controller</span><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">presenter</span><span style="font-family: Consolas; font-size: 10pt;">= </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">new</span></b><span style="font-family: Consolas; font-size: 10pt;"> UserPresenter(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> Button
test_btn=(Button) findViewById(R.id.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">btn_Test</span></i><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> Button
test_btn2=(Button) findViewById(R.id.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">btn_Test2</span></i><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> test_btn.setOnClickListener(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">presenter</span><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> test_btn2.setOnClickListener(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">presenter</span><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
In UserPresenter.java-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">class</span></b><span style="font-family: Consolas; font-size: 10pt;"> UserPresenter </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">implements</span></b><span style="font-family: Consolas; font-size: 10pt;"> OnClickListener {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">private</span></b><span style="font-family: Consolas; font-size: 10pt;"> User </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_model</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> UserPresenter(User
model)</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_model</span><span style="font-family: Consolas; font-size: 10pt;">=model;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #646464; font-family: Consolas; font-size: 10.0pt;">@Override</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">void</span></b><span style="font-family: Consolas; font-size: 10pt;"> onClick(View v) {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">switch</span></b><span style="font-family: Consolas; font-size: 10pt;">(v.getId())</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">case</span></b><span style="font-family: Consolas; font-size: 10pt;"> R.id.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">btn_Test</span></i><span style="font-family: Consolas; font-size: 10pt;">:</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_model</span><span style="font-family: Consolas; font-size: 10pt;">.setCount();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">break</span></b><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">case</span></b><span style="font-family: Consolas; font-size: 10pt;"> R.id.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">btn_Test2</span></i><span style="font-family: Consolas; font-size: 10pt;">:</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_model</span><span style="font-family: Consolas; font-size: 10pt;">.setCount();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_model</span><span style="font-family: Consolas; font-size: 10pt;">.setCount();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">break</span></b><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">}</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
In UserModel.java-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">class</span></b><span style="font-family: Consolas; font-size: 10pt;"> User </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">extends</span></b><span style="font-family: Consolas; font-size: 10pt;"> Observable {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">int</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">count</span><span style="font-family: Consolas; font-size: 10pt;">=0;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> User(){</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">void</span></b><span style="font-family: Consolas; font-size: 10pt;"> setCount()</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">count</span><span style="font-family: Consolas; font-size: 10pt;">++;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> setChanged();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> notifyObservers();</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">} <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
In UserController.java-<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">class</span></b><span style="font-family: Consolas; font-size: 10pt;"> UserController </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">implements</span></b><span style="font-family: Consolas; font-size: 10pt;"> Observer {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> User </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">private</span></b><span style="font-family: Consolas; font-size: 10pt;"> Activity </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_act</span><span style="font-family: Consolas; font-size: 10pt;">;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;">
UserController(Activity act )</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
{</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_act</span><span style="font-family: Consolas; font-size: 10pt;">=act;</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
}</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">
</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><span style="color: #646464; font-family: Consolas; font-size: 10.0pt;">@Override</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">public</span></b><span style="font-family: Consolas; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt;">void</span></b><span style="font-family: Consolas; font-size: 10pt;"> update(Observable
observable, Object data) {</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> TextView
lbl= (TextView)</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_act</span><span style="font-family: Consolas; font-size: 10pt;">.findViewById(R.id.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">lbl_Text</span></i><span style="font-family: Consolas; font-size: 10pt;">);</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> lbl.setText(</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt;">""</span><span style="font-family: Consolas; font-size: 10pt;">+((MainActivity)</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">_act</span><span style="font-family: Consolas; font-size: 10pt;">).</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt;">mUser</span><span style="font-family: Consolas; font-size: 10pt;">.getCount());</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;"> }</span><span style="font-family: Consolas; font-size: 10.0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 10pt;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<br />
<br />Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com3Kolkata, West Bengal, India22.572646 88.36389499999995722.103410999999998 87.718447999999952 23.041881 89.009341999999961tag:blogger.com,1999:blog-578840824054586846.post-35273393737068048462013-02-11T10:07:00.000-08:002013-02-11T10:42:19.417-08:008x8 LED Display using 8051 and c<div class="MsoNormal">
<br />
<br />
<div class="MsoNormal">
<u>Basic Idea:<o:p></o:p></u></div>
<div class="MsoNormal">
Creating simple things is always good for a learner like me.
I created a simple Led display using 8051. Total pin used is 2 ,for character
generation. So, as we can see we can use 2051 for this kind of display. One set
of pin is to scan through row and another set of pin to handle LED (On/Off) by column.
The basic catch behind this circuit is serial data transmission, which makes
this project cost effective. <o:p></o:p></div>
<div class="MsoNormal">
<u>Demo:</u></div>
<div class="MsoNormal">
<u>http://youtu.be/epC1AdFCQTw</u></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/epC1AdFCQTw" width="560"></iframe></div>
</div>
Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-26570116949885102232012-03-01T11:34:00.000-08:002012-03-01T11:34:47.959-08:00Objective-C basic - [import from library and user created file]<div class="MsoNormal">Now we will discuss about objective –c in more details. If we will see a code in objective-c ,at the top , then we will get import key word followed by file names. Here we may find two different pattern of declaration. <o:p></o:p></div><div class="MsoNormal"><span style="background: yellow; mso-highlight: yellow;"><b>#import <someFileName.h></b></span><o:p></o:p></div><div class="MsoNormal">And<o:p></o:p></div><div class="MsoNormal"><b><span style="background: yellow; mso-highlight: yellow;">#import “someFileName.h”</span> </b> <o:p></o:p></div><div class="MsoNormal">What is the difference between these?<o:p></o:p></div><div class="MsoNormal">Nothing tough, first one is for a header file from library folder and second one is for a header file from application folder itself.<o:p></o:p></div><div class="MsoNormal">Very easy, right?<o:p></o:p></div><div class="MsoNormal">Example-<o:p></o:p></div><div class="MsoNormal"><span style="background: yellow; mso-highlight: yellow;"><b>#import <foundation/foundation.h></b> //import foundation header file from library<o:p></o:p></span></div><div class="MsoNormal"><span style="background: yellow; mso-highlight: yellow;"><b>#import “myHeader.h”</b> //import myHeader.h file from my project/app folder.</span><o:p></o:p></div><div class="MsoNormal">That’s it. See you in next post.<o:p></o:p></div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-55575394503296861952012-01-15T11:15:00.000-08:002012-01-20T02:51:45.109-08:00What is MVC? How it is implemented in iPhone development?<div style="text-align: justify;"><br />
</div><div class="MsoNormal" style="text-align: justify;">MVC, a much known term in software industry right now. I will not spend much time to explain MVC; rather, how it is implemented in IPhone will get more priority in this article. Let’s start.<o:p></o:p></div><div class="MsoNormal" style="text-align: justify;">MVC - simply Model View Controller. <o:p></o:p></div><div class="MsoNormal" style="text-align: justify;">Now take a simple example. Suppose a car. It has a body, four wheels, one steering and one engine. Now, engine is a module, steering is a controller, wheel is a separate module and guess what, body is view. Pretty simple, right. Now come out from the car. In software, an object which represents project entities is module. Controller will do various operations with modules depending on different commands and commands will be sending user interface [view] and the output result will be shown in view itself.<o:p></o:p></div><div class="MsoNormal" style="text-align: justify;">It’s done.<o:p></o:p></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjgMpjZbIIkkmUQVoYUbugsQqx2BtTlaOjvo_TNG_OD5omrhF3-akgJ6SJmgRfCgV8YpPz_ErRBrdoM6N1Wdg6b22oJlBUirj_IDVOmHukdmsLN9MajDG91Id3FN4Z_oeCLMSlF8QsLJH7/s1600/mvc.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="mvc iphone" border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjgMpjZbIIkkmUQVoYUbugsQqx2BtTlaOjvo_TNG_OD5omrhF3-akgJ6SJmgRfCgV8YpPz_ErRBrdoM6N1Wdg6b22oJlBUirj_IDVOmHukdmsLN9MajDG91Id3FN4Z_oeCLMSlF8QsLJH7/s320/mvc.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">MVC Architecture </td></tr>
</tbody></table><div class="MsoNormal" style="text-align: justify;"><br />
<br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div class="MsoNormal" style="text-align: justify;"><!--[if !mso]> <style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style> <![endif]--><!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style> <![endif]--> <br />
<div class="MsoNormal">Cocoatouch is a building block of iPhone development. It is solely following MVC for development. As we understood previously, it has model, view and controller, iPhone development follows the same.<span> </span>When we create an application using xCode, it will give us a specific folder structure with the support of MVC itself. In the folder one can see view and viewController files.<span> </span>There will be two kinds of file or rather we can say same named files with two different extensions [*.h , *.m]. </div><br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnfTYYtbafnNI2TizSYI8wJ7-y3BP0Q8QXqbbOF-Hug96-oX2l8xzcQvhaqm8yJuwPXjBVZ4LjZeavzvwhe3_f4bE-f9Iew46XMCYBayQ1p8BVYamyJIXaHi9BKSx0UpQPuIcQ48JrM8O/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnfTYYtbafnNI2TizSYI8wJ7-y3BP0Q8QXqbbOF-Hug96-oX2l8xzcQvhaqm8yJuwPXjBVZ4LjZeavzvwhe3_f4bE-f9Iew46XMCYBayQ1p8BVYamyJIXaHi9BKSx0UpQPuIcQ48JrM8O/s1600/1.jpg" /></a></div><div align="center" class="MsoNormal" style="text-align: center;"><span><br />
</span></div><div class="MsoNormal">Now, let’s see ,what is in it. </div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white;">[.H] file will contain something like ----</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@interface MainViewController : UIViewController {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">UILabel *label;// label is added to it </span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@property (nonatomic, retain) IBOutlet UILabel *label;</span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>//will be used as a reference to controller</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@end</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;">Here we can see, it is an interface which inherits UIViewController[Master class for all view]. It also contains a label[Added by us].</span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal">[.m]file will contain ---</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">#import "MainViewController.h"</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">#import "MainView.h"</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@implementation MainViewController</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@synthesize label; //to do sync properties in interface</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">if</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"> </span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">(self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Custom initialization</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">return</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"> </span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">self;</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">/*</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">- (void)viewDidLoad {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">[super viewDidLoad];</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">*/</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">/*</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Override to allow orientations other than the default portrait orientation.</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Return YES for supported orientations</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">return (interfaceOrientation == UIInterfaceOrientationPortrait);</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">*/</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">- (void)didReceiveMemoryWarning {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">[super didReceiveMemoryWarning]; </span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Releases the view if it doesn't have a superview</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10.5pt;">// Release anything that's not essential, such as cached data</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">- (void)dealloc {</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">[label release];</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">[super dealloc];</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; line-height: 9.75pt; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="background: none repeat scroll 0% 0% white; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; color: black; font-family: "Courier New"; font-size: 10pt;">@end</span><span style="color: black; font-family: Consolas; font-size: 9pt;"></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Here, we implement the created interface in .H file as far as MVC concerns.<span> </span>And it will work with all the properties declared in interface. Here we use @synthesize<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> </span>to synchronize attributes in [.m] and [.h]. </div><div class="MsoNormal">Now in this way we created a controller and an interface for view. Sounds confusing?<span> </span>Yes , View.h file will work as an interface for view [normal MVC concept].<span> </span></div><div class="MsoNormal">We will have .xib files too. It is basically an xml which represents the actual UI.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_8cl2LMxjyxhnb-_ouA1ZRlr8MqI5Y__79SmUR6ZnYZWPkvMlnye7b_tQBJRCV-VE3KIYjk2ptKgo3PVuPiluz7154i6p7ify-phzEhm9iYhVowHoSpxIEfJTqJw4LjX3HCt542r5LjFT/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_8cl2LMxjyxhnb-_ouA1ZRlr8MqI5Y__79SmUR6ZnYZWPkvMlnye7b_tQBJRCV-VE3KIYjk2ptKgo3PVuPiluz7154i6p7ify-phzEhm9iYhVowHoSpxIEfJTqJw4LjX3HCt542r5LjFT/s1600/2.jpg" /></a></div><div class="MsoNormal"><br />
</div><div align="center" class="MsoNormal" style="text-align: center;"><span></span></div><div class="MsoNormal">Now , from the toolbox we can get all available controls ,which we can drag and drop to the UI to design as per our requirement. [The process of designing will not be here in this article. It’s all about MVC in iPhone]</div><div align="center" class="MsoNormal" style="text-align: center;"><span></span></div><div class="MsoNormal">Now it is the time to connect the UI to View to interact with controller.</div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG7o7vfWOfCmhgYy6Tjmyu4vOgRNbH3FC7cjAwQ6y14Mg20wYvs98If8lcv2K4brqS0FLfzaarCupzNSM3CXww6ykjpF4hbeWgxFhRaPp0T4VOouc2L1QPGqXltLU4nTadjB5eiuxLQ_Yp/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG7o7vfWOfCmhgYy6Tjmyu4vOgRNbH3FC7cjAwQ6y14Mg20wYvs98If8lcv2K4brqS0FLfzaarCupzNSM3CXww6ykjpF4hbeWgxFhRaPp0T4VOouc2L1QPGqXltLU4nTadjB5eiuxLQ_Yp/s320/3.jpg" width="320" /></a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">In view controller connection window, we can find all the added controls in a list. By dragging the listed control reference to the View object cube we can map the UI objects to view properties. All the code related to it will be auto generated. So in this way view and controller will be connected. </div><div class="MsoNormal">Now, we can create a custom model to interact with values sent from view. To do that we need to create an interface of a model in myCar.h file-</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">#import <foundation/Foundation.h></span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@interface myCar : NSObject {</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> NSString *name;</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@property (nonatomic, retain) NSString *name;</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">+ (myCar *)sharedModel;</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@end</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal">Now we are ready to implement the interface in myCar.m file.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">#import "myCar.h"</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@implementation myCar</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> \\<span> </span><span> </span>here the implementation </span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@synthesize name;\\ synthesize with interface implementation</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">- (id) init</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">{</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> self = [super init];</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> if</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> </span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">(self != nil) {</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> name = @"";</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> return</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> </span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">self;</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> </span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">- (void) dealloc</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">{</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> [name release]; \\release memory from device</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> [super dealloc];</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">}</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"> </span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">@end</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal">Our model is also created. <span> </span>It’s the time to implement model in our code. See bellow-</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">- (IBAction)textChanged:(id)sender</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">{</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> myCar *car = [myCar sharedModel];</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;"> model.text = textField.text;</span><span style="background: none repeat scroll 0% 0% yellow; font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background: none repeat scroll 0% 0% yellow; font-family: "Courier New"; font-size: 10pt;">}</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">It is just an over view. Explore much by creating an app.</div><div class="MsoNormal">Enjoy</div></div><div class="MsoNormal" style="text-align: justify;"><o:p></o:p></div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-3192022160245315232012-01-11T04:04:00.000-08:002012-01-11T04:13:45.815-08:00Nodejs with database access<div class="MsoNormal">Now, it is the time for database (mysql) access. Yes, now we will access database and show it to pages. In my previous tutorial, I already explained page creation and handling requests. Here, to access database we need driver and a connection string. Driver will do all the work for you and make the thing very easy and smooth. <o:p></o:p></div><div class="MsoNormal">See the code-<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var http = require('http');<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var sys = require('util');<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var hash=require('./hashish'); </span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;"> //lib can be downloaded [here ‘./’ part is showing location of the library.</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;">//I stored the lib in application directory.]</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var qs = require('querystring');<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var mysql = require('./mysql'); </span><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;"> //lib can be down loadded<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;">//----Create mysql client using mysql lib<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;">//===========================================================</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var client = mysql.createClient({<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> user: 'root',</span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;"> //-------will change as per mysql server user and password</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> password: 'root'<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">});<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;">//----------Connect to Database<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;">//===============================================================</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">function db (client)<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">{</span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;">// use myDB database from mysql</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.query('USE myDB, function(error, results) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> if(error) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log('Error: ' + error.message);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.end();<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> return;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> }<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> });<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">}<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: yellow;"> </span><span style="background-color: white;">//----------------------set data to title_tbl</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">function SetData (client)<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">{<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> var values = ['1', '2', 'technobelities'];<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.query('INSERT INTO title_tbl SET company_id = ?, title_id = ? , description = ?', values,<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> function(error, results) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> if(error) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log("Error: " + error.message);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.end();<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> return;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> }<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log(' Inserted Data: ' + results.affectedRows + ' row.');<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log(' inserted Id: ' + results.insertId);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> }<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> );<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> GetData(client);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">}<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial;"><span style="background-color: white;">//---------------------get data from db</span><span style="background-color: yellow;"><o:p></o:p></span></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">function GetData (client,res)<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">{<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var data="";<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.query(<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> 'SELECT * FROM title_tbl',<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> function selectCb(error, results, fields) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> if (error) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log(' Error: ' + error.message);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.end();<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> return;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> }<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> if(results.length > 0)<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> var firstResult = results[0];<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> data= (' Company id: ' + firstResult['company_id'] + ';') +dataContent;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> data=('Description: ' + firstResult['description']+ ';') +dataContent;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">res.end(data);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> }<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log(data);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> });<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> client.end();<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> console.log('Connection closed');<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"> return data;<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">}<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">var server = http.createServer(function(req, res) {<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">db(client);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">GetData(client);<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">});<o:p></o:p></span></div><div class="MsoNormal"><span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">server.listen(8000);<o:p></o:p></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Its …done. Try to customize code as par requirement. Feel free to ask any query.<o:p></o:p></div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-34212552148035921532012-01-03T03:40:00.000-08:002012-01-11T04:14:39.403-08:00Nodejs with handlers in javascript<div class="MsoNormal"><br />
</div><div class="MsoNormal">We can point site URL to a specific handler, created by nodejs(server side javascript). Hummm, Sounds exceptional. Let’s see. We are able to create a server in <a href="http://technobelities.blogspot.com/2012/01/create-server-in-nodejs-server-side.html" target="_blank">previous post</a>. Have you noticed request and response in the code? Request object contains all the Request properties. <b>URL </b>(string) is one of it. [In previously it was <b>uri(object)</b>.] From the url property we can get the requested url path and according to that we can handle the request as per plan. Pretty simple. Now see the code[written in notepad, you can use any other editor] -</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">var http = require('http');</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">var sys = require('util');</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> var server = http.createServer(function(req, res) {</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> switch (req.url) { //check the request url</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> case '/’:</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> display_home(req, res); //pointing handler</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> break;</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> case '/registration’: </span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> display_registration (req, res);</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> break;</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> default:</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> show_404(req, res);//no handler found</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> break;</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> }</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">});</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">server.listen(8088);</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//====== Server generation and handler pointing is done======</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//==========First handler===============</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">function display_ home (req, res) {</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//======response type set=========</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> res.writeHead(200, {'Content-Type': 'text/html'});</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//=======response content============== </span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">res.end(</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> '<div> This is your home page</div><a href=”/registration”> Click to register</a><a href=”/nothing”> nothing</a>'</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> ); </span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//========Second handler=================</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">function display_ registration (req, res) {</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> res.writeHead(200, {'Content-Type': 'text/html'});</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> res.end(</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> '<div> This is your registration page</div>'</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> ); </span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">//==========Error handler==========</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">function show_404(req, res) {</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> res.writeHead(404, {'Content-Type': 'text/plain'});</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> res.end('No handler found');</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Save the code with js extension. Run this with node command as shown in previous post and traverse through your first nodeJs site.</div><div class="MsoNormal">Let me know your quires.</div><div class="MsoNormal">Enjoy. </div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-75213888077823150932012-01-03T02:53:00.000-08:002012-01-11T04:14:58.976-08:00Create server in NodeJs - Server side Javascript<div class="MsoNormal">Nodejs is a simple javascript [Server side] which creates an http server with a specified port. Yes, it is creating a http server by using its library. Now suppose you have IIS or apache in your machine, running on a port 80. Now, if we run bellow code , it will create a server with a different port number[suppose : 8088]. Now , if you run the url : <a href="http://localhost/">http://localhost</a>/ and <a href="http://localhost:8088/">http://localhost:8088/</a> ,two different server will be accessed. </div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">var http = require("http"); //import http</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">http.createServer(function(request, response) { //create server in node js</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> response.writeHead(200, {"Content-Type": "text/plain"});</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> response.write(“<h1>Hi to nodejs</h1>”); // return for the request.</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> response.end();</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}).listen(8088); //port for the server is specified</span></div><div class="MsoNormal"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span> </div><div class="MsoNormal">A small code for creating server dynamically. We can see- request and response as input with create Server. These will contain the request and response object. I bit strange structure, right. Here createServer function takes a function as an input which takes request and response as it’s input. If any doubt ,please ask me. </div><div class="MsoNormal">But, how or where we will run this code? A bit work needs to be done. </div><div class="MsoNormal">Download NodeJs from <a href="http://nodejs.org/">http://nodejs.org/</a> . Run it in in the development machine[it supports Windows,Linux and MAC; I used windows]. You will get the Nodejs folder in the installation location. It contains - node_modules, node.exe and npm.cmd. To execute the code above , you have to use node.exe . Go to command prompt -> nodejs folder. This is where you will use your code. Create a folder called MyServer. Save your code in it [Suppose : server.js]. That’s it. You are ready to go. </div><div class="MsoNormal">Command to execute the code-</div><div class="MsoNormal"><br />
</div><div class="MsoNormal" style="margin-left: 0.25in;">>node “C:\Program Files\nodejs\MyServer\server.js”</div><div class="MsoNormal" style="margin-left: 0.25in;"><br />
</div><div class="MsoNormal">Now , open any browser and put <a href="http://localhost:8088/">http://localhost:8088/</a> in address bar. You will see a big -> Hi to nodejs. You can design any page structure using HTML in the place of “<h1>Hi to nodejs</h1>”.</div><div class="MsoNormal">That’s it for now. Enjoy <span style="font-family: Wingdings;">J</span></div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0tag:blogger.com,1999:blog-578840824054586846.post-34729815925248801432011-12-27T03:06:00.002-08:002012-03-01T11:09:52.159-08:00Objective-C basic<div class="MsoNormal">Objective C</div><div class="MsoNormal">This is a primitive language used in Apple device application development (IOS/Macintosh). The base of this language is c. Objective –C is an easy to understand and object oriented programming language. Objective – c comes with library, development tool and OOPs. </div><div class="MsoNormal">The basic 3 parts are-</div><div class="MsoNormal"><b>1. inter- face</b><br />
Signature class. [*.h file]<br />
<b>2. implementation</b><br />
Definition of a class.[*.m file]<br />
<b>3. Instantiation</b><br />
instantiation of class by allocating memory.</div><div class="MsoNormal">It is a dynamic language. It supports open dynamic binding to create easy architecture for user interface.</div><div class="MsoNormal">Basic structure of a program-</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">#include <stdio.h></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">//----Header file added------</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">int main(void)</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">{</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;"> printf("Hello!");</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;"> return ;</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">}</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">//----------Body Ends-----</span><span style="font-family: 'Courier New'; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal">Code file extension will be “.m”. It complies line by line. So if we need to call a function in other function, caller function should be bellow of called function.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">#include <stdio.h></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">-(void) called</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">{</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">}</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">-(void) caller</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">{</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;"> called();</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">}</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">int main(void)</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">{</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;"> caller();</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;"> return ;</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; font-family: 'Courier New'; font-size: 10pt;">}</span><span style="font-family: 'Courier New'; font-size: 10pt;"></span></div><div class="MsoNormal" style="text-indent: 0.5in;"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">For MAC ,Object compilation –</div><div class="MsoNormal"><b><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; color: black;">$ gcc -o hello hello.m \ -L /System/Library/Frameworks/Foundation.framework/Foundation</span><span style="background-attachment: scroll; background-clip: initial; background-color: #ffecf5; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; color: black;"></span></b></div><div class="MsoNormal">Run compiled code on MAC</div><div class="MsoNormal"><b><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat; color: black;">$ ./hello</span></b></div><div class="MsoNormal">Compiler for Objective – c can be downloaded from - <span style="color: navy;"><a href="http://www.gnustep.org/experience/Windows.html">http://www.gnustep.org/experience/Windows.html</a>. [For windows]</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b><span style="font-size: 14pt; line-height: 115%;"> Key Words----</span></b></div><table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"><tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@interface</span></b></div></td> <td style="border-color: windowtext windowtext windowtext -moz-use-text-color; border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">used to declare of class or interface.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@implementation</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">used to define a class or category.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@protocol</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">used to declare a formal protocol.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@end</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">ends the declaration, definition, category or protocol.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@private</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Limits the scope of an instance variable to the class that declares it.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@protected</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Limits instance variable scope to declaring and inheriting classes.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@public</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Removes restrictions on the scope of instance variables.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@try</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Defines a block within which exceptions can be thrown.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@throw</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Throws an exception object.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@catch</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Catches an exception thrown within the preceding @try block.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@finally</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">A block of code that is executed whether exceptions were thrown or not in a @try block.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@class</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Declares the names of classes defined elsewhere.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@selector(method_name)</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">It returns the compiled selector that identifies method_name.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@protocol(protocol_name)</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Returns the protocol_name protocol (an instance of the Protocol class). (@protocol is also valid without (protocol_name) for forward<br />
declarations.)</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@encode(type_spec)</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Yields a character string that encodes the type structure of type_spec.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@"string"</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Defines a constant NSString object in the current module and<br />
initializes the object with the specified 7-bit ASCII-encoded string.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">@synchronized()</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">Defines a block of code that must be executed only by one thread<br />
at a time.</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">bool</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: navy;">It takes YES /NO</span></div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">'self'</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div></td> </tr>
<tr> <td style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: navy;">‘Super’</span></b></div></td> <td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div></td> </tr>
</tbody></table><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Example code –</b></div><div class="MsoNormal"><br />
</div><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">#include <objc/Object.h></span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">@interface Car:Object</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">{</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> //For instance variables </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">- (void)company;</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">@end</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">#include <stdio.h></span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">@implementation Car</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">- (void)company</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">{</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> printf("BMW!\n");</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">@end</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">#include <stdlib.h></span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">int main(void)</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">{</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> id myCar;</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> myCar =[Car new];</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> [myCar company];</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> </span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> [myCar free];</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"> return EXIT_SUCCESS;</span></pre><pre><span style="background-attachment: scroll; background-clip: initial; background-color: yellow; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;">}</span><span style="color: black; font-size: 11pt;"></span></pre><div class="MsoNormal"><br />
</div>Subhadip Ghoshhttp://www.blogger.com/profile/05023630165160710881noreply@blogger.com0