Day Dreaming

"A daydream is a visionary fantasy experienced while awake, especially one of happy, pleasant thoughts, hopes or ambitions."[Ref:Wikipedia]

Blog moved

Hi all,

I no longer blog here and I have moved to a new web page. You can reach me there. Thank you.
New blog - vishalsjadhav.wordpress.com

Getting a job..

Hola Guyz..firstly got a job as a .NET Developer and so far its been pretty good. I shifted to a new place and will just talk about my recent events.
I got a job finally and more importantly so far I have got to learn a lot and also all the people including my BOSS have been really good..in fact it’s been pretty good and I have had a good time. Hopefully everything continues well and will learn along the way. I moved to a different place as could not stay there anymore. But it is funny that everytime you move from a place to other you tend to at least I do think of all the moments spent there…and all the things happened..Personally I had a good time…Bethany apt will always stay and it was a lovely place…where I learned and focused myself better to what I needed…and to sum it was great…
Now, it’s the first time that I would be living without Doyle and Pratik who have been together with me so far In US but I guess this had to happen sometime…and I am happy everyone is moving for a good reason…things in life always change..with time you make new memories…but these past moments are always good…and I feel just really content to have good friends..and lucky to got all the love…hopefully..the road ahead is as good…and I am going to do my best….Live my life..the right way…the happy way…adios..
Life isn’t about finding yourself. Life is about creating yourself.
George Bernard Shaw

Life in Allen and Everyday..:)

Hey guys…back to blogging again after a long hiatus…well what reasons can I give for not blogging and again failing to stick to my plans…well unfortunately none of them may hide my laziness and drifting at times…anyways..it’s never too late to start…and will keep coming back…but this time no promises and predefined plans..:)
I am just going to talk about the past 3 months here in Allen TX, I have been applying for jobs and learning asp.net for the major part of this period…at times been boring as it is been little mundane but I think I have been learning quite a few things…and been much more focused compared to Houston..well also drifting at times as mentioned to some of my problems which I have overblown and just thought too much….one thing I should do I believe is at least do my best in the few things I am doing and enjoy the process…at times however hard it maybe...I know these motivational talks are boring…but at times it helps to analyze and see where I am going…
I think we all need motivation sometimes we get it automatically if we are really into doing something…but if you are not that much interested and are forced at times...it is good I guess to find ways in which you can keep working and motivating yourself..So, that was basically reasons behind me trying to learn ASP.NET in 35 days  and finishing those last few topics in I don’t know how much time …but I am really happy I did it because it at least kept me motivated for sometime…and I got to learn quite a few things in process which are important for me..
The trouble at times is I think too much…and got into this habit unknowingly it kills me at times helps me…but I have learnt that everyone has problems and there are people with bigger problems who still are cheerful..not whining and giving reasons…So our job is to live life to the fullest and not worry too much of the outcomes at times…don’t know what I have blabbered over in this post...but all I wanted to convey or stress was life’s is good if you want it to be…its never going to be perfect but you should always keep working at it.…your biggest enemy and best friend will always be in you..So its up to you who you let out…

If you want to be happy, be. ~Leo Tolstoy

Day 2,3 - AJAX Continued...and Code...

***Disclaimer: I have got these information from varied sources and for some of them have been referenced directly from Sams teach yourself ASP.NET Ajax in 24 hrs.***
Ajax-enabled controls are ASP.NET server controls built by wiring the client components to the ASP.NET server controls.

Extenders are external objects that are wired with ASP.NET server controls to get the Ajax behavior, and script controls are server controls created as Ajaxenabled controls that specify both the server and client capabilities at the same place.

An extender is built by declaring a class that inherits from the base class ExtenderControl. This class should implement the interface IExtenderControl. Doing this registers the extender with the ScriptManager control.
AutoComplete is an ASP.NET Ajax extender that can be wired to any TextBox control, to display a suggested list of words in a pop-up panel with the prefix typed into the text box.

The ConfirmButton extender is used to attach itself to a Button control or any type derived from it, which prompts the user with a confirm dialog before submitting the page to the server. The DropDown extender attaches itself to a Label and Panel control to get a drop-down menu. The advantage of having this extender is that the Panel to which we are wiring up the extender can hold any type of server controls and not only link buttons. This provides the option to innovate with this extender.

Web Parts
Web parts are a set of server controls that are available in ASP.NET 2.0 that allow you to componentize your page into manageable sections. You can edit, move around holding the web part, change its settings at runtime, and can completely personalize your web page.
A web part page must have a WebPartManager and at least one web part zone. All the customization of content in the custom web part needs to be done dynamically from the code-behind file. The designer feature for customizing web parts is not available. Because you cannot customize the content in the web part from the design view, it is always suggested that you customize all the content of the web part in a user control or a custom control and add this control to the web part.

Client-side callbacks, a feature introduced by Microsoft in ASP.NET 2.0, allow controls to execute HTTP requests using JavaScript to obtain data on the server without posting the entire page.
For an Ajax operation to be performed, a control must implement the ICallbackEventHandler interface.
The PageRequestManager class belongs to the Sys.WebForms namespace and is responsible for managing the sequence of events for an asynchronous postback. When you mix callbacks and postbacks in your Ajax-enabled ASP.NET applications, you might encounter PageRequestManager
ParserErrorException. This error occurs when the response object is modified due to calls to Response.Write() and Response.Redirect() and usage of response filters and HttpModules.
ValidatorCalloutExtender is used in conjunction with a RequiredFieldValidator to validate the input data in a control. The following code uses this extender to validate the textbox txtProductName.
TextBoxWatermarkExtender is used to notify the user with a message in the textbox. The user needs to mention the textbox name in the attribute TargetControlID. When the textbox gets focus, the message is automatically wiped out.

http://www.box.net/shared/ga0dxmnjeg

DAY 1 : AJAX - Introduction and Components

AJAX
Why and What is ASP.NET Ajax?
**Disclaimer: I have got these information from varied sources and for some of them
have been referenced from Sams teach yourself ASP.NET Ajax in 24 hrs. **

AJAX (Asynchronous JavaScript) mainly allows you to perform partial updates to the page and also asynchronous postback which gives the users interactive and slick feel. Now, With AJAX, a JavaScript can communicate directly with the server, with the XMLHttpRequest object. With this object, a JavaScript can trade data with a web server, without reloading the page. You can find tutorial to AJAX at w3schools which takes you to all the basic concepts you need to know about AJAX. To provide partial page rendering we have two other options first using IFrame but it is a synchronous operation that causes the portion of the page to reload and flicker. And second, the client-side script needs to be written for hiding or showing the IFrame, when dynamic loading of a portion of the page is to be handled on an event. The second method using XMLHttpRequest object but isn’t the best, as the logic has to be moved from the server to client. Also, the browser incompatibility issues come into the picture when using the XMLHttp protocol. Thus using update panel and other ASP.NET Ajax is the best option.
How AJAX works?
Important blocks or services for which ASP.NET 2.0 has support:
- The Membership API - The Membership API in ASP.NET 2.0 enables you to manage the users and roles of an application.
- The Profile API -The ASP.NET 2.0 Profile API can be used to store profile information for both authenticated and anonymous users and make it available to the application for the user’s subsequent visits to the application.
- The Personalization API - The ASP.NET 2.0 Personalization API enables you to personalize your application seamlessly. You can use this API to customize the user profiles, themes, error pages of your application
The ASP.NET AJAX server extensions framework includes the following components:
- Application Services Bridge - This component is used to provide access to the application services available as part of ASP.NET 2.0 from client-side scripts. The basic services provided by this bridge include, but are not limited to, the following:
o User authentication using the Membership API
o Storage of user’s data using the Profile API
- The Web Services Bridge - The web services bridge is used to consume external web services from the client side in an Ajax-enabled web application. Web services have already been explained in the previous section. The web services bridge makes use of the JSON serializer, JavaScript proxies, and the .asbx files or the bridge files to call the web services.

ASP.NET AJAX Controls-
- Timer
- ScriptManager
- ScriptManagerProxy
- UpdateProgress
- UpdatePanel

Timer - Using the Timer control, you can set a timer for your web page. You can ensure that the web page can post back to the web server after a specified interval of time. You can use the Interval property of this control to set an interval in milliseconds, after which the web page will refresh itself. Once this interval elapses, the control fires a post back to the web server. This is how the mark-up code of a typical Timer control looks:


Script Manager – (Brain of an Ajax-Enabled Web Page) - Manages Microsoft ASP.NET 2.0 Ajax extensions script libraries and script files, partial-page rendering, and client proxy class generation for web and application services.
Script ManagerProxy - ScriptManagerProxy control enables you to add scripts and services that are specific to nested components. You should have a ScriptManager control in a web page that has a ScriptManagerProxy control, or else an InvalidOperationException error. If you need to register a script that is not part of Script manager control we can use Script ManagerProxy to add these scripts.



- Update Progress Control – (Displaying Progress Status During Partial Updates) - The UpdateProgress control can be used to display the progress status when using partial-page rendering in an Ajax-enabled ASP.NET web page.
...
- The UpdatePanel Control – (Facilitating Partial Page Updates) - The UpdatePanel control included as a part of the Ajax server extensions framework is used to update only a specified portion of the web page. This feature is what is commonly known as partial-web page rendering.

Setting the UpdateMode property to Conditional is advisable because it improves the performance of the web page considerably by sending only the data that is to be updated in the page.
A trigger is an event that causes the UpdatePanel to refresh its content. This event can be generated by any control in the form. There are two types of triggers:
- AsyncPostBackTrigger - The AsyncPostBackTrigger fires an asynchronous postback event on the UpdatePanel control. The child control’s postback of the UpdatePanel by default fires this trigger. There are two attributes associated with the AsyncPostBackTrigger: ControlID and EventName.
- PostBackTrigger - There might be situations where a button is clicked in an UpdatePane, and it requires the entire web page to be posted back. In such scenarios, we can go ahead with the PostBackTrigger. This trigger does not have an EventName property.
You can have one and only one ScriptManager control in your Ajax-enabled web page.

Restart...

Hey guys,firstly sorry but could not keep up to what I promised and let myself down.But really had other important things and was getting little too difficult to devote that much time. But sometime in future i will cover the remaining topics..So I have decided to restart with a different approach this time.

I have decided I will try to put topics more important for me to learn..I have decided to study some topics which are quite important and hopefully will help you all too. These are the topics I will try to cover -
1. ASP.NET AJAX
2. WCF
3. Web Services
4. WPF
5. SQL Reporting Services
6. Silverlight
7. XML/XSLT

These are the topics I decided not in that order and maybe will add more later. But these are more than enough right now for me to learn. I have decided that I will be giving each topic 3 days...and try to cover all the important points and aspects..
One of the things I have thought is to answer 3 questions - WHY ? WHAT ? HOW?
By answering these questions...for e.g AJAX...Why AJAX?....What is AJAX?...HOW AJAX WORKS?....I feel it will help to understand better...its just my point of view...As it is anyway impossible to cover every aspect I will cover the important concepts.
Okies so all said and done...I will be covering AJAX starting from today...23rd Feb to 25 Feb...and will then move with WCF or Web Services...Signing out...

“Failure is simply the opportunity to begin again, this time more intelligently.” - Henry Ford

Day -13 : Chapter 15 Introduction to Assemblies


Chapter 15 deals with Assemblies and their configuration.
Properties of assemblies -
·         Assemblies Promote Code Reuse
·         Assemblies Establish a Type Boundary
·         Assemblies Are Versionable Units
·         Assemblies Are Self-Describing
·         Assemblies Are Configurable
A .NET assembly (*.dll or *.exe) consists of the following elements:
·         A Win32 file header - The Win32 file header establishes the fact that the assembly can be loaded and manipulated by the Windows family of operating systems. This header data also identifies the kind of application to be hosted by the Windows operating system.
·         A CLR file header - The CLR header is a block of data that all .NET files must support  in order to be hosted by the CLR. In a nutshell, this header defines numerous flags that enable the runtime to understand the layout of the managed file.
·         CIL code - At its core, an assembly contains CIL code, which as you recall is a platform- and CPU-agnostic intermediate language. At runtime, the internal CIL is compiled on the fly (using a just-in-time [JIT] compiler) to platform- and CPU-specific instructions. Given this architecture, .NET assemblies can indeed execute on a variety of architectures, devices, and operating systems.
·         Type metadata - An assembly also contains metadata that completely describes the format of the contained types as well as the format of external types referenced by this assembly. The .NET runtime uses this metadata to resolve the location of types (and their members) within the binary, lay out types in memory, and facilitate remote method invocations
·         An assembly manifest - An assembly must also contain an associated manifest (also referred to as assembly metadata). The manifest documents each module within the assembly, establishes the version of the assembly, and also documents any external assemblies referenced by the current assembly.
·          Optional embedded resources - Finally, a .NET assembly may contain any number of embedded resources such as application icons, image files, sound clips, or string tables.
Private Assemblies - Private assemblies are required to be located within the same directory as the client application. The full identity of a private assembly consists of the friendly name and numerical version, both of which are recorded in the assembly manifest.
The .NET runtime resolves the location of a private assembly using a technique termed probing, which is much less invasive than it sounds. Probing is the process of mapping an external assembly request to the location of the requested binary file.
Shared Assemblies - The most obvious difference between shared and private assemblies is the fact that a single copy of a shared assembly can be used by several applications on a single machine. You cannot install executable assemblies (*.exe) into the GAC. Only assemblies that take the *.dll file extension can be deployed as a shared assembly.
<codeBase>  - Application configuration files can also specify code bases. The <codeBase> element can be used to instruct the CLR to probe for dependent assemblies located at arbitrary locations. If the value assigned to a <codeBase> element is located on a remote machine, the assembly will be downloaded on demand to a specific directory in the GAC termed the download cache. Given what you have learned about deploying assemblies to the GAC, it should make sense that assemblies loaded from a <codeBase> element will need to be assigned a strong name.
System.Configuration Namespace - The System.Configuration namespace provides a small set of types you may use to read custom data from a client’s *.config file. These custom settings must be contained within the scope of an <appSettings> element. The <appSettings> element contains any number of <add> elements that define a key/value pair to be obtained programmatically.
Machine Configuration File - The .NET platformmaintains a separate *.config file for each version of the framework installed on the local machine. If you were to open this file, you would find numerous XML elements that control ASP.NET settings, various security details, debugging support, and so forth. However, if you wish to update the machine.config file with machinewide application settings.