Labels

Tuesday, September 30, 2008

Microsoft Announces Visual Studio 2010

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

Saturday, September 27, 2008

Shallow Vs Deep Copy

Hi,

1. Shallow copy is done by the object method MemberwiseClone()

2. DeepCopy requires the classes to be flagged as [Serializable]

Shallow Copy

1. Value type --> A bit-by-bit copy of the field is performed

2. Reference type --> The reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object

Deep Copy

1. Value type --> A bit-by-bit copy of the field is performed

2. Reference type --> A new copy of the referred object is performed. Therefore, the original object and its clone refer to the seperate object

Code Snippet -

[Serializable]

public class CopyObject

{

// Note: The classes to be cloned (Deep Copy) must be flagged as [Serializable]. Therefore the CopyObject must be declared as 'Serializable'

public int Salary;

public CopyObject(int salary)

{

this.Salary = salary;

}

}

public class ShallowCopy

{

public static string CompanyName = "My Company";

public int Age;

public string EmployeeName;

public CopyObject Salary;

public ShallowCopy MakeShallowCopy(ShallowCopy inputcls)

{

return inputcls.MemberwiseClone() as ShallowCopy;

}

}

CopyObject clsref = new CopyObject(1000);

ShallowCopy m1 = new ShallowCopy();

m1.Age = 25;

m1.EmployeeName = "Ahmed Eid";

m1.Salary = new CopyObject(1000);;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true); // 1000

ShallowCopy m2 = m1.MakeShallowCopy(m1);

m2.Salary.Salary = 2000; // Same Happens if you do it as - clsref.Salary = 2000;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true); // 2000

[Serializable]

public class DeepCopy

{

public static string CompanyName = "My Company";

public int Age;

public string EmployeeName;

public CopyObject Salary;

public static T MakeDeepCopy<T>(T item)

{

BinaryFormatter formatter = new BinaryFormatter();

MemoryStream stream = new MemoryStream();

formatter.Serialize(stream, item);

stream.Seek(0, SeekOrigin.Begin);

T result = (T)formatter.Deserialize(stream);

stream.Close();

return result;

}

}

CopyObject clsref = new CopyObject(3000);

DeepCopy m1 = new DeepCopy();

m1.Age = 25;

m1.EmployeeName = "Ahmed Eid";

m1.Salary = clsref;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true); // 3000

DeepCopy m2 = DeepCopy.MakeDeepCopy<DeepCopy>(m1);

m2.Salary.Salary = 4000; // Same Happens if you do it as - clsref.Salary = 2000;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true); // 3000

Hope this helps.

Thanks & Regards,

Arun Manglick || Senior Tech Lead

Shallow Vs Deep Copy

Hi,

1. Shallow copy is done by the object method MemberwiseClone()

2. DeepCopy requires the classes to be flagged as [Serializable]

Shallow Copy

1. Value type --> A bit-by-bit copy of the field is performed

2. Reference type --> The reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object

Deep Copy

1. Value type --> A bit-by-bit copy of the field is performed

2. Reference type --> A new copy of the referred object is performed. Therefore, the original object and its clone refer to the seperate object

Code Snippet -

[Serializable]

public class CopyObject

{

// Note: The classes to be cloned (Deep Copy) must be flagged as [Serializable]. Therefore the CopyObject must be declared as 'Serializable'

public int Salary;

public CopyObject(int salary)

{

this.Salary = salary;

}

}

public class ShallowCopy

{

public static string CompanyName = "My Company";

public int Age;

public string EmployeeName;

public CopyObject Salary;

public ShallowCopy MakeShallowCopy(ShallowCopy inputcls)

{

return inputcls.MemberwiseClone() as ShallowCopy;

}

}

CopyObject clsref = new CopyObject(1000);

ShallowCopy m1 = new ShallowCopy();

m1.Age = 25;

m1.EmployeeName = "Ahmed Eid";

m1.Salary = new CopyObject(1000);;

ShallowCopy m2 = m1.MakeShallowCopy(m1);

m2.Salary.Salary = 2000; // Same Happens if you do it as - clsref.Salary = 2000;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true);

[Serializable]

public class DeepCopy

{

public static string CompanyName = "My Company";

public int Age;

public string EmployeeName;

public CopyObject Salary;

public static T MakeDeepCopy<T>(T item)

{

BinaryFormatter formatter = new BinaryFormatter();

MemoryStream stream = new MemoryStream();

formatter.Serialize(stream, item);

stream.Seek(0, SeekOrigin.Begin);

T result = (T)formatter.Deserialize(stream);

stream.Close();

return result;

}

}

CopyObject clsref = new CopyObject(3000);

DeepCopy m1 = new DeepCopy();

m1.Age = 25;

m1.EmployeeName = "Ahmed Eid";

m1.Salary = clsref;

DeepCopy m2 = DeepCopy.MakeDeepCopy<DeepCopy>(m1);

m2.Salary.Salary = 4000; // Same Happens if you do it as - clsref.Salary = 2000;

ShowHideError("Salary: " + m1.Salary.Salary.ToString(), true);

Hope this helps.

Thanks & Regards,

Arun Manglick || Senior Tech Lead

Wednesday, September 24, 2008

Web 1.0, 2.0 & 3.0

Web 1.0

- Web 1.0 is a retronym which refers to the state of the World Wide Web, and any website design style used before the advent of the Web 2.0 phenomonon.

- It is the general term that has been created to describe the Web before the 'bursting of the dot-com bubble' in 2001, which is seen by many as a turning point for the internet.

- Some typical design elements of a Web 1.0 site include:

o Static pages instead of dynamic user-generated content.

o The use of framesets.

o Proprietary HTML extensions such as the <blink> and <marquee> tags

o Online guestbooks.

o GIF buttons, typically 88x31 pixels in size promoting web browsers and other products.

o HTML forms sent via email. A user would fill in a form, and upon clicking submit their email client would attempt to send an email containing the form's details.

Web 2.0

Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as Platform, and an attempt to understand the rules for success on that new platform.

- Web 2.0 is a living term Describing Changing Trends in the use of WWW technology and web design that aims to enhance Creativity, Information Sharing, Collaboration And Functionality of the web.

- Web 2.0 concepts have led to the development and evolution of Web-Based Communities And Hosted Services, such as social-networking sites, video sharing sites, wikis, blogs, and folksonomies.

- The term became notable after the first O'Reilly Media Web 2.0 conference in 2004.

- The shift from Web 1.0 to Web 2.0 can be seen as a result of technological refinements, which included such adaptations as "broadband, improved browsers, Ajax, mass development of wigetization, such as Flickr and YouTube badges".

- Tim O'Reilly, the President and CEO of O'Reilly Media Inc. generated a list of examples, which identify the changes that resulted from the shift from Web 1.0 to Web 2.0.

Web 1.0

Web 2.0

Double Click

Google Adsense

Ofoto

Flickr

Akamai

BitTorrent

mp3.com

Napster

Britannica Online

Wikipedia

evite

Upcoming.org and EVDB

Personal Websites

Blogging

Domain Name speculation

Search engine optimisa

Page Views

Cost per click

Screen Scraping

Web Services

Publishing

Participation

Content management systems

Wikis

Directories (taxonomy)

Tagging (folksonomy)

Stickiness

Syndication

- The idea of "Web 2.0" can also relate to A Transition Of Some Websites From Isolated Information Silos To Interlinked Computing Platforms that function like locally-available software in the perception of the user.

- Web 2.0 websites typically include some of the following features/techniques:

· Cascading Style Sheets to aid in the separation of presentation and content

· Folksonomies (collaborative tagging, social classification, social indexing, and social tagging)

· Microformats extending pages with additional semantics

· REST and/or XML- and/or JSON-based APIs

· Rich Internet application techniques - Such as AJAX, Adobe Flash, Flex, Java, Silverlight and Curl have evolved that have the potential to improve the user-experience in browser-based applications.

· Semantically valid XHTML and HTML markup

· Syndication, aggregation and notification of data in RSS or Atom feeds

· mashups, merging content from different sources, client- and server-side

· Weblog-publishing tools

· wiki or forum software, etc., to support user-generated content

· Social networking, the linking of user-generated content to users, and users to other users

Web 3.0 - 2010–2020

Web 3.0 is one of the terms used to describe the evolutionary stage of the Web that follows Web 2.0.

Following the introduction of the phrase "Web 2.0" as a description of the recent evolution of the Web, the term "Web 3.0" has been introduced to hypothesize about a future wave of Internet innovation.

- Web 3.0, a phrase coined by John Markoff of the New York Times in 2006, refers to a supposed third generation of Internet-based services.

- Collectively comprise what might be called 'THE INTELLIGENT WEB'— which will involve development using below.

Semantic Web,

Microformats,

Natural Language Search,

Data-Mining,

Machine Learning,

Recommendation Agents, and

Artificial Intelligence Technologies—which emphasize machine-facilitated understanding of information in order to provide a more productive and intuitive user experience.

- Nova Spivack defines Web 3.0 as the third decade of the Web (2010–2020) during which he suggests several major complementary technology trends will reach new levels of maturity simultaneously including:

· Transformation of the Web from a network of separately siloed applications and content repositories to a more seamless and interoperable whole.

· Ubiquitous connectivity, broadband adoption, mobile Internet access and mobile devices;

· Network computing, software-as-a-service business models, Web services interoperability, distributed computing, grid computing and cloud computing;

· Open technologies, open apis and protocols, open data formats, open-source software platforms and open data (e.g. Creative Commons, Open Data License);

· Open identity, openid, open reputation, roaming portable identity and personal data;

· The intelligent web, Semantic Web technologies such as RDF, OWL, SWRL, SPARQL, GRDDL, semantic application platforms, and statement-based datastores;

· Distributed databases, the "World Wide Database" (enabled by Semantic Web technologies); and

· Intelligent applications, natural language processing.[2], machine learning, machine reasoning, autonomous agents.[3]

Hope this helps.

Thanks & Regards,

Arun Manglick || Senior Tech Lead