Tuesday, July 24, 2007

New ASP.Net PageFlow Framework available for Download

New UI Workflow Framework was recently available for download. The framework brings Workflow and UI applications together - This includes ASP.NET applications as well. The source code of the framework and some sample applications built on top of it - is included. The design document describing the entire architecture of the framework is also included.

To learn more about PageFlow Framework, check this post:
More About PageFlow Framework

To download the framework:
Download Pageflow Framework


kick it on DotNetKicks.com


Sunday, July 22, 2007

Touring the Windows Workflow Foundation Team Offices

This is very nice tour video in Windows Workflow Foundation Team Offices. You will meet those WF guys - the creators of this technology. The video is out there for a while and I just found it while navigating on channel 9. But really very interesting one.

WWF - Windows Workflow Foundation - is a solution provided by Microsoft as a core component on .NET Framework 3.0 for business process automation.


Saturday, July 21, 2007

Introducing Windows Workflow Foundation

This is a brief post introducing Windows Workflow Foundation - We will try to introduce basic concepts and definitions. We will know also why Workflow Foundation can be useful for building large scale projects.




Workflow - Concept & Definition

First let's start by defining Workflow as a word - according to wikipedia definition: "A workflow is a reliably repeatable pattern of activity enabled by a systematic organization of resources, defined roles and mass, energy and information flows, into a work process that can be documented and learned". In workflow-based projects you have a certain flow defines a specific organization or business process. Through this flow, you can't do a certain step in this business flow without making sure that one or more pre-request steps are completed.

If you think a little about this model, you will find most of the applications you develop daily can fit in this definition. You have a certain logic and business rules you want to automate. Ideal Examples will include: Document Management Applications, Insurance/Financial Applications, Governmental Projects and Customer-Relationship Management Applications.

This type of applications have some specific characteristics. These applications has high rate/cost of change over time. Your client may come after a while saying that the flow of the application is to be modified. He needs to add another step inside the current flow which is not currently exist. He wants to remove a flow path. He wants to manage more information on his business flow.

This also make us think about the usability. You're not using the flow one time. Suppose you build an automation software for a Hospital and you still get many deals for the same industry. In most of the cases, the features will be common for the same projects in the same industry field. You may need a way to build a flow once and use it as more as you need for any kind of projects serving the Medical industry for instance. It's all about productivity. Building once and use whenever you need.


Windows Workflow Foundation

WWF - Windows Workflow Foundation - is a solution provided in .NET 3.0 to solve most of these problems. You're able to define your organization flow in a graphical way using Workflow Designer Component which can be hosted - not only on Visual Studio - but on any other hosting applications you may develop. This gives you some kind of extensibility of building your own flow and enables business administrators or manager to change the business flow even on-the-fly.

Another side of extensibility that you can build your own libraries for domain specific activities. This help in increasing your development usability and so the productivity.

The extensibility is not limited for this point. The Workflow runtime is the engine which handle the creation of the Workflow Instances. Extensibility applies here as well. You may extend the behavior of the runtime itself. You may change the default way of persistence. You may want to change the persistence so that you don't save the state of the workflow on the database and decide to persist it on another media like XML or whatever.

Windows Workflow Process Types

Let's talk about the workflow types provided by WF. WF provides two types of workflow. The first one is called Sequential Workflow. This one will be your choice when you know exactly the predefined path your application should follow. This type is most like a flowchart. You have conditions, loops and rules stuff which control the desired flow of your workflow.

The second type is called: State-Machine Workflow. Here you have a collections of states and you define the flow so that state-A will go to state-B - if and only if - a certain event or trigger is raised. This kind of flow helps when you don't have a predefined flow and states may go to many other states in non-ordered way.

What the best model of building workflow-based applications? The best model for this kind of projects is MVC model - Model View Controller. The model here is mapped to the "Workflow" engine, the View is your UI and the Controller is controlling the flow between the Model and View. So that, the UI (View) don't know that it's controlled by the Workflow engine and vise versa - the Workflow doesn't know that it controls the UI.


Starting Up

You will need - .NET Framework 3.0 or higher - installed on your machine and - Workflow extension - for Visual Studio 2005. The last one will include the Workflow Designer for Visual Studio 2005 - this is not compatible with Visual Studio Express Edition - and project templates for building workflow projects. You start building your flow using the Workflow Designer. Your flow can be represented on either XML or Code. For XML, you will have an XML representation of your workflow in an *.xoml file. This is best solutions if you may change this XML later or even auto generate it with any other tools. The other representation is representing the Workflow as Code. Your workflow will be represented as a class which you can use when instantiating workflow instances using Workflow Runtime.

kick it on DotNetKicks.com


Sunday, July 08, 2007

SKDD II - Another Success

Today, we had our SKDD 2 event on Cairo Conference Center. The day was really amazing. We discussed many topics and technologies. My session was about "Business Automation Using WF". We discussed how Windows Workflow Foundation can help you in automating your business process in an efficient and transparent way. For interested people, the materials, videos and demos will be available on demoday.us soon. Feel free to add your comments and feedback about the day and the sessions. Thanks for all people who attended this day and thanks for all SK stuff who made this day that great.

Update: Download Demoday Materials


Saturday, April 28, 2007

Microsoft Releases First Public Longhorn Beta


Microsoft has moved forward on the server side of the OS equation. The company just released the first public beta of Windows Server, aka Longhorn. It's widely available for download by just about anyone who wants it. And finally, the OS is feature complete.

Download Windows Server - Code Name Longhorn - Beta 3

Copied - eWeek.com


Thursday, April 12, 2007

New Way in Searching

We usually get the new searching inventions from Google. This time we have a new search way introduced by alltheweb. It depends on something like AJAX style searching or auto-complete search. While typing, you get some suggested keywords which help you get results faster.

AllTheWeb Live Search


Friday, March 30, 2007

Propagation of Trust & Distrust

Yesterday, I presented my session in SilverKey Internal Demo Day. The topic title was: "Propagation of Trust And Distrust". There is currently a great interest in maintaining and building trusting networks between the communities members so that you allow users to get the "high" quality of information before acting on it.

Many variants of algorithms and techniques introduced. The techniques of trusting propagation are applied in many well known websites such as Epinion and eBay. In my session, I presented a mathematical approach which introduced by IBM researchers and applied in a wide range of data in Epinion



















































































Wednesday, March 21, 2007

Open XML and Java

As you know Open XML doesn't target only Microsoft products. That is - we find currently many ambitious projects to enhance other programming languages and frameworks to make use of Open XML capabilities. Java is one of the main targets here. This is a meeting with Julien Chable who worked in an open-source API project to provide the functionality of System.IO.Packaging - which used in .NET Framework 3.0 - to the Java developers.


Monday, March 19, 2007

IP-To-Country Mapping

I have just found this interesting IP-To-Country mapping database which enables you to map a certain IP Number to Country. The problem is that this database is not alwayes up-to-date. So, you may take care of this point when you using it. Also, you should check the copyrights section if you want to use it in a commercial applications. The database uses IP Number ranges for identifying the addressed country.


Monday, March 12, 2007

Virtual Earth 3D Control


The Virtual Earth 3D control is a new tool released by Microsoft for visualizing the entire world in three dimensions. Rather than a standalone application, Virtual Earth™ 3D is implemented as a managed control, which allows seamless integration with Web sites or standalone applications. The Microsoft® .NET Framework security model gives users the capability of dynamically loading plug-ins to supply data, but restricting them to execution in a partial-trust environment.

Get More Details

kick it on DotNetKicks.com