(X) Hide this
    • Login
    • Join
      • Say No Bots Generate New Image
        By clicking 'Register' you accept the terms of use .

Windows 8 XAML Metro Apps with OData - Part 1

(2 votes)
Samidip Basu
Samidip Basu
Joined Aug 22, 2011
Articles:   16
Comments:   24
More Articles
22 comments   /   posted on Dec 07, 2011
Categories:   Data Binding , Data Access , Windows 8 , General

So, you have heard the buzz about the brave new world of Windows 8 from MSFT’s BUILD Conference! May be you even attended the wonderful SilverlightShow webinar about “Getting Started with XAML Development in Windows 8” by Gill Cleeren.

Ready to get your hands muddy? In this short 2-part article series, we talk about how to get started towards writing data-driven (specifically OData) Windows 8 Metro apps with XAML & C#. Here’s what we’ll cover:


As always, the demo solution, along with all code samples is available for download through the link below:

Download Source Code



At the BUILD Conference in August 2011, Microsoft launched Windows 8 .. the next iteration of Windows. It isn’t a forked world between desktop & mobile/tablet Operating Systems; rather “One OS to rule them all..” which runs on variety of form factors with touch-based interaction being a first-class citizen.

We could obviously talk a lot about Windows 8; but for the sake of the length of this blog post, let me refer you to 2 valuable resources:


  1. BUILD Website @ http://www.buildwindows.com/. Great place to start would be the 5 Keynotes, followed by tons of recorded Session content.
  2. Windows 8 Developer Home @ http://msdn.microsoft.com/en-us/windows/home. On this site is a link to download the Windows 8 Developer Preview – the latest Windows 8 bits along with Development tools. Also, as you get into serious Windows 8 Metro development, the samples from Microsoft & contributions from our fabulous community should be very valuable.

Also, check out the overall technology stack in Windows 8 below: [Source: Doug Seven’s Post]

Windows 8 Stack

A lot has been written in the past few months about Win RT & the development stack in Windows 8 .. simple web searches should get us lots of resources. For this article & the demo app, we will stick to the managed world of XAML UI & C# code running on .NET 4.5 on top of Win RT. There might be some rough edges .. but we are all trying to learn, right? Smile


    To follow along or to try the Demo or build something similar yourself, you need the following:

    1. Windows 8 Developer Preview running “on the metal” on some laptop/tablet.
    2. Alternatively, you could also run Windows 8 in a VM (VirtualBox being the best fit at this time) or off a VHD.
    3. Visual Studio 11 included as a part of Windows 8 Developer Preview. At this point, the templates to build Metro Apps aren’t available outside the Windows 8 bits.
    4. Curiosity


    The Data

    Let’s try building a data-driven Metro App, shall we? For Demo purposes, I’m going to use a simple relational DB called “Demo” hosted in SQL Azure with just one table called “Team”, as shown below with schema/data:


    So essentially, we want to keep track of Team Members with Names & TwitterHandles. How can we get this data easily into a Windows 8 Metro App? Why off course, OData !!

    You may learn more about OData from http://www.odata.org/. I already have an OData Service built on top of our DB to expose the Team table data as an OData feed for consumption. Need to expose your data as OData? – Check out Michael Crump’s great series on Producing & Consuming OData in Silverlight & Windows Phone Applications.

    Also, remember my article on Connecting Azure & Windows Phone through OData ? In that article, we talked about consuming OData from the same SQL Azure DB Table & also easily performing CRUD operations against data source through OData from a Windows Phone application. So essentially, we want to take the Windows Phone Demo application handling OData & port it over to being a Windows 8 Metro App in XAML & C#. You’ll soon realize that while we have to accommodate the UI having a lot more real estate in Windows 8, a lot of the coding artifacts are very similar or can be reused in the Windows 8 world with minor changes. If you have done Windows Phone Development, you should feel right at home in doing XAML Metro Apps!

    So, here’s the OData service endpoint which provides access to our Table data in AtomPub (default) or JSon format:

    OData Service

    The Metro App

    So, now that we have a data source & an OData service on top of it exposing the data, let’s see how we may consume it in a Windows 8 Metro App. Let’s fire up Visual Studio 11 & make our appropriate selections as below:

    Project Template

    The above selection gets us into a mode for building Metro Apps with XAML UI & C# code in a managed runtime. Just like in Windows Phone, the templates provided are your friends, as they get us a long way towards achieving Metro UI look & feel in our applications. For our demo, we shall choose to start with an empty application canvas & focus on fetching data into our app.

    Now, since we have an OData service, it’ll be nice to Add a Service Reference to the service in our project so that we know the backend entities & can refer to them in code. Ouch – too soon Smile The automatic proxy building against an OData service by adding a Service Reference isn’t quite ready in the Windows 8 tooling yet! So, we revert to the old-school way of adding our service reference into the project:

    DataSvcUtil.exe /uri:Your_OData_Endpoint/out:TeamModel.cs /Version:2.0 /DataServiceCollection


    As you could see, we used the DataSvcUtil tool (tucked away in your .NET Framework folder) to generate a proxy class which has all the entity bindings .. now we could simply drop the generated file into our project. Our project structure looks something like this .. the “Package.appxmanifest” file quite simply houses all your App configuration:

    Project Stucture

    The UI

    Don’t you wish you were working with a Team where every member is a Ninja? Well, let’s say that’s the case & we shall shoot for our Metro App UI to be something simple, like this:

    Team List

    The above screenshot is our Demo app running in the normal full-screen immersive UI mode. Notice how it is completely Chrome-free & puts content first.  Just because we can clutter the UI with all kinds of controls, doesn’t mean that we should, right?

    So, in our app, there is one & only XAML page that does the above rendering, that being MainPage.xaml. Here’s the XAML that drives the UI:

     1: <UserControl x:Class="TeamMetro.MainPage"
     2:  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     3:  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     4:  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     5:  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     6:  mc:Ignorable="d"
     7:  d:DesignHeight="768" d:DesignWidth="1366">
     9:  <!--Content-->
     10:  <Grid x:Name="LayoutRoot" Background="Chocolate">
     12:      <StackPanel Background="Transparent" VerticalAlignment="Center" x:Name="fullMode">
     13:      <ListBox Name="fullTeamList" Margin="40" ItemsSource="{Binding WCFTeam}" Foreground="Blue" Background="Transparent">
     14:          <ListBox.ItemTemplate>
     15:              <DataTemplate>
     16:                  <StackPanel Margin="400,0,0,40" VerticalAlignment="Center" Orientation="Horizontal">
     17:                      <Image Source="ninja.png" Height="75" Width="75"/>
     18:                      <TextBlock Text="{Binding Name}" Margin="10,0,0,0" FontSize="26" VerticalAlignment="Center"/>
     19:                      <TextBlock Text=" -- aka " FontSize="22" VerticalAlignment="Center"/>
     20:                      <TextBlock Text="{Binding TwitterHandle}" Margin="10,0,0,0" FontSize="22" VerticalAlignment="Center"/>
     21:                  </StackPanel>
     22:              </DataTemplate>
     23:          </ListBox.ItemTemplate>
     24:      </ListBox>
     25:      </StackPanel>
     27:  </Grid>   
     29: </UserControl>

    So, we essentially defined a ListBox & we are expecting it to be bound to some collection of Team members with appropriate property values. Did you notice that except for a few namespaces, the XAML markup is very similar to what we are used to seeing in Windows Phone & Silverlight applications? This is what should make you feel right at home .. there are off course, some Windows 8 specific UI controls, which can cover in a subsequent blog post.

    Another point to note is that the XAML markup for Windows 8 Metro apps can be borrowed to a large extent if you have existing Windows Phone or Silverlight applications. In fact, if you have a a Windows Phone app in the Marketplace and simply want to port to over to the Windows 8 App Store, there are a fixed set of guidelines to do so, as explained here. However, we might need to be wary of a plain port-over & the UX of our Metro apps, since the Windows 8 tablet form factor will have substantially more real estate, which should absolutely be utilized. In our demo app, you see a simple list of data items consuming OData; while ok for a demo (see I excuse myself Smile), you ideally want to provide your users with a richer experience.

    Fetching the Data

    Now, this will be very interesting. One of the buzz terms with Windows Phone/Silverlight and now heavily so with Windows 8 is “fast & fluid” – which essentially means that your App may be doing some expensive operation; but to the end user interacting through Touch, it should always seem responsive. Asynchronous Programming is certainly not new & Windows Phone development very much enforces that; however, it may be a little painful at times, specially if you are marshaling data between threads or writing callback after callback.

    Win RT enforces that any operation that might take more than 50 ms be done asynchronously, and this off course, extends to every web request our app might make. So, we are looking to fetch the OData feed asynchronously without blocking the UI thread.

    Now, C# 5.0 running on .NET 4.5 framework tries to make it easy for us developers to do asynchronous programming through Async-Await patterns, so that we can get around not writing callback after callback  or have to deal with thread marshaling. This however is a wider topic than this post – so please allow me to point you to some resources that should help understand this better:

    I was intrigued about Asynchrony and wrote a lengthy post; if interested, you’ll find it HERE. So, let’s look at a few ways we can fetch data:

    The Pure HTTP Way

    In this approach, we make a basic HTTP Get call to our OData service endpoint & fetch data as Atom. This is simple, but we would have to manually parse the response to pluck out the data contents for binding to UI. Here’s some sample code .. watch the use of async-await to achieve asynchrony:

     1: private async void LoadTeamThruXML()
     2: {
     3:     // Get Atom over HTTP.
     4:     var client = new HttpClient();
     5:     Uri teamDataURI = new Uri("Your_OData_Endpoint");
     7:     try
     8:     {
     9:         HttpResponseMessage response = await client.GetAsync(teamDataURI);
     11:         string xmlResponse = response.Content.ReadAsString();
     12:         XDocument xDoc = XDocument.Parse(xmlResponse);
     14:         // Do appropriate parsing.
     15:         // LINQ to XML.
     16:         IEnumerable<Team> teamCollection = from teamMember in xDoc.Descendants("Entry")
     17:                                            select new Team
     18:                                            {
     19:                                                Name = teamMember.Element("Name").ToString(),
     20:                                                TwitterHandle = teamMember.Element("TwitterHandle").ToString()
     21:                                            };
     23:         // Bind to UI.
     24:     }
     25:     catch (Exception ex)
     26:     {
     27:         // Oopsie
     28:     }
     29: }
    The Threaded Way

    One important aspect about Asynchrony is that it does not always mean multi-threading, as in parallelism. All the goodness of the Task Parallel Library is now built in and as we await on a Task, the underlying implementation may or may not spin up a new thread based on computing cycles needed. The point is, you should not have to care as a developer. However, if using Task.Factory, you are essentially carrying out synchronous operations on a worker thread without blocking the UI. So, here’s another way to fetch data .. notice how we can return a strongly-typed collection of Team members:

     1: private async void LoadTeamThruOData()
     2: {
     3:     var client = new Demo(new Uri("Your_OData_Endpoint"));
     5:     var results = await Task<IEnumerable<Team>>.Factory.StartNew(() => FetchOData());
     7:     // This fires only after we have a response back. 
     8:     this.ParseAndBindData(results);
     9: }
     11: private IEnumerable<Team> FetchOData()
     12: {
     13:     Demo client = new Demo(new Uri("Your_OData_Endpoint"));
     14:     return client.Teams.Execute();
     15: }
    Wrapped APM Way

    Asynchronous Programming Model (APM) is the traditional way of doing asynchrony through BeginXX/EndXX patterns; but this lead us to write a lot of callbacks. In the new world, APM calls can be wrapped inside an Async-Await pattern to make asynchronous requests. Let’s look at some code:

     1: private async void LoadTeamThruOData()
     2: {
     3:     var client = new Demo(new Uri("Your_OData_Endpoint"));
     5:     var results = await Task<IEnumerable<Team>>.Factory.FromAsync(client.Teams.BeginExecute(AnotherEndContinuation, client), ContinuationDelegate);
     7:     // This fires only after we have a response back. 
     8:     this.ParseAndBindData(results);
     9: }
     11: Func<IAsyncResult, IEnumerable<Team>> ContinuationDelegate = EndContinuation;
     12: private static IEnumerable<Team> EndContinuation(IAsyncResult result)
     13: {
     14:     Demo client = (Demo)result.AsyncState;            
     15:     return client.Teams.EndExecute(result);
     16: }
     18: private static void AnotherEndContinuation(IAsyncResult result)
     19: {
     20:    // Do nothing here.
     21: }

    Now, the above code might look a little clunky, but the wrapping of the APM methods can be done through an Extension method to make reuse easier. Eventually with future updates, if we have a method Foo in our custom WCF Service, proxy integration should generate three method endpoints – BeginFoo, EndFoo & FooAsync. It is the last that we shall use comfortably with Async-Await patterns.

    Data Updates?

    So, by now we know how to fetch OData into a Windows 8 Metro app using XAML/C# and bind the results to a simple list. But what if we wanted to perform updates against the data source? That is absolutely possible since we are dealing with an OData service here. Unless blocked at the service side, OData will support full CRUD operations through the DataServiceContext & DataServiceCollection classes.

    Now, let’s think about the UI for second. Just because we can put buttons & controls for data updates all over, doesn’t mean that we should. Common tasks should be presented in a minimalist fashion & accessible when needed. Accordingly, we revert to using the Windows 8 Metro Application Bar to add some metro buttons for allowing data manipulation. Let’s shoot for a UI like below .. we shall talk more about the Application Bar in the next article:

    TeamList  with App Bar

    So, what happens when the user hits the Application Bar buttons? Simple – just like in Windows Phone, you can have event handlers assigned to each. Let’s see how we may delete a record & have it reflected in the OData data source, that is our Table data in SQL Azure. Here’s some code:

     1: private void DeleteButton_Click(object sender, RoutedEventArgs e)
     2: {
     3:     if (this.fullTeamList.SelectedItem != null)
     4:     {
     5:         Team selectedTeamMember = (Team)this.fullTeamList.SelectedItem;
     7:         // LINQ to Context.
     8:         var client = new Demo(new Uri("Your_OData_Endpoint"));
     9:         var teamMemberToDelete = (from TeamMember in client.Teams
     10:                                   where TeamMember.Name == selectedTeamMember.Name
     11:                                   select TeamMember).First();
     13:         // Delete backend entity.
     14:         client.DeleteObject(teamMemberToDelete);
     15:         client.BeginSaveChanges(new AsyncCallback(SaveDoneCB), client);               
     16:     }
     17: }
     19: private void SaveDoneCB(IAsyncResult asyncResult)
     20: {
     21:     // Any error handling.
     22: }

    What about adding/editing records? Exactly the same way. Off of our “client” object above (which is in essence the DataServiceContext), you’ll see methods like AddObject & UpdateObject to insert/manipulate table records and then you simply need to call SaveChanges asynchronously to update the backend DB. You’ll see some sample code in the downloadable solution; but why not give it a shot yourself? You can get a lot of hints about how to perform CRUD operations against OData from a Windows Phone application from mine & Michael Crump’s articles HERE & HERE. So, go ahead & throw in a fresh XAML page to capture inserts/edits & fire away Smile.


    In this article, we talked about how to get started with Windows 8 Metro Apps with XAML/C# and we went on to consumption/updates of OData from a Windows 8 Metro application. We looked at a few techniques on how to do asynchronous programming in Windows 8 using the new C# 5.0 constructs of Async-Await. In the next part of article, we shall talk about taking the first steps towards making your Metro Apps feel at home in the Windows 8 Operating System.

    I would appreciate any comments or concerns or how things could be done better. Thanks for reading & happy coding.

    Cheers SilverlightShow!

    About the Author

    ActualPicSamidip Basu (@samidip) is a technologist & gadget-lover working as a Manager & Solutions Lead for Sogeti out of the Columbus Unit. Having worked on WP7 since CTP days, he now spends much of his time in spreading the word to discover the full potential of the Windows Phone platform & cloud-based mobile solutions in general. He passionately runs the Central Ohio Windows Phone User Group (http://cowpug.org/), labors in M3 Conf (http://m3conf.com//) organization and can be found with at-least a couple of hobbyist projects at any time. His spare times call for travel and culinary adventures with the wife. Find out more at http://samidipbasu.com/.



    • humaNiT

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by humaNiT on Dec 09, 2011 05:15

      Thank you so much for the article. It's very helpful.

      I have tried to download the source code but it's always stuck at 15.2 MB, and stop after time out. I have tried on my other computer several times, but still no luck.

      Could you please put the source somewhere so I can download?

      Again thank you so much

      Jannen Siahaan

    • samidip

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by samidip on Dec 09, 2011 08:46


      Can you please try the download link again .. just tried and it worked for me. 


    • humaNiT

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by humaNiT on Dec 09, 2011 09:45

      Thanks Samidip for the try and reply.

      It can not be downloaded yet. The problem still the same.


    • SilverlightShow

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by SilverlightShow on Dec 12, 2011 16:21

      Hi humaNiT,

      please email editorial at silverlightshow dot net and we'll reply with an alternative link to download the source code from.

      It downloads fine on our end, but lets have you try to download from another location. Look forward to hear back from you!

      Svetla | SilverlightShow

    • humaNiT

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by humaNiT on Dec 13, 2011 02:06


      I have been able to download using other download manager.


    • hotkool-71

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by hotkool-71 on Dec 17, 2011 16:27
    • BrunoCorrea

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by BrunoCorrea on Feb 14, 2012 05:08
      this never end
    • BrunoCorrea

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by BrunoCorrea on Feb 14, 2012 05:08
      this never end
    • SerkanCakmak

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by SerkanCakmak on Mar 03, 2012 04:49
      thanks very much
    • BrandonCollins

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by BrandonCollins on Apr 24, 2012 23:38

      I don't understand... Your example is using System.Data and System.Data.Services.Client which is not allowed in metro apps. The code generated by the tools does not compile... What am I missing here?

    • samidip

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by samidip on Apr 25, 2012 04:29


      You are right that Metro apps are not supporting those libraries in the CP. This demo was written using the Developer Preview and it did not seem like the compiler had any issues. I would bet very strongly that OData/WCF endpoints will be supported in the final version of Windows 8 through 'Add Service Reference'. In the meantime, check out these discussion threads:




      I will play around some more to see if there are easier ways to consume such services in the CP.


    • vanya

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by vanya on Jan 17, 2013 11:23
      How can I fetch data from olap database instead of sql server azure?
    • vanya

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by vanya on Jan 17, 2013 11:56
      How can I fetch data from olap database instead of sql server azure?
    • samidip

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by samidip on Jan 17, 2013 16:02


      Not very easily since I could not find an easy way to configure an OData service from an OLAP database; but there may be other options. Please see if the links below help:





    • WaqasAli

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by WaqasAli on Dec 04, 2014 04:12
      You could write about the presentations on the blog. You may supply it's compelling. Your blog take/slant can boost your bucks.
      <a title="nice tits teen" href="http://nicetitsteen.com/">nice tits teen</a>

    • WaqasAli

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by WaqasAli on Dec 04, 2014 04:13
      You may comment on the commentary of the blog. You could suggest it's cool. Your blog synopsis should escalate your checks.
    • TanveerAliKhan

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by TanveerAliKhan on Mar 31, 2015 22:25
      Google Web page Position as Google proprietors Larry Web page and Sergey Brin, said it is an instrument intended to classify sites that will be indexed by the Google on the internet look for motor. article
    • BeeOShop

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by BeeOShop on Apr 29, 2015 14:47

      Mau info toko tas online di Bandung yang menjual berbagai macam tas untuk keperluan wanita dan anak-anak seperti tas-tas wanita yang branded dari berbagai merek terkenal seperti Louis Vuitton, PradaBrussels, Furla, Chanel, Hermes, dan banyak lagi tas branded wanita lainnya dengan bermacam model seperti dompetslingbaghandbag dan tote bag, yang trendy dengan harga yang terjangkau? Silahkan cek di Bee Bagshop grosir tas online di Bandung yang menjual tas-tas dengan moel dan warna yang bervariasi dengan harga yang murah. Selain tas wanita, kami juga menjual tas sekolah anak model selempang dan ransel yang juga branded tiruan seperti jansport dan kipling dengan banyak variasi model dan warna, dijamin putra-putri anda menyukainya.

      Bagi yang ingin merawat kulit wajah tanpa harus repot dan mahal, simak tips kecantikan berikut yang mudah dan murah. Coba Sabun Amoorea. Manfaat sabun ajaib amoorea ini diantaranya untuk berbagai permasalahan kulit anda, seperti jerawat, scars (bekas jerawat), mengencangkan kulit, membuat kulit tampak lebih cerah dan segar, mengatasi lingkar hitam di bawah mata (mata panda), dll. Untuk melihat review sabun amoorea ini klik di sini. Simak juga testimoni yang sudah menggunakan sabun ini, simak selengkapnya. Meski harga sabun amoorea ini cukup terjangkau, produk ini aman, karena terbuat dari 100% bahan alami dan sudah ada ijin dari BPOM sehingga anda tidak perlu khawatir dan ragu memakainya. Jika aman (tidak berbahaya) apakah memakai sabun amoorea ada efek sampingnya? Reaksi apa yang timbul saat pertama menggunakannya? Simak info lengkapnya di sini.

      How To Get Rid Of Acne and Scars site generally tell about  tips for beauty and health skin, and especially tell anything about acne, myths, acne and scars treatments , not only on your face (including acne and scars on your body such as chest and back)which may help you to war against acne and the scars to leaves on your face and body (back and chest), through naturally, home remedies, and medical treatment. Some people believe that natural treatment is most safe. But its seems would take time longer then medical treatment. In my oppinion, using medical treatment is more effective and you'll see the result faster. To find what the best treatment for your acne, better you understand what causes of acne. The following are some factors which can cause acne: Hormones, diet, stress, medication, clothing, environment factors, genes, and cosmetics. For back or chest acne cases, it may caused by your tight clothes. To get rid of acne on back or chest, it's good to wear synthetic loose clothing, such as cotton linen, to prevent excessive rubbing and irritation on the skin. Another treatment that can help you to get rid of back or chest acne is keep your body always clean, with take a bath regularly, preferably with an anti-bacterial soap or a salicylic acid-based cleanser is highly recommended. When acne goes, it will leaves behind the red on skin, and seems impossible to heal it fast overnight. So, it would be better to do something which may offer some remarkable effects on the redness from acne. If you choose naturally treatment,  just take a cube of ice, garlic, or lemon juice mixed with rose water, choose one of them, then apply to your reddish part of your face for a while. Do this continously and measured, then see the result. Below this, some good habits which may help you to get rid of acne scars naturally and fast are: first, drinking lots of water to makes your skin well hydrated, and finally make you skin regenerate faster.  Second, eat the food that containing much the essential vitamins and mineral to help repairing scars skin from the inside. Third, naturally treatment to get rid of acne scar, by applying aloe vera on scars, may help to avoid more scarring, soothe inflamation, and make your skin keep smooth. Fourth, treat your acne scars with natural ingredient, tomato. Its containing much vitamin A, which very efficient in repairing scars skin.  If you want to get rid of acne scars ons faster than naturally or home remedies treatments, using the latest product of technology, such as laser treatment and chemical peeling, or even you can choose microdermabration that guaranteed more effective than other treatments.

      Ada banyak bermacam permasalahan kulit di wajah, salah satu yang paling menggangu adalah jerawat, apalagi jika yang muncul adalah jerawat batu yang ukurannya besar dan menyebabkan rasa sakit. Solusi mengenai berbagai cara menghilangkan jerawat batu ini banyak sekali ditemukan, mulai dari pengobatan alami, maupun secara medis. Untuk kasus jerawat batu ini, sebaiknya anda bisa mengambil tindakan pengobatan yang tepat, untuk kasus jerawat batu disarankan langsung saja ambil perawatan medis, karena beresiko tinggi meninggalkan bekas berupa bopeng di wajah, jika salah menangani. Dengan langsung mengambil tindakan medis, setidaknya akan meminimalisasi resiko timbulnya scars bopeng di wajah yang mana scars jenis ini relatif sulit dihilangkan. Tidak seperti scars berupa noda/ flek hitam. meski tidak mudah juga, namun berkali-kali lipat jauh lebih mudah dan murah dibandingkan dengan mengatasi bopeng bekas jerawat. Perawatan alami yang dapat anda tempuh untuk mengobati jerawat ataupun scars yang berupa noda hitam/ flek bekas jerawat, anda dapat mencoba dengan menggunakan bahan alami misalnya jeruk nipis atau madu yang sudah sangat terkenal khasiatnya yang untuk kesehatan dan kecantikan kulit. Dengan perawatan alami, cenderung lebih aman, hanya saja untuk perawatan ini biasanya dibutuhkan waktu yang lebih lama serta ketelatenan untuk mengatasinya. FYI, Jeruk nipis ini yang tidak hanya dapat memudarkan flek hitam di wajah, tetapi juga dapat memutihkan dan mencerahkan kulit anda. Namun jika anda tidak memiliki cukup kesabaran, sebaiknya langsung saja konsultasi dengan dokter. Untuk menentukan metode pengobatan jerawat dan scars ini biasanya dokter akan melihat tingkat keparahan dari jerawat/ scars anda, bisa dengan pemberian obat minum seperti anti biotik, obat oles (salep), peeling, mikrodermabrasi, laser atau metode pengobatan lainnya. Namun sebelum anda memutuskan menggunakan salah satu treatment tersebut sebaiknya telah jelas terlebih dahulu mengenai efek samping yang ditimbulkan.

      Seiring dengan semakin tingginya pengguna internet dari waktu ke waktu, hal ini menciptakan peluang bisnis tersendiri. Diataranya peluang bejualan tas murah secara online, buatan konveksi-konveksi lokal. Di Bandung cukup banyak konveksi tas yang membuat beraneka macam tas dan dompet tiruan atau kw. Model-model dari tas wanita ini kebanyakan menjiplak tas dan dompet wanita dari brand terkenal luar negeri seperti merek-merek LV atau Louis Vuitton, Hermes, Chanel, Furla, dll yang sangat terkenal. Tas tiruan seperti ini familiar disebut tas replika/ kw, dengan beraneka tingkatanya: Kw I, Kw II, dll. Tas-tas wanita branded ini di Bee Bagshop dijual dengan harga yang bevariasi antara 66-300 ribuan. Pembelinya berasal dari kalangan anak SMA, anak kuliah, pekerja kantoran, serta ibu-ibu muda. Untuk tas sekolah dan kuliah anak, kebanyakan modelnya meniru model tas branded seperti kipling, dan jansport, dengan model tas punggung/ ransel ataupun model selempang. Untuk harga tas-tas branded kw dijual dengan harga yang jauh di bawah harga aslinya, sehingga bisa dipastikan kualitasnya pun berbeda dengan yang original. Di Bee Bagshop sendiri kisaran harga untuk tas jansport tiruan ini dijual dengan harga 60-80 ribuan, sementara harga barang original mungkin sekitar 800-900 ribuan, bahkan mungkin ada juga yang lebih mahal. Untuk tas ransel branded tiruan ini kebanyakan pembelinya berasal dari anak sekolah dan kuliah.

      Jika anda wanita yang terlalu sibuk bekerja, dan selalu bingung bahkan tidak sempat untuk sekedar memikirkan menu masakan sehari-hari untuk keluarga anda, silahkan kunjungi situs Aneka Resep dan Cara membuat Masakan Praktis Khas Indonesia, situs ini berisi kumpulan resep masakan yang menggunakan bahan-bahan umum seperti ayam, daging sapi, serta beraneka seafood (udang, cumi, ikan), dan juga bahan-bahan makanan yang tidak asing bagi  masyarakat Indonesia seperti tahu, tempe, serta nasi, . Selain itu ada juga resep cemilan khas nusantara, yang dapat anda jadikan inspirasi untuk menu masakan dan makanan ringan keluarga anda di rumah. Seperti resep membuat masakan khas suatu daerah seperti soto ayam lamongan, ataupun masakan khas lebaran seperti opor ayam, beraneka masakan berbahan dasar ayam ataupun bahan makanan lainnya, yang pastinya praktis dan mudah dibuat.

    • johnrichard

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by johnrichard on May 01, 2015 14:12
      You actually make it look so easy with your performance but I find this matter to be actually something which I think I would never comprehend. It seems too complicated and extremely broad for me. I'm looking forward for your next post, I’ll try to get the hang of it!online advertising
    • wardoyoming

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by wardoyoming on May 17, 2015 11:35
      on 3D Designs and FoamThe Value of an Effective Join harga besi wf baja dan daftar harga neArticles comAbout UsFAQContact UsMember BenefitsPrivacy PolicyShopSFree Doral pusatbesibaja.co.id d universal acceptance from the building services, structural engly desirable in produsen besi beton ulir 36 mm saat ini bjku e Whether it's for heavy loading or for providing an earth mat, for erticles com harga besi plat kapal 5' x 20' 10 mm padang sidempuan jual besi bajaill never sell or rent your email addressConstruction Industry ArticleTrenton | supplier besi wf 496 x 199 terbaru urves Fitness for huge discount on ab trainers equipmentArticle Sourcur business clicking here alamat distributor pabrik toko besi baja bersertifikat
    • wardoyoming

      Re: Windows 8 XAML Metro Apps with OData - Part 1

      posted by wardoyoming on May 17, 2015 11:36
      te this articleStay InformedSubscribe to New Article Alerts:Arts and Entert kursus website bekasi babyboomers indonesia

    Add Comment

    Login to comment:
      *      *       

    From this series