Dennis 的無差別 Blog | I thought what I’d do was, I’d pretend I was one of those deaf-mutes

TAG | .NET

Sep/09

10

最近都在寫 C#

唔係好習慣, 特別係 naming 同 IDE 嘅用法。始終 Eclipse 實在太好用啦。

的確 C# 係 language 同 syntax 上面都比 Java 先進,不過個 VS 實在太大食,而且個 Internet 同部機實在太慢啦!!

I miss Eclipse, 我每日至少會講一次

好在我重未老,學習能力同上手能力都依然好高。但係個 Internet 同部機實在太慢啦 (x2)

Java 7 聽左咁耐,都唔知幾時先至有。但另一邊 C# 4.0 好快接近。我係唔係要改我自己嘅 major language 呢?

或者 Ruby?, Python?, JavaFX? 定係 Android? Java ME? 甚至 C++ 呢?

, , , , Hide

Workflow in C#

感覺不錯,能用上的話的確的節省很多時間

———–

原本想聽 WCF 的,但發現太過一般性 Introduction ,這幾天看過了好幾個 demo 都用上了 WCF 其實很簡單,看過幾個 slide 覺得他不會講得太深入而過左去聽 C# Tips and tricks。

C# Tips and tricks
Visual Studio 2008
很像 Eclipse 比以前更像 Eclipse,相比 Eclipse 它還有很多地方還要改善。不過的確一有點地方比 Eclipse 還要先進。
有部份還是要自己再另裝 add-in 而不是一開始內置的。

和昨天講解 LINQ 的是同一個 presenter,她的表現的 demo 很好,看得出準備比其他人都要充足和流暢,很簡單有力,不會有太多重復的內容。
值得一讚 (其他明顯很差的就不想題了,反面教材)。

問了 VS 會不會有推出類似 Mylyn 的功能,回答是目前沒有,他們還在看有甚麼可以做,但他們的確是想走這個方向。
我想如果是 MS,大概或許可以很好的和 Sharepoint 和 Outlook 整合,不過 2010 前大概都不可能吧。

而和 Eclipse 的 Key mapping 的差異很大這一點她也會無能為力,目前只可以手動一個一個重設,再 export/import。

我記得還問了其他問題的……..忘了

————-

Application Visualization

我三日之中有空都會去了解這個一下,老闆大概會說很多話會說吧!?

過去一年我聽到他想作的,認為很 smart 的 idea。差不多有一半 MS 堆出解決方法,(雖然他很少去想 Man power 足不足夠和 ROI )。

下星期要交代的可多了

————-

又再被一個不太好的 presenter 浪費了一點時間…….

算了,反正其他 topic 不太吸引。

————-

VS Team System 2008 Database Edition

Finally………some version/source control of database schema in a better way
And some tools to make fake data
And some tools to unit test the database
原本還以為那個是 MS 考立名目而推出來抗錢(雖然事實上還是抗錢)

可惜目前不支持 3rd-party database,要等 3rd-party 甚至 4th-party 去寫 add-on

有用是有用,但不會太常用,值不值得見人見智了。

————-

Occasionally Connection Application

Sync Service in ADO.NET 寫得不差,簡單的小的 Apps 該會很好用。可是用在現實用起來來未必有沒太大的用途。

它不能很地好處複雜的衝突,或很麻煩的 Transaction 的 cross table 交錯 update,實用是你也沒可能 cache 一個很大的 database table。
如果它做不到像 Exchange 那樣:看過的能記住,未看過要下載;就沒太大作用,始終要用完全自己的控制。

但如果是 sync file system 或者能在 mobile phone 上運算的數量的 data 的話我想會很好用。

但大一點要 Notebook 級以上才能用的就比較差了。

或許 app-auto-self-update 之類會用得上?

想了又想,始終記錄 “Changes set” 會比較有用,比較像是 “patch”,可以 checkin,re-apply,rollback。
就算是 always online apps 也能好好利用。前題是它必須是完整而可反向套用。

或許有空的時候再找一找有沒有這方面的工具,甚至自己造一個 in Java/C#。

或許可以在eclipse 內找得到 ??   (undo-redo / local history ??)

, , , , Hide

Oct/08

10

LINQ and Hibernate

LINQ 其實有好多野都可以做但都未做得到呢…….. IQueryable Provider 未齊人
AD / FileSystem / WMI / LDAP / network / parallel /  WS / MQ …..etc

其實LINQ最方便係佢可以好簡單地convert data from sql to xml, or from sql to json, or from json to xml, or vice verse.

以前要寫好長好長的codes, 三兩句用LINQ就攪掂了……
做左programming咁耐, 有時真係lazy打咁多字.

同埋, 佢本身個類似ORM的tools, 感覺上, 比Hibernate果D好好多……. 我諗主要個原因係, VS managed 左XML generation果part, 而且有IDE 幫手可以好快咁define association between entities, 呢個我覺得令到佢比hibernate方便………

Commented by PakPak

試想想….. NTFS 之類又 hardlink, softlink 又 junction point…….
from x in C:
depth 5
where filename.endsWith(*.txt)
distinct file.FileRef
select new{file.FullPath, file.mimeType};
之類會好有用; 至少一定好過 Unix 個 `find` syntax

我都有走去問佢可唔可以做到 Runtime LINQ compiler………..可惜佢答你可以自己寫: 目前沒有
也就是不可放入 config file, 也不能做到互動式…..

其實 Hibernate 性質又有D唔同

Hibernate 真係 O/R Mapping
我咁睇: ORM 係令到你可以 Presistent 一個 Object 入 RDBMS 而唔係 Object-DB
如果你所有野都係由 object 出發, 唔無視 database design/how it works 就好有用
What you have is a object which presistented to database, and you decide what is an “Object”

而其他 mapping tools, 根本上能只算係
SQL builder / result mapping
如果你有 “query database” 或者 “update table” 之類想法, Hibernate 可以話係完全唔合適

LINQ to SQL 事實上係都係 SQL builder  + result mapping
無 relation, 無 lazy loading, 無 transaction,
What you have is a copy of the data, then you decide how to use “DATA”, not “Object”

其實唔同文化理念造就出分別
例如 Java vs C# 咁,

Sun 一直都想 minimum 整套 JDK, bytecode, Java Syntax ;唔想包太多 utility /common class 入去
=> 結果差唔多個個 project 都走去用 apache-common; JRE 都慢慢被迫加入更多新功能而變得更大, 最後唯有放棄 minimum 想法而轉用 Consumer JRE 路線(居然還未放棄 Applet market…)
佢想保持自己 Stupid Simple; 因為原本無想過 Java 會是主力….I was only want to sell more hardware

而且 Java commutity 一直有反動力……..sun 根本無咁多 resource 去 sell / press 同埋 bugfix
你見其實重有唔少 1.3 年代的 Feature/bugfix request 到重係 pending, won’t fix, reconized, will fix in JDK7
MS 一直都不停咁 extends 個 IDE, 大量 template, toolkit, framework, 改善 C#; 總知有用就加入去
=> VS 巨大化, 怪物化; 精通使用 VS.NET 甚至比精通 Photoshop 或者寫 code 本身更難.

佢根本唔怕 installation package 太大, 或者太多野而更多 bugfix (因為根本無 Java 個 “cross-platform” 理念)
想做到嘅係吸引更多 developer, 做一樣野可以有三種選擇
佢想令到 Development Stupid Simple

也就是很多 Programmer 討厭的 VB 式 drag-n-drop 寫 code 方式………
但事實上,手動改很多事情的空間不少(只要你知道)

你提是你能不能找得對的文件/問對人
和 Java 有點不同, 他們不是每一件事都 open to public…….

Sun 是想改變 stupid programmer (They should know what they are doing. It is powerful, but take are it yourself)
MS 則是接愛 stupid programmer (They can code in VS, even they should know. Whatever, it works),

, , , , Hide

最近上了一個 .NET 的 training 。(.NET 和 C# 我是會,可是以前沒上過正規的 Training)

當中提到一點,這和我最近看到的 Java finalize 文件差不多,簡單來說是:

  • 如果你的 object 有實作到 finalize ,它就可能在比你所想的時機更早就被 Finailize Thread 執行。
  • 需等待 finalize 的部分,object 的大小越少越好,才能減少回收延誤

第一點,就是說它不會等你的 object 現在執行中的 method 完成之後才執行。而是可能和你的 method 同時執行。甚至比你的最後一個 method 更早執行。
在 .NET ,你能用GC.KeepAlive 來避免,而在 Java 可以利用空的 synchronze method 來確立最早可回收的時間點。

第二點,http://www.devx.com/Java/Article/30192

, , Hide

Theme Design by devolux.org