This blog is subject the DISCLAIMER below.

Monday, December 24, 2007

WaZkker Al-mo'mnen (source code)

WaZkker Al-mo'mnen Program is an application changes the Personal Message of the current user only during praying times as a way to inform him and friends in the MSN list about praying times ,the application also supported (as an extra option ) with number of categories each of them have number of Azkar or Ahadeth to be displayed randomly ( 10 sec ) in non praying times (option) . This program support a huge number of cities and countries time zones all around the world .
Any questions or suggestions are welcome in the application's official blog . The application in Beta version ,
download it , please click to any of this two links .

To download the source code (C# 2.0) :

.. more.

Friday, December 21, 2007

Java Byte Code Instrumentation

Welcome people :)

If you have used reflection before, you probably have tasted the power and flexibility it can give you. Especially the setAccessible function that lets you access private methods and fields, and the newInstance function that lets you load classes at run-time.

Anyway, sometimes you need to change something in the code. Or at least want to get notified on some function call (related: Aspect Oriented Programming, terms: aspectj, aspectwerkz).

If you have the source, then it is not a problem to go and modify, and recompile. Some cases it will take a lot of modifications for example if you want to log all function calls (aspectj can help in that regard). But in other cases where you don't have the code or where you can't redeploy the modified package in other machines, for license restrictions or for deployment overhead you can't do that(aspectwerkz will help in this time).

Both aspectj and aspectwerkz provides facilities to modify the classes based on aspect oriented programming rules, which may may not be enough for your desired task. However, have you ever considered how these are implemented ?

They are implemented using byte code engineering techniques. aspectj uses BCEL, and aspectwerkz uses ASM. Those libraries are simple, they just provide abstraction above the byte level to the java methods and fields level.

The main problem is in the JVM. The JVM provides strong checks on the byte code, so for example, a constructor must call the direct super class constructor (I tried to bypass that myself and I got a Wrong Constructor Called exception !). The JVM's ugliest part, is that it doesn't support class reloading. (to be fair it is supported in the debug mode given that the class have the same schema; methods and fields). JDK 1.5 provides a way to reload classes dynamically (as often as you want) using JVMTI (JVM Tool Interface) java.lang.instrument (it can be used natively too) . However it doesn't support schema changes. So statically, or at load time (JVMTI supports that too, you don't have to write your own class loader for that), add, remove, and modify all the methods or fields you anticipate that you would need, even if you just add an empty method. Then at anytime later, you can define the exact body of the method. In case you only want to change the implementation, then no need for load time modifications. You can do it anytime. JVMTI is the successor for JVMPI and JVMDI (JVM profiling and debugging interface). Maybe I will write about JVMTI and native Java programming sometime later.

aspectj modifies the class file itself (build-time offline weaving), while aspectwerkz can do that, beside deployment-time online weaving (it also support run-time online weaving using JVMTI).

Example of using BCEL:
That example replaces the default constructor with a stub constructor that check on a boolean variable, if equal true, it won't call the default constructor, otherwise it will.

.. more.

Friday, December 14, 2007

Adobe Scripting

This ability supported by Adobe to it's products or applications to automate and facilitate your work throw it's application .Assume the routine used to convert 100 pictures from *.jpg to *.bmp extension !!!! Why you should done it manually by hands which may take about 3 hours while you can do it automaticly by writing a simple script that do it in less than minute !!

As Marco in Microsoft Office Similar to Scripting in Adobe ( for automation purpose ) .

Scripting is a series of statements or codes that tells an application (of Adobe ) to execute task depends on it.
Adobe supports scripting or coding throw one of three languages that it supports .

In Mac system there are two scripts :
# JavaScript
# MacScript

In Windows system there are also two scripts :
# JavaScript
# MacScript

The "Adobe ExtendScript toolkit 2" is like IDE for scripting which offers all standard JavaScript features, plus a development and debugging environment, the ExtendScript Toolkit (ESTK) is installed with all scriptable Adobe applications like (Adobe illustrator and photoshop).

For more information and documentations visit this officially link :

.. more.

Wednesday, December 12, 2007

Microsoft Parallel Extensions to .NET Framework 3.5


Parallel Extensions to the .NET Framework is a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors increase without having to deal with many of the complexities of today’s concurrent programming models.

Parallel Extensions provides library based support for introducing concurrency into applications written with any .NET language, including but not limited to C# and Visual Basic.
Note: This CTP is for testing purposes only. Features and functionality may change before final release, and Microsoft may choose not to provide a final release.

Press Here to Download

.. more.

Saturday, December 08, 2007

Dotnetwork user group Launch @ Microsoft

Get Ready for the BIG event!

We are Launching the DotNetwork User Group at Microsoft Smart Village.
Enjoy the nice sessions & the great company!

Please visit or our facebook group for more info.

Also please check the Event Link and the attachments.


There will be buses available to take you to and from the smart village. They will be available from 5:00 PM to 5:30 PM at :
1- Abdel Mone'm Ryad sq. (Super Jet Parking)
2- Naddy El sekka (in front of the club's main gate)

Check the places of the buses:

.. more.

Thursday, November 29, 2007

Microsoft Models 'Oslo' in (.NET 4.0)

Microsoft wants to stand development for service-oriented architecture on its head.

According to Steven Martin, director of product management, connected systems division, Oslo also aims to change modeling from a paradigm wherein models describe the application to a paradigm where models are the application.

Read more on:,1895,2209589,00.asp

.. more.

Monday, November 26, 2007

Microsoft Technology Day @ FCI-H

Microsoft Technology Day

Prepare yourself…

Microsoft Silverlight™ : is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows. Learn more about Microsoft Silverlight and other Technologies @ Microsoft Technology Day, Helwan University on Nov 29 th, 2007.
Microsoft … Discover Your Future.

You MUST Come and join us in this awesome event @ FCI-H, & let's SHINE.

10:0010:45Interoperability in a connected worldNohal Rady
11:0012:15What's New in Vs2008 & VSTS2008Dr.Ahmed Bahaa
12:151:15Lunch Break
1:151:30Lap around the Windows Live PlatformMohamed Wahby
2:453:45Game Development using XNAMohamed Wahby


10:00 am – 3:45 pm

Thursday, November 29, 2007

FCIH main campus, Hall 1

Faculty of Computers & Information – Helwan University

Hope to see you there!

MSPs – Helwan

Contact us:

Join our group:

P. S. If you know anyone else who'd enjoy this event, send that to him/her.

.. more.

Friday, November 23, 2007

The solution of the fedora 8 shock (swing doesn't work)

In this post we gonna show why does swing components? most of us tried netbeans ,but it awfully doesn't work with it. The reason is that , netbeans and swings are using the libx11 and there some thread safety operation the new version of this lib is doing that's why if you downgraded to the last version of libx11 you will find swings works will but of course it's not the ideal solution but of course there is another solution. The solution is to change the path of the libx11 in the which have shared native functions that calls libx11. we change the place of the used lib from the XINERAMA to the FAKEEXTN
using the sed command like this :


but where is this is different from jvm to jvm especially after the icedtea(icedtea is an implementation of the jvm by redhat ) so if you are using the jdk's jvm you will find the file in

and after that you can run your net beans setup of any program that runs with java

.. more.

Tuesday, November 20, 2007

Visual Studio 2008 & .net 3.5 have been released !!

The title says it all !!

According to this blog post , Visual Studio 2008 and .net 3.5 have been released yesterday.

Here are the links to help you get started:

Visual Studio 2008 Web site

Visual Studio 2008 Express Edition Web Site

Microsoft .net 3.5 framework Download

Visual Studio 2008 Express Edition All in One DVD image Download

Enjoy them !

.. more.

Object Relational Mapping (ORM)

Object relational mapping or ORM, is the concept of reflecting the state of business objects to be stored in a database, the concept itself is already known, the difference is in how we can do it?.
In normal cases; a developer will connect to a database then write SQL queries to be executed against it, so , it is not a problem, isn't it??.

The main problem in the previous scenario is that a business logic developer must know SQL, and must embed SQL code in the database layer in the application. Another thing is if the schema changes, it would be a tedious task to rewrite SQL queries to fit with the new schema. Last but not least; sometimes DBMS systems have slight difference in their SQL syntax and data types, So, if for any reason an application migrates from using a certain DBMS to another, some problems might show up. Well, what is the solution then??
The solution is simply founding an intermediate layer between an application and a database, this layer encapsulates any thing relating to storing, deleting, updating and retrieving objects, a layer responsible for defining associations between business objects like; composition and inheritance to be expressed in the relational model in the form of database tables.

There are many ORM tools like; Toplink and Hibernate, however, hibernate is the most famous these days. When working with an ORM framework; the developer is responsible for defining the how a certain object will be mapped to the database; in other words; telling the framework how a certain business object will be saved in the database. The next code fragment shows a simple java code for defining an object named category.

public class Category {
private int id;
private String name;
private String description;

The previous object can be defined for mapping like this in a XML file as follows using Hibernate

That's it, when you are accessing the database in your application, you just make calls to save, delete,update and load methods , so if the schema needs altering, all what is needed is to modify the XML file and telling the framework to regenerate the schema without any modifications the actual business logic and without writing a single SQL query. The category object is simple,however, any kind of complex associations can be mapped using the same way.

The best thing in ORM is that it frees a designer's mind from going beyond business relations, as there is no need to think of how to express them in the relational model any more. When you start using ORM frameworks, things will be upside down for a while, then, it will really make sense.

.. more.

Beginning Reversing

Reversing is a good word which have a great meaning especially in computer science so
what is the meaning of Reversing or ( Reversed engineering )?
the Reversed engineering means Retrieving the blueprints from the output of the product whatever the product is as an example :suppose that we have a great building from 1977 and we want to repair it (for tourism issues) but actually we don't have the blueprints that building was built with so repairing it will be unmanaged work as we don't know exactly what each part of the building means and the answer of that problem is the magic word (REVERSE IT ) and we mean by reversing it try to retrieve the blueprints from it by this example I suppose that most of us know what is Reversing now let's talk about Reversing in computer science as you may thought Reversing is Retrieving the source code from the executables.

BUT why would we do that ? ???

there is lots of reasons to do so . Note that Reversing is not the science of stealing other people work as someone may expect . Reversing is used in such cases when some one was working with us and then he left the company and some of his work has some bugs in running and we had a problem communicating with him and we don't have the source code here the magic of reversing appears if we just reversed his work we will have the blueprint and we can fix the bug . some other reason as we all make we all work with third party product which may be dlls com components and some of them have a missing documentation and we need to know some of it's detail again here is Reversing solves the problem . and lots of application of reversing we could write lots of articles on Reversing application but one of the great application is viruses antis when the virus is spread most of the anti virus companies reverse it to know some information on how to beat it .
but how could we Reverse ?
that is last question and maybe the hardest one of course Reversing is not that trivial task you need to know exactly how your program run and know about your target operating system and of course you must know about the law level language you are reversing to it . after you know the appropriate information you actually need to watch your target application through debuggers and some other tools (actually reversing is all about using tools) you must watch the whole program running and then indicate the places of interest in your needs and then watch those places closely to know where is your bug exactly and then defeat it .

Reference : Secrets of Reversed engineering by Eldad Eilam

.. more.

Microsoft-Helwan Boot Camp & PilotView Session

Microsoft-Helwan Boot Camp

PilotView session


To know more about “Microsoft-Helwan Camp”, our mission & activities.

Let’s start, to share our knowledge and find ways to make a difference.

In PilotView session, imagine yourself as a pilot on your plane, flying over computer science land, what will you see? Let’s find out together the different areas, also discover advanced technologies like .Net & Java, know what is Database? What is C++? What is OOD? Did you hear about Silverlight? Dose the word AJAX sounds familiar to you! Have you ever thought about having Certificates? Those and more.

Come and join us in this event @ FCI-H. J


3:00 pm – 3:15 pm Launch Microsoft-Helwan

3:15 pm – 4:30 pm PilotView session - by Ahmed Osama

3:00 pm – 4:30 pm Thursday, November 22, 2007

FCIH main campus, Hall 1
Faculty of Computers & Information – Helwan University

Hope to see you there!

MSPs – Helwan

Contact us:

Join our group:


P. S. PilotView session mainly for 2nd year students then 1st year ones, but sure everyone else is most welcome.

P. S. If you know anyone else who’d enjoy this event, please forward this email to them now.

.. more.

Sunday, November 18, 2007

Microsoft Task Parallel Library

Multi-processor machines are now becoming standard while the speed increases of single processors have slowed down. The key to performance improvements is therefore to run a program on multiple processors in parallel. Unfortunately, it is still very hard to write algorithms that actually take advantage of those multiple processors. In fact, most applications use just a single core and see no speed improvements when run on a multi-core machine. We need to write our programs in a new way.
Introducing TPL

The Task Parallel Library (TPL) is designed to make it much easier to write managed code that can automatically use multiple processors. Using the library, you can conveniently express potential parallelism in existing sequential code, where the exposed parallel tasks will be run concurrently on all available processors. Usually this results in significant speedups.

TPL is being created as a collaborative effort by Microsoft® Research, the Microsoft Common Language Runtime (CLR) team, and the Parallel Computing Platform team. TPL is a major component of the Parallel FX library, the next generation of concurrency support for the Microsoft .NET Framework. Though it has not yet reached version 1.0, the first Parallel FX Community Tech Preview (CTP) will be available from MSDN® in Fall '07. Watch for details. TPL does not require any language extensions and works with the .NET Framework 3.5 and higher.

The Full article in the MSDN.. Press Here

.. more.

Saturday, November 17, 2007

Android - An Open Handset Alliance Project

The Open Handset Alliance (, a group of more than 30 technology and mobile companies, is developing Android: the first complete, open, and free mobile platform.

So there's no G-phone :(..So what's new about that..Let me tell you..Cool apps that surprise and delight mobile users, built by developers like you & me, will be a huge part of the Android vision. To support us in our efforts, Google has launched the Android Developer Challenge, which will provide $10 million in awards for great mobile apps built on the Android platform.

For more about Android & to download The SDK check

Android Developers blog,

YouTube channel/User, where u can find many useful videos about Androids & the services already available by the OS & the SDK,

& finally Android community,

.. more.

Wednesday, November 14, 2007

Sun Microsystems Developer Day

Finally, Sun Microsystems will make one of the developers days in Egypt-Cairo. Sun Microsystems is supporting the community world wide and support EGJUG in Egypt.
Register NOW!


1. Sun and Open Source
Discover how is Sun contributing to open source and find out about Sun's key open source initiatives such as NetBeans, OpenSolaris, Glassfish and OpenOffice.

2. NetBeans 6 - New & Cool
This session provides an overview of new tools available in the upcoming release of NetBeans 6.0. You will see demos of new Java editor in NetBeans 6, we will demonstrate various new features of NetBeans GUI builder in action and NetBeans Profiler which helps analyze performance of Java applications.

3. Technologies for Creating Rich Internet Applications *Creating highly interactive web applications is a must today. During this session you can find out how to use different technologies to create Ajax-enabled applications to provide better user experience for end users.

4. Introduction to Swing Application Framework and Beans Binding *Swing application framework and Beans binding are new frameworks which greatly simplify desktop application development. Together with NetBeans' Matisse GUI builder you can develop desktop applications much easier than before. All features will be again demonstrated in action inside of the IDE.
5. NetBeans Mobility Pack

Java is very popular by mobile applications developers. Discover what's new in NetBeans Mobility Pack, the ultimate tool for creating mobile applications. It's visual designer is not only easy to use but also very flexible and supports latest standards such as CDC and SVG.

Venue: Dar Al Defa' Al Gawy, Nozha St. Nasr City
Date: November 21st, 2007
Time: 10 am.

This event is open to developers free of charge. Places are limited, so please register early. All attendees are invited to stay for lunch. All pre registered attendees will receive a free NetBeans developer pack and T-shirts.

.. more.

Saturday, November 10, 2007 Preparation Meeting

DotNetWork user group is a group of people who are willing to participate and aid the developers community building & enhancing their technical skills. We want to help both undergraduates & postgraduates knowing the latest technologies, new concepts, have an eye out for the world & communicating with the rest of it.

We are willing to achieve that by planning multiple events for the community & help to spread the word about .Net.

The user group is preparing for its first official meeting. We're meeting to start founding the user group. Anyone who wants to join or start participating, please attend the meeting.

We will get together at the preparation meeting to discuss how we can achieve the user group goals & see who's willing to participate as a member of the administrating team (which will cost them little bit of their time & will require their commitment), we need to plan this thing to be very independent, self-sustainable & self-grown, so we need to plan it right. That's where we can help each other with :)

Also bring your ideas and what do you think we can do to grow big (not fast)...

Let's invite as many people as we can, we need tons of ideas, thoughts & spirits to get this thing running!
Spread the word

Meeting whereabouts:
Date: Saturday, November 17, 2007
Time: 12:00pm - 3:00pm
Location: DashSoft
Street: 243 Ramses St. 3rd Floor, Apt.6 (After Bank of Alex)
City/Town: Cairo, Egypt

You may join the Event page on facebook @

Group page on facebook is

& on Yahoo!Groups is

.. more.

Saturday, October 27, 2007

Dependency Injection

What is Dependency injection?
A software concept at which when an object relies on another one in its functionality the using object is not responsible for knowing how the needed object will be available . In other words; when an object have a reference to another object as a member variable, it is not responsible for determining how that reference will be available.

Suppose the next fragment of code:

public class car
public Engine engine;

Public void GO(int Acceleration_Factor)

public class Engine
public SparkPlug sparkplug;

public void Start()

It is clear that we are demonstrating a simple car operation which consists of an engine with a simple spark plug. ok, lets review this case in terms of code. When you instantiate an object of type car, you have to supply it with an object of type engine which in turn needs an object of type spark plug which might need another object of another type and so on.

Imagine a way to let you just specify the characteristics of your objects and the creation is some one else's concern, imagine that when you create the car object, the engine object is created and ready for use which in turn have a spark plug object created and ready for use.
doesn't make sense yet?? Ok, lets see this scenario.

Suppose you need to unit test the previously mentioned example, a test case will be written, so all what you need is to test the functionality of the car object assuming it has more references to objects rather than an engine. When you write this kind of test, you have to successfully create an engine object, which requires the creation of a spark plug object, those last creations are totally out of scope for testing the car object. In this case, all what you need is some one who creates these objects for you in the right way to make sure that you are only testing the car object, That "some one" is the Dependency injection frame work.

Frameworks like spring offer this feature, all what you do is specifying what your business objects look like in an XML file, and the framework is responsible for supplying any other objects using your objects. It might not be clear that this is an amazing feature, but in enterprise applications, relations between objects get very complicated and dependencies might be cyclic at some points, where an object depend on another which in turn depend on another which depends on the first one. In real cases; dependency injection become very useful, you just declare your variables and generate their accessors and the frame work does the rest.

The importance of dependency injection might not be clear by now, but when you start writing code with this trend you will notice the difference.

.. more.

Gmail supports IMAP

Gmail is starting to roll this protocol IMAP (Internet Message Access Protocol) out on every device and every platform, for free.
This protocol
have a advantage than the previous old supported protocol POP ( supported until now ) , in fact it seem like POP(Post Office Protocol) access, but lacks one critical feature: your changes made on other devices aren't seen in Gmail when you log back in (you must log in again to get changes ).

Official Google Blog :

.. more.

Saturday, October 20, 2007

F# is an official .NET language now

I got that from Channel 8 recent news, F# is an official .NET language now
Soma had the news today. F# is an official .NET language now! Functional programming becomes a first citizen in .NET :-) read more...

.. more.

Friday, October 19, 2007

Tuesday, October 16, 2007

Ubuntu 7.10 after two days

The official site of Ubuntu promise all Linux lover to a new version of Ubuntu, Kubuntu, Edubuntu, Gobuntu, and Xubuntu codenamed "Gutsy Gibbon" throw version 7.10 .

They consider this new release candidate to be complete, stable, and suitable for testing by any user.

The new version 7.10 is scheduled for 18 October 2007 (after two days ) and will have supporting for 18 month only so from users want support for longer time using Ubuntu 6.06 LTS, with security support until 2011 .

.. more.

Sunday, October 07, 2007

Releasing the Source Code for the .NET Framework Libraries

in the name of ALLAH

actually um like Most of you, when i read this title in ScottGu's Blog,
Microsoft gonna make FW 3.5's Libraries be open source .. WOW.. So excited

Read this Part from his Post

One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and to easily enable debugging support in them.

Today I'm excited to announce that we'll be providing this with the .NET 3.5 and VS 2008 release later this year.

We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows). We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ). The source code will be released under the Microsoft Reference License (MS-RL).

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). We will also provide integrated debugging support of it within VS 2008.

to read the Full Post from here

.. more.

Sunday, September 30, 2007

Bonjour Imagine Cup 2008! Bonjour Imagine Cup Booth @ FCI-H

Bonjour Imagine Cup 2008!
Are you ready to help the environment? Check out the list of invitations.
Prepare to compete!

Imagine Cup Booth @ FCI-H
The Imagine Cup is one way Microsoft is encouraging young people to apply their imagination, their passion and their creativity to technology innovations that can make a difference in the world – today.
Come and join us in Imagine Cup Booth for 3 days @ FCI-H, learn more about it, register online in our booth, & let’s ROCK. J

DON’T MISS OUR BOOTH10:00 am – 3:00 pmStart Day: Monday, October 1, 2007End Day: Wednesday, October 3, 2007Faculty of Computers & Information – Helwan University

To find out more on what Imagine Cup Competition is all about, just visit
Hope to see you there!
MSPs – Helwan

P. S. If you know anyone else who’d enjoy this event, please forward this email to them now.

.. more.

Friday, September 21, 2007

The global designer conference

Interested in the future trends of digital design? Do you wish to become an Expression design specialist in only one day? Expression around the Clock is a global 24-hour event series taking place on 4th october 2007. The tour will bring the worldwide interactive design community closer together. So have this one-time orientation.

Registration is very limited, you should get the registration code from your MSP at your university.

.. more.

Sunday, September 16, 2007

Windows Workflow 2

In this post we will go deeper inside Windows Workflow and how to create a project from Workflow type.

You need to have VS2008 or VS2005 + VS2005 extensions for Workflow

From VS -> new project->Workflow Let’s understand the different types of Workflow projects

Empty Workflow Project: An empty workflow project that you start to add some of Visual C#/Visual items the output of this type is .dll

Sequential Workflow Console Application: Workflow project from Sequential type if you don’t know what Sequential Workflow is please read Workflow types section the output if this type is console application .exe

Sequential Workflow Library: Workflow project from Sequential type if you don’t know what Sequential Workflow is please read Workflow types section the output if this type is .dll

State Machine Workflow Console Application: Workflow project from State Machine type if you don’t know what State Machine Workflow is please read Workflow types section the output if this type is console application .exe

State Machine Workflow Library: Workflow project from State Machine type if you don’t know what State Machine Workflow is please read Workflow types section the output if this type is .dll

Workflow Activity Library: This type let you create a custom activity to be used in more than project you can imagine it as component; I’ll talk about it later the output if this type is .dll

So, I’ll work on Sequential Workflow Console Application and explain some of Workflow ControlsOnce we selected Workflow project from Sequential Workflow Console Application type; VS opens a window to design our Workflow and as we see there is a start and end elements.

Let’s begin with “Code” Control: to use drag it and drop between the start and the end element of the Workflow as shown we will notice an exclamation mark inside red ball it notifies us that there is no method to be invoked at runtime, so click on code figure and go to its properties and then specify “Execute Code” and write HelloWorldMethod, we’ll find VS switch to .cs file and has generated a HelloWorldMethod method so I’ll write this code Console.WriteLine(“Hello World”);This method considered as the event that raised when the “Code” executed.

Tip: you use “Code” control only if you want to execute something just one time.

“While” Control: used for looping, it has Condition which has two types; Code condition and Declarative code condition. So, I’ve dragged a “while” control inside my design and dragged the “code” control that created before inside it, cool? Yes that’s very easy.

Condition like “Code” control’s condition, that’s the event that raised when “while” control executed I’ve two ways of condition
1- Code condition: specify the code to run, usually we don’t write code more than stopping it like here I increased counter and set “While” to stop when counter = 10 by assign Result = true.
2- Declarative Rule Condition: when selecting Declarative Rule Condition I must set the Condition name, a new window opens then select new a new windows opens to set my condition I wrote counter<10 href="">

.. more.

Friday, September 14, 2007

Silverlight + linux = Moonlight

Before speaking , what this mean ? I will speak about the Silverlight .

We can say Silverlight which knew before as WPF (Windows Presentation Foundation) .

It is to develop and to bulid rich Internet applications (RIA) which support graphics , animations or video within the .NET framework , so it is not just a cross platform (like Macromedia Flash ) but also cross browser .

Over the excellent vector graphic that Silverlight supports , Silverlight

supports the display for the high-definition video files …. Microsoft know the heavy of sending high-definition video over the internet and it's expensive, so Microsoft offers hosting Silverlight media files and applications as an option service to increace the number Silverlight users (free for one year) .

The advantage of Silverlight applications than Macromedia Flash application that the first delivered to a browser as a text-based markup language called XAML So it is very esay to deliver to the broswer , very esay to read by search engines, like Google or altavista , where can read XAML file content ,But Macromedia Flash as all know heavy something to load and land to the browser if the network connection was slow ….the Flash file seem as black block or blind block to search engines (unreadable file) .

Silverlight supports Microsoft's Common Language Runtime (CLR), so allows the designers and developers to work throw the .NET environment .

Silverlight version 1.0 offers a JavaScript-based programming model ; version 1.1 that are alpha till now , offers a .NET Framework-based programming model -- one that includes dynamic languages like Ruby, Python and Pascal in addition to Visual Basic and C#.

Microsoft (with Novell as formal partnership) said Silverlight version for linux will called as Moonlight that will be upport the Firefox, Konqueror, and Opera browsers .This indication (Moonlight ) was by Scott Guthrie in his blog Silverlight 1.0 Released and Silverlight for Linux Announced.

To get news , learn or get started visit :

Install Silverlight from Microsoft

Compatible Operating Systems and Browsers

Operating System

Windows Internet Explorer 7

Internet Explorer 6

Firefox 1.5

Firefox 2


Windows Vista






Windows XP






Windows 2000






Windows Server 2003 (excluding IA-64)






Mac OS 10.4.8+ (PowerPC)






Mac OS 10.4.8+ (Intel-based)






* Silverlight 1.0 Only ; ** Silverlight 1.1 Only

Minimal Requirements



Personal Computer running Windows

X86 or x64 500-megahertz (MHz) or higher processor with 128-megabytes (MB) of RAM

Mac OS 10.4.8+ (PowerPC)

PowerPC G4 800-MHz or higher processor with 128-MB of RAM

Mac OS 10.4.8+ (Intel-based)

Intel Core Duo 1.83-gigahertz (GHz) or higher processor with 128-MB of RAM

.. more.

Introduction to AJAX in .net Applications

In the name of Allah

Introduction to AJAX in .net Applications

Fast tour in Microsoft Ajax Toolkit

In this lesson we will take a fast tour in Microsoft Ajax world. First we have to know what the meaning of AJAX is.

AJAX or Asynchronous JavaScript and XML is a term describing a web development technique for creating interactive web applications using a combination of: HTML (or XHTML) and Cascading Style Sheets (CSS) for presenting information* Document Object Model, JavaScript to dynamically display and interact with the information presented* XML, XSLT and the XMLHttpRequest object to interchange and manipulate data asynchronously with the web server (although AJAX applications can use other technologies.

*** Wikipedia definition for AJAX at link:

Anyway it is a type of programming made popular with since 2005 by Google. It is not a new programming language but it is depends on good connection and using of existing resources to establish an interactive web-based application. Basically, it depends on divide web page into separate parts all of them can be re- loaded alone without interference with other parts.

One of the most famous Ajax-enabled web application is Google service. Also new mail service from yahoo and hotmail also supported with Ajax concepts.

How can I start working with Ajax through

Microsoft publishes Microsoft Ajax Toolkit to provide a simple tool can be used to benefit from Ajax technology; you can start by downloading tools through this link:

Or you can trace large amount of controls live through this link:

If you search for some useful tutorials about in general you can visit this link:

And especially with Ajax you can find video tutorials here:

you can have a fast start with Ajax using this video:

And this video for Microsoft Ajax Tools:

Finally, you can still build your own Ajax work from scratch using HTML (or XHTML) with JavaScript or by using old Microsoft technology (Atlas) which support partial processing for WebPages, you can find more about Atlas in this video:

This article written by Arabic in:


.. more.

Monday, September 03, 2007

Windows Workflow 1

I’ll write (en shaa ALLAH) about Workflow, and especially on its objects that listed in VS toolbox when working with Workflow project.

So, let me introduce workflow to you (If you know, escape next paragraph) Workflow is part of .net framework 3.0 formerly known “WinFx”, .net framework 3.0 consists of WCF (Windows Communication Foundation), WPF (Windows Presentation Foundation), WF (Windows Workflow) and Windows CardSpace (CardSpace) and built on .net framework 2.0.

In this series I’ll focus on Workflow and spot light on Workflow rich controls and Workflow engine.In brief Workflow empowers you as software engineer to deliver workflow-based application using Workflow engine and Workflow controls that enable business managers, software engineers, software developers, and each one in the project to interact and understand the most complex business process.So, I’ll explain the architecture of Workflow for better understand on
This image from “Introduction to Developing with Windows® Workflow Foundation and Visual Studio® 2005”

1-You can use Workflow controls from VS to draw Workflows for most complex business processes.
2-Workflow contains a lot of built-in activities that commonly used in business processes such as send mail, handle errors, etc…
3-You can create your custom activity.
4-Activity framework contains common functions that used by a lot of activity such as compilation, validation and so on.
5-Workflow runtime, the components that run workflow instance.
6-Persistence services used to save Workflow instances in database or another location.
7-Transaction services to guarantee that data remains consistent all the time.
8-Tracking services help to determine and record which activity in specific Workflow run and when it run it helps in optimizing Workflow.
9-Scheduling services to control the way Workflow runtime creates threads for workflow instances.

Workflow types:
1-Sequential Workflow: has specific start, specific end and activities in predefined order may have loops, conditional tests and so on.
2-State machine Workflow: has specific start, specific end and states that change Workflow transitions that change a workflow instance from one state to another.

.. more.

hackers @ Microsoft

in the name of ALLAH

yeah .. this is a new blog from Microsoft

The focus of this blog is likely to be a little different from most other blogs you'll see on Microsoft employs some of the best hackers in the world and actively recruits them and develops them. They work on all kinds of projects, whether it be in development, research, testing, management and of course security.

Generally most of the content you'll read and people you'll meet on this blog will be somehow related to security but not all by any stretch.

Blog's Link

.. more.

Saturday, September 01, 2007

JTT Materials - JEE

first of all we would like to thank all who've trusted us and attended the first JTT, and we hope that we could really give you the boost to start learning about java's different technologies.

The material used in the sessions of JEE are uploaded to media fire so u can download them
Thank you very much

.. more.

Secure Connected IT Infrastructure Event

Be the IT Hero
I received this invitation from Majd Madina (the Security Specialist man at Microsoft Egypt) to attend this event "Secure Connected IT Infrastructure"

Grand Hyatt Hotel, Farhaty Ballroom, - Cairo, Wed Sep5th, 2007.9:00 AM to 4:15 PM


Time : Session
09:00 - 10:00 : Registration & Coffee Break
10:00 - 11:00 : Unified Communications 'Exchange 2007 & SharePoint Server 2007
11:00 - 12:00 : Forefront For Exchange, SharePoint, & Forefront Client Security
12:00 - 13:00 : Lunch Break
13:00 - 14:30 : Windows Server 2008 Overview
14:30 - 16:00 : ISA Server 2006 & Intelligent Application Gateway
16:00 - 16:15 : Close

Event home page:
To register

.. more.

Thursday, August 30, 2007

Announcing XNA Game Studio 2.0

What’s New with XNA Game Studio?

  • XNA Game Studio 2.0 works in all versions of Visual Studio 2005. This includes Standard and Professional, as well as many other specific editions.

  • The new and improved interface makes it easier for you to manage your Xbox 360 console.

  • You’ll find that managing and building content is easier and more consistent in XNA Game Studio.

  • We’ve included project templates for content importers and processors.

  • You can configure how content is processed with the new ability to set

    parameters on Content Processors.

What’s new in the XNA Framework? Now you can:

  • Create rich multiplayer games over Xbox LIVE using the new networking APIs.

  • Create Audio more effectively with the new XACT editor!

  • Host XNA Framework games easily inside a Windows Form.

  • Use the virtualized GraphicsDevice: no more special code to handle device reset and recreate!

  • Take advantage of render targets that are more flexible, consistent, and easier to use. Xbox 360 and Windows now support multiple render targets (MRTs) as well.

  • Easily nest one component inside another thanks to improvements in GameComponent.

  • Enjoy many more enhancements and tweaks!

Most of our development on this version has been in response to your feedback. What you see here only scratches the surface of everything new in XNA Game Studio 2.0. As we near the release of XNA Game Studio coming late 2007, we'll have more information.

Source :- From XNA Blog

.. more.

Object Relational Designer (O/R Designer)

Today, I’ll talk about another feature in VS2008 beta 2, Object Relational Designer (O/R Designer), briefly for who are used sqlmental.exe LINQ CTP days, this tool replaced it with Designer tool for creating LINQ to SQL (DLINQ) entity classes and associations based on database objects plus mapping database stored procedures and user defined function to Data Context for returning data.

Data Context methods: method call database stored procedures and user defined functions and return sets.

Let’s play with (O/R Designer),

First create project from Console application type

then from VS menu project then add new item and select LINQ to SQL Classes as shown
(O/R Designer) surface will open and that’s time to drag database objects from server explorer (this requires you’ve a connection to database) and drop it on.

Hint: (O\R Designer) works just on SQL Server 2000 and later versions. In my sample I’ve

used pubs database
After dragging all tables and stored procedures, I found that (O\R Designer) has visualized my tables as entity classes and my stored procedure as Data Context methods
Let’s have some code to print all authors’ first names from authors table and execute ByRoylaty stored procedure
And this the result

.. more.

Tuesday, August 28, 2007

Webservices in Orcas

One month ago, Microsoft announced the VS 2008 beta 2, I am using the VSTS version, really I noticed a great difference from VSTS 2005 and the 2008 as I didn't use the Beta 1 of VSTS 2008.

Anyway, I am planning to write about the new features of the VSTS 2008 beta 2.

Today, I was playing with webserivce on my Vista, and I got some problems.

First, to consum any webservice, you should run VS as administrator else you'd get this error:

Although, I run it as administrator I got another error that there is not any webservice on my local machine where I run the service:
I tried to develop my service under both types HTTP and File System and no difference.
So I got a solution, and I don't know really if this problem is a bug in VSTS 2008 beta 2 or I've done some mistaks, so whatever your webservice type HTTP or File System, when you adding a web reference to your project, point out the URL as like that:
After that you can use the service well.

.. more.

Sunday, August 26, 2007

Best Linux Distribution for Java Development

I've spent the last few weeks learning the basics, coding and database development, source control...etc on Linux, as I want to completely transfer to it, that's why I'm trying as much Linux distros as I can these days (@ home and @ work, trying to spread the open-source word); I tried Ubuntu 7.04 and Fedora 7, and currently downloading openSUSE 10.2, and till now I love Ubuntu and prefer GNOME to KDE, although KDE seems to have nicer visual effects, but I feel much more comfortable with GNOME, anyway, have you got any ideas that might help me find the best distro for development especially with Java? I need a fast and reliable system that doesn't require much configuration, I'd be grateful if you could provide me with help in that, thanks!

By the way, I have a small - yet annoying - problem in Ubuntu that occurred on my laptop and home PC, and will try to trigger that problem on my work PC tomorrow to help me in choosing my primary Linux distro; when I shut my computer down improperly (e.g. by unplugging the power cable or pressing the Reset button), Ubuntu's response became much slower than it used to (not just after the following restart, but always)!! Sometimes it returns back to normal (but usually after leaving the computer on for some time), but mostly it makes me want to SMASH MY PC!! I click any icon such as Firefox, Terminal or Thunderbird, gives no response for about 5 seconds and then starts execution!! Any ideas?? I don't think I'm in the mail group yet, so I'd be grateful if you reply to my post here or e-mail me at, thanks again.

.. more.

Saturday, August 25, 2007

Advanced C++ part 9 : Templates Part 1

I've decided to jump off a little and talk about templates. So we can dive into the world of STL and the wonders it can do.

As a kick-start, you can think of templates as a search-and-replace facility. No, it is not like preprocessor macros. Preprocessor macros does that at a syntactical level. But templates does it on a semantical level.

What's the difference between a class and an object of that class ? The class defines how all the set of objects act, and what data they have. A single class might have numerous objects. Similarly is the difference between class template and template class !

A class template to a template class is as a class to an object. A class template defines how the template class look like. A class template might have several template classes.

As an example, consider the class Stack. It's a simple stack with pop() and push() operations, an int array, and a top-of-stack counter members. The class is not concerned what is in the int array or what's in the top-of-stack pointer, it merely states that they exist and how they are modified and handled.

Now consider the class template Stack<T>. "It's a simple stack with pop() and push() operations, a T array, and a top-of-stack counter members". "The class template is not concerned what is the actual type of the array". It just states that we need an array of it, and that array will be treated that way.

The template class Stack<int> is typically like the normal stack we mentioned earlier. Note that Stack<int> and Stack<double> is totally different types. There code is written in separate places in the exe file. There is no relation between them whatsoever. Note that's this is the a very strong difference between templates and generics in Java or C#. Generics just uses the same code that handles Object and casts the types back and forth to the type specified in the generic definition. Since this is not the case in templates, templates can also take variable parameters.
For example, you might define a Stack<int,5> that -for example- allows only 5 items in the stack. Templates also have default parameters, if you might use Stack<> it might default to int.

We've been talking about using templates, we still didn't talk about defining them. That's the next article isA.

(P.S. Don't worry at all if you didn't get anything from this article, it will get clearer as you read and see the examples in the next articles isA. It's totally normal)

.. more.