Wednesday, June 23, 2010

Android Cloud to Device Messaging Framework

Android Cloud to Device Messaging (C2DM) is a service that helps developers send data from servers to their applications on Android devices. The service provides a simple, lightweight mechanism that servers can use to tell mobile applications to contact the server directly, to fetch updated application or user data. The C2DM service handles all aspects of queueing of messages and delivery to the target application running on the target device.
Introduction
Here are the primary characteristics of Android Cloud to Device Messaging (C2DM):
• It allows third-party application servers to send lightweight messages to their Android applications. The messaging service is not designed for sending a lot of user content via the messages. Rather, it should be used to tell the application that there is new data on the server, so that the application can fetch it.
• C2DM makes no guarantees about delivery or the order of messages. So, for example, while you might use this feature to tell an instant messaging application that the user has new messages, you probably would not use it to pass the actual messages.
• An application on an Android device doesn’t need to be running to receive messages. The system will wake up the application via Intent broadcast when the the message arrives, as long as the application is set up with the proper broadcast receiver and permissions.
• It does not provide any built-in user interface or other handling for message data. C2DM simply passes raw message data received straight to the application, which has full control of how to handle it. For example, the application might post a notification, display a custom user interface, or silently sync data.
• It requires devices running Android 2.2 or higher that also have the Market application installed. However, you are not limited to deploying your applications through Market.
• It uses an existing connection for Google services. This requires users to set up their Google account on their mobile devices.
Architectural Overview
This section gives an overview of how C2DM works.
This table summarizes the key terms and concepts involved in C2DM. It is divided into these categories:
• Components — The physical entities that play a role in C2DM.
• Credentials — The IDs and tokens that are used in different stages of C2DM to ensure that all parties have been authenticated, and that the message is going to the correct place.
Components
1. Mobile Device : The device that is running an Android application that uses C2DM. This must be a 2.2 Android device that has Market installed, and it must have at least one logged in Google account.
2. Third-Party Application Server: An application server that developers set up as part of implementing C2DM in their applications. The third-party application server sends data to an Android application on the device via the C2DM server.
3. C2DM Servers: The Google servers involved in taking messages from the third-party application server and sending them to the device.
Credentials
1. Sender ID: An email account associated with the application's developer. The sender ID is used in the registration process to identify a Android application that is permitted to send messages to the device. This ID is typically role-based rather than being a personal account—- for example, my-app@gmail.com.
2. Application ID: The application that is registering to receive messages. The application is identified by the package name from the manifest. This ensures that the messages are targeted to the correct application.
3. Registration ID: An ID issued by the C2DM servers to the Android application that allows it to receive messages. Once the application has the registration ID, it sends it to the third-party application server, which uses it to identify each device that has registered to receive messages for a given application. In other words, a registration ID is tied to a particular application running on a particular device.
4. Google User Account: For C2DM to work, the mobile device must include at least one logged in Google account.
5. Sender Auth Token: A ClientLogin Auth token that is saved on the third-party application server that gives the application server authorized access to Google services. The token is included in the header of POST requests that send messages. For more discussion of ClientLogin Auth tokens, see ClientLogin for Installed Applications.

Friday, April 30, 2010

The Visual Basic Development Environment

Overview Of The Integrated Development Environment
The Visual Basic IDE has three distinct states: Design, Run, and Debug. The current state appears in Visual Basic’s title bar.
The IDE is composed of these parts:
Ø The menu bar
Ø The toolbar
Ø The Project Explorer
Ø The Properties window
Ø The Form Layout window
Ø The toolbox
Ø Form designers
Ø Code windows

The Menu Bar
The menu bar presents the Visual Basic menus. Here_s a list of those menus and what they do:
Ø File_File handling and printing; also used to make EXE files
Ø Edit_Standard editing functions, undo, searches
Ø View_Displays or hides windows and toolbars
Ø Project_Sets project properties, adds/removes forms and modules, and adds/removes references and components
Ø Format_Aligns or sizes controls
Ø Debug_Starts/stops debugging and stepping through programs
Ø Run_Starts a program, or compiles and starts it
Ø Tools_Adds procedures, starts the Menu Editor, sets IDE options
Ø Add-Ins_Add-in manager, lists add-ins like Application Wizard and API Viewer
Ø Window_Arranges or selects open windows
Ø Help_Handles Help and the About box

The Toolbar
The toolbar contains buttons matching popular menu items, clicking the button is the same as selecting a menu item and can save you some time. Besides the main toolbar, you can also display other dockable toolbars in Visual Basic: the Debug, Edit, and Form Editor toolbars. To display one of these toolbars, just select it using the Toolbars item in the View menu; the toolbar appears free-floating at first, but you can dock it as you like in the IDE.

Form Designers And Code Windows
Form designers are really just windows in which a particular form appears. You can place controls into a form simply by drawing them after clicking the corresponding control’s tool in the toolbox.
Code windows are similarly easy to understand: you just place the code you want to attach to an object in the code window (to open an object’s code in the code window, just double-click that object). There are two drop-down list boxes at the top of the code window: the left list lets you select the object to add code to, and the right list lets you select the procedure to add (all the methods the object supports appear in this list). That completes our overview of the IDE.

Monday, January 4, 2010

Additional Features of ASP.NET 3.5 and 3.5 SP1

  • New Developer Infrastructures

§ Membership and Role Management

§ Personalization

§ The ASP.NET Portal Framework

§ Site Navigation

  • The ASP.NET Compilation System
  • Health Monitoring for your ASP.NET Applications
  • Reading and Writing Configuration Settings
  • Localization
  • Expanding on the Page Framework

§ Master Pages

§ Themes

  • Objects for Accessing Data

Goals of ASP.NET 3.5

ASP.NET 3.5 is another mojor release of the product and build on the core .NET Framework 2.0 with additional classes and compatibilities. This release of the framework was code –named Orcas internally at Microsoft. You might hear other refer to ASP.NET as ASP.NET Orcas. ASP.NET3.5 continues on a path to make ASP.NET developers the most productive developers in the web-space.

Since the release of ASP.NET2.0 by Microsoft team has focused its goals on the developer productivity, administration and management as well as performance and scalability.

  • Developer Productivity: Much of the ASP.NET 3.5 focuses on productivity. Huge productivity gains were made with the release of ASP.NET 1.x. One goal the development team had for ASP.NET was to eliminate much of the tedious coding that ASP.NET originally required to make common ASP.NET tasks easier.
  • Performance and Scalability: one of the goals for ASP.NET that was set by Microsoft team was to provide the world’s fastest web application server. One of the most exiting performance capabilities is the cashing capabilities aimed at exploiting Microsoft’s SQL Server. ASP.NET 3.5 includes a feature called SQL cache invalidation. Before ASP.NET2.0, it was possible to cache the results that came from SQL Server and update the cache based on a time interval – e.g. every 15 seconds or so. This meant that the end user might see stale data if the result set changed sometime during that 15 second period. In some cases, this time interval result set is unacceptable. In ideal situation, the result set stored in the cache is destroyed if any underlying changes occurs in the source from which the result set is retrieved - in this case, SQL Server. With ASP.NET 3.5, you can make this happen with the use of SQL cache invalidation. ASP.NET 3.5 provides 64-bit support. Because ASP.NET 3.5 is fully backward compatible with ASP.NET 1.0,1.1 and 2.0 you can now take any former ASP.NET application, recompile the application on the .NET Framework 3.5, and run it on a 64-bit processor.

Saturday, November 28, 2009

ASP.NET

ASP.NET Definition:
ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic websites, web application and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor of Microsoft's Active Server Pages (ASP) technology, ASP.NET is built in the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any support .NET Language.

History:
After the release of Internet Information Services 4.0 in 1997, Microsoft began researching possibilities for a new web application model that would solve common complaints about ASP, especially with regards to separation of presentation and content and being able to write "clean" code. Mark Anders, a manager on the IIS team, and Scott Guthrie, who had joined Microsoft in1997 after graduating from Duke University, were tasked with determining what that model would look like. The initial design was developed over the course of two months and by Anders and Guthrie, and Guthrie coded the initial prototypes during the Christmas holidays in 1997.
The initial prototype was called "XSP"; Guthrie explained in a 2007 interview that "people who always asked what X stood for. At the time it really didn't stand for anything. XML started with that; XSLT started with that. Everything seemed to start with an X, so that's what we originally named it".
The initial prototype of XSP was done using Java but soon it was decided to build on a new platform on top of the CLR, as it offered an Object Oriented Programming environment, garbage collection and other features that were seen as desirable features that Microsoft's Component Object Model platform didn’t support. Guthrie described this decision as a “huge risk”, as the success of their new web development platform would be tied to the success of the CLR, which, like XSP, was still in the early stages of development, so much so that the XSP was the first team at Microsoft to target the CLR. With the move to the CLR, XSP was re-implemented in C# (known internally as “Project Cool” but kept a secret from the public), and renamed to ASP+, as by this point the new platform was seen as being the successor to Active Server Pages, and the intention was to provide an easy migration path for ASP developers.
Mark Anders first demonstrated ASP+ at the ASP Connections Conference in Phoenix, Arizona on May 2, 2000. Demonstrations to the wide public and initial beta release of ASP+ (and the rest of the .NET Framework) came at the 2000 Professional Developers Conference on July 11,2000 in Orlando, Florida. During Bill Gates’ keynote presentation, Fujitsu demonstrated ASP+ being used in conjunction with COBOL, and support for a variety of other languages was announced, including Microsoft’s new Visual Basic .NET and C# languages, as well as Python and Perl support by the way of interoperability tools created by ActiveState.
Once the .NET branding was decided in the second half of 2000, it was decided to rename ASP+ to ASP.NET. Mark Anders explained an appearance on The MSDN Show the year that, “The .NET initiative is really about a number of factors, it’s about delivering software as a service, it’s about XML and web services and really enhancing the internet in terms of what it can do … we really wanted to bring more in line with the rest of the platform pieces that make up the .NET framework”.
After four years of development, and a series of beta releases in 2000 and 2001, ASP.NET 1.0 was released on Jan 5, 2002 as part of version 1.0 of the .NET Framework.

Features of ASP.NET 3.5
ASP.NET 3.5 and Visual Studio 2008 bring great new functionality around Web development that makes building standards based , next generation web sites easier than ever. From the inclusion of ASP.NET AJAX into the runtime, to new controls, the new LINQ data capabilities, to improved support for CSS Javascript and others, Web development has taken a significant step forward.
1. ASP.NET AJAX
With ASP.NET AJAX developers can quickly create pages with sophisticated, responsive user interfaces and more efficient client – server communication by simply adding a few server controls to their page. Previously an extension to the ASP.NET runtime, ASP.NET AJAX is now built into the platform and makes the complicated task of building cross – platform, standards based AJAX applications easy.
2. New ListView and DataPager Controls
The new list view control gives you unprecedented flexibility in how you display your data, by allowing you to have complete control over the HTML markup generated. ListView is template approach to representing data is designed to easily work with CSS styles, which come in handy with the new Visual Studio 2008 designer view. In addition, you can use the DataPager control to handle all the work of allowing your users to page through large numbers of records.
3. LINQ and other .NET Framework 3.5 Improvements
With the addition of the Language integrated Query (LINQ) in .NET Framework 3.5, the process of building SQL Queried using error – prone string manipulation is a thing of the past. LINQ makes your relational data queries a first class language construct in C# and Visual Basic, complete with compiler and intellisense support. For Web applications, the ASP.NET LinqDataSource control allows you to easily use LINQ to filter, order and group data that can then be bound to any of the data visualization controls like the ListView and GridView controls. In addition, all the other improvements to .NET Framework 3.5, including the new HashSet collection, DateTime offset support, diagnostics, garbage collection, better thread lock support, and more, are all available to you in your ASP.NET applications.
4. WCF Support for RSS, JSON, POX and Partial Trust With .NET Framework 3.5 Windows Communication Foundation (WCF) now supports building Web Services that can be exposed using any number of the Internet Standard protocols, such as SOAP, RSS, JSON, POX and more. Whether you are building an AJAX application that uses JSON, providing syndication of your data via RSS, or building a standard SOAP Web service, CF makes it easy to create your endpoints, and now, with .NET Framework 3.5, supports building Web services in partial-trust situations like a typical shares hosting environment.
5. New Web Design Interface
Visual Studio 2008 has incorporated a new web designer that uses the design engine from Expression Web. Moving between design and Source view is faster than ever and the new split view compatibility means you can edit the HTML source and simultaneously see the results on the page. Support for style sheets in separate files has been added as well as a CSS properties pane which clarifies the sometimes – complex hierarchy of cascading styles, so that it is easy to understand why an element looks the way it does. In addition Visual Studio 2008 has full WYSIWYG support for building and using ASP.NET Nested Master Pages which greatly improves the ability to build a web Site with a consistent look and feel.
6. JavaScript Debugging And Intellisense
In Visual Studio 2008, Client-Side JavaScript has now become a first class citizen in regards to its debugging and Intellisense support. Not only the Intellisense give standard JavaScript keyword support, but it will automatically infer variable types and provide method, property and event support from any number of included script files. Similarly, the JavaScript debugging support now allows the deep Watch and locals support In JavaScript that you are accustoms to having in other Visual Studio. And despite the dynamic nature of a lot of JavaScript, you will always be able to visualize and step into the JavaScript code, no matter where it is generated from. This is especially convenient when building ASP.Net AJAX applications.
7. Multi- targeting Support
In previous version of Visual Studio, you could only build projects that targeted a single version of the .NET Framework. With Visual Studio 2008, we have introduced the concept of Multi-targeting. Through a simple drop-down, you can decide if you want a project to target .NET Framework 2.0, 3.0 or 3.5. The builds, the Intellisense, the toolbox, etc will all adjust to the feature set of the specific version of the .NET Framework which you choose. This allows you to take advantage of the new features in Visual Studio 2008, like the Web design interface, and the improved JavaScript support, and still build your projects for their current runtime version.