Jun 08

There is some good news with the updated marketplace policies:

  • You still have to pay a registration free which entitles you to 5 free app submissions
  • But any further “paid for” app submissions are free
  • Only “free” app submissions have a cost associated
  • Also MS are introducing the Trial API
  • Includes the Push Notification service.

http://windowsteamblog.com/windows_phone/b/wpdev/

 

Apr 21
Microsoft has released the icons that will be used in its Windows Phone 7 OS. The download page explains that the pack is meant for application developers writing software for the OS. There are 64 icons in the pack, 32 light and 32 dark, in .png format, with a vector-graphics option for import into Microsoft Blend.
Jan 25

This series of Web seminars will lead you through common application development scenarios in Windows Mobile 6.5. From “hello world” to embedded databases, from sending a simple SMS messages to using the new touch-screen enabled Gesture APIs, these sessions will get you started developing custom applications for your Windows Mobile 6.5 device.

 

Link is here

 

Jan 05

There’s been quite a bit of talk since the early CTP/Beta release of Visual Studio 2010 regarding the lack of support for Windows Mobile development. However, what most people fail to pick up on is that you can build Windows Mobile Widgets using either Visual Studio 2008 or Visual Studio 2010 (in fact you can probably do it using earlier versions of Visual Studio but I haven’t tried it). Interestingly an update to the Developing Widgets for Windows Mobile 6.5 MSDN article talks about coming support within Visual Studio for doing widget development:

Starting with Windows Mobile 6.5.3, developers can create Windows Mobile widgets using Visual Studio.

Given that you can already do most of the development within Visual Studio this would suggest better IDE support for perhaps debugging or packaging your widget…. This is pure speculation but if you want to get a bit of a heads up on widget development using Visual Studio, try the following posts from Nick's blog:

The version of Windows Mobile mentioned in the MSDN article and by Mary Jo in Is Microsoft (slowly) picking up the pace with Windows Mobile? must be a reference to some of the leaked builds.

 

Tags: |
Sep 24

Review by WMExperts on the new Zune HD, very cool indeed:

Tags: |
Jun 26

For an internal competition project here in Avanade, my colleagues and I implemented a location aware service works on the cloud. So I’ve many outcomes from that project and want to share them with you. Our aim was to go get the a location data, based on Latitude and Longitude but alas our HTC Touch devices don’t have GPS hardware installed in. So I decided to go for GSM CellID based location awareness and worked quite well. So here is the first step to demonstrate the basic structure on how to get GSM CellId with couple of lines C# code. I just referred to MSDN codebase the RIL_GetCellTowerInfo function in the Radio Interface Layer (RIL) API. 

 

        1.Call RIL_Initialize to get a RIL handle

        2. Call RIL_GetCellTowerInfo to get the information about the cell tower the phone is connected to

The “Cell” string that FindMe displays seems to be a combination of the dwCellID, dwLocationAreaCode and dwMobileCountryCode

       3. Call RIL_Deinitialize to release the RIL handle

 

You can find the code here. GetCellDetails.rar (24.03 kb)  I’ll add other steps to decode geo info (latitude and longitude data) from that cellID identifiers soon. Meanwhile you can check http://www.opencellid.org/ and similar services from other public or commercial vendors and get more info on GSM CellID.

 

May 19

After a long silence on my blog, I've great news :

    Microsoft's beta My Phone service for Windows Mobile now free to all http://myphone.microsoft.com/  And for more info about My Phone, please refer to my previous blog entry Microsoft launches new mobile phone stack

Have fun

Jan 06

I heard many complains about slow startups of mobile applications and also got questions how to increase the startup performance. In most of the projects, the problem was a design issue, just like trying to connect a remote server on startup or populating big datasets etc.. But on the other hand, if you think your startup sequance is totaly clear and correct than you may find some more things to do in general.

Take a look at the article on how to optimize the your application's loading time.
http://blogs.msdn.com/raffael/archive/2009/01/05/netcf-improve-startup-performances.aspx

Dec 01
The Microsoft Patterns & Practices (p&p) team delivers applied engineering guidance that helps software architects, developers, and their teams take full advantage of Microsoft’s platform technologies in their custom application development efforts. Working with the Windows Mobile team the p&p team has updated their Mobile Architecture Pocket Guide, which provides real world information and best practices for mobile development. Definitely worth taking the time to give it a read.
Nov 21

 

Here’s a great article on how to use Windows Media Center with Windows Mobile to do some really cool stuff.

You end up with being able to sync recorded items off your Windows Media Center and watch them on your Windows Mobile phone!

Tags:
Oct 03

Nowadays, we all hear the term “Cloud Computing”, its benefits and some baby-steps* applications going on. Google, Microsoft and Amazon are the main promoters on this game. On my side, I like Google’s services like GMail, GDocs, Agenda etc… and on Amazon’s side EC2 seems extremely cool and powerful.  

But on the other hand two hotshots defined Could Computing as stupidity and just a business fashion. Richard Stallman, founder of the Free Software Foundation and creator of the computer operating system GNU, said that cloud computing was simply a trap aimed at forcing more people to buy into locked, proprietary systems that would cost them more and more over time.

He said: "It's stupidity. It's worse than stupidity: it's a marketing hype campaign,"  

A big anti-Cloud Computing definition also came from Larry Ellison, Oracle’s CEO, as “it is just an industry fashion.” 

They think that the personal data should definitely stay personal and advice to computer users should be keen to keep their information in their own hands, rather than hand it over to a third party. The growing number of people storing information on internet-accessible servers rather than on their own machines, has become a core part of the rise of Web 2.0 applications. Millions of people now upload personal data such as emails, photographs and, increasingly, their work, to sites owned by companies such as Google. 

So what are your ideas about cloud computing on relying to a third party perspective?   


kick it on DotNetKicks.com


*
For sure the Cloud Computing applications on the market are really great but compare them to the near feature opportunities on Cloud Computing. These are relatively tiny-baby-steps.


 

Sep 12

Are you on Facebook? Do you use Outlook and Windows Mobile? If you answered yes and yes, get OutSync, a free app to sync your Facebook friends' photos with Outlook! It's written by Mel Sampat on the Windows Mobile team, and is free to use. Watch the 7 minute video on Channel 10, or visit Mel's website to download it.

Sep 09
Today I’m applying Microsoft Visual Studio 2008 Service Pack 1 (Installer)

and

Microsoft SQL Server Compact 3.5 Service Pack 1 for Windows Mobile

SQL Server Compact 3.5 Service Pack 1 for Windows Mobile is not included in VS 2008 SP1, but it looks like SQL CE 3.5 SP1 for the desktop is included.

I think there is going to be a lot of confusion about this, if you look carefully at the screen grab on the left, you can see the dialog only mentions SQL Server Compact 3.5 SP1 – there’s no desktop or devices distinction.

 

 

Why update to SQL Compact Edition 3.5 SP1?

I’m doing it solely for the new Transact SQL support for:

  • Nested query in FROM clause
  • CROSS APPLY and OUTER APPLY
  • CAST
  • TOP
  • SET IDENTITY INSERT

Here are the 3.5 SP1 release notes with information about the other SP1 enhancements/fixes.

Other important SQL Server Compact Edition URLs

Aug 07

As most of you know, a very nice series is going on dev102.com site for a while. Instead I was following the questions; I couldn't find any time to answer them till now. Here is this week's question “Point In Polygon” and below is my answer.  

   1:  //Solution : assume we draw a line parralel to x-axis. on CheckPoints y value, 
   2:  //from left side of the polygon to the point. 
   3:  //we need to count number of the borders intersects with this new line.
   4:  //if the number of intersections is odd, the point is inside
   5:  //if even then it is outside.
   6:  Point p1, p2;
   7:  int IntersectionCount = 0;
   8:  for (int i = 1; i < Polygon.Count; i++)
   9:  {
  10:      p1 = Polygon[i - 1];
  11:      p2 = Polygon[i];
  12:      //Check to draw the line from -infinity to the CheckPoint.
  13:      if ((p1.x < CheckPoint.x) && (p2.x < CheckPoint.x))
  14:      {
  15:          //Check if any intersection
  16:          if ((p1.y <= CheckPoint.y) && (p2.y >= CheckPoint.y))
  17:  IntersectionCount++;
  18:          if ((p1.y >= CheckPoint.y) && (p2.y <= CheckPoint.y))
  19:  IntersectionCount++;
  20:      }
  21:  }
  22:  if (IntersectionCount % 2 == 0)
  23:      Console.WriteLine("Outside");
  24:  else
  25:      Console.WriteLine("Inside");

Download the source. Program.cs (2.04 kb)

Tags:
Jul 30
On Monday morning I found some spare time to work on my blog and here is the totally new BlogEngine. For many years I have used dasBlog successfully, but a brand new codebase, more features, better themes, better SEO and frequent releases are my main reasons for moving to BlogEngine. And here are some more from Mads’ release notes: 
  • BlogML import/export
  • Extension model
  • Code syntax highlighting
  • ASP.NET SiteMap provider for static pages
  • Support for a static page to be the front page
  • Full comment RSS/ATOM feed
  • Intelligent error 404 page
  • E-mail notifications for future comments
  • Role provider
  • Extended in-site search capabilities
  • SLUG – the URL doesn’t change with the title
  • User control injection
  • Attachments on the contact page
  • Comment moderation
  • Much better Mono support
 

So I downloaded and give it a try to import my old data from dasDlog. Here are my steps that resulted %100 successful:

  1. Setup BlogEngine on my local pc, just an easy pointing from IIS to the folder.
  2. Export dasBlog data to BlogML, hence dasBlog doesn’t have a BlogML export utility and has its own data model, I was planning to write some code for that conversion. But –for sure- it was already written by Paul and downloadable on this link.
    With this nice tool it was so easy to convert my dasBlog content to BlogML.
  3. My images from old posts were in content/binary/ folder in the dasBlog. I left them as they were on the server. So I didn’t change any links or mapping in my posts.
  4. I had some improvements and additions on widgets and comment mail sender extender, I will post these changes soon.
  5. I did all configuration, styling, tracking scripts and all other settings locally.
  6. I deleted everything except content\binary folder on my hosting server and uploaded my new BlogEngine codes and contents.
  7. After a small setup on permissions (write permission to App_Data folder) my new blog was up and running.
That’s all.!

kick it on DotNetKicks.com
Tags:
Apr 01

     Today I got notice that I have once again been honored as Microsoft MVP for 2008 in Visual Developer - Device Application Development. Thanks again to Microsoft, Mobile Product Team, my MVP lead Mehmet Emre and all those who have supported my community work past year.

My MVP Profile

Tags:
Jan 13

  Facebook has become a huge phenomenon in social networking. The site exposes a developer API to support Web and desktop applications. In this article you will explore making use of this functionality from a smart device application. The source code to accompany this article demonstrates working with key aspects of the Facebook API and tightly integrating with Microsoft® Windows Mobile®–specific APIs.

Jan 11

As an MVP I get questions very offen on Windows Mobile newbies. :) I am always curious and keen to answer your questions. You are always welcome, but here is a nice collection of FAQ on Windows Mobile via msdn. 

Questions are: 

  • What is a Windows Mobile powered device?
  • What’s the difference between a Windows Mobile Professional and Windows Mobile Classic device?
  • What are the different versions of Windows Mobile?
  • How do I develop applications for Windows Mobile powered devices?
  • What is the .NET Compact Framework?
  • How do I develop browser-based applications for mobile devices?
  • What is SQL Server 2005 Everywhere Edition?
  • And the link to the article is : http://msdn2.microsoft.com/en-us/windowsmobile/bb264342.aspx

     

    Tags:
    Jan 08

    I know everyone is looking for details on Windows Mobile 7, here are the first screen captures and a very nice article how the future is going to be like. It seems that this version will be a really big revalution.


    here is the article.

    Edit on 22.1.2008 : Turhal Temizer'in de Turkcelestirerek csharpnedir.com a ekledigi makaleye de buradan ulasabilirsiniz.

    Tags:
    Dec 26

    Tom Hollander started an interesteding thread on code generation. He points out challenge of customizing generated code, which comes up often because generated code is usually not exactly what you want. He also brings to light the trade-off between generator flexibility and complexity: the more flexible a code gen template is, the more complex and difficult to configure it becomes. Check out his post at:

    http://blogs.msdn.com/tomholl/archive/2007/11/17/code-generators-can-t-live-with-them-can-t-live-without-them.aspx

    The post includes some great comments too. Wojtek Kozaczynski posted some additional thoughts on the topic at:

    http://blogs.msdn.com/wojtek/archive/2007/11/18/code-generators-when-can-you-live-with-them.aspx

     

    Tags:
    Nov 16

    Az once noel tatili icin Turkiye'deki planimi yaptim. Istanbul - Izmir - Antep - Istanbul turu icin en uygun ucak biletlerini arastirdim ve tek tek satinalmaya basladim. Bu zamana dek taktir ettigim THY'nin internet sitesini de bu sayede digerleriyle es zamanli olarak kiyaslama imkani buldum ki, dehsete dustum. asagidaki hatalarin tamami 4. adim olan "Rezervasyon" ekrani uzerindedir. Tek tek ele alaim:

    1) Tab ile akis sirasi : Unvani sectim, adimi yazmak icin Tab'a bastigimda e-posta kutucuguna gecirdi, sonra bir tab daha Isim, bir tab daha e-posta(tekrar), sonra soyad, vs.. Kimsenin Tab Index'ten haberi yok mu? Bu sekilde once sol kolonu yukaridan asagi bitirebilir, sonra sag kolona gecebilirdim ki tasarimcilarin ve developerlarin da uygun gordugu akis bu sekilde olmus.

    2) Yemek tercihi : Yemek cesitlerinin ismi bu sekilde mi olmali? Bunlar bir gourme kitabindan mi derlendi yoksa beslenme uzerine yazilan yazilardan mi? Lutfen biri bana Glutensiz Yemek, Musluman Yemegi, Laktoz icermeyen yemek (en azindan tahmin edebiliyorum ama daha aciklayici olamaz mi?) ne demek aciklayabilir mi? Hatta, "Urik Asit Miktari Dusuk Yemek" az cisli, icine az isenmis yemek mi?

    3) Isim - Soyisim / Ad - Soyad eslestirmesi dogru degil midir? Gorunum ve anlasilirlik acisindan Isim - Soyad ikilisinin kullanilmasi ne kadar dogrudur?

    4) Unvan : Bay / Bayan seceneginin her iki yolcu icin durdugu yere dikkat edelim. Neden ayni yerde ve ayni siralamada olamiyorlar? (isimden hemen once)



    5)
    Telefon numaralari : Cep telefonu icin bir ornek verilmis. Ama diger telefonlar icin ne bir ornek var, ne de o alanlar numeric olarak isaretlenmis. Arkadaslar, js ile textbox'lari yalnizca numeric yapmak bir kac dakikanizi alacak, kucuk bir istir. Boylece kullaniciniz benim gibi + yazdiginda, hata mesajini gorunce "haa? ne oldu yahu?" durumuna dusmez.

    Ne test muhendisiyim, ne de bu ekranda ozellikle hata bulmak icin didik didik arastirma yaptim. Yukaridaki yorumlarim ilk goze carpan, daha da dogrusu rahatsiz eden hatalar. En iyi havayolu sirketleri arasinda bulunan, ki bununla gercekten gurur duyuyorum, THY'nin sayfasinda bu gibi hatalarin olmasini yakistiramadim.

    Tags:
    Nov 01

    Microsoft announced Visual Studio 2008 and .NET Framework 3.5 will be released at the end of this month. From the beta releases (we have beta 2 now) and .NET 3.0 we saw so many improvements on framework and languages.  From now on, we become capable to use Domain Specific Languages (DSLs) like LINQ and we can focus on the domain of the problem space. And we can do Domain Driven Design (DDD) in language level.

     

    DDD is still one of the hardest design issues in many languages and development disciplines, but LINQ is a really nice approach to that problem. So languages are evolving into higher level. But what is next step for languages? In .NET environment or any other frameworks it is still very difficult to parallelize applications. Few programmers, seniors can write multi-threaded code and very few of them really enough capable to debug. In somehow, the operation theory is totally different than human brain.     As commonly known our hardware, computers are ready for those programs for couple of years. Dual core, multi-core processors stand in our laptops, PCs for years. As Aaron Coday from Intel mentioned in Istanbul Bilisim Kongresi 2007, “Software should fallow and support hardware”. Thoughts from the development zone are almost the same. Bill Gates announced in MVP Global Summit 2007, “…..take multiple processors and use them in parallel has been a programming challenge going back many, many decades, so now it's important that we actually solve that problem, and make it possible for developers of all types to take advantage of these multi-core devices….

    So, in my opinion; first step of language evaluation will be in multi-core application development and may be the second one multi-computer (computing-grid) . The name of the first step and opportunities on it are ready : Parallel LINQ or PLINQ.

    Tags: |
    Oct 31

    Nowadays the Facebook phenomenon is rising up via the entire globe. According to the statistics it is the fastest growing social network. But ofcourse Facebook is not the only one, there were many and now there are much more Social Networks in all countries, all languages.

    Whatever the aims of these communites are, the question is, how do they affect your life? I know so many friends who communicate with his/her friends or congratulate birthdays etc... via those tools but don’t want to give a phone call or visit them. You may think that “Communication is communication; the way of it does not matter.” The interesting thing that, if I don’t have someones e-mail or he is not a contact in one of my social networks, msn, g-talk, etc... I don’t recall him as often as the others. So do those networks or tools improve my social life or kill it?

    In other way, most of us sit infront of the pcs whole day hence we always have access to those networks or tools. But do we really do something productive or accomplish something on those sites or just wasting the time and loosing consantration?

    So, to query all those issues and give up this stupidity you may check this out.

    Edit on 9 Nov. 2007 : Ten days later from this post, I saw a news in www.ntvmsnbc.com, the most serious Turkish news portal. They announced that, 860.000 Turkish user have been registered in facebook and we are the 5th most crowded nation in facebook :)

    May 25

    One of my best friends needed some help about componentware for his research. Here is the text that I wrote for him. Hope to be helpfull.

    Do you know, what do the Volkswagen Golf, New Beetle and Audi TT have in common? They all share the same chassis. From the outside, they appear to be very different vehicles but the platforms are the same. Mass production demands standardized parts across the entire automobile industry. By standardizing production of components, they have been able to lower production costs and time. And often eliminate testing for many items that have already proved to be used in widespread. So, what may we learn from automobile industry?

    In early ages of software develepment; firms wrote their own “Libraries” which were ready codes written in any languages. Later on, as object oriented languages became more popular, prewritten modules expanded to class-libraries. Class Libraries were generally written in C++. Modern component software is often language-independent. It is possible to build program in whatever language you have elected to use. COM, .NET DDL’s, Java and ActiveX technologies achive the purpose of components. Componentware is the name for these ready to use software modules. Componentware stands by being attractive to the widest number of developers. This requirement also ensures that prefabricated routines have the longest life span.

    Here is some reasons why you should use components:

    • Production is simplified
    • Programs take less time to develop
    • Less to test
    • Their reliability is proven
    • They have higher quality than you may afford
    • They can be reused on a range of products
    • Costs can be spread across development
    • Development overheads are proportioately reduced

    Componentware enables latecomers to assemble major sections of rival program with lightning speed. This gives the developers time to concentrate on the business logic of the project and make sure it works more reliable, has sweeter interfaces, etc. as the components in automobile industry.

    Tags:
    May 02

    Birkac saatimi harcayıp kendi kendime "neden yapamıyorum ya, boyle sacma bişi mi olur?" diye söylenirken SQL Server Books Online ' ı daha dikkatli okudum, ve araya sıkıştırılmış bir cümleyle kendime geldim. Gerçekten isnull T-SQL de yalnizca "null mı değil mi" kontrolünü mü yapar?

    Returns the same type as check_expression.

    Books Online, Isnull için bunu söyluyor. Yani, isnull kontrol ettiginiz parametreleri, aynı zamanda ilk kontrol ettiginizin tipine ceviriyor.
    Örneğin

    declare @param1 nvarchar(50), @param2 nvarchar(50),@param3 nvarchar(25)
    set @param1 =' 25 karakterden  uzun   bir metin'
    set @param2 = @param1

    print isnull(@param3,@param1)

    -- 25 karakterden  uzun   b    (Print'in output'u)

    param3'ün tipi nvarchar(25) oldugu için textin kalanı kesilip atılıyor.    :) ilginc dimi?

    Peki, birde bulmak için bu kadar uğrastıgım querynin nasıl birsey olduguna, ve dondurmediği sonuca bakalım.

    select * from sysobjects
    where @param1 = isnull(@param3,@param2)

    Parametre tanımlamalarında gördüğünüz üzere, @param3 null oldugu için, isnull'ın @param2'yi döndürmesini, @param2 ve @param1 de birbirine eşit olduğu için tablodaki tüm kayıtları görebilmeyi umuyordum. Fakat, malesef, elimizde kocaman bir boş küme :)

    Aklımızda, bloğumuzda bir yerlerde kalsın. Unuttukça açıp bakarız.
    İyi & Dikkatli çalışmalar.

    Tags:
    Software Blogs TopOfBlogs