Malek's Moorish Tales

Meanderings about life and technology

Microsoft is missing the opportunity here ...

In Morocco, and up to now, Windows 8 devices and PCs have not yet hit the market. The shopping season will pass without them...

Microsoft's big gamble with Windows 8

Microsoft is doing something very interesting these days. By changing the way the end user sees windows so dramatically, they are taking the risk of alienating the very users that have been faithful for so many years. Why are they doing it in such a disruptive way ?

I believe Microsoft, like the rest of us, are seing the end of the PC as the inevitable outcome of the gadget frenzy of the past few years. I think they believe the Apple gadget revolution has made people more inclined to go for different devices for different usages. The tablet browsing is becoming the standard browsing experience at home and while traveling, and the phone browing is becoming the standard for browsing while commuting. What Microsoft is trying to do is to push an extremely simple user experience that includes everything the user has come to expect from a PC into a tablet or a touch screen all-in-one.

Basically, instead of having their business killed by a disruptive change in hardware, their want to accelerate the change and be part of it.

The issue is that the end user, generally, when he goes buying, will look at the devices in a stand, and start comparing the devices. He is not concerned by the vendors (except for the perceived quality of the vendor's products), and is even less concerned by the operating system, except for its familiarity. On the familiarity front, the normal end user will not find Windows 8 familiar (they even would find the iPad and the various android devices more familiar). Most end users are not aware that the tablets they are looking are of different kinds, and have different levels of technology in them.

Basically, if the new user interface impresses, it would gain a good market share of the tablets as well as replacing current desktops and laptops, and as the users start expecting all Windows can do in the devices, it would give Microsoft an edge on all kinds of devices. But if it fails, it would endanger Microsoft's PC market itself.

In short, this could give Microsoft a new begining, with the potential to dominate the new computing markets, but it could also break Microsoft completely...


Leaving Microsoft

Just that, I am leaving Microsoft...

A great MDC this year

The MDC is a great information source for Developers. Started last year, the MDC is becoming "The" Microsoft conference in the middle east ...

For those who missed the PDC (Los Angeles, October 2003), this is a great opportunity to have a look at the future with Longhorn, Yukon and Whidbey ... The three products that will change Microsoft technology, and place managed code at the center of every Microsoft product ...

This year, the conference will be opened by Bill Gates himself (for the first time in Middle East).

There are a few of my friends and fellow RDs speaking :

Stephen Forte

Patrick Hynds

Goksin Bakir

Sel├žuk Uzun

Hossam Khalifa

For myself, I'll be giving 4 sessions. 3 sesions on Office System development (using XML in Word and Excel, InfoPath, and Visual Studio Tools for Office), and a mobility session on developing mobile applications with the compact framework (I will dwell quite a bit on smartphone development, on performance considerations and tips, and I will introduce the new mobility features of Visual Studio Whidbey).

Hosting the CLR Panel

These are my notes on the Hosting the CLR Panel. I will try to arrange them and make them more readable later on.

   On the panel, Mahesh Prakriya, Chris Brumme, Sean Trowbridge, Chris Brown, Dimitry Robsman(ASPNet), Jose Blakeley(SQL), Mark Alcazar (Longhorn), and Thomas Quinn from Microsoft, and Andrew Murchinson from IBM (DB2).

Q : Chris brown, What is the hosting API ?
A : First, the original hosting environment had 11 pages to describe the APIs, the whidbey one is 106 pages long. It is made of  COM interfaces to change the threading model, memory allocation, synchronization primitives, and other extensions to the regular interoperability methods ...

Q : Is IBM thinking of using an alternative implementation of CLR on its alternative plateform ?
IBM : The initial implementation is only for NT and thus will use the Microsoft Runtime. On next versions, We are thinking about Mono ...

Q : overhead on memory ?
A : overhead of several megs, ASPNET first app domain about 10 Mb on empty, subsequent around 1Mb ... Loader optimization to balance perf and overhead (single domain/multi app domains)

Q: Rule of thumb ?
A: single domain is faster for static, initialization ... multi domain, costs related to sharing and preventing side effects. Trying to make that better in whidbey.

Q: hosting 1.0 CLR. some client tried to use 1.1, and had problems. How to prepare for compatibility
A: office way, not have the config file (Clr version) makes the latest version load
   in SQL, ASPNet, DB2 biding to the specific version for stability and dynamically choosing the version to load

Q: SP calling an object defined on the host (ex: reporting services, write a formula in .Net, calling a ref to an object exposed by the host) ?
A: SQL, is value based.
   Fragments of the user code :
 - state

Q: programming model for SQL is limited. programming models in the particular hosting scenarios will be different ?
A: hoping others will behave

Q: something like CLS ? or informal guidelines ?
A: not aware of any attempts to standardization.

Q: unamaged code hosting the CLR
A: if it is just to deal with memory pressure, GC ... large amounts of unmanged, relating to some managed objects, inside whidbey it is possible to link those to GC
Q: How about synchronization ?
A: depends on the level at which the sync is needed

Q: Rule engine
A: reflexion emit, use compiler and load the class from file. what level ? a compiler, higher level language, persistant store (laughs) ... like Store procedure or user defined functions. light weight code generation APIs if no meta Data.

Q: legacy Win32 app. Host CLR and start using managed ?
A: COM Interop ... or IJW - if multi-app domains, then maybe to think about it.

Q: Licensing issue for hosting the CLR
A: none.
Q: ISV doing it ?
A: will not speculate.

Q: created a managed COM object, and make it not appear in the default app domain (VS calling the add in)
A: Threading models issues... launch app domain, and call from it ... obviously no good answer (just inventive ideas). in the longhorn timeframe might be solved
Q: in office, is it one runtime per process ?
A: one runtime per process
Q: hosting API is not part of CLI
A: should it be ?

Q: hosting vs MCpp
A: com interop vs MCpp, MCpp is less cosly
   hosting ? don't know exactely, but MCpp would look the way to go for less costs

Q: 120 pages can be scary
A: that stuff is used by SQL, not necessary to use all the interfaces

the v1 is what most apps will need.

hosting is really about extensibility and tuning how the runtime is used ...

DB2 created own class loader.

Q: ASPNet in addition to hosting CLR, has its hosting APIs.
A: app domains conveniently ...

Q: upgrading from 1.0 to 1.1 cused problems (regiis to get it back to old version)
A: taking it seriously, do not upgrade ...

Q: loading an assembly, what SQL does, what steps at creation, what steps at loading -is there NGEN
A: store user asemblies in the database. prefer to load from DB except those in GAC. intercept reference resolving and go get the assemblies (detach from database, attach somexhere else ...), CAS, well behaved and no conflicting parallel executions. At runtime, rely on runtime checks.NGEN not used (restriction to file system assemblies, ...

   DB2 looks up asemblies in the file system.

Q: Porting to managed or hosting
A: SQL millions of lignes of unmanaged, impossible to upgrade in short or midterm. hosting gives the exetensibility needed.

Q: different localization processes ?
A: match locale of the DB

Q: CLR GC control. objects that are machine wide shared.
A: CLR self tunning. hosting can control GC. machine wide shared not feasible.

Q: serevr vs workstation CLR
A: workload.if MT, server can add perf. Workstation useful in uniproc.