Még élek.
A post célja hogy csekély mértékben eggyel növelje a blog bejegyzéseinek számát.
Más, egyéb, magasabb rendű célja nincs. Jelenleg ennyi is elég.
Apró lépések amelyek fontosak a blog és jómagam kapcsolatának felmelegítésére.
A személyes blogom... elmélkedés, bármiről, mindenről
Még élek.
A post célja hogy csekély mértékben eggyel növelje a blog bejegyzéseinek számát.
Más, egyéb, magasabb rendű célja nincs. Jelenleg ennyi is elég.
Apró lépések amelyek fontosak a blog és jómagam kapcsolatának felmelegítésére.
Linq to Entity-ben a feltételek összerakásánál típus egyeztetés, illetve mappelt végrehajtás van.
Sajnálatos módon a .NET int.ToString() egy nem mappelt SQL függvény.
Mégis hogyan lehetséges Id (Int32) mezőre szűrni?
A megoldás:
Sql:
select * from SalesOrder where SalesOrderId like ‘123%’
Linq to Entity (condition):
c => SqlFunctions.StringConvert((double)c.SalesOrder.SalesOrderId).StartsWith(FilterSalesOrderId)
Ennyi.
Ps:
A megoldás nem működik – negatív számokra.
Dinamikus felület generálás, meglévő üzleti kód alapján.
Igen, lehetséges, amennyiben megfelelően közelítjük meg a problémát.
A WpfDynamicUI bizonyítja hogy a felhasználói felület generálása lehetséges és elérhető a jelenlegi technológiai szinten.
Mint minden megoldásnak van előnye és hátránya.
Előnyök:
Hátrányok:
Konklúzió:
Elegendően jó, általános megoldásra a felület generálás jó választás lehet.
Az egyediség feláldozásával az aktuális megoldás időigényét lehet csökkenteni.
Feladat: Wpf alkalmazás indítási idejének csökkentése.
Hogyan?
Indítási feladatok párhuzamosításával, illetve későbbi időpontra helyezésével.
Bővebben:
… BeginInvoke, ThreadPool.QueueUserWorkItem, illetve WaitHandle a barátaid tudnak lenni, ha szépen szólsz hozzájuk.
Csíny letudva.
A barkácsolás jó!
Egyszerű dolgot összerakni, ami
Még mindig életben…
Csak a munka és a munka hegyek, ami elől el nem megyek.
Disconnected – Occasionally connected – Online rendszerek.
A kihívás adott.
B+Tree c#
Ha még a google se tudja a jó választ akkor mi a *-om?
btw: B-Tree: http://en.wikipedia.org/wiki/B-tree
------------------------------------
Mért olyan nagy dolog ha a saját ICollection
Mért nincs ilyen a c# .NET környezetben?
class PersistedItem
{
public Item(int index)
{
Index = index;
}
public int Index { get;private set; }
public string OtherVariables { get; set; }
}
void main(object[] args)
{
var coll = new PersistedCollection
for (int i = 0; i< 100.000.000;i++)
{
coll.Add(new MyData(i) { OtherVariables = "Abcd"} );
}
coll.Persist("c:\temp\db.xyz.temp");
....
coll = LoadCollection("c:\temp\db.xyz.temp");
item = coll.First(item=>item.Index > 560.000);
}
Anélkül hogy akármilyen DB műveletet kellene végeznem? És közben az összes elem a ne legyen a memóriában lefoglalva...
Tell me why?
-------------------------------------------------------
Miért kellene adatbázisba tenni a "PersitedItem" elemeit és utánna meg "visszatölteni" amikor nincs semmi SQL a fenti lekérdezésben...
Van benne Collection
Van benne épp mint 100.000.000 elem
-***
és épp egyet keresek ki belőle.
//////
GYK - usual way- a szokásos megoldás:
var rd = new SqlConnection.CreateCommand("select top 1 OtherVariables from [pub].PersitedCollection where Id > 560.000");
var result = rd.Read();
... Instanciate and populate Persistedtem
var persistedItem = new PersistedItem()
var pi = typeof(PersistedItem).GetType().GetProperty("OtherVariables");
pi.SetValue(persistedItem, rd.ReadString("OtherVariables"));
....
/////
Q2: miért érdekes:
mert ha nem akarom a q-va PersitedItem-et adatbázisban tárolni...
mert:
nincs lehetőség telepíteni bármi runtime környezetet (aka: faszom fostalicska okostelefonok)
nincs elég memória lokálisan a teljes collection kezelésére
Miért nem tudod Ó mondd meg..
1956 okt. 23,
A magyar forradalom (szabadságharc, ellenforradalom, stb...) napja.
Ennek a napnak a megemlékezése folyamán a google magyar keresőlapja az 56-os ok emlékére a következő nyitólapot jelenített meg:
Sörkollektor
Fűtés az átmeneti időszakban, ősszel illetve tavasszal.
Fűtésrásegítés a hideg téli hónapok alatt.
Már egy jó ideje rátaláltam a sörkollektorra, mint alternatív napenergia felhasználásra. Olcsó, és fenntartható, többlet költséget nem igénylő fűtés, fűtésrásegítő módszer. Megfelelő tájolással az éves fűtésszámla jelentős része megspórolható vele, szóval érdekes dolog hogy foglalkozzam vele.
Miért és hogyan Sörkollektor ez a kollektor?
Kedves David Ecclestone,
Ügyfélszolgálat rulez.
Egy jól működő ügyfélszolgálat...
XY Customer Service
Bob: Hello I'm Bob, May I help you?
You: Sure, i want to ....
You: And .....
You: And .....
Bob: One Moment!
You: And .....
Bob: Checking.
You: Ok, go ahead! Is there anything I can give you to do ...?
Bob: So you want me to do .....?
You: That's right.
Bob: I need extra information only because of your safety.
Bob: Q1.
Bob: Q2.
Bob: Q3.
You: Sure, x---- y----- z-----
Bob: Done.
You: Thanks
Bob: Bye.
You: Bye
No és egy kevésbé jól működő ügyfélszolgálat:
XY Customer Service
[0:0:30] Bob: Hello I'm Bob, May I help you?
[0:0:35] You: Sure, i want to ....
[0:0:50] You: And .....
[0:0:55] You: And .....
[0:2:00] Bob: One Moment!
[0:2:15] You: And .....
[0:4:00] Bob: Checking.
[0:4:30] You: Ok, go ahead! Is there anything I can give you to do ...?
[0:6:00] Bob: So you want me to do .....?
[0:6:15] You: That's right.
[0:8:30] Bob: I need extra information only because of your safety.
[0:8:50] Bob: Q1.
[0:8:55] Bob: Q2.
[0:9:00] Bob: Q3.
[0:10:00] You: Sure, x---- y----- z-----
[0:11:00] Bob: Done.
[0:11:30] You: Thanks
[0:11:35] Bob: Bye.
[0:11:50] You: Bye
NC
Site Service Host
Elkészült?
Elkészült!
Internetes szolgáltatás alapú rendszer.
Bővíthető, jogosultság kezelés, kiegészítők és még sok minden más...
A rendszer eladó, kiadó
További információk a www.siteservicehost.com oldalon találhatóak.
Érdeklődni az oldalon.
A munka dandárja után, de még a vége előtt egy kis bejegyzés.
Élek, még dolgozok.
Pedig már nem bánnám ha már minden a helyére kerülne...
Kis szösszenet mint összesítés:
Megjelent a Visual Studio sorozat 2010-es verziója. (forrás: http://www.hanselman.com)
A "tartalomból"
Mert hogy mindig elfelejtem és rá kell keresnem (és esetleg másnak is hasznára válik):
Fejlesztés közben előfordulhat hogy az összes táblát törölni szeretnénk MSSQL adatbázis esetén:
exec sp_MSforeachtable "DROP TABLE ? PRINT '? dropped' "
futtassuk amíg az összes táblától meg nem szabadultunk.
Figyelem! ez nem kérdez, töröl! Csak saját felelősségre.
Happy Coding
A tempuri.org-ról
Hogyan is szabaduljunk meg a tempuri.org namespace-től egy WCF szolgáltatás WSDL leírójában?
1.) In your ServiceContract attribute constructor define the Namespace property.
[ServiceContract(Namespace = "http://myservice.com")]
public interface IMyService
2.) For your ServiceClass create the ServiceBehavior attribute with Namespace property
[ServiceBehavior(Namespace = "http://myservice.com")]
class MyService : IMyService
3.) In all your bindings set the bindingNamespace property
<endpoint binding="basicHttpBinding" bindingNamespace="http://myservice.com"....
Forrás: http://my-tech-talk.blogspot.com/2009/01/how-to-get-rid-of-httptempuriorg-in-wcf.html
Az egész olyan Microsoft-os...
3, azaz három különböző helyen kell beállítani és ami a legfontosabb beleforgatni a kódba a namespace-t.
Ha így teszünk akkor kapjuk meg a következő WSDL részletet:
<wsdl:definitions name="..." targetNamespace="http://myservice.com">
<wsdl:types>...
Jó tudni...
HornGet
Egy hasznos eszköz a .NET fejlesztéshez a hornget.
Ha a fejlesztés során szükségünk lenne
A HornGet segítségével a legújabb Nyílt forráskódú eszközök telepíthetőek közvetlenül az adott projekt forrásából.
horn -install:mvccontrib horn -install:automapper horn -install:castle.components horn -install:castle.tools horn -install:castle.facilities horn -install:castle.services horn -install:castle.windsor horn -install:fluentnhibernate horn -install:json.net horn -install:log4net -version:2.1 horn -install:nhibernate -version:2.1 horn -install:nhibernate horn -install:nhibernate.linq horn -install:nhibernate.linq -version:2.1 horn -install:rhino
Nagyobb térképre váltás | Főbb adatok:
|
Hogyan is mutathatnánk be a legjobban a technikai kompetenciánkat?!
Egy szakmai önéletrajz C# Fluent API-val kifejtve.
public class ConsultancyService
{public void CompleteTask()
{using (Microsoft.NET.Framework)
{MySelf.OnPlatform(Windows.Any)
.WithLanguage(Languages.CSharp) .WithTool(Tools.VisualStudio).Utilizing
(
Utilization.Persistence .With(SubSonic.Instance) .Or(LinqToSql.Instance) .Or(FluentNHibernate.Instance))
.Utilizing(Utilization.WCF).Utilizing
(
Utilization.ESB .With(NServiceBus.Instance))
.Utilizing
(
Utilization.IoC .With(CastleWindsor.Instance))
.ToAbstract<YourDomain>(Model.YourDomainModel)
.Provides
(
Solution<YourRequirement>.WithTesting.Implement().Deploy()
)
.Provides
(
Solution<YourRefactoringRequirement>.WithTesting.Refactor()
);
}
}
}
A facebook "pattern"
A Modern Kiterjeszthető Webalkalmazásról, avagy az útkeresés...
Az előző postomban arról írtam hogy milyen problémákkal kell szembenézni amikor egy modern, moduláris alkalmazást szeretnénk létrehozni.
A megoldás kutatása közben bukkantam erre a blog-ra (angol nyelvű)
Kivonatolva a bejegyzés lényege:
A modul kisebb funkcionális egység amelyekből többet összerakva a kívánt rendszer felépíthető. A modul üzleti logikát, infrastruktúrát vagy akár felhasználói felületet is definiálhat.
A kompozíció határozza meg illetve definiálja az egyes modulok közti függőségeket valamint a kommunikációt.
A modulok, illetve függőségeinek leírására számtalan módszer áll a rendelkezésünkre, de mindegyik módszernek meg vannak a maga erősségei, illetve gyengeségei.
A Microsoft-os környezetben a Web Client Software Factory áll rendelkezésre
Annak ellenére hogy jó néhány problémára lehet megoldást adni a környezet használatával van egy nagy hiányossága.
Sajnálatos módon ezzel a környezettel sem lehetséges a felhasználói felület moduláris definiciója. (a környezethez adott minta alkalmazás is mindösszesen az üzleti logikára illetve az üzleti logika függőségeire ad választ, de pl az oldalak html (aspx) erőforrásai a runtime futtatási környezetben kerültek definiálásra)
Így sajnos nem lehetséges Valóban moduláris felépítést elérni vele.
(Vessük össze a modul definíciójával: üzleti logika, infrastruktúra, felhasználói felület)
A probléma boncolgatása közben egy lehetséges alternatíva merül fel:
Amennyiben webalkalmazásról beszélünk (márpedig igen) lehetséges a felhasználói felületet iframe struktúrán keresztül dinamikusan beágyazni bármely keretrendszerbe.
A facebook, valamint a facebook alkalmazások tipikus példái ennek a megközelítésnek
Nézzük meg az egyik népszerű facebook alkalmazást (játékot) a zynga által fejlesztett Maffia Wars alkalmazást.