Wednesday, May 23, 2012
Windows Phone Camp - 25th May 2012
Monday, May 5, 2008
Long Live VB!!! or not?
Ok, first a disclaimer: I'm a Microsoft MVP with a competency in Visual Basic.
Normally I would not give this much thought, I've always favored VB (I started using it back when it was in version 3) over all other languages and thought very little of the debates that went on online comparing it to other languages.
Even when I read columns like this one, I felt nothing of it. 'VB will prevail' I used to tell myself, after all, no sane company in its right mind would alienate its 'largest group of developers'. I still think so.
However, when I am asked to 'consider' switching over to C# by my company, and specifically my boss and friend, who he himself is a former VB MVP, a few different thought-storms are brewing in my mind.
But probably the most important question is: how did this happen?
That is when I decided to write this blog. The fact of the matter is, there are many reasons for this to happen. The migration of developers from other platforms, J2EE for example, find a more familiar face in C#. VB6ers NOT migrating to the .Net world is another factor. And perhaps, the mere fact that VB is dubbed the hobbyists language of choice (after all, it is the most downloaded setup of Microsoft's 'express' editions) is yet another reason why 'professionals' are migrating.
But perhaps most importantly is universities worldwide offering C# as the development language of choice (or any semicolon language for that matter).
All the rest, is merely the chain reaction set in motion. C# books becoming more popular and better selling. C# developers becoming more desirable and thus paid better. Resources for C# are becoming much more available than for VB. And now Microsoft, the company that popularized the language, are treating it as a second-class citizen.
I don't mind becoming 'multilingual', but I've grown to love and respect VB throughout the years, and I won't go down without a fight! In my opinion, VB is and will remain the 'easiest' most efficient language to develop applications in; plus I don't think it is fair. Bill Gates: help!!
Anyway I'll take C#, with a grain of salt.
What do you think?
Links:
Sunday, May 4, 2008
Search Command Ribbon for Office 2007
Don't know about you, but personally I love Office 2007. Despite what I hear and read about it, it is much easier than its predecessor (which ultimately means it is more efficient).
Having said that, the number one problem users new to Office 2007 face is the 'ribbon'. To them, everything's NOT where they used to have it and that actually reduces efficiency.
Therefore, the guys at OfficeLabs (online at http://www.officelabs.com/, BTW powered by SharePoint) have come up with what they think would be the solution to some of their troubles; the search command ribbon.
What this does, is allow you to search for whatever command you're looking for and the search result will actually be displayed in the ribbon itself.
A picture is worth a thousand words:
Remember, if you decide to download and install this, you should bear in mind that Microsoft will be gathering information with regards to your usage, and you can NOT disable this which can be turned off from the 'Privacy' menu (thank you 'Anonymous' whoever you are).
IMHO we 'developers' should be doing more with regards to integrating solutions into Office using the new 'VSTO' (Visual Studio Tools for Office). Right?
Tuesday, October 23, 2007
MSDN Roadshow: Gaining Insight Tour 2007
I've just received an email (actually I received the email yesterday but this sounds better) about Microsoft's upcoming MSDN and Technet Roadshow. This is Microsoft's technology promoting tour of the Gulf region. If you've never attended one, this is your chance to do so.
This time their sideline is 'Gaining Insight Tour'. Insight into what? Here's the list:
- Windows Server 2008
- SQL Server 2008
- Visual Studio 2008
- Silverlight
Plus, there are sessions on:
- Unified Communications
- Virtualization, and
- IIS7
Coming to a theatre near you! Check it out!
Saturday, September 22, 2007
Visual Basic Power Packs 2.0
Line and Shape controls, PrintForm component, and Printer Compatibility Library Microsoft Visual Basic 2005 Power Packs 2.0 includes a new set of Line and Shape controls and updated versions of the two previously released Visual Basic 2005 Power Packs, the PrintForm Component and the Printer Compatibility Library. All three are now included in a single assembly making them even easier to use and redistribute with your application.Links:
http://msdn2.microsoft.com/en-us/vbasic/bb735936.aspx
Partnership: Microsoft & Facebook
You can even create a Windows Forms application that connects to Facebook using Facebook's API!! Now that I like!
Enjoy!!
Links:
http://msdn2.microsoft.com/en-us/express/bb510381.aspx
Sunday, July 29, 2007
Microsoft releases: VS2008 Beta 2, .Net Framework 3.5 Beta 2 and SilverLight 1.0 RC
- Visual Studio 2008 Beta 2
- .Net Framework 3.5 Beta 2, and
- SilverLight 1.0 Release Candidate
Links:
http://msdn2.microsoft.com/en-us/vstudio/default.aspx
http://www.microsoft.com/silverlight/install.aspx
Wednesday, July 25, 2007
A developer's best friend is...
And I can remember our trainer for the Yukon course was 'Richard Hundhausen,' an MVP and an RD, who gave us a few tips from 'real life' so-to-speak about development in the 'real world'. And, according to him, 'a developer's best friend is Google'.
Well, not particularily Google, but back then your best choice for online searching was, in fact, Google. Things have changed since then.
The moral of this blog is not to try to debate which search engine is best, but to show developers out there the light of way. When developing applications and stuck on the best way (or any way) to write a particular piece of code, don't bang your head against the wall and attempt to read every book there is on the shelf (you can use that as a last resort).
Literally, almost everything, related to software development or otherwise, is available on the internet. All you have to do, is search. I say this from experience. Never underestimate the power of 'internet search'.
Now, the next time you face a problem, any problem, 'Google it!' or best still 'Live it!'
Monday, June 25, 2007
Quickie: MSDN Nuggets
webcast? Try an MSDN Nugget, a webcast that takes you step-by-step to
discovering new functionality or exploring a hot developer topic, all in 10-15
minutes. View them online now or download for later reference.
Links
http://www.microsoft.com/uk/msdn/nuggets/
Friday, May 18, 2007
Live.com: Search Dot Net
I fired up IE7 and was about to go check how Spider-man 3 did in the box office, when I was sort of taken aback by the home page; www.live.com. Its been a while since I'd done any searching on Live (yes, I confess, I usually search on Google; I'm sorry :-)). So, for the sake of humanity, I decided to go ahead and give it a try.
Being a self-centered geek, and an MVP, I decided to search for 'Bashar Lulu', and boy was I amazed by the results. Not by the number of hits, as many as they were, but by the organization, the relevance, the readability and the fact that I could actually use this as a reference. These are things I could never have done a while ago, because I saw Live as lacking, frail and simply un-usable. The results where out of order (by relevance, or importance), the engine itself seemed buggy; not any more.
Mind you, I'm not saying that Live is perfect, or that it is better than Google, I'm just saying that its getting better, much better.
Now, let me continue my story. One of the search results took me here; a list of Visual Basic MVP blogs. Yes, my name was there, and a few names down, was Dan Appleman's. I've always been a fan of Dan's, back from the days of VB5 and his book on the Windows API. Under his name was a link to his blog which I immediately clicked on.
To cut a long story short, it was on Dan's blog that I learned about SearhDotNet a search site for .Net developers. Based on Google's custom search facility (which allows you to create your own search engine), SearchDotNet gives .Net developers information relevant to .Net only.
Dan puts it as: 'Many typical developer search terms (like "cryptography" or "Url") apply to many technologies, not just .NET. When I search for cryptography, I don't want to know how to do it in PHP, nor am I interested in the latest government policies on the topic. I want to know how it works in .NET.'
Not only that, but Dan also allows users to suggest 'inclusion criteria' where we can suggest what sites to add to the search results.
My kids are back, they want the PC, got to go!
Links:
http://www.live.com
http://msdn2.microsoft.com/en-us/vbasic/ms789067.aspx
http://www.danappleman.com/
http://www.google.com/coop/cse/overview
http://searchdotnet.com/about.aspx#choose
Saturday, May 12, 2007
XML Notepad 2007
With XML Notepad, you can create XML document prototypes quickly, easily, and in an iterative fashion, using familiar metaphors. XML Notepad offers an intuitive and simple user interface that graphically represents the tree structure of XML data.
Working with the standard building blocks of XML (Elements, Attributes and Text), authors are able to create reproducible data structures that can be easily filled. It also includes XMLDiff to visually compare the differences between 2 two XML files.'
Download here!
http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en
http://www.snapfiles.com/get/xmlnotepad.html
Read more here:
http://msdn2.microsoft.com/en-us/library/aa905339.aspx
Sunday, May 6, 2007
Visual Basic Power Packs
Migrating VB6 code to VB .Net is at best, a helluva task. Especially if you were like me, everything in one EXE file. No DLLs, no business logic and no stored procedures. In other words no logical architecture of any kind. All SQL statements where adhoc (inline SQL statements) which means amongst other things poor performance and almost no security whatsoever.
I started with VB3 as an amateur and things kinda evolved from there. Proper solution design was not something to look for in an application. Does it work? Does it do the job? Performance and security came in at a distant second.
The truth of the matter lies in realizing that VB .Net is NOT the same language as VB6. It looks the same, tastes the same but isn't the same at all. In my opinion it is, almost always, best to rewrite the entire application. But that is not always feasible. Some of these applications have been years in the making, with literally thousands and thousands of man hours in the making.
Microsoft realizes that and have therefore introduced the 'Visual Basic Power Packs', later herein VBPP. Officially 'Power Packs are free Add-Ins, Controls, Components, and Tools for you to use with Visual Basic 2005 to make developing great applications even easier.' In simple English, they're new tools to ease the transition from VB6 to .Net. To sort of, phase in the transition. To create a familiar environment for VB6ers, one that was alienated by Visual Studio 2002 and 2003.
VBPP includes the 'Microsoft Interop Forms Toolkit' which allows you to open .Net forms in VB6 applications, thus 'instead of upgrading the entire code base, (VB6) applications can now be extended one form at a time'. VBPP also includes the 'Microsoft Printer Compatibility Library' which 'allows projects that used the Printer and Printers Collection in Visual Basic 6.0 to be upgraded without having to re-write your printing logic'.
Now, Microsoft will also bring the 'Data Repeater Control' to VBPP which 'is similar to DataRepeater control found in Visual Basic 6.0 but it’s even simpler to use because you do not need create a UserControl first. All you do is simply drag and drop your dataset to the Repeater control and the designer will generate the controls for you'.
And 'Line and Shape Controls' with which you can 'add graphics to your Windows Form at design time just like you did in Visual Basic 6.0'. You can vote on which of these you'd like to see first.
Find out more about Visual Basic Power Packs here http://msdn2.microsoft.com/en-us/vbasic/aa701257.aspx.
Enjoy!
Sunday, April 1, 2007
My.Settings
A few days ago, when writing an application on .Net v2, I needed to store similar settings and it had me thinking; should I use an INI file, the registry or even an XML file. The logical answer seemed to be to use an XML. So, I started searching the internet for possible solutions.
For the better part of half-an-hour I went through a number of articles, knowledge bases, forums and blogs and then it struck me. A pure and simple answer on the Microsoft MSDN forums (http://forums.microsoft.com/msdn). Why not use My.Settings?
When using My.Settings, you are actually saving the settings in the app.config file in XML format. Simply double click on 'My Project', select the 'Settings' tab and enter the settings you require for your application. Remember these settings are unique for the local machine and shall NOT be available on any other machine.
Now, when adding new settings, you need to add a name for the setting, which cannot include spaces. You need to select the type, which is the data type. You also need to specify the scope. For this you have 2 settings, either 'User' which means that this setting is a 'read-write' setting, or 'Application' which simply means that this is a 'read-only' setting. You also need to specify a value.
Now, in code, whenever you need to read a particular setting then simply use My.Settings to access the setting value. You can also save a new value to pre-defined setting. Lost? Well, so was I at the beginning; so lets show an example. Lets assume we have 2 settings, named 'Username' and 'Password' (you would NOT usually save the username and password in a settings file; this is only for demonstrational purposes). Lets also assume that we have a textbox called 'tbUsername' and another called 'tbPassword'.
In code, to read the settings into the textboxes you would simply write:
tbUsername.Text = My.Settings.Username
tbPassword.Text = My.Settings.Password
Now, assuming the user changes these and you'd like to store the new values, you'd write:
My.Settings.Username = tbUsername.Text
My.Settings.Password = tbPassword.Text
and then you'd type:
My.Settings.Save()
Read more here and here
Enjoy!
Links
http://msdn2.microsoft.com/en-us/library/saa62613(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/ms379611(vs.80).aspx
Saturday, March 3, 2007
The Year of the Mobile!!
First Apple announce their upcoming iPhone, then Nokia announces their new E90 Communicator. Then i-mate announces their Ultimate range. And the cherry on top off the cake, Microsoft announces their new Windows Mobile 6.
There's a Windows Mobile 6 Pro Video 1st Look that shows some of the new things in WM6, which I think should be called WM5.5 instead, because the enhancement are NOT worth a major version upgrade (I do, however, think you should upgrade your mobile device should you be given the chance). Here's the unofficial "What's new in Windows Mobile 6".
The things I like most are (in random order):
- Vista effects: almost everything looks like everything in Vista.
- Enhanced security: you can encrypt the contents of your storage card.
- HTML email support: no more that ugly text.
- Enhanced Office Support: office documents look almost as good as on the pc.
- Windows update!!!!
- Internet sharing!!!!
Links (for those of you who like to copy & paste):
- http://www.apple.com/iphone/
- http://www.engadget.com/2007/02/12/nokias-e90-communicator-launched/
- http://www.clubimate.com/ultimate/default.htm
- http://www.microsoft.com/windowsmobile/6/default.mspx
- http://www.mobilitysite.com/2007/02/windows_mobile_6_pro_video_1st_look.php
- http://www.bostonpocketpc.com/whats+new+in+windows+mobile+6.aspx
- http://msdn2.microsoft.com/en-us/library/bb278115.aspx
- http://www.mobile-review.com/pda/articles/wm-crossbow-en.shtml
Thursday, March 1, 2007
Understanding: Interfaces
I, on the other hand, prefer to say: Interfaces can be best explained as a 'language'; like English or Arabic. Sometimes classes need to communicate between each other, if written by the same person, that would not be much of a problem. But sometimes these classes are written by a number of different people, probably people from another firm, country and/or continent.
In order to communicate with each other, like us humans (at least those of us who call themselves that :-)) classes need a common language they all speak. This language must be understood by all and follow the same rules and regulations everywhere.
In programming this is called an interface. It is a way of ensuring all related classes speak the same language. For example, if class A wants class B to do a certain task, the only way for class A to insure that class B can do the task, is by checking if class B implements the ICanDoTask (for example) interface.
Unlike inheritance, a class can implement an unlimited number of interfaces.
Perhaps you can understand more if you read this: http://www.vbip.com/books/1861004915/chapter_4915_10.asp.
Enjoy!
Monday, February 19, 2007
CLS Compliancy
Now, each of these languages has its own syntax, and when run on its own will work perfectly well. However, a problem arises when you wish to interoperate between these languages. For example, you might want to write a DLL in Visual Basic .Net (VB) that will be used by some other developer using C#. Sounds simple enough, only its not.
VB is NOT case sensitive (aka case insensitive), therefore, I cannot have two methods that read the same but have different casing; such as SomeMethod and SOMEMETHOD. However, C# is case sensitive and the above example is perfectly OK in C# land. Now, if I were to write a C# class that has these methods, I would NOT be able to use those methods in VB.
Therefore, the need arose for a set of specifications or rules, to govern the way code is written, so that it may be used by all .Net languages; these are called 'Common Language Specifications' or CLS for short. You can all the relevant rules at http://msdn2.microsoft.com/en-us/library/12a7a7h3.aspx.
Code that adheres to these specifications is said to be, CLS Compliant.
Enjoy!!
Thursday, February 8, 2007
Building Custom Types
They are in random order; Class, Structure, Enumeration (Enum), Delegate, Interface and Module (not available in C#). All of which, except for the 'Interface', inherit from the Object data type, which is the root type of all types in .Net.
Just a thought for you developers out there.
How can you buy Office 365?
Now that we know what Office 365 is , it is important to find out how we can buy the service from Microsoft. While we're at it, we can ...
-
Ever since it introduced Visual Basic .Net some six years ago, Microsoft has been striving to have developers jump the VB6 wagon and onto th...
-
Ok , first a disclaimer: I'm a Microsoft MVP with a competency in Visual Basic. Normally I would not give this much thought, I've al...
-
I've had my fair share of failed projects. Not as little as I'd wanted, but nonetheless, fair. One day, I realized I've had one ...