Labels

Thursday, October 23, 2008

Bill Gates' mysterious new company - bgC3

Just months after his Microsoft farewell, Bill Gates is quietly creating a new company -- complete with high-tech office space, a cryptic name and even its own trademark.

Public documents describe the new Gates entity -- bgC3 LLC -- as a “think tank.” It’s housed within a Kirkland office that the Microsoft co-founder established on his own after leaving his day-to-day executive role at the company this summer.

State records show that the company, originally called Carillon Holdings, was established in March 2008. It formally changed its name to bgC3 in early July, 10 days after Gates left his full-time job at the company he built into an industry giant. He remains Microsoft’s chairman and continues to work part-time on projects.


But what does bgC3 mean? The logical assumption might be “Bill Gates Company Three” – his third enterprise after Microsoft and the Bill & Melinda Gates Foundation. But that’s only partially right, according to the Gates insider.

The “bg” is Bill Gates, the insider says, but the “C” stands for “catalyst.” The idea is that Gates will play that role as he brings together new people and ideas. The “three” reflects the notion of a third place, apart from Microsoft and the foundation.

Several of Gates’ associates are named in the documents tied to bgC3, although Gates himself isn't identified by name in public records associated with the company – a main reason its existence hasn't received media attention until now.

Reference - Link

Thanks & Regards,

Arun Manglick || Senior Tech Lead

Tuesday, October 21, 2008

ASP.Net AJAX 4.0 - New AJAX Support For Data-Driven Web Apps

Hi,

Once again, ASP.Net is ahead of Dev Teams – AJAX 4.0 is in queue.

Background –

AJAX is an exciting Web platform for many reasons. Using AJAX, many tasks that were traditionally performed on the server happen in the browser instead, resulting in fewer round-trips to the server, lower bandwidth consumption, and faster, more responsive Web UIs. While these outcomes are the result of offloading a good deal of work to the client, the browser still isn't the environment of choice for many developers who would rather have the full power and flexibility of server apps at their disposal.

The solution employed until now has involved the UpdatePanel control, which has allowed developers to build AJAX applications while still retaining the full array of server tools. But UpdatePanel carries a lot of weight from the traditional postback model—an UpdatePanel request is still a full postback. This is again Not A Good Option, though 90% of the applicaions are using it very frequently.

A pure AJAX approach will almost always perform better than the UpdatePanel approach. In a purely AJAX solution, the rendering happens on the client and the server sends back only data. This approach can also substantially reduce the number of network requests: having the data on the client allows much of the application's UI logic to run in the browser.

The main problem with the pure AJAX approach, however, is that the browser lacks the tools to turn data into HTML. Out of the box, it has only two crude facilities for doing so: innerHTML, which replaces the full contents of an element with the HTML string you provide, and the somewhat slower DOM APIs that operate on tags and attributes. In an all this again very tedious to take the data and format it as HTML.

This is good option but lacks in the HTML rendering. HTML is only half of the story. AJAX applications really are about active content, not just client-side updates to the DOMagain. This is again Not A Good Option. However the solution to the HTML generation problem will be resoved in AJAX 4.0

Mx has planned to use this approach and even used it in one of the page. Later on we found that there are lot of hiccups with this appraoch due to HTML rednering. This made the decision towards ‘Update Panel’ – An easy but with performance trade-offs approach.

Solution - ASP.Net AJAX 4.0:


AJAX 4.0 will be launching with the below new concept.


· Server-side data manipulation

· UpdatePanel and the client

· Reducing postbacks and payloads

· Client-side template rendering


As mentioned above - There are two basic ways you can turn data into HTML. – innerHTML and DOM APIs. Apart from the HTML generation problem these two approaches has some major drawbacks.

innerHTML drawbacks –

· Injection attacks

· Expression language

· Code Interpersing

· Event Hooks

DOM APIs drawbacks –

· Lot slower than innerHTML

· Not very expressive, and the resulting code is hard to read and harder to maintain – However some tools like jQuery to make your life easy - but even with such tools, it's harder than it needs to be.

To overcome this Microsoft had already developed a Template Engine in ASP.NET AJAX Futures, but it was too slow and complex in design and we wanted to do a lot better. The bad thing about this failed first attempt.

But now MS has given solution to it and developed a new Template Engine. The dev team tested many different designs for a new template engine for ASP.NET AJAX, from string concatenation to full DOM manipulations, and it has been evaluated on performance, simplicity, and flexibility. Also been compared in terms of what scenarios they prevented from happening.

The principle of the new engine is simple: we take your template code, which contains HTML, data fields, expressions, declarative component instantiation and imperative code, and we turn that auto-­magically into JavaScript that creates the equivalent HTML.

Injection attacks take care of themselves.

Expression language - Simply JavaScript

The Finished Product


This solution will behaves very much like the UpdatePanel version, but there is no comparison in terms of network traffic.

Hope this helps.

Thanks & Regards,

Arun Manglick Senior Tech Lead



Hi,


Once again, MS is ahead of Dev Teams - Microsoft Announces Visual Studio 2010

Microsoft is offering a first look at the next version of its Visual Studio integrated development environment (IDE) and platform, which will be named Visual Studio 2010 and the .Net Framework 4.0.

One of the main goals with the next generation of Microsoft's development platform will be to "democratize ALM - Application Life Cycle Management" by making it easier for developers, database pros, architects, and testers to work together in Visual Studio Team System 2010, code-named "Rosario,"

Microsoft is putting its attention on improving Visual Studio for the benefit of every one of its users—from the CIO to the software architect to the enterprise developer to the software testing team.

E.g

Rosario - Visual Studio Team System 2010

· A key goal in VSTS 2010, is to bringing all members of a development organization into the application development lifecycle, and removes many of the existing barriers to integration.

· VSTS target is to break down the roles, from the business decision maker (who needs a project overview but doesn't want to be bogged down in details) to the lead developer or system architect (who enables the software infrastructure and draws the blueprint), to the developer who writes the code and the database administrator (DBA) who integrates it with the company database to the testers (who make sure the software is of high quality).

Agile Tools, Built-In

· Visual Studio 2010 also will support features to integrate Agile methodologies into the tech stack using Team Foundation Server.

· This involves including an Excel workbook that can hook up to the back-end Team Foundation Server repository, and better build management.

· This will in turn help the Scrum process, so they can get burndown from their project.

· These features will let Agile teams track daily progress, see projects broken down into iterations and use sprints.

Must-Do Testing feature –

· Developers often neglect regular testing when they are writing code because it's time consuming or difficult to figure out which unit tests to run.

· VS 2010 have made some significant strides here. In Visual Studio 2010, tools will help create a direct relationship between unit tests that Must Be Run and the code a developer is writing. This "must-do" testing feature, called Test Prioritization, will get the developers to check their code against at least the highest-priority unit tests. (It, too, shows the impact of Agile methodologies.)

Microsoft's "Oslo" modeling strategy

· Visual Studio Team System 2010 will include some pieces of Microsoft's "Oslo" modeling strategy, as first demonstrated at Microsoft's TechEd conference earlier this year.

· The Architecture Explorer will allow architects and developers to build, customize, and see an architectural diagram of an application and enforce architectural consistency on builds of a piece of software.

· The software will support the Object Management Group's Unified Modeling Language and domain-specific languages.

There's no set date for release for Visual Studio 2010 or even a beta schedule, though the final release won't necessarily come as late as the name implies.

Microsoft will be folding together two formerly separate products, Visual Studio Team Edition for Software Developers and Visual Studio Team Edition for Database Professionals.

Hope this helps.

Thanks & Regards,

Arun Manglick Senior Tech Lead

Monday, October 20, 2008

Railway Reservation can create a big problem for your Parents...


Dear All,
You must be knowing that Indian Railway gives the Lower Birth preference to Senior Citizens. Thanks to Railway.

My Father (68) booked the Ticket from Pune to Abu-Road.
He got the Lower birth as below.

S5 - 33 (Lower) - Dated 18 Oct 2008

But this time something strange happened to my father. When the train arrived, we found that the coach was similar i.e S5 but the seat arrangement was changed. The internal seat arrangement was according to the new Side Middle Birth concept. This lead to one birth increase in every compartment. i.e Now instead of 8 births [ 6 + 2 (Side Seats)], there were now 9 births [ 6 + 3 (Side Seats)], in every compartment.

According to the this new concept the coaches has N series instead of S series. i.e it the reservation should have been in N5 rather than S5.

This increase lead to change - 33rd Lower seat became 33rd Upper Seat. Dear all, the distance from Pune to Abu takes more than 20 hrs and the train starts late in the evening from Pune.

My Father who is 68 now, had travelled whole night at the Upper birth, where it supposed to be Lower. My father some how managed the journey. But friends it could be my mother or yours who can be of old age, or could it my/your wife with just a 2 years old kid.

This is ridiculous & pathetic.


Please convey this to as many people you can. Hope the ministry or the higher management could take preventive actions against it.

This could happen to any one.

Thanks & Regards,

Arun Manglick.

Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php

Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php

Wednesday, October 15, 2008

View State and JS State Myth Table

Hi,

Below are the figures of Data Change/State Chagne on Simple Postback operations.

View State = False

Changeability

Visibility

Disability

Label

Dependent - Become Declarative Value

Dependent – Become Visible

Dependent - Become Enable

Button

Dependent - Become Declarative Value

Dependent – Become Visible

Dependent - Become Enable

DropDown

InDependent – Maintain Server Changes

Dependent – Become Visible

Dependent - Become Enable

TextBox

InDependent – Maintain Server Changes

Dependent – Become Visible

Dependent - Become Enable

TextBox – Password

ViewState is not maintained. This will become blank.

Dependent – Become Visible

Dependent - Become Enable

Hidden Field

InDependent – Maintain Server Changes

NA

NA

JS State

View State = True

Changeability

Visibility

Disability

Label

Become Declarative Value

Become Visible – Not Maintain JS Changes

Become Visible – Not Maintain JS Changes

Button

Become Declarative Value

Become Visible – Not Maintain JS Changes

Become Visible – Not Maintain JS Changes

DropDown

Maintain JS Changes

Become Visible – Not Maintain JS Changes

Become Visible – Not Maintain JS Changes

TextBox

Maintain JS Changes

Become Visible – Not Maintain JS Changes

Become Visible – Not Maintain JS Changes

TextBox – Password

Will Become Blank.

Become Visible – Not Maintain JS Changes

Become Visible – Not Maintain JS Changes

Hidden Field

Maintain JS Changes

NA

NA

Thanks & Regards,

Arun Manglick Senior Tech Lead

Monday, October 6, 2008

C# 2.0 - Introductory

Hi,

This blog post summarizes the new features of C# 2.0.

Below are the new features been introduced.

§ Partial Classes

§ Static Classes

§ Generic Classes

§ Anonymous methods

§ Iterators

§ Nullable Types

Partial Classes

- Partial types allow classes, structs, and interfaces to be broken into multiple pieces stored in different source files for easier development and maintenance.

Static Classes

Generic Classes

- Generics permit classes, structs, interfaces, delegates, and methods to be parameterized by the types of data they store and manipulate.

- Provide stronger compile-time type checking.

- Require fewer explicit conversions between data types

- Reduces the need for boxing operations and runtime type checks

Anonymous methods

- Anonymous methods allow code blocks to be written “in-line” where delegate values are expected.

- Anonymous methods are similar to lambda functions in the Lisp programming language.

- C# 2.0 supports the creation of “closures” where anonymous methods access surrounding local variables and parameters.

Iterators

- Iterators are methods that incrementally compute and yield a sequence of values.

- Iterators make it easy for a type to specify how the foreach statement will iterate over its elements.

Nullable Types

-

The language extensions in C# 2.0 were designed to ensure maximum compatibility with existing code. For example, even though C# 2.0 gives special meaning to the words where yield , and partial

in certain contexts, these words can still be used as identifiers.

Indeed, C# 2.0 adds no new keywords because such keywords could conflict with identifiers in existing code.

Hope this helps

Thanks & Regards,

Arun Manglick || Senior Tech

C# 2.0 - Nullable Types

Hi,

This blog post summarizes the new features of C# 2.0.

Below are the new features been introduced.

§ Partial Classes

§ Static Classes

§ Generic Classes

§ Anonymous methods

§ Iterators

§ Nullable Types

Nullable Types

- Nullable types represent value-type variables that can be assigned the value of null.

- You cannot create a nullable type based on a reference type. (Reference types already support the null value.)

- The syntax T? is shorthand for Nullable<(Of <(T>)>), where T is a value type. The two forms are interchangeable.

int? x = 10; or

double? d = 4.108;

- Use the Nullable<(Of <(T>)>).GetValueOrDefault method to return either the assigned value, or the default value for the underlying type if the value is null.

int j = x.GetValueOrDefault();

e.g.

int? i = 5;

int j = i.GetValueOrDefault();

Output - 5

int? i = null;

int j = i.GetValueOrDefault();

Output - 0

- Use the HasValue and Value read-only properties to test for null and retrieve the value.

if(x.HasValue) j = x.Value;

The HasValue property returns true if the variable contains a value, or false if it is null.

The Value property returns a value if one is assigned. Otherwise, a System..::.InvalidOperationException is thrown.

The default value for a nullable type variable sets HasValue to false. The Value is undefined.

- Use the ?? operator to assign a default value that will be applied when a nullable type whose current value is null is assigned to a non-nullable type.

int? x = null;

int y = x ?? -1;

- Nested nullable types are not allowed. The following line will not compile: Nullable<Nullable<int>> n;

Hope this helps

Thanks & Regards,

Arun Manglick || Senior Tech Lead