Ratko Ćosić - lamentations of one programmer

četvrtak, 20.11.2008.

Exam 70-504 : Windows Workflow Foundation 3.5

Hello! I've just successfully passed 70-504 exam with score of 966/1000. Although, it was tough one, luckily I've managed to pass it with quite a score. Nevertheless, here are my impressions from the exam...



Most covered topics were:
- Activities - mostly the tricky ones such as ParallelActivity, ReplicatorActivity, CAG (ConditionalActivityGroup) - there were questions asked how to design the workflows in combination of those activities, CodeActivity and designing dependency properties, using ActivityDesigner and DesignerThemes,
- Hosting Workflows - there were questions about how to initialize the workflow runtime (with parameters, using local services), communication with local services and workflow (interface signatures, dependency properties), starting and stopping, faulting instances,
- Custom Activities - lots of questions (ActivityExecutionContext, dependency propeties, base classes),
- Web services - surprisingly, very detailed questions about connecting, responding, error handling, and encrypting of data, WebServiceInputActivity and WebServiceOutputActivity, InvokeWebServiceActivity,
- State Machine Workflows & Event-Driven Activities - ListenActivity, EventDrivenActivities, WCA.EXE, manual controling event routing (correlation attributes), EventHandlingScopeActivity; recursive composition of states, handling of events in state machine wfs, in particular there were questions regarding StateMachineWorkflowInstance class,
- Persistence Service - a few questions about default persistence (SqlWorkflowPersistenceService), its registration, configuration; and couple of questions about custom persistence services,
Transactions, Compensation, Error Handling - when to compensate, when to transact, how to mix persistence and those options, customizing resource manager (instead of SQL Server) - IPendingWork interface and implementation of its methods; FaultHandler(s)Activities, ThrowActivity, CancellationHandlerActivity - when to choose one of another, dynamic workflow updates (all about it!),
Workflow Rules - the most intriguing part of workflow (maybe the most useful) - PolicyActivity, programming parts of the rule, serialization and markup of rules (and general), attributes, executing rulesets in code, validation, XOML,
Workflow Tracking - adding of tracking service, events, custom tracking profiles (SqlTrackingService & SqlTrackingChannel), SqlTrackingQuery and its Options, TrackingRecords, sql sprocs for tracking, track points, updating profiles, partitioning sql database,
- Some stuff I never heard of (not covered in books I've read)? - WorkflowQueues (WorkflowQueuingService and EnqueueItem), VotingService, Workflow Monitor Tool - maybe they are added later, because I've based my studying on 3.0 Workflow Foundation books.

ASP.NET as a hosting environment was not covered at all. Also, my favourite part of WF - Hosting Workflow Designer is not in there. Alas, in this case - luckily, because the infrastructure for supporting this is quite complex.

I've made a small script out of the materials I've studied, and I hope that I will publish it in some time.
So long...

(added later)

Here are my scanned personal notes I've promised before:









































Go back to How-To's for 3.5 Gen Exams

- 16:25 - Comments (0) - Print - #

srijeda, 19.11.2008.

How-To's for 3.5 Generation Exams

In this post and all subsequent ones related to this topic, I'll try to unveil the secrets of passing new generation (3.5) .NET developer exams ...



Again, there are three separate paths (tracks) for getting the all-mighty MCPD (ex-MCSD) credential:

- MCPD: Windows Developer 3.5
- MCPD: ASP.NET Developer 3.5
- MCPD: Enterprise Applications Developer 3.5

There are lots of materials to study, plenty of new exams to pass. The exam vital for all MCTS and MCPD titles is one 2.0 exam (which fortunatelly I already solved):

- 70-536: TS: Microsoft .NET Framework – Application Development Foundation (shortly, 2.0 Framework exam)

Regardly which track you take, you should pass this fellow first.

Here are the list of MCTS certifications on Visual Studio 2008:

- 70-502: TS: Microsoft .NET Framework 3.5, Windows Presentation Foundation Applications
- 70-503: TS: Microsoft .NET Framework 3.5, Windows Communication Foundation Application Development
- 70-504: TS: Microsoft .NET Framework 3.5, Windows Workflow Foundation Application Development
- 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms Application Development
- 70-561: TS: Microsoft .NET Framework 3.5, ADO.NET Application Development
- 70-562: TS: Microsoft .NET Framework 3.5, ASP.NET Application Development

And here are the list of related (3.5) MCPD certifications:

- 70-563: PRO: Designing and Developing Windows Applications Using Microsoft .NET Framework 3.5
(requires 70-536 and 70-505)
- 70-564: PRO: Designing and Developing ASP.NET Applications Using Microsoft .NET Framework 3.5
(requires 70-536 and 70-562)
- 70-565: PRO: Designing and Developing Enterprise Applications Using Microsoft .NET Framework 3.5
(requires 70-536, 70-503, 70-505, 70-561, and 70-562) (coming soon)

This time, I plan to pass all three tracks, one by one.
I'll keep you informed about my progress...

(added later...)

My impressions about passed exams are here:
- Windows Workflow Foundation (70-504)
- Windows Communication Foundation (70-503)

- 18:07 - Comments (0) - Print - #

četvrtak, 13.11.2008.

Innovative Framework - dealing with Tesla, again

In time of world crisis, it's a difficult to strive for new bright ideas - this is rather struggling to survive and try to sustain your business. Someone might ask me why I write about this anyway? Why trouble your mind with "bright new ideas" in time of relative insecurity and risk?

Well, indeed it is time to be conservative. But still, Obama has won the elections, Microsoft is planning to launch surface-based computers, home robots are doing the housework in Japan, and all kinds of human freedoms are already in state. We cannot be conservative anymore! And, we should not be afraid!



Tesla was one wandering spirit which always reminds me to be initiative. He was a man with many talents, a mastermind if you like. His ideas literally brightened the world. Therefore, I want to be something like him, at least 1 percent of him. Why? Because that's why the men are for. To take something grey and common and make a diamond of it. Take Apple for example, Sony, or Ikea.

But, how to make this happen? How to bring those brilliant ideas in action?
Well, I think the keyword is to be a stubborn. Not clever, not intelligent, not rich, not even lucky. But stubborn. I think that is the key.

Think of all these firms and individuals considered innovative, and the similarity is obvious - they all have being stubborn enought to succeed. They never gave up. In fact, majority of their ideas were failures, don't underestimate it! Maybe 1 of 50 ideas was successful. But they never gave hope. Just like we should not give hope in those turbulent times.
In Croatian, "stubborn" means "tvrdoglav", which litterally means "to have hard head". So, constantly punching the head into the wall is not clever, man can say very stupid. But, this is the path for ideas really come to life. Heads to the wall. When Tesla invented his works, he was stubborn enough to convince important people, we can say - a critical mass of people, that this would work. And it worked!

“Before I put a sketch on paper, the whole idea is worked out mentally. In my mind I change the construction, make improvements, and even operate the device. Without ever having drawn a sketch I can give the measurements of all parts to workmen, and when completed all these parts will fit, just as certainly as though I had made the actual drawings. It is immaterial to me whether I run my machine in my mind or test it in my shop. The inventions I have conceived in this way have always worked. In thirty years there has not been a single exception. My first electric motor, the vacuum wireless light, my turbine engine and many other devices have all been developed in exactly this way.” - Nikola Tesla

That reminds me about great precision about the idea itself, but NOT also for the profit. He trully depicted precisely each part of his idea in mind, but didn't have a clue if this gonna SELL. That is very important. The inventors are not managers, they do not care about the money. When they did so, the idea is entagled inside the economic system which is cold and not creative.

"Try not to become a man of success but rather to become a man of value." - Albert Einstein

- 17:01 - Comments (0) - Print - #

srijeda, 05.11.2008.

Validation of Data - maybe a new session?

I probably won't resist to create a session about it, because recently I had request to investigate it. What I had in mind is to sort out different kinds of validation mechanisms used to verify data in different layers and platforms.

I would start with the elemental data verifications as part of UI layer - starting with "vanilla" WinForms app, then switch to ASP.NET, following with client-side scripting code, and end with WPF (generally, XAML).



Then, I will try to explain different data storage mechanisms to validate data, including relational integrity, triggers, rules, etc. XML-based documents can be also validated against XSD schema, so I would endeavor also this stuff.

The most powerful part would be business rules validation, or business layer validation mechanisms, as I've already pay attention to it in my first session about C# Business Objects.
There should be talks about encapsulating business rules validation into business object, via CSLA framework, and then, via Validation Application Block (as part of Microsoft's Enterprise Library), and variations of the solution.
Next, I would shortly present Workflow Foundation's RuleSets and validation rules mindset. Also, I could mention Microsoft Business Rules Framework, which ships as a component of BizTalk Server.

All together, it would be good basis for decision making about why, where, when and how to put validation of data in action.

Wish me luck and good faith in doing this!

Kind regards,
Ratko.



Potential sources:

http://en.wikipedia.org/wiki/Business_rules
http://msdn.microsoft.com/en-us/library/microsoft.ruleengine.aspx
http://msdn.microsoft.com/en-us/library/system.workflow.activities.rules.aspx
http://msdn.microsoft.com/en-us/library/ee1hzekz.aspx
http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx
http://silverlight.net/blogs/jesseliberty/archive/2008/10/13/data-binding-data-validation.aspx
http://www.c-sharpcorner.com/UploadFile/kadiyalavj/Data_Validation04082008135313PM/Data_Validation.aspx
http://karlshifflett.wordpress.com/2008/04/03/wpf-sample-series-handling-and-reporting-wpf-data-binding-validation-errors-and-exceptions/
http://bloggingabout.net/blogs/joshua/archive/2005/06/14/6444.aspx
http://msdn.microsoft.com/en-us/magazine/cc164100.aspx
http://joeydotnet.com/blog/archive/2007/03/08/21.aspx
http://community.codesmithtools.com/forums/p/2442/9888.aspx
http://www.myverbaloutlet.net/2008/09/aspnet-mvc-model-and-business-rules-validation/
http://msdn.microsoft.com/en-us/library/aa561951.aspx
http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartThree.aspx

- 20:10 - Comments (0) - Print - #

ponedjeljak, 03.11.2008.

Session Completed: C# Business Objects - Patterns of Application Business Core

Session title: C# Business Objects - Patterns of Application Business Core (C# Poslovni objekti - Arhitektura poslovnog aplikacijskog sloja)
Held at: Microsoft Community Cakovec, November 3, 2008.

Trivia: I made this session as an introduction to my future ramblings about business core and Cloud platform, which is gonna change our world of thinking.
Why not start with elemental stuff as a business object? It is fairly an entity in our domain business model, but sounds very intelligent and essential.
During the session I was teasing and proposing alternate solutions to the current and upcoming infrastructure, and time will show if I was right....



Session Outline (on Croatian):

Intro
C# Poslovni objekti
Arhitektura poslovnog aplikacijskog sloja

Novi izazovi
“The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air. “ – Galadriel, The Lord of the Rings

Ubrzani razvoj platformskih tehnologija
Potrebe za novim znanjima i vještinama rastu
Povećani zahtjevi kupaca/korisnika
Pritisak na isplativost novih tehnologija istovremeno sa podrškom za sve veći broj zastarjelih tehnologija
Prilike za “greenfield” projekte relativno male

Promjena paradigme
“We hire people to build doghouses, give them cranes and ask them to build scyscapers. Then we’re surprised when they fail.” – Eileen Steets Quann

Design by Contract (DBC)
Aspect-Oriented Programming (AOP)
Design Patterns
Rapid Application Development (RAD), RTE
Agile Development, Test-Driven Development (TDD)
Refactoring

Poslovni aplikacijski sloj
Višeslojna arhitektura
Sloj poslovne logike
Problem validacije
Windows Application Server: WF + WCF
SQL Data Services (storage in a “Cloud”)

Naš cilj: poslovni objekti
Domenski objekti (DDD)
DataSet, XML/XSD, LINQ
“Pametni” objekti: poslovna logika i sigurnost
Anatomija posl. objekta:
interface + code + state
Mobilni objekti

Pomagala za dizajn poslovnih objekata
Design Patterns
Software Factories
CSLA.NET = osnovni gradivni blok
Enterprise Library – Application Blocks
FxCop, CodeAnalysis
Castle Project, NHibernate
LINQ / ADO.NET Entity Framework
MSDN Code Library, CodeProject

Ciljevi dizajna poslovnih objekata
Kreiranje poslovnih objekata (Factory Pattern)
“N-level undo capability”
Validacija objekta kroz provjeru poslovnih pravila
Spremanje i pristup podacima
Praćenje promjene podataka (“dirty”)
Povezanost hijerarhije objekata (“lazy loading”)
Podrška različitih fizičkih konfiguracija (DataPortal)
Podrška za data-binding
Integrirana autentifikacija i autorizacija

Pristup poslovnim objektima
Kreiranje novog objekta:
Customer c = Customer.NewCustomer();
Dohvat poslovnog objekta:
Customer c = Customer.GetCustomer(criteria);

N-level undo – “svijest” objekta
UndoableBase, IUndoableObject
Upravljanje snimkama stanja (“snapshots”): CopyState(), UndoChanges(), AcceptChanges()
IEditableObject: BeginEdit(), CancelEdit(), ApplyEdit()
[NotUndoable] atribut

Podrška za data binding
IEditableObject : BeginEdit(), CancelEdit(), EndEdit()
INotifyPropertyChanged : PropertyChanged
IBindingList
IDataErrorInfo

Validacija poslovnih objekata
Validation Application Block (Microsoft Enterprise Library)
IsValid
ValidationRules
RuleHandler, RuleArgs
BrokenRulesCollection
CommonRules

Integracija autentifikacije i autorizacije
Autentifikacija – identitet i profil korisnika
Windows integrated security, Active Directory
Generic security model
Login(), Logout()
“graceful degradation”
adaptacija post. sustavu
AuthorizationRules

Data Portal koncept
Data Persistence
Object-Relational Mapping (ORM)
Data Caching
Message Router pattern
.NET remoting, web servisi, Enterprise Services, WCF
Windows Application Server (“Dublin”)

Vrijeme je za demo aplikaciju!
....

Software Factory arhitektura



Budućnost poslovnih objekata
ADO.NET Entity Framework
Workflow Foundation 4.0 / BizTalk Services
Microsoft Business Rules Framework
Visual Studio 2010 (DSL Toolkit)
“Oslo” (M + Quadrant + Repository)
Microsoft Blueprints
SQL Data Services
Microsoft Azure (“Cloud”)

Umjesto zaključka ...
ICT svijet se mijenja - prihvatimo taj izazov!
Možemo pobijediti kompleksnost
Pametni poslovni objekti - specifičnost našeg poslovanja, načina rada, razmišljanja
Budućnost je u povezivanju logike (Cloud)
BUDITE KREATIVNI I JEDINSTVENI!

Literatura
Gamma, Erich, et al. (GoF): Design Patterns: Elements of Reusable Object-Oriented Software, 1994
Fowler, Martin, et al.: Patterns of Enterprise Application Architecture; Addison-Wesley, 2002
Fowler, Martin, et al.: Refactoring: Improving the Design of Existing Code; Addison-Wesley, 1999
Greenfield, Jack; Keith Short: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools; Wiley Publishing , 2006
Lhotka, Rockford: Expert C# 2005 Business Objects; Apress, 2006
Cwalina, Krysztof, Brad Abrams: Framework Design Guidelines, McGraw-Hill, 2007

http://castleproject.org/
http://www.hibernate.org/
http://msdn.microsoft.com/hr-hr/architecture/
http://www.microsoft.com/soa/products/oslo.aspx
http://www.pluralsight.com/community/blogs/dbox/

Pitanja ?
Dobrodošli ste na mom blogu:
http://rcosic.blog.hr




- 23:01 - Comments (0) - Print - #

<< Prethodni mjesec | Sljedeći mjesec >>

Creative Commons License
Ovaj blog je ustupljen pod Creative Commons licencom Imenovanje-Nekomercijalno-Dijeli pod istim uvjetima.