• Wriju's BLOG

    Silverlight

    • 0 Comments

    Formally known as WPF/E, Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of Microsoft .NET–based media experiences and rich interactive applications for the Web.

    Find out more resources from MIX. To be  updated keep on checking Microsoft Silverlight

    Silverlight

    Namoskar!!!

  • Wriju's BLOG

    ADO.NET Entity Framework Update

    • 0 Comments

    Microsoft decided to launch ADO.NET Entity Framework and Tools during the first half of 2008 as an update to the Orcas release of the .NET Framework and Visual Studio.

    For more in details please refer

    ADO.NET Entity Framework Update

    Microsoft’s Data Access Strategy

    Namoskar!!!

  • Wriju's BLOG

    MIX 2007 Session

    • 0 Comments

    MIX07 sessions are now available for offline viewing. This download is available in both wmv and for Zune or else you can play it using Silverlight (the scale down version of WPF known as WPF/E).

    http://sessions.visitmix.com/ 

    Recommended session,

    DEV04 - Using LINQ to Dramatically Improve Data Driven Development in Web Applications by Anders Hejlsberg

    Namoskar!!!

     

  • Wriju's BLOG

    Orcas Beta 1 ADO.NET vNext First Look

    • 2 Comments

    What is ADO.NET vNext or Entity Framework? It has been a long journey for the application development and data access. Starting from DLib,… DAO, ADO, ADO.NET. Now the world is for ADO.NET vNext or Entity Framework model. This is to increase the level of abstraction and avoid the change mismatch. In Orcas the designer is available for wizard. Let us see how we can leverage that,

     

    Create a Windows Application using Orcas Beta 1.  Then from the Solution Explorer add “ADO.NET Entity Data Model”.

    clip_image002[3]

    Then choose the option “Generate From database”.

    clip_image004[1]

     

    Then point to the database you are targeting.

    clip_image006[1]

     

    Then choose the Tables  

    clip_image008[1] 

    Now add GridView and a Button (to load the data from database). Add the following code in your ButtonClick event. You have to use using NorthwindModel;

     

    private void button1_Click(object sender, EventArgs e)

    {

        NorthwindEntities db = new NorthwindEntities();

     

        var q = from c in db.Customers

                select c;

     

        dataGridView1.DataSource = q.ToList();

    }

     

    Now you run the apps to see the output.

     

    Let me explain you what it is. It creates couple of files when you use wizard for Entity. In the file Model1.cs it creates a context class with the name NorthwindEntities and we have to initialize this class with the connection string. By default it takes the connection string located in Apps.config (which gets there while choosing the database).

     

    You can add search queries like,

     

    var q = from c in db.Customers

            where c.City == txtCity.Text

            select c;

     

    In txtCity you can pass dynamic input at runtime.

     

    Hope you have enjoyed this.

     

    Namoskar!!!

     

  • Wriju's BLOG

    Windows Live Writer (Beta) : Using Amazing Tool for blogging

    • 2 Comments

    I though that I must dedicate my first blog entry which I have used for this blog. You can get this from http://get.live.com/betas/writer_betas and enjoy the power.

    image

    Namoskar!!!

  • Wriju's BLOG

    Orcas Beta 1: When ADO.NET EDM Wizard is not working

    • 0 Comments

    You might face the same issue as I faced today. I was trying to generate an Entity Data Model using the wizard and the code file was almost empty. So I was not able to implement that model to display the records.

     

    This is a known issue and the fix is available at Microsoft. Please go ahead and download the fix from http://www.microsoft.com/downloads/details.aspx?FamilyID=f69e9eb8-0ebd-4fba-a4cc-2050297ba75b&DisplayLang=en and enjoy the feature.

     

    Namoskar!!!

  • Wriju's BLOG

    Design Patterns Resources

    • 1 Comments

    A nice site at http://www.dofactory.com/Patterns/Patterns.aspx

     

     

    Creational Patterns

      Abstract Factory

      Creates an instance of several families of classes

      Builder

      Separates object construction from its representation

      Factory Method

      Creates an instance of several derived classes

      Prototype

      A fully initialized instance to be copied or cloned

      Singleton

      A class of which only a single instance can exist

     

      Structural Patterns

      Adapter

      Match interfaces of different classes

      Bridge

      Separates an object’s interface from its implementation

      Composite

      A tree structure of simple and composite objects

      Decorator

      Add responsibilities to objects dynamically

      Facade

      A single class that represents an entire subsystem

      Flyweight

      A fine-grained instance used for efficient sharing

      Proxy

      An object representing another object

     

      Behavioral Patterns

      Chain of Resp.

      A way of passing a request between a chain of objects

      Command

      Encapsulate a command request as an object

      Interpreter

      A way to include language elements in a program

      Iterator

      Sequentially access the elements of a collection

      Mediator

      Defines simplified communication between classes

      Memento

      Capture and restore an object's internal state

      Observer

      A way of notifying change to a number of classes

      State

      Alter an object's behavior when its state changes

      Strategy

      Encapsulates an algorithm inside a class

      Template Method

      Defer the exact steps of an algorithm to a subclass

      Visitor

      Defines a new operation to a class without change

     

     

    Namoskar!!!

  • Wriju's BLOG

    Cω Overview

    • 0 Comments

    Do you know there is another language called ? This is still is experimental stage and the future plan is yet to be decided.

     

    This is targeted for concurrent programming. The approach will be more easy and user friendly. Application programmers also will be able to implement on concurrent programming which now only the game for highly efficient group of people who develop OS or Database.

     

    For more visit http://research.microsoft.com/Comega/doc/comega_whatis.htm

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Expression Trees (recording)

    • 1 Comments

    I have discussed about the Expression Trees in my previous blog at C# 3.0 Enhancements: Expression Trees. I have done a small recording on that showing the demo there. I have uploaded that to MSN Soapbox and you can find that here.

     


    Video: CSharp 3.0 Expression Trees 

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Expression Trees

    • 1 Comments

    Expression Tree is the feature which enables us to write function which can be complied on-demand basis. It stores the function in form of structured data rather than executable code. Since this is structured we can easily iterate through it anytime. This is easier than finding something in IL.

     

    Let’s suppose if you have code like

     

    Func<int, int> f = x => x * 5;

    Console.WriteLine(f(30));

     

    and you execute it. This will execute normally.

     

    But what if you want to store the whole function body in IL and compile as and when required. Then the above code look little different.

     

    Expression<Func<int, int>> e = x => x * 5;

     

    Now you cannot execute expression like function. But you can see the body of the expression in Expression Tree Visualizer. To use Expression you need to use the namespace System.Linq.Expressions

     

    So if you use the code like

     

    Console.WriteLine(e);

     

    The output will look like, x => (x * 5) instead of some kind of perfect integer values. Now if you want to use the function written there in Expression Tree you need little different approach,

     

    var f = e.Compile();

    Console.WriteLine(f(30));

     

    Compile statement will compile the IL code and your function will be ready for execution.

     

    If you want to write your own Expression instead of using the Expression <> to convert the delegate to function call, .NET allows us to do that. The Expression representation of the above f = x => x * 5; will look like

     

    ParameterExpression x = Expression.Parameter(typeof(int), "x");

    Expression body = Expression.Multiply(x, Expression.Constant(5));

    Expression<Func<int, int>> e = Expression.Lambda<Func<int, int>>(body, x);

     

     

     

    This happens exactly when you use SQL statement and execute it SQL Server database. Internally it creates functions and send to the compiler, then compiler compiles the code during the execution. Various rules engine like BizTalk uses this concept.

     

    Now if you put a break point on e and hover over it during debug you can get the Expression Tree out of it.

     

     

    I am loving itJ

     

    Namoskar!!!

     

     

  • Wriju's BLOG

    Visual Studio Codename Orcas Beta Documentation

    • 0 Comments

    Find MSDN documentation for more information.

    Visual Studio
    Visual Studio Team System

     

    Thanks and enjoy.

     

    Namoskar!!!

  • Wriju's BLOG

    Linq to Object: Play with OS Component

    • 1 Comments

     

    Linq not only allows us to work with .NET objects but also gives us the power to play with OS components like EventLog, Registry, Processes etc. If you plan to develop tool which will monitor the system process activities and will notify admin if there is any unpredictable things happening. It is all about writing your own admin tool.

    You need to have using System.Diagnostics on top of your page.

     

    In Orcas Beta 1 code looks like,

     

    var ProcessQuery = from p in Process.GetProcesses()

                       orderby p.PagedMemorySize64 descending

                       select new {

    Name = p.ProcessName,

    Size = p.PagedMemorySize64

    };

     

    foreach (var aa in ProcessQuery)

    {

        Console.WriteLine(" [ " + aa.Size + " ] " + aa.Name);

    }

     

    I love LINQ. It is ……….

     

    And the output is….

     

     [ 62271488 ] devenv

     [ 40300544 ] sqlservr

     [ 39219200 ] svchost

     [ 28323840 ] CSharp3_23Apr.vshost

     [ 16941056 ] CcmExec

     [ 16150528 ] InoTask

     [ 15310848 ] winlogon

     [ 15220736 ] InoRT

     [ 9261056 ] explorer

     [ 8540160 ] lsass

     [ 6107136 ] inetinfo

     [ 4919296 ] InoRpc

     [ 4702208 ] services

     [ 4599808 ] spoolsv

     [ 4210688 ] wmiprvse

     [ 3592192 ] svchost

     [ 3072000 ] svchost

     [ 3031040 ] winlogon

     [ 2322432 ] svchost

     [ 2064384 ] wmiprvse

     [ 1810432 ] csrss

     [ 1572864 ] GrooveMonitor

     [ 1568768 ] svchost

     [ 1531904 ] wdfmgr

     [ 1486848 ] rdpclip

     [ 1441792 ] igfxtray

     [ 1355776 ] alg

     [ 1142784 ] FwcAgent

     [ 1081344 ] FwcMgmt

     [ 942080 ] sqlbrowser

     [ 933888 ] sqlwriter

     [ 929792 ] ctfmon

     [ 741376 ] csrss

     [ 385024 ] logon.scr

     [ 155648 ] smss

     [ 0 ] System

     [ 0 ] Idle

     

     

     

    Namoskar!!!

  • Wriju's BLOG

    Visual Studio Code Name “Orcas” Beta 1 Released

    • 0 Comments

    Go ahead and download from here.

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Lambda Expression (more on what)

    • 0 Comments

    Lambda Expression gives us the more concise way of Anonymous Method implementation through functional programming language. Let me share some interesting aspects of Lambda Expression while exploring the C# 3.0 Specification. There it is being clearly described what Lambda Expression is.

     

    (param) => expr

     

    Can be expressed as

     

    param => expr

     

    Couple of the examples are given there

     

    x => x + 1                // Implicitly typed, expression body

    x => { return x + 1; }    // Implicitly typed, statement body

    (int x) => x + 1                // Explicitly typed, expression body

    (int x) => { return x + 1;}// Explicitly typed, statement body

    (x, y) => x * y            // Multiple parameters

    () => Console.WriteLine()  // No parameters

     

    It is very interesting to me. Hope you will also enjoy this.

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Collection Initializers

    • 4 Comments

    In C# 3.0 we can easily initialize collection. It is smarter and concise way of writing code.

     

    There are couple of things we should consider while initializing the collection.

    Ø       The collection should implement ICollection<T>

    Ø       The collection should have a provision to invoke ICollection<T>.Add(T)

     

     

    Here is couple of them. I am sure that you are very excited.

     

    //Array of string initialization

    string[] sTest = new string[]

    { "Wriju", "Writam", "Deb", "Sumitra" };

     

    //Dictionary object initialization

    Dictionary<int, string> objDic =

    new Dictionary<int, string>

    { { 0, "Zero" }, { 1, "One" } };

     

    //Generic Initialization

    List<Cust> objCusts = new List<Cust>{

    new Cust{ID=1, Name="Wriju"},

         new Cust{ID=2, Name="Writam"},

         new Cust{ID=3, Name="Deb"},

         new Cust{ID=4, Name="Sumitra"}};

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Extension Methods

    • 4 Comments

    Extension Methods are different way of implementing static method. In C# 3.0 it allows us to extend any type and add method for that type. While writing extension method you need to

    Ø       declare a public static method

    Ø       the first parameter of that method should be the type of the object

    Ø       this” keyword has to be the first part of the first argument of that method

     

    This helps us to extend methods for the types that are already part of .NET Framework.

     

    If you have declared an Extension Method like

     

    public static void Foo(this string sVal)

    {

        //Do something

    }

     

    If you make a call to this method the syntax will look like,

     

    string s = "Something for test";

    s.Foo();

     

    The actual call will happen like

    myExtensions.Foo(s); Here myExtensions is the static class under which you have defined the Foo method.

     

    Another first class treatment of static method in .NET. It allows us to feel the magic as if we are writing CLR code. You can define most of your utility functions in form of extension method and by using the “using” block you can use them in your code behind file.

     

     

    The real life example of the extension method may look like,

     

    public static class myExtensions

    {

        public static string GetString(this string[] arrStr)

        {

            StringBuilder sb = new StringBuilder();

     

            foreach (string s in arrStr)

            {

                if (sb.Length != 0)

                    sb.Append(",");

                   

                    sb.Append(s);               

            }

            return sb.ToString();

        }      

    }

     

     

    class Program

    {        

        static void Main(string[] args)

        {

            string[] sTest = new string[]

    { "Wriju", "Writam", "Deb", "Sumitra" };

     

            Console.WriteLine(sTest.GetString());

            Console.ReadKey();

        }                       

    }

     

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3. Resources

    • 0 Comments

    I found a very nice link on C# 3.0 resources and sharing it for you.

     

    Query Composition using Functional Programming Techniques in C# 3.0 by Eric White

     

    This talks about various aspects of C# 3.0 with details.

     

    Namoskar!!!

     

  • Wriju's BLOG

    C# 3.0 Enhancements: Object Initializers

    • 3 Comments

    C# 3.0 allows us to initialize object in far better way in one single line. Let’s talk with an example here. Back again to my favorite Customer object.

     

    public class Customer

    {

        public Customer() { }

     

        private int _ID;

        public int ID

        {

            get { return _ID; }

            set { _ID = value; }

        }

     

        private string _Name;

        public string Name

        {

            get { return _Name; }

            set { _Name = value; }

        }    

    }

     

    If you want to initialize the properties with the object initialization current style won’t allow you to do so. What you can do is that you can create another public parameterized constructor, like

     

    public Customer(int intCustID, string sCustName)

    {

        _ID = intCustID;

        _Name = sCustName;

    }

     

    Now internally this will initialize the property. But you may not require to set values to property every time. C# 3.0 rescues us where we can initialize the Customer class with property even though there is just a default public constructor.

     

     

    Customer objCust = new Customer() {ID = 1,Name = "Wriju"};

     

    Now if you do not want to set all the properties you can freely chose one or any number. It does not force you to initialize all the properties every time.

     

    Customer objCust = new Customer { Name = "Wriju" };

     

    Amazing feature.

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Enhancements: Lambda Expression

    • 0 Comments

    After a pretty long time I am again back to the Blog business. During these days I was busy preparing myself on C# 3.0 for our ISV Developers. I started giving demos to them and during my study I found a good number of exciting features which C# 3.0 offers in a nutshell. I will talk about them one by one. Let’s start with Lambda expression.

     

    Lambda Expressions are giving first class treatment to delegate and functions. When you are dealing with Lambda Expressions then you are surely dealing with Delegates.

     

    Let’s assume this example.

     

    //Array of integers

    List<int> arrInt =

    new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

     

    //Using Predicate we are finding the even numbers

    List<int> even1 =

    arrInt.FindAll(new Predicate<int>(EvenGetter));

     

    foreach(int i1 in even1)

        Console.WriteLine(i1);

     

    Console.ReadKey();

     

    This retrieves the even numbers from the collection. But you need another method

    static bool EvenGetter(int i)

    {

        return i % 2 == 0;

    }

     

     

    In C# 2.0 we have introduced little smarter way. You can add inline function using the keyword delegate. The code looks like,

     

    //Using delegate keyword, more smarter way

    List<int> even1 = arrInt.FindAll(delegate(int i2)

    { return i2 % 2 == 0; });

     

    This does not require any extra function in the application. But it is still painful.

     

    Lambda Expression helps us to write code like.

     

    //Using Lambda Expression

    List<int> even1 = arrInt.FindAll( x => x % 2 == 0);

     

    This approach is without using delegate but the way of implementation much clean. In this syntax x => x % 2 == 0 can be changed to (int x) => x % 2 == 0

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Features: Automatic Property (Part 3)

    • 6 Comments

    I was about to write this entry in my blog which I found. Before that I got comment in my previous Blog on C# 3.0 Features: Automatic Property (Part 2). The same question came in my mind. What will happen if you try to create an automatic property just with get. The C# 3.0 compiler throws an error. If you try to write

     

    //Automatic Property

    public int CustID2

    {

        get;

    }

     

    The error looks like

     

    'ConsoleApplication1.Customer.CustID2.get' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.

     

    To many it is very unfortunate because most often we may need to declare read-only property (commonly known as “getter” property). But we do have way to do this

     

    The same set of property can be declared as

     

    public int CustID2

    {

        get;

        private set;

    }

     

    This allows us to create the read-only property.

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Features: Automatic Property (Part 2)

    • 4 Comments

    Thank you everyone for showing interest on my blog entry C# 3.0 Features: Automatic Property. Questions like, why this approach? What if there is any condition in property? Let me tell you, we have implemented the higher level of abstraction in C# 3.0. If you are simply creating a property (we often do) then the pain declaring the local variable and its value setting/getting are being taken care by the CLR. So internally CLR declares the property exactly like what we used to do earlier.

     

    Let’s say

     

    public class Customer

    {

        public Customer() { }

     

        //Conventional Way

        private int _XYZ;

        public int CustID2

        {

            get { return _XYZ; }

            set { _XYZ = value; }

        }

       

        //Automatic Property

        public int CustID

        {

            get;

            set;

        }               

    }

     

    For both the cases if you examine the assembly through IL DASM. You will get the following result (the red-boxed areas are for automatic property)

     

     

    If you have noticed for the property CustID (which is Automatic) it created a private variable k__AutomaticallyGeneratedPropertyField0 of type int32. This is the extra work CLR does for us.

     

    We do have backward compatibility with C# 3.0. That means all the code that you have written in previous version of C# will compile with no error (provided it is clean codeJ).

     

    Namoskar!!!

  • Wriju's BLOG

    C# 3.0 Features: Automatic Property

    • 15 Comments

    I am super excited with the Orcas March 2007 CTP release. I was doing the hands on with the C# and LINQ and as you know C# 3.0 comes with a lot of new things which increases the level of abstraction for the developer. We now write less and do more. As I often have mentioned in my previous entries and presentations with Microsoft Partner that now have think more on why not on how. I remember the day when I first learned the Property. I used to scratch my head on what to do with get or set. I probably started it now as we have snippet for property. Anyways in conventional way we declare property in a class like

     

    public class Customer

    {

        public Customer() { }

     

        private int _CustID;

     

        public int CustID

        {

            get { return _CustID; }

            set { _CustID = value; }

        }    

               

    }

     

    Now C# 3.0 suggests us not to invest so much. Rather than using property like

     

    private int _CustID;

     

    public int CustID

    {

        get { return _CustID; }

        set { _CustID = value; }

    }   

     

    We can declare property like

     

    public int CustID

    {

        get;

        set;

    }

     

    No more private variable or = or value etc required. This is Automatic property in C# 3.0.

     

     

    Namoskar!!!

  • Wriju's BLOG

    LINQ to SQL with real life ASP.NET Data Domain

    • 1 Comments

    We have talked a lot about LINQ and its power. One of the main reasons behind the LINQ design goal was to enable the unified query like syntax for any kind of structured data.

     

    There is hardly any ASP.NET application which does not deal with data. We can create layered ASP.NET Application using the LINQ power. Scott talked about this and has given a very nice walkthrough.

     

    Please visit

     

    Using LINQ with ASP.NET (Part 1)

    Using DLINQ with ASP.NET (Part 2 of my LINQ series)

     

    Namoskar!!!

     

     

  • Wriju's BLOG

    LINQ to SQL: Finding T-SQL Query

    • 1 Comments

    LINQ to SQL (aka DLinq) generates SQL queries for us at the back. SqlMetal.exe does not contain any SQL query as it is pure object we do not prefer to keep anything which is not strongly typed. As you all know that LINQ to SQL creates the query for us. But the question is how it looks like? If you really want to verify the performance to make sure that LINQ to SQL is giving us the best query performance (always pain to DB developer)

     

    Say, you have a small which retrieves the data from Northwind database. For more details please visit my entry on DLINQ: ADO.NET vNext a lap around

     

    Northwind db = new Northwind("northwindConnection");

     

    var query = from c in db.Customers

                where c.City == "London"

                select c;

     

    foreach (var c in query)

        Console.WriteLine(c.CompanyName);

     

    Very well it will return the values one by one. Then how is the query?

     

    Yes we do have a property to get the SQL query inside the SqlMetal.exe generated class file. The name of the property is Log. Let’s see how we can implement it. I am using Console application. The code will look like

     

    db.Log = Console.Out;

     

    This will give you the SQL query in output window and the query would look like,

     

    SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], ...

    FROM [Customers] AS [t0]

    WHERE [t0].[City] = @p0

    -- @p0: Input NVarChar (Size = 6; Prec = 0; Scale = 0) NOT NULL [London]

    SqlProvider\AttributedMetaModel

     

    Hope this will help you to rectify more confusion.

     

    Namoskar!!!

  • Wriju's BLOG

    IE 7: More Shortcut Keys

    • 0 Comments

    Few days back I have talked about the IE 7 short cut keys in one of my BLOG entries at IE 7 Shortcut keys tips. I also have found a page at IE 7 in Microsoft which talks about the exhaustive list on the same. Let me share that with you here

     

    http://www.microsoft.com/windows/products/winfamily/ie/quickref.mspx

     

    Namoskar!!!

Page 23 of 25 (617 items) «2122232425