Linq Data Services and the Business Logic Layer

 

Linq is great.  However, about the 2nd or 3rd question after using it is "how to I do a 3-tier or layered model with LINQ?…"  Unfortunately, there appears to be no easy answer to this.  It appears Linq was designed primarily as a client side library for a 2-tier system – and it works great for this.  Moving to a layered 3-tier model can still be done, but is not straight forward and still requires a lot of manual work with containment and/or data transfer objects. Microsoft seems to be staying mute on the issue for now until they get some good patterns documented. Myself, I am looking forward to a post promised by Scott Guthery on the issue.  There are a few blog posts on different approaches (see Links below).

I was hoping Linq to Entities would solve this problem by allowing some form of remote business logic layer (BLL) that would run on the server and could be accessed via Linq to Objects on the client side.  It appears that is not the case.  IMO, this model is exactly what is needed. Microsoft’s Astoria sort of hints at this type of thing but nothing I have seen so far seems to nail the issue head on as I would like to see as a developer.

Desired Feature List

  • A WCF service model that hosts our BLL. I will call this the LinqDataServiceBLL. As a WCF service the BLL layer can be hosted remotely or in-process.
  • The BLL service (if run on same server as SQL) will have a Direct Pipe into SQL for direct access to the engine. This means we don’t need the added overhead of a linq to TSQL conversion or the ADO layer – it would be direct.
  • The BLL service will talk to the DB via LinqToEntities vNext.  The public API would be same as today (with any upgrades), but the bottom would be able to talk directly to sql via some kind of direct pipeline.
  • A LinqToDataServices on the client that will talk to the LinqDataServiceBLL locally or remotely.  This would look and feel like LinqToSql on the surface, but talk to LinqDataService on the back-end instead of using ADO and converting a nice query expression back into a SQL string so it can then turn around to be parsed by the server and run (as what happens today).
  • Remove the need for for last domain specific language I need – TSQL.  I now that sounds like crazy talk, but isn’t this exactly why Linq was created in the first place?  Even with Linq today, you really can’t stay out of TSQL.  If we need update logic, this typically still requires a well written storage procedure written in TSQL. TMK, things like Atomic test and set operations can not be done on the client side using Linq. For example, lets say you want to update a TimeOut datetime column if it exists, or add a new record if it does not *and do this in an Atomic operation that is not effected by other users also doing updates. This is actually a common need that should be simple.  Even using TSQL, this kind of operation is tricky and requires deep knowledge of TSQL and db locking behavior (as shown by this NG Thread). IMO, this is not the world I want to live in.  I want to stay in c# and linq and not have to transition into TSQL or sprocs – Ever again.  Having proper support in the LinqToEntities layer means I would never have to write another sproc or touch TSQL.  And why should I – it can be abstracted away.
  • Methods instead of SPROCs. The public methods in the LinqDataServiceBLL and the LinqToEntities really become your sprocs.  They talk directly to the db engine so you don’t need sprocs.  Maybe they act as delegates or lambas that are executed directly by the DB engine.  It will just be abstracted so the implementation details are not important (but interesting). DB locking syntax would need to be added to Linq.

A High level example

The picture below tries to show how this may work.

 

image

  1. The client side uses LinqToDataServices.  This will feel like LinqToSql, but talk to the DataService instead of ADO to the DB.
  2. The LinqDataService will be a WCF service.  This will contain *all your business logic for CRUD operations.  In a sense, all your c# (or vb) methods become sprocs without being sprocs.  They may be out-of-process or in-process to the DB engine or a combination of both. The key is, they will have direct access to the DB engine via the LinqToEntities layer that will have a hot memory pipe to the DB.  The method below will hopefully demonstrate the idea:
  3. [OperationContract]
    public void PunchOut(int empID)
    {
        DbContext db = DbContext;
        if (!db.User.MemberOf("GoodUser")) throw new SecurityException("Not allowed");
        Employee emp = db.Employees.FirstOrDefault(e=>e.EmpID==empID);
        if (emp==null) throw new InvalidOperationException("Employee not found");
        
        // atomic test and set example. May need some work.
        dbLock(db.TimeEntries.Update) // Grab update lock on table.
        {
             TimeEntry te = emp.TimeEntry.LastOrDefault();
             if (te == null || te.OutTime != null)
                throw new InvalidOperationException("Must punch in first.")
             te.OutTime = DateTime.Now;
             db.SubmitChanges();
        }
    }


    Note the method looks like a normal method. However, it uses the LinqToEnties context to get access to the DB. It also has access to db locks from c# code. Not sure how this may actually be
    implemented. Maybe the whole method is converted to a lambda delegate that is run in-proc by the DB. Maybe it is converted at compile-time to a CLR sproc, or maybe something else. However,

    the developer does not need to know the details, it just feels looks and feels like a method. Tons easier and faster then having to stop and write a TSQL sproc. Also debugging is more natural, etc.
    Now that is a framework I would really love to see. Hope that makes some sense.
    -- William Stacey [C# MVP]
Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

15 Responses to Linq Data Services and the Business Logic Layer

  1. no name says:

    http://www.商談.com/http://www.b002.net/http://www.b003.net/http://www.bannerbum.com/http://www.bb01.net/http://www.bennoweb.com/http://www.biblememorypower.com/http://www.bordych.com/http://www.bufalocare.com/http://www.capiloderm.com/http://www.carspeedy.com/http://www.celltheband.com/http://www.ad-assoc.com/http://www.chtiforce.com/http://www.hessleholm.com/http://www.ergoconsoles.com/http://www.ec9.biz/http://www.ec7.biz/http://www.ec6.biz/http://www.ec5.biz/http://www.ec07.net/http://www.ec06.com/http://www.ec05.net/http://www.ec04.info/http://www.ec03.com/http://www.ec02.com/http://www.ec01.info/http://www.ec01.biz/http://www.ebookbizopp.com/http://www.djgokou.com/http://www.dictascriptinc.com/http://www.dac-mos.com/http://www.cinnamonhillhoney.com/http://www.irregulartime.com/http://www.halapozitifiz.biz/http://www.zjsquare.com/http://www.zieglersrvpark.com/http://www.yjorchid.com/http://www.why-i-love-ebay.com/http://www.webmaster-india.comhttp://www.tcc-diversity.com/http://www.stichtingbam.com/http://www.shunhedown.com/http://www.sepidehanjomrooz.com/http://www.quality-lodges.com/http://www.potsdamiga.com/http://www.planete-rh.com/http://www.padayatraamerica.com/http://www.ocanerashallots.com/http://www.mobileolson.com/http://www.lovekeliye.com/http://www.lecompas.com/http://www.kompanimusic.com/http://www.petepower.com/http://www.pmoeurope.com/http://www.rev2corp.com/http://www.robotboympls.com/http://www.rudysrealdeal.com/http://www.samecca.com/http://www.sdp5.com/http://www.sjostjarnansridlager.com/http://www.spearheadent.com/http://www.tiavldn.com/http://www.underpaisa.com/http://www.wheatswne.com/http://www.ankaradabursa.com/

  2. no name says:

    http://www.ec本舗.com/http://www.しょっぴんぐ.net/http://www.ammsvces.com/http://www.ec14.net/http://www.ec15.net/http://www.ec16.net/http://www.ec17.net/http://www.ec18.info/http://www.ec19.net/http://www.pakistanipages.com/http://www.projectfinster.com/http://www.londonhotelguide.biz/http://www.ec12.biz/http://www.ec10.biz/http://www.ycmcu.com/http://www.wwcpr.net/http://www.vintage-car.net/http://www.wassa.net/http://www.tariwestfall.com/http://www.siamathome.com/http://www.sarahcosmi.com/http://www.royalbasenjis.com/http://www.rosefeeling.com/http://www.rdjrhawks.com/http://www.qmsfj.com/http://www.pokeusa.com/http://www.bjqyyc.com/http://www.bookaneditor.com/http://www.brittanyboxes.com/http://www.cn-women.com/http://www.dcsega.com/http://www.diosesmomic.com/http://www.domainforeveryone.com/http://www.dubaisaa.com/http://www.ec11.net/http://www.ec13.net/http://www.ec-gz.com/http://www.falloutfantasy.com/http://www.ferien-im-allgaeu.com/http://www.gmk-nova.com/http://www.greatbendfire.com/http://www.hydesite.com/http://www.ibad-tenerife.com/http://www.jainbhavan.com/http://www.jiyouchina.com/http://www.kanghua-cn.comhttp://www.komikmania.com/http://www.lulustntreats.com/http://www.myevilminion.com/http://www.ne-nf.net/http://www.nyurun.com/http://www.gavirol-holdings.com/http://www.greenkeepers.biz/http://www.hoodrivercpdj.com/http://www.inmobiliariavistasur.com/http://www.ipsarizona.com/http://www.jassom.com/http://www.jubunnaai.com/http://www.kirschnercameron.com/http://www.lascalatralee.com/http://www.lenarra.com/http://www.lg5350.com/http://www.mega-avs.com/http://www.mtjz.net/http://www.n01n.com/http://www.ankaradabursa.com/http://www.mz-7.com/

  3. Unknown says:

    http://www.akkuliste.com/toshiba/satellite-a100.htm toshiba satellite a100 akku http://www.akkuliste.com/toshiba/satellite-m100.htm toshiba satellite m100 akku http://www.akkuliste.com/toshiba/pa3399u-1bas.htm toshiba pa3399u-1bas akku http://www.akkuliste.com/toshiba/satellite-a100.htm toshiba satellite a100 akku http://www.akkuliste.com/toshiba/satellite-a105.htm toshiba satellite a105 akku http://www.akkuliste.com/toshiba/satellite-a80.htm toshiba satellite a80 akku http://www.akkuliste.com/toshiba/satellite-m100.htm toshiba satellite m100 akku http://www.akkuliste.com/toshiba/satellite-m105.htm toshiba satellite m105 akku http://www.akkuliste.com/toshiba/satellite-m110.htm toshiba satellite m110 akku http://www.akkuliste.com/toshiba/satellite-m115.htm toshiba satellite m115 akku http://www.akkuliste.com/toshiba/satellite-m40.htm toshiba satellite m40 akku http://www.akkuliste.com/toshiba/satellite-m45.htm toshiba satellite m45 akku http://www.akkuliste.com/toshiba/satellite-m50.htm toshiba satellite m50 akku http://www.akkuliste.com/toshiba/satellite-m55.htm toshiba satellite m55 akku http://www.akkuliste.com/toshiba/pa3356u.htm toshiba pa3356u akku http://www.akkuliste.com/toshiba/a50.htm toshiba a50 akku http://www.akkuliste.com/toshiba/a55.htm toshiba a55 akku http://www.akkuliste.com/toshiba/portege-m300.htm toshiba portege m300 akku http://www.akkuliste.com/toshiba/portege-m500.htm toshiba portege m500 akku http://www.akkuliste.com/toshiba/portege-s100.htm toshiba portege s100 akku http://www.akkuliste.com/toshiba/qosmio-f20.htm toshiba qosmio f20 akku http://www.akkuliste.com/toshiba/qosmio-f25.htm toshiba qosmio f25 akku http://www.akkuliste.com/toshiba/satellite-a50.htm toshiba satellite a50 akku http://www.akkuliste.com/toshiba/satellite-a55.htm toshiba satellite a55 akku http://www.akkuliste.com/toshiba/pa3356u-1bas.htm toshiba pa3356u-1bas akku http://www.akkuliste.com/toshiba/satellite-a50.htm toshiba satellite a50 akku http://www.akkuliste.com/toshiba/satellite-a55.htm toshiba satellite a55 akku http://www.akkuliste.com/toshiba/pa3383u.htm toshiba pa3383u akku http://www.akkuliste.com/toshiba/pa3383.htm toshiba pa3383 akku http://www.akkuliste.com/toshiba/p30.htm toshiba p30 akku http://www.akkuliste.com/toshiba/a70.htm toshiba a70 akku http://www.akkuliste.com/toshiba/satellite-a70.htm toshiba satellite a70 akku http://www.akkuliste.com/toshiba/satellite-a75.htm toshiba satellite a75 akku http://www.akkuliste.com/toshiba/satellite-p30.htm toshiba satellite p30 akku http://www.akkuliste.com/toshiba/satellite-p35.htm toshiba satellite p35 akku http://www.akkuliste.com/toshiba/pa3420u.htm toshiba pa3420u akku http://www.akkuliste.com/toshiba/satellite-l10.htm toshiba satellite l10 akku http://www.akkuliste.com/toshiba/satellite-l100.htm toshiba satellite l100 akku http://www.akkuliste.com/toshiba/satellite-l15.htm toshiba satellite l15 akku http://www.akkuliste.com/toshiba/pa3395u-1brs.htm toshiba pa3395u-1brs akku http://www.akkuliste.com/toshiba/pa3421u-1brs.htm toshiba pa3421u-1brs akku http://www.akkuliste.com/toshiba/pa3431u.htm toshiba pa3431u akku http://www.akkuliste.com/toshiba/satellite-m60.htm toshiba satellite m60 akku http://www.akkuliste.com/toshiba/satellite-m65.htm toshiba satellite m65 akku

  4. Unknown says:

    http://www.batterygoshop.co.uk/toshiba/satellite-3000.htm toshiba satellite 3000 battery , http://www.batterygoshop.co.uk/toshiba/pa3128u.htm toshiba pa3128u battery , http://www.batterygoshop.co.uk/toshiba/pa3191u.htm toshiba pa3191u battery , http://www.batterygoshop.co.uk/toshiba/portege-4000.htm toshiba portege 4000 battery , http://www.batterygoshop.co.uk/toshiba/portege-m200.htm toshiba portege m200 battery , http://www.batterygoshop.co.uk/toshiba/portege-m205.htm toshiba portege m205 battery , http://www.batterygoshop.co.uk/toshiba/portege-m400.htm toshiba portege m400 battery , http://www.batterygoshop.co.uk/toshiba/pa3128u-grey.htm toshiba pa3128u grey battery , http://www.batterygoshop.co.uk/toshiba/pa3191u-grey.htm toshiba pa3191u grey battery , http://www.batterygoshop.co.uk/toshiba/te2000-grey.htm toshiba te2000 grey battery , http://www.batterygoshop.co.uk/toshiba/pa3209u.htm toshiba pa3209u battery , http://www.batterygoshop.co.uk/toshiba/satellite-1100.htm toshiba satellite 1100 battery , http://www.batterygoshop.co.uk/toshiba/satellite-1110.htm toshiba satellite 1110 battery , http://www.batterygoshop.co.uk/toshiba/pa3210u.htm toshiba pa3210u battery , http://www.batterygoshop.co.uk/toshiba/satellite-1115.htm toshiba satellite 1115 battery , http://www.batterygoshop.co.uk/toshiba/satellite-p20.htm toshiba satellite p20 battery , http://www.batterygoshop.co.uk/toshiba/satellite-p25.htm toshiba satellite p25 battery , http://www.batterygoshop.co.uk/toshiba/pa3399u-1bas.htm toshiba pa3399u-1bas battery , http://www.batterygoshop.co.uk/toshiba/satellite-a100.htm toshiba satellite a100 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m100.htm toshiba satellite m100 battery , http://www.batterygoshop.co.uk/toshiba/pa3399u-1bas.htm toshiba pa3399u-1bas battery , http://www.batterygoshop.co.uk/toshiba/satellite-a100.htm toshiba satellite a100 battery , http://www.batterygoshop.co.uk/toshiba/satellite-a105.htm toshiba satellite a105 battery , http://www.batterygoshop.co.uk/toshiba/satellite-a80.htm toshiba satellite a80 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m100.htm toshiba satellite m100 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m105.htm toshiba satellite m105 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m110.htm toshiba satellite m110 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m115.htm toshiba satellite m115 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m40.htm toshiba satellite m40 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m45.htm toshiba satellite m45 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m50.htm toshiba satellite m50 battery , http://www.batterygoshop.co.uk/toshiba/satellite-m55.htm toshiba satellite m55 battery , http://www.batterygoshop.co.uk/toshiba/pa3356u.htm toshiba pa3356u battery , http://www.batterygoshop.co.uk/toshiba/a50.htm toshiba a50 battery , http://www.batterygoshop.co.uk/toshiba/a55.htm toshiba a55 battery , http://www.batterygoshop.co.uk/toshiba/portege-m300.htm toshiba portege m300 battery , http://www.batterygoshop.co.uk/toshiba/portege-m500.htm toshiba portege m500 battery , http://www.batterygoshop.co.uk/toshiba/portege-s100.htm toshiba portege s100 battery , http://www.batterygoshop.co.uk/toshiba/qosmio-f20.htm toshiba qosmio f20 battery , http://www.batterygoshop.co.uk/toshiba/qosmio-f25.htm toshiba qosmio f25 battery , http://www.batterygoshop.co.uk/toshiba/satellite-a50.htm toshiba satellite a50 battery , http://www.batterygoshop.co.uk/toshiba/satellite-a55.htm toshiba satellite a55 battery , http://www.batterygoshop.co.uk/toshiba/pa3356u-1bas.htm toshiba pa3356u-1bas battery , http://www.batterygoshop.co.uk/toshiba/satellite-a50.htm toshiba satellite a50 battery ,

  5. Unknown says:

    http://www.batteryfast.com.au/asus/m68.htm asus m68 battery http://www.batteryfast.com.au/asus/m68n.htm asus m68n battery http://www.batteryfast.com.au/asus/m6000.htm asus m6000 battery http://www.batteryfast.com.au/asus/a42-m6-silver.htm asus a42-m6 silver battery http://www.batteryfast.com.au/asus/m6000-silver.htm asus m6000 silver battery http://www.batteryfast.com.au/asus/m6-silver.htm asus m6 silver battery http://www.batteryfast.com.au/clevo/m540.htm clevo m540 battery http://www.batteryfast.com.au/clevo/mobinote-m-54g.htm clevo mobinote m 54g battery http://www.batteryfast.com.au/clevo/mobinote-m54v.htm clevo mobinote m54v battery http://www.batteryfast.com.au/clevo/mobinote-m-55g.htm clevo mobinote m 55g battery http://www.batteryfast.com.au/clevo/mobinote-m55v.htm clevo mobinote m55v battery http://www.batteryfast.com.au/clevo/mobinote-m-540g.htm clevo mobinote m 540g battery http://www.batteryfast.com.au/clevo/mobinote-m540v.htm clevo mobinote m540v battery http://www.batteryfast.com.au/clevo/mobinote-m-541g.htm clevo mobinote m 541g battery http://www.batteryfast.com.au/clevo/mobinote-m541v.htm clevo mobinote m541v battery http://www.batteryfast.com.au/clevo/mobinote-m-545g.htm clevo mobinote m 545g battery http://www.batteryfast.com.au/clevo/mobinote-m545v.htm clevo mobinote m545v battery http://www.batteryfast.com.au/clevo/mobinote-m-550g.htm clevo mobinote m 550g battery http://www.batteryfast.com.au/clevo/mobinote-m550v.htm clevo mobinote m550v battery http://www.batteryfast.com.au/clevo/mobinote-m-551g.htm clevo mobinote m 551g battery http://www.batteryfast.com.au/clevo/mobinote-m551v.htm clevo mobinote m551v battery http://www.batteryfast.com.au/clevo/mobinote-m-555g.htm clevo mobinote m 555g battery http://www.batteryfast.com.au/clevo/mobinote-m555v-serie.htm clevo mobinote m555v serie battery http://www.batteryfast.com.au/compaq/presario-1200.htm compaq presario 1200 battery http://www.batteryfast.com.au/compaq/presario-1600.htm compaq presario 1600 battery http://www.batteryfast.com.au/compaq/presario-1800.htm compaq presario 1800 battery http://www.batteryfast.com.au/compaq/nw8000.htm compaq nw8000 battery http://www.batteryfast.com.au/compaq/nc8000.htm compaq nc8000 battery http://www.batteryfast.com.au/compaq/v1000.htm compaq v1000 battery http://www.batteryfast.com.au/compaq/nc6000.htm compaq nc6000 battery http://www.batteryfast.com.au/compaq/nx5000.htm compaq nx5000 battery http://www.batteryfast.com.au/compaq/n600.htm compaq n600 battery http://www.batteryfast.com.au/compaq/n600c.htm compaq n600c battery http://www.batteryfast.com.au/compaq/n610c.htm compaq n610c battery http://www.batteryfast.com.au/compaq/n610v.htm compaq n610v battery http://www.batteryfast.com.au/compaq/n620c.htm compaq n620c battery http://www.batteryfast.com.au/compaq/nx9000.htm compaq nx9000 battery http://www.batteryfast.com.au/compaq/nx9005.htm compaq nx9005 battery http://www.batteryfast.com.au/compaq/nx9010.htm compaq nx9010 battery http://www.batteryfast.com.au/compaq/nx9020.htm compaq nx9020 battery http://www.batteryfast.com.au/compaq/hstnnib12.htm compaq hstnnib12 battery http://www.batteryfast.com.au/compaq/nc4200.htm compaq nc4200 battery http://www.batteryfast.com.au/compaq/nc4400.htm compaq nc4400 battery http://www.batteryfast.com.au/compaq/tc4200.htm compaq tc4200 battery http://www.batteryfast.com.au/compaq/tc4400.htm compaq tc4400 battery http://www.batteryfast.com.au/compaq/hstnnib12.htm compaq hstnnib12 battery

  6. Unknown says:

    http://www.akkuliste.com/acer/black-aspire-one-a110l-series.htm acer black aspire one a110l series akku http://www.akkuliste.com/acer/black-aspire-one-a150l-series.htm acer black aspire one a150l series akku http://www.akkuliste.com/acer/black-aspire-one-a150x-series.htm acer black aspire one a150x series akku http://www.akkuliste.com/acer/black-aspire-one-zg5.htm acer black aspire one zg5 akku http://www.akkuliste.com/acer/um08a72.htm acer um08a72 akku http://www.akkuliste.com/acer/blue-aspire-one-a110l-series.htm acer blue aspire one a110l series akku http://www.akkuliste.com/acer/blue-aspire-one-a150l-series.htm acer blue aspire one a150l series akku http://www.akkuliste.com/acer/blue-aspire-one-a150x-series.htm acer blue aspire one a150x series akku http://www.akkuliste.com/acer/blue-aspire-one-zg5.htm acer blue aspire one zg5 akku http://www.akkuliste.com/acer/um08a73.htm acer um08a73 akku http://www.akkuliste.com/acer/white-aspire-one-a110l-series.htm acer white aspire one a110l series akku http://www.akkuliste.com/acer/white-aspire-one-a150l-series.htm acer white aspire one a150l series akku http://www.akkuliste.com/acer/white-aspire-one-a150x-series.htm acer white aspire one a150x series akku http://www.akkuliste.com/acer/white-aspire-one-zg5.htm acer white aspire one zg5 akku http://www.akkuliste.com/acer/um08a74.htm acer um08a74 akku http://www.akkuliste.com/acer/black-aspire-one-a110l-series.htm acer black aspire one a110l series akku http://www.akkuliste.com/acer/black-aspire-one-a150l-series.htm acer black aspire one a150l series akku http://www.akkuliste.com/acer/black-aspire-one-a150x-series.htm acer black aspire one a150x series akku http://www.akkuliste.com/acer/black-aspire-one-zg5.htm acer black aspire one zg5 akku http://www.akkuliste.com/acer/um08b72.htm acer um08b72 akku http://www.akkuliste.com/acer/blue-aspire-one-a110l-series.htm acer blue aspire one a110l series akku http://www.akkuliste.com/acer/blue-aspire-one-a150l-series.htm acer blue aspire one a150l series akku http://www.akkuliste.com/acer/blue-aspire-one-a150x-series.htm acer blue aspire one a150x series akku http://www.akkuliste.com/acer/blue-aspire-one-zg5.htm acer blue aspire one zg5 akku http://www.akkuliste.com/acer/um08b73.htm acer um08b73 akku http://www.akkuliste.com/acer/white-aspire-one-a110l-series.htm acer white aspire one a110l series akku http://www.akkuliste.com/acer/white-aspire-one-a150l-series.htm acer white aspire one a150l series akku http://www.akkuliste.com/acer/white-aspire-one-a150x-series.htm acer white aspire one a150x series akku http://www.akkuliste.com/acer/white-aspire-one-zg5.htm acer white aspire one zg5 akku http://www.akkuliste.com/apple/a1022.htm apple a1022 akku http://www.akkuliste.com/apple/a1079.htm apple a1079 akku http://www.akkuliste.com/apple/m9324.htm apple m9324 akku http://www.akkuliste.com/apple/a1078.htm apple a1078 akku http://www.akkuliste.com/apple/a1045.htm apple a1045 akku http://www.akkuliste.com/apple/m9325.htm apple m9325 akku http://www.akkuliste.com/apple/m9756.htm apple m9756 akku http://www.akkuliste.com/apple/a1175.htm apple a1175 akku http://www.akkuliste.com/apple/ma348g-a.htm apple ma348g a akku http://www.akkuliste.com/apple/a1185-white.htm apple a1185 white akku http://www.akkuliste.com/apple/a1185-black.htm apple a1185 black akku http://www.akkuliste.com/asus/a42-w1.htm asus a42-w1 akku http://www.akkuliste.com/asus/w1.htm asus w1 akku http://www.akkuliste.com/asus/w1g.htm asus w1g akku http://www.akkuliste.com/asus/w1v.htm asus w1v akku

  7. Unknown says:

    男人最脆弱的杭州装潢两段时光,也是女人“进攻”得杭州补漏好机会。这时的杭州装修公司男人,也许杭州管道疏通伤心,也许内疚,也许杭州装饰无奈。女人们只要稍稍用心,就能如愿以偿。  这是一个男人教我的:当你丈夫不再爱你、要跟你离婚时,你惟一能做的,就是尽量争取你的利益。人生杭州装饰注定不能由自己杭州中央空调维修决定,当踏入杭州家装这深宅大院,她就知道杭州装修今生今世都将被杭州装饰公司束缚。三从四德的杭州装饰为妻之道她是懂的呀,只是为什么杭州装修面对他和他的所爱,她的心却回复不了原来的杭州装饰公司简单?他怎么可能杭州空调移机爱上她呢?他心系杭州家政国家大事,也有青梅竹马的恋人, 要怎么杭州装修取舍她与她呵!而国事与情事杭州管道疏通孰重孰轻?他要杭州空调维修怎么掂量这个生活中杭州装修公司越来越不可缺少的女子?

  8. Unknown says:

    デザイン 専門学校 競馬予想 行政書士 ドロップシッピング 競馬 三井ダイレクト 有料老人ホーム ショッピング枠 現金化  為替   設計事務所    アクサ  アクサダイレクト      現金化  派遣会社 クレジットカード 現金化  ウェディング  結婚式  ウェディング 看護 
     医院開業 覆面調査  マンガ 専門学校

     

  9. Unknown says:

    FX  賃貸 アーネスト アルバイト 求人情報   ローン マリッジリング 東京 土地 結婚式  沖縄旅行 ゲーム 専門学校  クレジットカード 現金化  外国為替  引越  副業  為替 競馬予想  出会い系子犬 神奈川 ペットショップ 神奈川パイプカット インテリア 雑貨  歯列矯正  分譲マンション

Comments are closed.