Thursday, November 29, 2007

Ideas !

Check out the new ideas which the Microsoft(r) is currently working on. You can help them test these ideas to make them better for everyone.

Site: http://get.live.com/betas/home

VB 9 Series - Friend Assemblies

Welcome to the 3rd Article in the Series of VB 9. In this article we'll look at a new feature added to the VB language i.e. InternalsVisibleTo Attribute - 'Friend Assemblies'.

You might have had some problem in the past where you want to share methods of your 'Friend Assembly' to a particular assembly or assemblies. Now in VB 9.0 you have a way! for this you just have to use an assembly level attribute 'InternalsVisibleTo' (can be found under System.Runtime.ComplierServies) which takes the name of the assembly to which you want to share your methods without extension.

To understand this suppose you have made a Class Library Project say 'testFriend' and write the following code for the class:

Friend Class FriendofDemoClass

.......Function SomeFunction() As Integer

..............Return 0

.......End Function

End Class

Now create a 'Console Application' 'Demo' and after adding the refrence of 'testFriend' make an object of 'FriendofDemoClass' when you make an object of this class outside its scope ('Friend' can only be accessed within the scope of its assembly) you get this error.



Now go back to your 'testFriend' Library and add the 'InternalsVisibleTo' attribute which can be found under System.Runtime.CompilarServices.

Imports System.Runtime.CompilarServices

< InternalsVisibleTo.("Demo") > _
Friend Class FriendofDemoClass

.......Function SomeFunction() as Integer

..............Return 0

.......End Function

End Class

Now everything works fine !

Photosynth - Changing the way you think about Digital Photos !

Photosynth is an amazing new technology from Microsoft(r) Live Labs that will change forever the way you think about digital photos.

Introducing Photosynth

Their software takes a large collection of photos of a place or an object, analyzes them for similarities, and displays them in a reconstructed three-dimensional space.

With Photosynth you can:

  • Walk or fly through a scene to see photos from any angle.
  • Seamlessly zoom in or out of a photo whether it's megapixels or gigapixels in size.
  • See where pictures were taken in relation to one another.
  • Find similar photos to the one you're currently viewing.
  • Send a collection - or a particular view of one - to a friend.
Site: http://labs.live.com/photosynth/

YamiPod - Mange your iPod

YamiPod is a freeware application to efficiently manage your iPod under Mac OS X, Windows and Linux. It can be run directly from your iPod and needs no installation. Take a look at the feature list to find out what it can do and feel free to suggest anything that might be missing.

Site: www.YamiPod.com

Wednesday, November 28, 2007

GameFAQs...!

GameFAQs is an online archive of video and computer game information, codes, walkthroughs, hints, message boards, save games files, and of course, FAQs. Everything on the site is contributed freely by various members of the public and is available for free private use to all visitors. If you're stuck on a game, want to find out more information about it, or just like reading about upcoming and past games, you'll likely find what you're looking for here !

Site: www.gamefaqs.com

Cocolico.info !

Cocolico is a design magazine, with an insane preference for crazy, smart ideas that won�t spoil the environment. Here, you will meet some products, sometimes internationally acclaimed, that could land one day in your home. They also report innovative and environmentally friendly concepts. Check out some cool and amazingly crazy concepts here.

Site: www.Cocolico.info

Spider !

Very soon AMD will be delivering its new high-end gamer system, Spider, which is a combination of some seriously heavy duty graphics card with its new desktop Pheonom quad-core processor.

Site: http://www.reghardware.co.uk/2007/10/26/amd_to_show_spider/

Jaxtr.com - Make free Landline or Mobile Calls !


Jaxtr links your phone to the web, so you can hear from callers worldwide while keeping your existing phone number private. You can use your Land line Phones or Mobile phone to make calls to your friends and family on their mobiles or Land line phones. When you sign up you get 100 jax which is what you need in order to make phone call and every month 100 jax added in your account so just sign up and make some free calls to your loved ones. ;)

Web Operating System !



eyeOS
is an Open Source Platform designed to hold a wide variety of Web Applications over it. eyeOS was thought as a new definition of Operating System, where everything inside it can be accessed from everywhere. Just open your browser and point it to your eyeOS Server. Log in and you will access your Desktop, with your applications, documents, music, movies...

Source Code for .NET 3.5 Libraries !

Microsoft is now about to release source code of .NET Framework 3.5 Libraries later this year with the release of Visual Studio 2008 at first Source code of following libraries will be released under Microsoft Reference License (MS-RL)

  1. System, System.IO,
  2. System.Collections,
  3. System.Configuration,
  4. System.Threading,
  5. System.Net,
  6. System.Security,
  7. System.Runtime,
  8. System.Text, etc),
  9. ASP.NET (System.Web),
  10. Windows Forms (System.Windows.Forms),
  11. ADO.NET (System.Data),
  12. XML (System.Xml),
  13. and WPF (System.Windows).

You'll be able to download the .NET Framework source libraries via a standalone install (allowing you to use any text editor to browse it locally). They will also provide integrated debugging support of it within VS 2008.

So, hoping to see the work of professionals and learn from them...!!!

VB 9 Series - Object Initializers

Welcome to the second article of VB 9 Series. In this article I'll try to explain the new functionality introduced in Visual Basic 9 i.e. Object Initialization... with the help of this technology you can very well separate object Initialization logic, you may had some problem or have to write long code to initialize certain values in your object and can't find those in the constructor consider the following example code:

Public Class
Customer

.........Private _name As String
.........Private _address As String
.........Private _City As String

.........Public Sub New()
..................'default constructor
.........End Sub

.........Public Sub New(ByVal Name As String)
.................._name = Name
.........End Sub

.........Public Property CustomerName() As String
.........Get
..................Return _name
.........End Get
.........Set(ByVal value As String)
.................._name = value
.........End Set
.........End Property

......... Public Property Address() As String
.........Get
..................Return _address
.........End Get
.........Set(ByVal value As String)
.................._address = value
.........End Set
.........End Property

.........Public Property City() As String
.........Get
..................Return _City
.........End Get
.........Set(ByVal value As String)
.................._City = value
.........End Set
.........End Property

End Class

And then you Instantiate the object of this class like this:

.........Dim MyCustomer As New Customer("Ali")
.........MyCustomer.Address = "xxx"
.........MyCustomer.City = "Lahore"

Or can also use the bellow code to initialize the values:

.........Dim MyCustomer As New Customer("Ali")
.........With MyCustomer
...................Address = "xxx"
...................City = "Lahore"
.........End With

But to keep the initialization logic togather VB 9 has introduce new functionality now you can use the bellow code to set the values while instantiating an object:

.........Dim myCustomer As New Customer("Ali") With {.Address = "xxx", .City = "Lahore"}

IntelliSense will help you to set the different properties related with the object.

I hope you get the idea of this yet new powerful feature of VB 9.

Good Luck !

Tuesday, November 27, 2007

If Ternary Operator

This Article is first in the series of VB 9 articles. In this article I'll introduce you to the If Ternary Operator which the VB language lacks in its previous versions. You as a VB Programmer some how familiar with the Iif function or 'Immediate If'. The syntax of 'If Ternary Operator' is the same as compared to Iif i.e. Iif(Boolean,True,False) and you use it this way:

Dim
Amount As Integer = 100
Dim
ASign As Integer = Iif(Amount < 0, -1, 1)

When you execute the code the Iif function checks the condition, if the value of 'Amount' is greater than 'zero' it will return '1' otherwise '-1' pretty basic but what's the problem? actually the problem is that as it is a function which belongs to some library not a built-in operator or function of VB language therefore in VB all of the arguments evaluates before execution. Look at the following example:

Sub Main()

Dim Amount As Integer = 100
Dim ASign As Integer = IIf(Amount < 0, Negative, Positive)
Console.WriteLine(ASign)
Console.ReadLine()

End Sub

Function Negative() As Integer
MsgBox("In Negative Function")
Return -1
End Function

Function Positive() As Integer
Return 1
End Function

Although we are only interested in the Positive Funtion but as it's a function it will evaluate all the arguments here is the output of this code:



Therefor, Iif is not equal to the following code:

Dim Amount As Integer = 100
If i < 0 Then
Negative()
Else
Positive()
End If

But now we have the solution in VB in spite of writing the above code the same objective can be accomplished with the help of 'If Ternary Operator':

Dim Amount As Integer = 100
Dim Asign As Integer = If(Amount < 0, Negative, Positive)

And also look at the following code example:

Dim CustomerName As String = Nothing
Dim Value As String = If(CustomerName, "Not Set")

Actually the above code is equivalent to the following Code:

Dim CustomerName As String = Nothing
Dim Value As String = If(CustomerName IsNot Nothing, name, "Not Set")

Hope you get the idea of this powerful operator.

Good Luck !

Visual Basic 9 released !!!

Productivity that is ideal for first time or casual Windows programming. Get the new Version of Visual Basic from here. Following are the new features added in this Language I'll soon write a series of articles in which I'll try to explain each of these feature.

  • A true ternary operator If(boolean, value, value) to replace the IIF function.
  • Support for LINQ
  • Lambda expressions
  • XML Literals
  • Type Inference
  • Improved IntelliSense
  • Extension Methods
And many others....

Surface Computer - The Magic

Check out this new Cool and Magical Surface(r) Computer by Microsoft(r).

What this blog is All About ???

I'll try to tell you and explain various new features added to Visual Basic and .NET family and will also share with you latest news related to technology. You can always asks questions to me related to Visual Basic .NET or anything about .NET technology.


AliAmjad(MCP)
Windows Application Developer
yehpal@gmail.com