Tuesday, December 19, 2006
Microsoft Office 2007 for a trial spin by the end of February
Download the free trial from here (~502.1 MB) (link) or check out the official trial site (link) for more information. You will need a trial licence key, which you can obtain from here.
Tuesday, December 12, 2006
"What the C or C++ Programmer Needs toKnow About C# and the .NET Framework" book by Charles Petzold
"What the C or C++ Programmer Needs toKnow About C# and the .NET Framework" by Charles Petzold (link)
First thing you should note is the author - not everyone, but the famous Charles Petzold. Then you should notice that this book is completely free right now, so I really don't know what you are waiting for - just go there and download it :)
Monday, December 11, 2006
Service Unavailable error and IIS 6.0
Tuesday, December 05, 2006
Exposing a MEX Endpoint
Uri baseAddress = new Uri( "http://localhost:8080/MEXAutoMetadataSvc" );
// NOTE: by specifying a base address, the MEX endpoint should be automatically populated especially for HTTP based profiles
myServiceHost = new ServiceHost( typeof( .. MEXAutoMetadataSvc ),
new Uri [] { baseAddress } );
//Open myServiceHost
myServiceHost.Open();
Now with this code running, if you go to http://localhost:8080/MEXAutoMetadataSvc you will see the description for this service.
Friday, December 01, 2006
Windows Vista and Office 2007 webcasts
http://www.powertogether.com/
There, you will find a realm of online virtual labs and web casts, bundled up to give you one-stop-and-shop place to speed up with that technology, which IMO is really revolutionary. And don't get me wrong - I don't think of Windows Vista as of the new Microsoft OS with the very sleek UI, but also with all of its major improvements in security, connected systems development (and Microsoft .NET framework 3.0) and totally revamped way of interacting with your PC. I can tell you that having Vista on my desktop, I will never think of moving back to any previous OS.
As far as Microsoft Office 2007 is concerned, I will really recommend you just playing with it for couple of hours. Then send me back your comments. However, back on the link I gave you here, there is a good overview of what's into the developers toolbox for Office 2007 so it's worth to go there and master these.
Wednesday, November 08, 2006
Windows Vista released
Visual search engine - amazing!
Microsoft Visual Studio 2005 IDE Enhancements
- Source Code Outliner : The Source Outliner tool is a Visual Studio extension that provides a tree view of your source code's types and members and lets you quickly navigate to them inside the editor.
- Visual C++ Code Snippets:The Visual C++ Code Snippets tool lets you insert snippets in your code by using a pop-up menu that contains programming keywords. VB.NET and C# languages have this functionality in Visual Studio 2005.
- Indexed Find : The Indexed Find tool is a Visual Studio extension that uses the Microsoft Indexing Service to provide improved Search capabilities to the integrated development environment (IDE). It sends the results of a search to the Output Window.
- Super Diff Utility: The Super Diff Find tool is a Visual Studio extension that compares text files. It uses color coding and graphics to show the difference between the files in deleted text (red), changed text (blue), inserted text (green).
- Event Toaster Utility: The Event Toaster tool is a Visual Studio extension that notifies users about specific events within the Visual Studio IDE.
You can download all of these from the link below:
[Microsoft Visual Studio 2005 IDE Enhancements] (link)
Tuesday, November 07, 2006
Microsoft .NET 3.0 Framework has been released!
Monday, November 06, 2006
Ramping up with Microsoft .NET 3.0 Framework - resources
Collection 5134 : Developing Rich Experiences with Microsoft® .NET Framework 3.0 and Visual Studio® 2005 (link)
Another cool place where you can find more hands-on demos about .NET 3.0 is the MSDN Virtual Labs (link) and last but definitely not least important is the official .NET 3.0 community site (link).
Visual Studio development on Windows Vista
Unable to create the Web 'http://<
The Vista OS is kinda new to me and I am still learning it - it is definitely far away more secure and interactive. The UI is super sleek and overall the way you work with the OS is very different than any previous Windows OS. Probably the closest match is Windows 2003 Server. However, because I am Visual Studio developer myself, I am pretty glued to Visual 2005 Studio as my most used IDE. Now, it seems that there are some things that you should pay attention while developing on Windows Vista - check out the official page for Visual Studio support on Windows Vista for more details (link). Basically what can be infurred from there is that VS2002 and VS2003 will not be supported on Vista, but that again doesn't mean that your Microsoft .NET 1.x/2.0 apps won't work there - just the opposite. This restriction is all about development, not application compatibility. The bottom line is that you have to get the Visual Studio 2005 SP1 and the Vista Support update in order to develop on Vista.
Wednesday, November 01, 2006
Windows Live Q&A
So why I am telling you this and meanwhile the title of this post is Windows Live Q&A? Well, this service is all this about - you asking questions to the community and eventually getting answers. Of course, the answers are pretty subjective and the content is not 100% guaranteed, but we are grown-ups, right? And still the interesting thing with this service is that the more you answer questions, the more points you get and hence better personal rating. This is mainly used to show users how reliable are your answers (to my knowledge). More about this here. And now I am thinking about ways to monetize this service and reward the active and honest participants ... (is that a new advertisement type? p.s. which I personally will love:0)
Saturday, October 28, 2006
Windows Live Dev blog
Tuesday, October 17, 2006
Some interesting features of Windows Live Search
Today I found this great feature available with Windows Live Search - that's the contextual suggestions that this search engine gives to you, when it finds something relevant to what you are looking for. For example, I was looking for "mazda3" and here is what I've got:
Now, as you see, on your right side there is a bunch of sites, among which are reviews and different trims of Mazda3.
But to go further more, I want to touch base here with another interesting and very cool service, part of the Windows Live - namely "Live Q&A". If you just switch real quick to it, you will se the following:
What this service brings to you is some user opinions and real-life experiences related to your search pattern. What this service brings to you is very obvious from this service motto: "Live QnA connects you to the best answers from the right people.". So what I've got here is a rated list of user reviews on the Mazda3, which may prove to be very useful to me.
Another very cool service part of Windows Live is Image. Besides its sleek way of doing previews while hovering a single image, it has many other useful gadgets such as the zoom-in/out panel at the top to control image sizes, the scratchpad (where you can drag & drop images). The search capabilities are fully integrated and are very sophisticated. For example, if you do a search on "John Kennedy", here is what you've got:
What's actually interesting here is the right side pane, which displays what? yeah, that's right - related people to John Kennedy. Sweet! Needless to say that the search is not just keyword based, but it does some relevancy checking and is contextual based.
Friday, October 13, 2006
Copy music from iPod to your PC
Wednesday, October 11, 2006
XML Notepad 2006
Visual Studio default shortcuts
General Development Settings Default Shortcut Keys (link)
Sunday, September 17, 2006
Video Podcasts with Apple iPod
I recently downloaded the newest version of iTunes 7.0 and started exploring it. One of the most coolest feature I found is the ability to sync with video podcasts. So far I had some problems playing video on my iPod in general. Sometimes I just couldn't convert a movie to the iPod format, or sometimes the iPod just didn't play them at all. However, couple of days ago using this new feature about video podcasts, I managed to play video! So here is how you can access this new feature from iTunes. Just follow the steps shown on the following screenshot:
As a result, you will have to see this (or at lest this is what I get from iTunes):
From this point, just pick those you like and then sync up your iPod. From your iPod, just go to Videos -> Video Podcasts and enjoy the ride! :)
Just a quick note about iTunes 7.0. The current version is not very stable. It constantly crashes, while attempting to update my Outlook contacts and tasks if the connection to the mail server is not present. I am using Microsoft Exchange email account with cached mode enabled. Although Microsoft Outlook is working soundly in this case, every single time I start iTunes without having established connection to the Microsoft Exchange, this software just crashes with "Unhandled exception occurred". This drives me crazy and that's why I disabled contacts and tasks synchronization.
Saturday, September 02, 2006
Windows Live Services - full list
Windows Live - the Microsoft rival of Google, has taken a very fast pace forward. Currently it includes a total of 56 different services available on the Web (check out this link to see this list). Google on the other way are trying to compete with Microsoft Office by providing a free-of-charge word processor and spreadsheet, but in my honest opinion they are decades behind Microsoft. On the other way, Microsoft is pulling away the Office Live initiative (link), which gives you at your ease email, collaboration, Web publishing, etc.
I personally use Microsoft Live Writer (link) for RSS content management. Although still in beta, this program is really great. As you can see, I am using the Blogger service for RSS, but its Web interface is very simple and by no means is user friendly. Besides, it is Web based. It has happened several times that when I am done with the blog entry and I try to publish it, if my Internet connection experience some problems by this time, the whole post is gone - so long 30 minutes or so writing. Would be far away better if there has been something like autosave on every N seconds, correct? Because Windows Live Writer is Desktop based, I don't have this problem. Nevertheless, it provides very useful tools to format the blog entry with whatever styles you want. And here comes the great news - you can insert pictures to your blog although the blogging service (Blogger in my case) does not support publishing pictures. What it does with them - you are just prompted to setup a folder on the FTP where this program will upload the pictures. That's really sweet!
Traffic condition on Virtual Earth
While checking something on VE, I suddenly saw a new tab on the screen - "Traffic".
For Americans, this service is the life saver and they are so used to it. On my last trip to Seattle, we were on the road with a friend of mine and he wanted to know which streets are blocked so that he can better plan his route. Well, couple of clicks on his Pocket PC and voila - you see full fledged map showing you which streets have heavy traffic, or incidents, etc. I really wish we have this service down here in Bulgaria - it is really very useful.
Wednesday, August 23, 2006
Web control library project in Visual Studio 2005
Today I wanted to create a custom ASP.NET 2.0 control (not to be mistaken with Web user controls a.k.a. ASCX controls). For this reason, in Visual Studio 2003 I used to create a stand-alone Web control library which actually contains the new custom control (s). Because the whole Web project base is changed in Visual Studio 2005, you won't find a "Web Control Library" project in New Web Site dialogue. Finally I made it through! This project type is now located in Windows section - point to File | New | Project ... and choose this project as shown on the screenshot below:
And now you can start add your custom controls to the Visual Studio 2005 Toolbox by right-clicking on the specific tab. Then select "Choose items.." from the context menu. In the ".NET Framework Components" tab, locate the assembly file of your Web control library and choose the controls you want to use. And that's it ..
Google Calculator
Today I had to convert quickly from pounds to kilograms. Hence, I hit the Internet to see what the aspect ratio is between those two measurement units. I was really nicely surprised by Google, which provides a service called "Google Calculator" (link). Using it, you just have to type "1 pound in kilo" in the search criteria and you are all set! It is really small things that make people happy :-)
Thursday, August 17, 2006
CopySourceAsHtml add-in for Visual Studio 2005 / 2003
Wednesday, August 09, 2006
ASP.NET 2.0 Tips, Tricks, Recipes and Gotchas (on ScottGu's Blog)
Thursday, August 03, 2006
Review: Flock browser
What gives me the integration with del.icio.us? Well, I have tons of bookmarks and I am working on 3 machines - one at home, one at the office and my personal notebook. So I am indulged to sync my links among all these machines, which is really very tedious and boring task. Flock solves this using the del.icio.us service, which among all provides bookmark management to its clients. And it is free :)
Another story is the heap of pictures I got. I am currently using Yahoo!Photos for this purpose so every time I want to publish new album and pictures, I have to login there, create a new album, drag & drop the new pictures, etc. Now, I can to this with couple of clicks and drag & drops :) That is because Flock uses Flickr for photo management, which collaborates with Yahoo!Photos. Simple as that.
Well, the history shows that each Internet browser has it own particularities in regards to page rendering. Because my experience so far with Flock is not that much, I can't say whether it working sound. I read that it is based on Mozilla technologies so provided that most pages try to be compatible with Mozilla I guess that there won't be any problems. But will see ..
If you want to try out this browser, just go to its page and download it [link].
Thursday, July 13, 2006
Internet Explorer Developer Toolbar
I tried Internet Explorer Developer Toolbar which is all this about. Among its features you will find:
-- Validate HTML, CSS, WAI, and RSS Web feed links.
-- Explore and modify the document object model (DOM) of a Web page.
-- Locate and select specific elements on a Web page through a variety of techniques.
-- Display image dimensions, file sizes, path information, and alternate (ALT) text.
-- Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.
Currently, it is in Beta 2 and is free. You can download it from here. Enjoy!
MSDN Webcast: What I Wish Developers Knew About Writing Queries in SQL Server 2005
This webcast is really a masterpiece - that's all I can say about it. It really gives you a very good understanding how to diagnose and tune up your applications using SQL to manage their data. I also share the view of the author that there are many software developers that don't have this specific knowledge about writing effective SQL queries, probably because they haven't experienced performance hits. So far, I have projects behind my back where we had to squeeze out every possible second out, because of huge data load and requirement for good performance. I really know what SQL Server Profiler can do, and I really love it!
So this Web cast will give you a really very good idea and real demonstration how you should diagnose and tune your SQL queries so that you have optimal database performance. Highly recommend it!
Wednesday, July 12, 2006
SQL Server 2005 and Visual Studio 2005 integration - good demos
Anyhow, here is a link where you can view or download the content for offline browsing - SQL Server 2005 Developer Productivity Guided Tour [link].
Here is a quick overview of what this tour includes:
1. Web Application and SQL Server Database Creation (4 min. 34 sec.)
- Creating a New Web Application
- Adding a SQL Server Database
- Inspecting the SQL Server Database
2. Database Schema Creation and Data Input (6 min. 52 sec.)
- Creating Tables With the Database Diagram Designer
- Modifying Tables with the Table Explorer
- Populating the Tables with Test Data
3. Data Access via Stored Procedures and User-Defined Functions (7 min. 49 sec.)
- Creating a Stored Procedure
- Creating a User-Defined Function
4. Data Access and Data Binding in Web Applications (5 min. 41 sec.)
- Adding a New Form to a Web Application
5. Web Application Debugging (6 min. 23 sec.)
Wednesday, July 05, 2006
Mr. Eric Rudder live!
Eric Rudder is for sure a very versatile person. I personally like the fact that he has developer background but he also has very strong business feeling for sure. It was really great to see how passionate he is about software and technology! Obviously he has a very versatile knowledge and look in software industry. For example, we talked about SAP technology and how it compares to Microsoft technology stack. I actually pose him the question - "How would you convince me to use Microsoft technologies instead of SAP?". This was a tricky one :) . But he managed to explain us the pros and cons of both solutions and how Microsoft think can position itself thru the verticals as opposed to SAP. It is well-known that SAP has relatively high pricing especially for SMBs, where Microsoft is mainly targeted. However, I believe that with WF, WCF and the whole SOA paradigm in hands, Microsoft may provide to its clients very customizable and highly scalable business solutions based on Microsoft servers like BizTalk, SharePoint, SQL Server, etc. I believe that Microsoft .NET 3.0 could bring all that and thus be a potential rival to SAP.
Saturday, July 01, 2006
Atlas June CTP released
Another thing worth mentioning related to Microsoft Atlas is the Microsoft Atlas Control Toolkit (check it out here). It gives you a bunch of free Web controls and components, which seamlessly integrate with ASP.NET 2.0 page model and brings valuable add-ons to your web applications. There is a very good article about this toolkit at ScottGu's blog(link).
Friday, June 30, 2006
Tech-Ed 2006 is online
Wednesday, June 28, 2006
Master of Science - completed
My master thesis was about "Distributed transactions in Service-Oriented Architecture". I personally adore the concepts that SOA proclaims. From scientific point of view, most business systems pose the requirement to guarantee to its clients atomicity and consistency of the operations carried out thru them. And here comes the need for transaction control. Fortunately, the guys from WS-TX group from OASIS (link) have done a great job so now we have a bunch of specifications aimed to provide a unified coordination framework for a set of Web services. Web services are actually one concrete programming interface that complies with the SOA concepts. They are very compelling with the fact that they rely on widely spread open standards like WSDL, SOAP and UDDI. I won't go into to many details here, but having all these things in mind I decided some time ago to implement the specifications, defined by WS-TX. Namely, I was interested at WS-Coordination and WS-AtomicTransaction.
The introduction of my master thesis reviews some of the most popular transaction processing systems realizing distributed transactions. We identify the common problems that they all have in regards to interoperability and platform independence. Nonetheless, one of the primary goals of SOA is to boost code reuse thru loosely coupled interfaces. And this may serve as a elegant solution in which we will be able to combine the existing business systems in a loosely-coupled manner and having transaction control over autonomous services. This was basically the goal of the practical part of my master thesis - to show a sample solution which will be based on the SOA principles, providing distributed transactions to its clients. As a result, I implemented WS-Coordination protocol so that the concrete transaction models have a unified framework for coordination. The concrete transaction model I used followed the principles of two-phase commit protocol (2PC), provided by WS-AtomicTransaction specification. However, I'd like to say that the other transaction protocol WS-BusinessActivity, defined by WS-TX, is really very interesting one. It is best suited for long-time business transactions, which consume lots of resources for a long period of time. It tries to "relax" some of the well-known transaction properties ACID such as atomicity and isolation. I highly recommend reading this standard as well as the following article (link), which will give you a very good perspective what all these standards are all about. Here is a good place to express my gratitude to Mr. Dan House from IBM, involved with WS-TX group, who has been very responsive to all the questions I got about these specifications!
My master thesis is in Bulgarian so far, but I am planning to translate it in English (if I have some spare time). However, if someone of you is interested, you can always drop me a line and I will do the best of me to reply you. Following up this link, you can see just a short annotation of my thesis, which I believe will throw you some hints what it is all about.
Friday, June 16, 2006
Bill Gates going to retire from Microsoft?
Thursday, June 15, 2006
Microsoft .NET Framework 3.0 - the idea
Monday, June 12, 2006
Microsoft Days 2006 - Sofia, Bulgaria
For those of you who can attend it, check out this site to see the program and the speakers. Keep in mind that the seats could easily run out, so don't hesitate to register ASAP here! :-)
Tuesday, June 06, 2006
Free download of Microsoft Virtual Server 2005 RC2
Monday, May 15, 2006
Virtual Desktop Manager for Windows XP
Hey, I know that this post is not very techy, but this tool really got me. I hope that it will give you a little bit of satisfaction and joy (as it did with me) :-).
Friday, May 05, 2006
Debugging OneWay Web methods
Well the first lesson learnt is: while debugging from the client side code, you cannot step into the server side code! Indeed, if you have a nice-and-tidy Request/Response Web method, you can step into the server side implementation right from the client side proxy. But taking into the account that the OneWay methods are executed asynchronously, obviously you can't do it in this way. What is your solution then? Well, you have to attach the target Web server's ASP.NET worker process (aspnet_wp.exe), set the breakpoints into your OneWay Web method and finally run the client side code (usually it is a Web form which calls your Web method). Simple as that! End of lesson 1.
And this is the place, where I am approaching the second lesson (in debugging XML Web services :-) ): in order to be able to debug your OneWay Web methods, your Web service should be compiled with ".NET" platform setting (not mentionting at all that the configuration MUST be DEBUG!). The case that I had was that there were couple class libraries included in the solution, which contained the business logic. The same class libraries were called by the Web methods. So far so good. The problem is that the build platform for these libraries is "Any CPU", which somehow is not compatible with the .NET debug configuration of the WEb services. So if I do NOT set the ".NET" platform to be active for the whole solution, then I am not able to hit my breakpoints in the OneWay Web method, otherwise - it is working nicely!
Ah, I am using Visual Studio 2005 Team System and of course, Microsoft .NET framework 2.0 - to give you an idea what is the development environment.
Well that's all folks - I hope that if someone of you ends up in the same problem, this could give him/her a solution! :-)
Tuesday, April 18, 2006
Distributed Atomic Transactions and Heuristic Outcomes
I am planning to implement two different concurrency protocols - WS-AtomicTransation and WS-BusinessActivity. Nonetheless, WS-Coordination is the coordination protocol used in both of these concurrent protocols, so I have implement it as a pre-requisite. Well these protocols are still a work in progress by OASIS Web Services Transactions group (link).
Starting with WS-AtomicTransactions, I ended up on a problem, which occurred to be well-known in the distributed transactions and concurrency control namespace. It is called "heuristic outcomes" and it about the two-phase commit (2PC) protocol. Let's consider that after the first phase (the preparation phase), all participants reply with PREPARE/COMMIT message. Accordingly, the coordinator decides to commit the whole transaction and thus starts sending COMMIT message to all of the participants. But .. suddenly after he has sent the COMMIT message to 3 of the participants, an unexpected network outage occurs. So the remaining let's say 2 participants are waiting for their COMMIT message, but it doesn't arrive. To summarize - we have 3 participants which have already committed the transaction and another 2 which are wondering what to do (from here comes the term "heuristic outcomes", because the final decision of these 2 will make is somehow heuristic). Well, so far I haven't seen a resolution for this issue - it is rather relied upon that the logging system will be pretty sophisticated so that the administrator of your system will see this non-conformity and will manually "compensate" the COMMIT changes of the 3 participants and thus bring the whole system back in a consistent state.
Sunday, April 16, 2006
Query Notifications in ADO.NET 2.0
While the idea behind QN is really easy to understand, the documentation and examples are still kinda scarce. Not only this, but there turned out to be very small details, which may give you couple of hours in debugging in order to detect them.
To start with, here is a list of articles about Query Notifications in ADO.NET 2.0:
1. Query Notifications in ADO.NET 2.0 [link]
2. Using Query Notifications [link]
3. Enabling Query Notifications [link]
4. Using a Dependency to Detect Changes in the Server [link]
All of these will give you some very good understanding of what QN is all about. However, I found some problems with the examples in them, so don't be confused if you try them and they are not working - it is not you :)
Speaking of problems, one of the subtle things you should have in mind is that the query assigned to the SqlCommand object must be fully qualified (that is the table name should include the table owner, you should enumerate all interested columns in the SELECT clause rather than putting a simple * for ALL columns). Actually if you take a look at the following article:
5. Using SqlDependency for data change events [link]
you will see a bunch of things which the author has experienced (the same as me) while dealing with QN.
Another problem that I got was with my OnChangeEventHandler event handler. I initially received OnChange notifications although there were no DML operations on the monitored dataset. The info that I got from the SqlNotificationEventArgs parameter for this event was the following:
e.Source = Statement
e. Type = Subscribe
e.Info = Invalid
The reason for this was that my SELECT statement was using * for all the column names instead of fully qualifying the columns put in interest. I bet that if this is a problem, then the description of it should be somehow more descriptive and showing more symptoms of what actually caused the specific problem.
Another problem that I got was with the QN registration for the specific database you want to enable it. For this, you should check out the following article:
6. Using Query Notifications in .NET 2.0 to handle ad-hoc data refreshes [link]
SqlDependency is one way to use Query notifications in your application. What is worth noting about it, is that one SqlDependency is good only for a single notification. That said, after one notification has been generated through your SqlDepedency, you should re-create it if you want further changes to be captured. Another cool thing with SqlDependency, is that it can easily applied to ASP.NET cache object (check out article 1 for more information).
Thursday, April 06, 2006
SqlDateTime overflow problem and DATETIME columns allowing NULLs
So you have T-SQL insert statement for a table which has one of its columns defined as DATETIME which allows NULLs. You are passing an uninitialized variable for exactly this column in your INSERT (not purposely of course :) ), and the error you get is:
System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between
1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
What do you do? Well, I was very confused seeing this message. I hit the Internet for a similar problem but I was totally deluded in stories that SqlDataType is not compatible with .NET DataTime type. Obviously I was on a wrong direction. Thus, after I reviewed my code, I saw that the value of the DateTime column, which allows NULLs is not actually NULL but rather DateTime.MinValue - indeed, and this is normal because each .NET variable once defined it is initialized with some default value (which in the DateTime case is DateTime.MinValue). Unfortunately, DateTime.MinValue doesn't really fit into the range of possible values for SqlDataTime.
What is the resolution? Well, I am using .NET 2.0, where there is a very neat generic type named Nullable
Wednesday, April 05, 2006
LoginStatus control does the work
Well, this problem has been resolved long time ago - I remember it since the early ASP days. So normally what is done is to set the content expiration to immediate to *all* pages within your Web application. Of course, sometimes, this may be not desirable, but still in my cases it was essential not to give the user the possibility to go back. So the solution is to set 3 HTTP headers to all HTTP responses - Pragma, CacheControl and Expires.
Today, I had the same problem while implementing the logout functionality of our ASP.NET 2.0 based Web application (just to mention we are using very cool stuff like Microsoft Atlas, SQL 2005, Virtual Earth API - fascinating, isn't it?). Again, the old solution seems to be working (setting the aforementioned HTTP headers), but I somehow decided to try out the LogingStatus control. This control changes its state based on the current user status - if he is logged in it is a link which will allow him to Logout and if he is not authenticated - it will be "Login" link. And here are the good news - if you use this control, there is no need to set these headers to your whole application - it is done automatically to you when you use this control. Pretty sweet! :)
Monday, April 03, 2006
Cycle Clipboard Ring command
Talking about "hidden" commands, there is one more I discovered today being very popular in Java IDEs in particular. This time this feature is part of ReSharper for Visual Studio 2005 (still a beta and not very stable thus, but still has very useful features without which I feel like I will get back in 1st grade :) ). Well this feature is named "GotoRecentFiles" and on the default keyboard scheme is accessed thru CTRL + E. This gives you a popup window with all of your recently accessed files. Sweet!
To some of you these features may not be very significant, but still when you deal with huge code bases, you want to minimize your time to switch between files and to somehow boost your productivity without dealing with routine things. I hope that this post will give some delight to those of you who are used to such kind of "widgets".
Friday, March 17, 2006
Team Foundation Server Released
ASP.NET 2.0 quickstart videos
Enjoy!
Monday, March 13, 2006
Origami project
The official site of the project is this - check it out. I was personally amazed by the way the whole page is designed and the overall presentation to the viewer - it makes you somehow believe that this product will really change you life :-) .
Origami project will actually develop a ultra-mobile PC, which will be far away more than any personal assistant you have ever had, giving you versatile online connectivity thru Bluetooth, full fledged Microsoft office installed, exciting features like mapping, geocoding and GPS location tracking. The official OS which run on this device will be genuine Windows XP. The premium touch screen (which is really very very fancy, especially the keyboard!) and the whole user interface somehow resembles Tablet PC, but still if you compare the sizes the Origami device is far away smaller. If you want to know more technical details about this device, please go to the official Microsoft site, where you will find bunch of information about this topic - here.
Actually, there is a post on Channel9 about it, which I really recommend if you want to get some "hands-on" experience about what is it all about (see it here).
Free Microsoft beta exams
There are 3 beta exams currently being free for a limited time:
71-547 PRO: Designing and Developing Web-based Applications by Using the Microsoft .NET Framework. Promo Code: PRO547
71-548 PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework. Promo Code: BTA548
71-549 PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework. Promo Code: 549BTA
(more information find here: http://www.microsoft.com/learning/offers/beta/)
Pay attention to the fact that if you take one of these, you will enter the lottary to win a smartphone! :-)
Monday, February 27, 2006
Code Analysis for Managed Code feature in Visual Studio Team System
Well, the feature I want to discuss now, is Code Analysis. Here is a short overview of what it actually is all about:
"Code analysis for managed code tool analyzes managed assemblies and reports information about the assemblies, such as violations of the programming and design rules set forth in the Microsoft .NET Framework Design Guidelines. "
Simple as that! Now, what it has to do with VSTS is that it is fully integrated into it and can be part of the build process, code check-in process and/or Team System build process.
The best way to understand this feature and see how powerful it is, I suggest playing with it. In order to enable Compile time Code analysis feature, just go your solution properties in VSTS, choose "Build" section and there select "Enable Code Analysis" checkbox. Then rebuild it and in the Output window you will see the results from the additional build step performed regarding code analysis.
What I personally found as very neat feature is the code analysis check-in feature - that is whenever you try to checkin source code in the team repository, your code will be verified whether it conforms to Microsoft guidelines for quality code. Here is a link, where you can find additional information about this feature (link).
I still don't know whether the set of rules for code analysis is extensible - if it is using FxCop underneath, I guess that will be as easy as a breeze.
Friday, February 10, 2006
Compiz Window Manager
Thursday, February 09, 2006
Microsoft E-Learning courses for ASP.NET 2.0 and SQL Server 2005
My role within this team will be project manager - quite challenging becuase I have to find the optimum between the skills of the team members and the project specific goals and domain. In regards with technology, I am now at the phase where I am gathering different sources for education about ASP.NET 2.0 and Microsoft SQL Server 2005.
One very valuable resource, especially for those who have solid background with Microsoft .NET framework 1.0/1.1, is the online courses at Microsfot E-Learning (link). The courses there are separated into different sections, based on the different Microsoft products and the targeted audience (IT administrators, Software Developres, Advanced Developers, etc.). Here are the two sections that we will need:
- Visual Studio 2005 courses (link) - includes coures for Microsoft .NET 2.0, ASP.NET 2.0, Windows Forms
- Microsoft SQL Server 2005 courses (link) - these courses are free until November 2006!!!!
What I don't like with this really very helpful service is that the courses which are not free, are available only for North America. See the excerpt below from here:
"Microsoft E-Learning products are currently available for purchase only within North America at this time. However, any content that is offered for free, or users who are redeeming a voucher or activation code, can access e-learning courses worldwide."
I am wondering - is it only a matter of billing control? If I am able to view the free content, then obviously there will be no problem to see the paid one. However, I guess that the billing system is not integrated with European's one, which may be the bottleneck with this. Or I could be wrong ...
Friday, February 03, 2006
Internet Explorer 7 Beta 2 Preview
To begin, you can download it from here. From there, you will prompted to download an installation, which is not that big - approx 11 MBs.
OK, and here are my first impressions. It is obvious that Microsoft is trying to get back into the Internet browsers space. Personally, I am using, IE6 but I am really not very delighted with it. I am "obliged" to use it, because I am used to store links from my local MSDN library, and in order to open them, I actually need IE. And honestly, this is the only reason not to forget about it. During my "free" surfing time (when I am not using MSDN library), I prefer Opera because of so many reasons like:
1. Has tab display
2. Has awesome bookmark features in terms of searching and maintenance.
3. Has the concept of sessions - thus you are able to store a given set of links under a given label, so that you can get back to this "topic" whenever you want.
4. Has integrated support for RSS
5. Has integrated support for NNTP
6. Has integrated mail access
Well, this list seems to be a long one for sure. With IE7, some of these wish-items have been fulfilled. For example, IE7 has tab display and supports RSS natively. It also has integrated search capability, which according to me is very useful. However, I respect the fact that on default they are using Google Search (not MSN Search), which shows that they are trying to follow customers preference (hey, we all know that Google Search is the most used search engine, respect!). Among these, I will say that the new design and outlook of IE is very very sexy, which for me as a user is also important.
However, I would have been far away more satisfied, if IE had had improved its bookmark capabilities. I personally have more than 5000 favorites, and believe me, it is really hard to search and navigate in IE. On the contrary, in Opera they have this very useful search, which digs into all directories of your favorites (not just in the root as it is in IE). But, hopefully, Microsoft will add it in the future - fingers crossed! :)
Thursday, February 02, 2006
Web 2.0 and the future of Internet
Back to Web 2.0, the main focus is to design a new generation of services such as Microsoft Virtual Earth, Flickr, Orb and Digg ( and there are many many more). These are very, very strong examples, showing that the era of static Web documents is far far away. Actually, if you haven't already, I strongly recomment trying these out. With Virtual Earth you have a great map service at your finger tips and an amazing "Eagle Eye" view, which shows you a close view of a given terrain. You want to find a cafe in the local area - no probs, just search it there. Orb gives you the ability to stream TV and any kind of media from diverse locations. The last one, Digg, I find really amazing. People need information for in all kinds of topics, but sources are most important. Some of them are very biased, others - not reliable. Digg is trying to solve exactly this - each article has a "digg" index, which shows how many digg-ers liked and found it useful.
Tuesday, January 31, 2006
Delivering services or buying software?
Recently, we have been witnesses of the great success that Google. And what they have, is it an operating system? Is it a software that is so unique?No. They provided to its customers the service to be able to search very efficiently. Well, after that they have many other services like GoogleTalk, Google Video etc, but still their "customer" are just using the service rather than buying it.
And guess what - Microsoft whose biggest income so far has been from its operating systems and Microsoft Office, they are now trying to settle into this business too, because it is obviously very profitable. Go to Windows Live and you will see what I am talking about - very useful services like MSN Messenger, Security, Favorites, etc. Microsoft is planning to fight for Internet users and because of this they are now restructuring and investing in their MSN group. And I am sure that pretty interesting things are about to emerge.
But yeah, I believe that in the future the share of IT market that services are going to occupy will become dominant as opposed to the traditional software. Actually, take a look at this article: CSFB says 'traditional software is dead' (link). There you will see that this time this will happen is not too far away...
Monday, January 30, 2006
HOWTO write unit tests
Some very common questions that you will have in this case is:
* What functionality should I test?
* Are my tests relevant to the business requirement?
* How should I structure my unit tests so that I know which ones to run when I make a specific change?
* How many unit tests are "good enough"?
* How should I design my code so that it is liable for easy unit testing?
One of the very good consequences of TDD is that each developer starts thinking a little bit like a software tester. We all know that developers develop to run, while testers run to break. Well, if developer invests some time to gain a more comprehensive understanding in the problem that (s)he has to implement, then chances are that (s)he will produce less bugs. And this is one of the main tenets of TDD. By developing test cases, developers tend to gain a more versatile understanding over the problem domain they have to implement and thus their code is prone to less bugs. I totally agree that this is just a theory, and basically it depends on what unit tests the developer creates, what is the code coverage of those tests, how often are the tests run and of course - are the tests actually relevant. A good place to start learning what are the most basic requirements for efficient test cases, visit the article "Write Maintainable Unit Tests That Will Save You Time And Tears" (link).
One of the biggest challenges that I had so far in my experience was to design my code so that it is easier to be unit tested. It really depends on the programming language that you use as well as the platform that you are using. My experience so far is with Microsoft .NET, where the unit testing framework which is most used is NUnit. So when it comes to design, we had to design our applications that in one hand they are easily to be tested, but on the other side the testing code is somehow out-of-the-box. Therefore, we decided to implement the business logic in separate class libraries (.DLLs), which exposed the main business classes. This has the following benefits:
1. Class libraries allows to be easily reused - thus, we wanted to use a single assembly for multiple places within our system, we were able to to this
2. Class libraries are easier to be tested - what we did was to create a "bootstrapping" code which just represented the specific unit tests on each single class / method. Thus, we had very well separation among unit testing, business logic and presentation.
Here is an article that is something like a quickstart for test driven development in C# - click here.
Monday, January 23, 2006
Java or C# - which one is more competitive?
Another topic that took my attention from this article, was about the demand for programming languages. It seems like Java is still programming language no. 1. I do know that most developer are very sensitive on this subject - all of us have been a witness if not a participant in *bloody* discussion which one is more superior Java or .NET :-) I am technology oriented so I don't take neither position in such cases - for me what is important is the technology, the programming language is just the tool for implementation. Well, I have preferences of course, but I will never get into such kind of "deadly" fight. However, I think it is positive to know what is the market demand when it comes to programming languages. Thus, every developer knowing the trends in software development in the future years, will be able to react adequately, and if needed, to start learning new technologies so that (s)he is competitive. Those of you who are interested in such kind of trends especially in programming languages, go to TIBOE page which are publishing even monthly reports on the skills demand in programming languages (here is the link).
Sunday, January 15, 2006
How hazardous are Wi-fi devices with their radiation?
Well, I heard a similar story about Wi-Fi devices. I personally use the Wi-Fi coming with my notebook a hell of the time. Actually, I am used to hold the machine on my stomack, while I am in the bed. So normally, I got upset a little bit. I checked out the Internet for some information about how hazardous is the Wi-fi? I found this very interesting article, which shows a real lawsuit for exactly the same thing (check it out here). According to this article, it is well-known that Wi-fi's are harmful, but they are not more harmful than any other microwave that we are so used to. And even our wireless speakers and cordless phones sold everywhere are not "flowers", when it comes to radiation. Here is an excerpt from this article, which gives enough information about the case:
"
.. Wi-Fi experts argue that while wireless networks do, in fact, produce low levels of electromagnetic radiation, they emit no more than household gadgets do. If wireless networks are hazardous to your health, they say, so then is nuking a slice of pizza. Microwave ovens and many cordless phones actually operate at the same 2.4GHz frequency used by a 802.11b wireless network. Even those wireless speakers you can buy at RadioShack emit similar radiation levels. "At this point, we have no reason to believe there is any harm in wireless networks," says Wi-Fi Alliance Managing Director Frank Hanzlik.
...
In their lawsuit they assert that "responsible scientists have reported that prolonged exposure to low-intensity radio frequency radiation can break down DNA strands, cause chromosome aberrations and break down the blood-brain barrier, thereby permitting toxic proteins to invade the brain."
"
I am so used to my wireless router at home that I am 100% sure that I won't throw it away, because of this radiation. Actually, Wi-fi networks are getting more and more around us, and in general I find them really useful if not a-must. Wait a minute - do you know that Google is planning to build a Wi-fi network all across the States? Can you image in what hell of a problem they are getting into if the radiation coming out of the Wi-fi's is that hazardous? :-)
However, I guess that some sort to precaution is not bad idea, because as can be inferred from the article, it is still unknown what the damages of prolonged exposure to Wi-fi radiation to human are.
Friday, January 13, 2006
Security Development Lifecycle at Microsoft
It is obvious that Microsoft has made their products more robust and reliable during the last years. Face it, there is a new Internet Explorer coming out, IIS 7 is far away more secure than its predecessor, the same applies to Windows 2003 family - all of these are an obvious sign that Microsoft puts security as a very important characteristic of their products. But in order to provide it, as can be inferred form this article, there is a very solid process engaged. I personally like the idea of having a person in the team, responsible for the product security. Also, the fact that security is put into consideration early in the development process will help to build the architecture with respect to it, and afterwards, during the implementation phase, security will be a criterion for each developer.
Another thing that I read in this article and I find particularly true, is that most developers just don't know what is to write secure code. In order to mitigate the risk of security flaws, having a "security" guy on the team is going to be really very handy, because (s)he will give guidance and put attention to security issues and best practices. But after all, each developer should be knowledgeable. I am now covering the courses found at Microsoft e-Learning, courses showing the latest best practices and important flaws that every developer should be aware of. These courses are under the label "Microsoft Security Guidance Training" and they can be found here. Very interesting, very helpful and for sure after you cover these, you will have a solid base in security.
Thursday, January 05, 2006
Skype 2.0 video conference works behind firewalls
Today I tested Skype 2.0 build 2.0.0.63 beta (download it from here) to see whether we can setup video conference, when I am behind a firewall (as it is in my case). The test was successful – Skype 2.0 allowed me to make a video conference even though I am behind a firewall.
Just to mention that I tried to do the same with MSN Messenger 7.5, but it didn’t work out.
Say *hello* to the era of free video conferencing! I find this really fascinating, and for example we will try tomorrow to setup a video conference with a prospective client. This would be a definite plus for us, because the client will not only have voice, but also visuals, which will help us build credibility easier.
Sunday, January 01, 2006
Merry Christmas and Happy New Year!
I wish you all the best during the new 2006 - let you be healthy (very very important one) and let all the happiness in the world be with you. Since this is a technological blog, I wish you to buy a 2 processor monster machine to a very reasonable price, develop code with less bugs (hey, why not bug-free! :-) ), start developing for.NET platform (if not already) - at this moment I am sure that Microsoft flamers have already erased my blog from their favorites :-), but I wrote this just for fun), etc. etc. - put shortly - all the best! :-)
Cheers!